Contract Overview
Balance:
0 AVAX
AVAX Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xf9099beadbcc515dc86d78e1bdd5b8abb677d6b75f18e34d2d0335ee71e1e287 | 0x61010060 | 20917594 | 161 days 10 hrs ago | 0x55e66f5b3cf90cc707e8945428a7f675224042bb | IN | Create: LasmStaking | 0 AVAX | 0.060515345 |
[ Download CSV Export ]
Contract Name:
LasmStaking
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at snowtrace.io on 2022-10-11 */ // File: @openzeppelin/contracts/security/ReentrancyGuard.sol // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/interfaces/IERC20.sol // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) pragma solidity ^0.8.0; // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/Lasm_Staking.sol //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; contract LasmStaking is Ownable,ReentrancyGuard{ IERC20 Token; uint public rewardTokenSupply; uint public totalStakedToken; struct info{ uint amount; uint lastClaim; uint stakeTime; uint durationCode; uint position; uint earned; } uint[4] public durations = [30 days, 180 days, 365 days, 730 days]; uint[4] public rates = [1, 7, 15, 32]; mapping(address=>mapping(uint=>info)) public userStaked; //USER > ID > INFO mapping(address=>uint) public userId; mapping(address=>uint) public userTotalEarnedReward; mapping(address=>uint) public userTotalStaked; mapping(address=>uint[]) public stakedIds; bool public paused; event StakeAdded( address indexed _usr, uint _amount, uint startStakingTime, uint8 _durationCode, uint _stakedIndex ); event Unstaked(address indexed _usr, uint _stakeIndex); event ClaimReward(address indexed _from, uint _claimedTime, uint _stakeIndex); event ClaimRewardAll(address indexed _from, uint _claimedTime, uint _amount); event Paused(); event Unpaused(); event RewardTokenRewardAdded(address indexed _from, uint256 _amount); event RewardTokenRewardRemoved(address indexed _to, uint256 _amount); event UpdateDuration(address indexed _from); event UpdateRate(address indexed _from); constructor(address _token) { Token = IERC20(_token); } function addStakedTokenReward(uint256 _amount) external onlyOwner { //transfer from (need allowance) rewardTokenSupply += _amount; Token.transferFrom(msg.sender, address(this), _amount); emit RewardTokenRewardAdded(msg.sender, _amount); } function removeStakedTokenReward(uint256 _amount) external onlyOwner { require(_amount <= rewardTokenSupply, "you cannot withdraw this amount"); rewardTokenSupply -= _amount; Token.transfer(msg.sender, _amount); emit RewardTokenRewardRemoved(msg.sender, _amount); } function updateDuration(uint[4] memory _durations) external onlyOwner { durations = _durations; emit UpdateDuration(msg.sender); } function updateRate(uint[4] memory _rates) external onlyOwner { rates = _rates; emit UpdateRate(msg.sender); } function stake(uint _amount, uint8 _durationCode) external { require(!paused,"Execution paused"); require(_durationCode < 4,"Invalid duration"); userId[msg.sender]++; userStaked[msg.sender][userId[msg.sender]] = info(_amount, block.timestamp, block.timestamp, _durationCode, stakedIds[msg.sender].length, 0); stakedIds[msg.sender].push(userId[msg.sender]); require(Token.transferFrom(msg.sender, address(this), _amount), "Amount not sent"); totalStakedToken += _amount; userTotalStaked[msg.sender] += _amount; emit StakeAdded( msg.sender, _amount, block.timestamp, _durationCode, stakedIds[msg.sender].length - 1 ); } function getReward(address _user, uint _id) public view returns(uint) { info storage userInfo = userStaked[_user][_id]; uint timeDiff = block.timestamp - userInfo.lastClaim; uint reward = userInfo.amount * timeDiff * rates[userInfo.durationCode] / (durations[userInfo.durationCode] * 100); return reward; } function getAllReward(address _user) public view returns(uint) { uint amount = 0; uint length = stakedIds[_user].length; for(uint i=0; i<length; i++){ info storage userInfo = userStaked[_user][stakedIds[_user][i]]; if (userInfo.amount == 0) continue; uint amountIndex = getReward(_user, stakedIds[_user][i]); amount += amountIndex; } return amount; } function getStakedInfo(address _user) public view returns (info[] memory infors, uint[] memory claimable, uint[] memory pending) { uint length = stakedIds[_user].length; infors = new info[](length); claimable = new uint[](length); pending = new uint[](length); for(uint i=0; i<length; i++){ info storage userInfo = userStaked[_user][stakedIds[_user][i]]; infors[i] = userInfo; pending[i] = getReward(_user, stakedIds[_user][i]); claimable[i] = claimableReward(_user, stakedIds[_user][i]); } } function claimableReward(address _user, uint _id) public view returns(uint) { info storage userInfo = userStaked[_user][_id]; if (block.timestamp - userInfo.stakeTime < durations[userInfo.durationCode]) return 0; return getReward(_user, _id); } function claimableAllReward(address _user) public view returns(uint) { uint amount = 0; uint length = stakedIds[_user].length; for(uint i=0; i<length; i++){ info storage userInfo = userStaked[_user][stakedIds[_user][i]]; if (userInfo.amount == 0) continue; if (block.timestamp - userInfo.stakeTime < durations[userInfo.durationCode]) continue; uint amountIndex = getReward(_user, stakedIds[_user][i]); amount += amountIndex; } return amount; } function claimReward(uint _id) public nonReentrant { info storage userInfo = userStaked[msg.sender][_id]; require (block.timestamp - userInfo.stakeTime >= durations[userInfo.durationCode], "Not claim yet, Locked period still."); claim(_id); emit ClaimReward(msg.sender, block.timestamp, _id); } function claim(uint _id) private { uint amount = 0; require(userStaked[msg.sender][_id].amount != 0, "Invalid ID"); amount = getReward(msg.sender, _id); require( Token.balanceOf(address(this)) >= amount, "Insufficient token to pay your reward right now" ); Token.transfer(msg.sender, amount); info storage userInfo = userStaked[msg.sender][_id]; userInfo.lastClaim = block.timestamp; userInfo.earned += amount; userTotalEarnedReward[msg.sender] += amount; rewardTokenSupply -= amount; } function claimAllReward() public nonReentrant { uint amount = 0; uint length = stakedIds[msg.sender].length; for(uint i=0; i<length; i++){ info storage userInfo = userStaked[msg.sender][stakedIds[msg.sender][i]]; if (userInfo.amount == 0) continue; if (block.timestamp - userInfo.stakeTime < durations[userInfo.durationCode]) continue; uint amountIndex = getReward(msg.sender, stakedIds[msg.sender][i]); if (amountIndex == 0) continue; userInfo.lastClaim = block.timestamp; userInfo.earned += amountIndex; amount += amountIndex; } Token.transfer(msg.sender, amount); rewardTokenSupply -= amount; userTotalEarnedReward[msg.sender] += amount; emit ClaimRewardAll(msg.sender, block.timestamp, amount); } function unstake(uint _amount, uint _id) external nonReentrant{ claim(_id); info storage userInfo = userStaked[msg.sender][_id]; require(userInfo.amount != 0 && _amount <= userInfo.amount ,"Invalid ID"); require(block.timestamp - userInfo.stakeTime >= durations[userInfo.durationCode], "Not unlocked yet"); if (_amount == userInfo.amount) { popSlot(_id); delete userStaked[msg.sender][_id]; } else userInfo.amount -= _amount; require( Token.balanceOf(address(this)) >= _amount, "Insufficient token to unstake right now" ); Token.transfer(msg.sender, _amount); totalStakedToken -= _amount; userTotalStaked[msg.sender] -= _amount; emit Unstaked(msg.sender, _id); } function unstake(uint _id) external nonReentrant{ claim(_id); info storage userInfo = userStaked[msg.sender][_id]; require(userInfo.amount != 0,"Invalid ID"); require(block.timestamp - userInfo.stakeTime >= durations[userInfo.durationCode], "Not unlocked yet"); require( Token.balanceOf(address(this)) >= userInfo.amount, "Insufficient token to unstake right now" ); Token.transfer(msg.sender, userInfo.amount); popSlot(_id); delete userStaked[msg.sender][_id]; totalStakedToken -= userInfo.amount; userTotalStaked[msg.sender] -= userInfo.amount; emit Unstaked(msg.sender, _id); } function popSlot(uint _id) internal { uint length = stakedIds[msg.sender].length; bool replace = false; for (uint256 i=0; i<length; i++) { if (stakedIds[msg.sender][i] == _id) replace = true; if (replace && i<length-1) stakedIds[msg.sender][i] = stakedIds[msg.sender][i+1]; } stakedIds[msg.sender].pop(); } function setToken(address _token) external onlyOwner{ Token = IERC20(_token); } function Pause() external onlyOwner { paused = true; emit Paused(); } function unpause() external onlyOwner { paused = false; emit Unpaused(); } }
[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_claimedTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_stakeIndex","type":"uint256"}],"name":"ClaimReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_claimedTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimRewardAll","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":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RewardTokenRewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RewardTokenRewardRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startStakingTime","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"_durationCode","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"_stakedIndex","type":"uint256"}],"name":"StakeAdded","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"_stakeIndex","type":"uint256"}],"name":"Unstaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"}],"name":"UpdateDuration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"}],"name":"UpdateRate","type":"event"},{"inputs":[],"name":"Pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addStakedTokenReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAllReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"claimableAllReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"claimableReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"durations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getAllReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getStakedInfo","outputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lastClaim","type":"uint256"},{"internalType":"uint256","name":"stakeTime","type":"uint256"},{"internalType":"uint256","name":"durationCode","type":"uint256"},{"internalType":"uint256","name":"position","type":"uint256"},{"internalType":"uint256","name":"earned","type":"uint256"}],"internalType":"struct LasmStaking.info[]","name":"infors","type":"tuple[]"},{"internalType":"uint256[]","name":"claimable","type":"uint256[]"},{"internalType":"uint256[]","name":"pending","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeStakedTokenReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardTokenSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint8","name":"_durationCode","type":"uint8"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedToken","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":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[4]","name":"_durations","type":"uint256[4]"}],"name":"updateDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[4]","name":"_rates","type":"uint256[4]"}],"name":"updateRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userStaked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lastClaim","type":"uint256"},{"internalType":"uint256","name":"stakeTime","type":"uint256"},{"internalType":"uint256","name":"durationCode","type":"uint256"},{"internalType":"uint256","name":"position","type":"uint256"},{"internalType":"uint256","name":"earned","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userTotalEarnedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userTotalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
61010060405262278d00608090815262ed4e0060a0526301e1338060c0526303c2670060e0526200003590600590600462000126565b5060408051608081018252600181526007602080830191909152600f9282019290925260608101919091526200007090600990600462000171565b503480156200007e57600080fd5b506040516200244038038062002440833981016040819052620000a191620001be565b620000ac33620000d6565b60018055600280546001600160a01b0319166001600160a01b0392909216919091179055620001f0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82600481019282156200015f579160200282015b828111156200015f578251829063ffffffff169055916020019190600101906200013a565b506200016d929150620001a7565b5090565b82600481019282156200015f579160200282015b828111156200015f578251829060ff1690559160200191906001019062000185565b5b808211156200016d5760008155600101620001a8565b600060208284031215620001d157600080fd5b81516001600160a01b0381168114620001e957600080fd5b9392505050565b61224080620002006000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638a623d8611610104578063ae169a50116100a2578063cb6d8ee611610071578063cb6d8ee61461045c578063dd418ae214610465578063f2fde38b14610478578063f474c8ce1461048b57600080fd5b8063ae169a5014610410578063b8e58c3914610423578063bc20a7af14610436578063cada7df91461044957600080fd5b80639e2c8a5b116100de5780639e2c8a5b14610359578063a39b21531461036c578063a5d3c51e146103e7578063ac78599c146103f057600080fd5b80638a623d86146103235780638da5cb5b1461032b57806396bfdcfe1461034657600080fd5b8063463c56cc1161017c5780636bd97f1d1161014b5780636bd97f1d146102d5578063715018a6146102e8578063719de1ef146102f05780637e0391531461031057600080fd5b8063463c56cc1461028a5780634d85bd9f1461029d5780635c975abb146102b05780636985a022146102cd57600080fd5b806334eeee5a116101b857806334eeee5a1461021a578063376fe1021461022d5780633f4ba83a14610260578063434dcc171461026857600080fd5b806310087fb1146101df578063144fa6d7146101f45780632e17de7814610207575b600080fd5b6101f26101ed366004611e15565b61049e565b005b6101f2610202366004611e67565b610766565b6101f2610215366004611e89565b610790565b6101f2610228366004611eb8565b610a2d565b61024d61023b366004611e67565b600e6020526000908152604090205481565b6040519081526020015b60405180910390f35b6101f2610a71565b61027b610276366004611e67565b610aae565b60405161025793929190611f7f565b6101f2610298366004611eb8565b610d8b565b6101f26102ab366004611e89565b610dcf565b6012546102bd9060ff1681565b6040519015158152602001610257565b6101f2610eef565b61024d6102e3366004612014565b610f2f565b6101f2610f9f565b61024d6102fe366004611e67565b60106020526000908152604090205481565b6101f261031e366004611e89565b610fb3565b6101f2611080565b6000546040516001600160a01b039091168152602001610257565b61024d610354366004612014565b6112b8565b6101f261036736600461203e565b6112e9565b6103ba61037a366004612014565b600d602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939492939192909186565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610257565b61024d60035481565b61024d6103fe366004611e67565b600f6020526000908152604090205481565b6101f261041e366004611e89565b6115b1565b61024d610431366004611e67565b6116b7565b61024d610444366004611e89565b61179d565b61024d610457366004611e67565b6117b4565b61024d60045481565b61024d610473366004611e89565b6118c5565b6101f2610486366004611e67565b6118d5565b61024d610499366004612014565b61194e565b60125460ff16156104e95760405162461bcd60e51b815260206004820152601060248201526f115e1958dd5d1a5bdb881c185d5cd95960821b60448201526064015b60405180910390fd5b60048160ff161061052f5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b210323ab930ba34b7b760811b60448201526064016104e0565b336000908152600e6020526040812080549161054a83612076565b90915550506040805160c08101825283815242602080830182815283850192835260ff8616606085019081523360008181526011855287812080546080890190815260a08901838152848452600d88528a8420600e808a528c862080548752918a528c86209b518c5597516001808d019190915599516002808d0191909155965160038c015591516004808c019190915590516005909a01999099559486529354845496870185559381529390932090930155905492516323b872dd60e01b815291820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190612091565b6106b25760405162461bcd60e51b815260206004820152600f60248201526e105b5bdd5b9d081b9bdd081cd95b9d608a1b60448201526064016104e0565b81600460008282546106c491906120b3565b909155505033600090815260106020526040812080548492906106e89084906120b3565b9091555050336000818152601160205260409020547fc0c6fd4735a5e02cf7ef68a5afee7a731a38cf82bde401560092dc284869f54490849042908590610731906001906120cb565b60405161075a9493929190938452602084019290925260ff166040830152606082015260800190565b60405180910390a25050565b61076e6119ee565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600260015414156107b35760405162461bcd60e51b81526004016104e0906120e2565b60026001556107c181611a48565b336000908152600d60209081526040808320848452909152902080546107f95760405162461bcd60e51b81526004016104e090612119565b60058160030154600481106108105761081061213d565b0154600282015461082190426120cb565b10156108625760405162461bcd60e51b815260206004820152601060248201526f139bdd081d5b9b1bd8dad959081e595d60821b60448201526064016104e0565b80546002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156108ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d09190612153565b10156108ee5760405162461bcd60e51b81526004016104e09061216c565b600254815460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612091565b5061097082611c52565b336000908152600d60209081526040808320858452909152812081815560018101829055600281018290556003810182905560048082018390556005909101829055825481549092906109c49084906120cb565b9091555050805433600090815260106020526040812080549091906109ea9084906120cb565b909155505060405182815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75906020015b60405180910390a2505060018055565b610a356119ee565b610a426005826004611dc2565b5060405133907fa7f585ccac0d13662923cb468f4797b38beef79a2deff9df4a17120d1cfecd4390600090a250565b610a796119ee565b6012805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b6001600160a01b038116600090815260116020526040902054606090819081908067ffffffffffffffff811115610ae757610ae7611ea2565b604051908082528060200260200182016040528015610b5157816020015b610b3e6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200190600190039081610b055790505b5093508067ffffffffffffffff811115610b6d57610b6d611ea2565b604051908082528060200260200182016040528015610b96578160200160208202803683370190505b5092508067ffffffffffffffff811115610bb257610bb2611ea2565b604051908082528060200260200182016040528015610bdb578160200160208202803683370190505b50915060005b81811015610d82576001600160a01b0386166000908152600d6020908152604080832060119092528220805483919085908110610c2057610c2061213d565b906000526020600020015481526020019081526020016000209050806040518060c00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481525050868381518110610c9557610c9561213d565b6020026020010181905250610cea87601160008a6001600160a01b03166001600160a01b031681526020019081526020016000208481548110610cda57610cda61213d565b906000526020600020015461194e565b848381518110610cfc57610cfc61213d565b602002602001018181525050610d5287601160008a6001600160a01b03166001600160a01b031681526020019081526020016000208481548110610d4257610d4261213d565b9060005260206000200154610f2f565b858381518110610d6457610d6461213d565b60209081029190910101525080610d7a81612076565b915050610be1565b50509193909250565b610d936119ee565b610da06009826004611dc2565b5060405133907f275d058161c6a100a899d7704ffd58e2b301bf03de51468332af1d3133a0934e90600090a250565b610dd76119ee565b600354811115610e295760405162461bcd60e51b815260206004820152601f60248201527f796f752063616e6e6f74207769746864726177207468697320616d6f756e740060448201526064016104e0565b8060036000828254610e3b91906120cb565b909155505060025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb59190612091565b5060405181815233907f45a4e865d59c4a381530f2b87a3dfff7b8e094159e702969e0417ee95eab54e5906020015b60405180910390a250565b610ef76119ee565b6012805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6001600160a01b0382166000908152600d602090815260408083208484529091528120600381015460059060048110610f6a57610f6a61213d565b01546002820154610f7b90426120cb565b1015610f8b576000915050610f99565b610f95848461194e565b9150505b92915050565b610fa76119ee565b610fb16000611d72565b565b610fbb6119ee565b8060036000828254610fcd91906120b3565b90915550506002546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d9190612091565b5060405181815233907fae24461a43fef0eac5f521b079e387de046387781cafae7373117ec94158e7eb90602001610ee4565b600260015414156110a35760405162461bcd60e51b81526004016104e0906120e2565b600260015533600090815260116020526040812054815b818110156111ce57336000908152600d60209081526040808320601190925282208054839190859081106110f0576110f061213d565b90600052602060002001548152602001908152602001600020905080600001546000141561111e57506111bc565b60058160030154600481106111355761113561213d565b0154600282015461114690426120cb565b101561115257506111bc565b3360008181526011602052604081208054919261117c9290919086908110610cda57610cda61213d565b90508061118a5750506111bc565b428260010181905550808260050160008282546111a791906120b3565b909155506111b7905081866120b3565b945050505b806111c681612076565b9150506110ba565b5060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112449190612091565b50816003600082825461125791906120cb565b9091555050336000908152600f60205260408120805484929061127b9084906120b3565b9091555050604080514281526020810184905233917f90e4e2f2fb0f5a509044e11397b57e06467834ee837e26c1df139aff1a0c41c09101610a1d565b601160205281600052604060002081815481106112d457600080fd5b90600052602060002001600091509150505481565b6002600154141561130c5760405162461bcd60e51b81526004016104e0906120e2565b600260015561131a81611a48565b336000908152600d602090815260408083208484529091529020805415801590611345575080548311155b6113615760405162461bcd60e51b81526004016104e090612119565b60058160030154600481106113785761137861213d565b0154600282015461138990426120cb565b10156113ca5760405162461bcd60e51b815260206004820152601060248201526f139bdd081d5b9b1bd8dad959081e595d60821b60448201526064016104e0565b805483141561141e576113dc82611c52565b336000908152600d6020908152604080832085845290915281208181556001810182905560028101829055600381018290556004810182905560050155611438565b8281600001600082825461143291906120cb565b90915550505b6002546040516370a0823160e01b815230600482015284916001600160a01b0316906370a0823190602401602060405180830381865afa158015611480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a49190612153565b10156114c25760405162461bcd60e51b81526004016104e09061216c565b60025460405163a9059cbb60e01b8152336004820152602481018590526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611513573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115379190612091565b50826004600082825461154a91906120cb565b9091555050336000908152601060205260408120805485929061156e9084906120cb565b909155505060405182815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a250506001805550565b600260015414156115d45760405162461bcd60e51b81526004016104e0906120e2565b6002600155336000908152600d60209081526040808320848452909152902060038101546005906004811061160b5761160b61213d565b0154600282015461161c90426120cb565b10156116765760405162461bcd60e51b815260206004820152602360248201527f4e6f7420636c61696d207965742c204c6f636b656420706572696f642073746960448201526236361760e91b60648201526084016104e0565b61167f82611a48565b604080514281526020810184905233917fe74e5c9d4ac1fc33412485f18c159a0a391efe287ab3fd271123f30e6bacf4e39101610a1d565b6001600160a01b0381166000908152601160205260408120548190815b81811015611794576001600160a01b0385166000908152600d60209081526040808320601190925282208054839190859081106117135761171361213d565b9060005260206000200154815260200190815260200160002090508060000154600014156117415750611782565b6001600160a01b0386166000908152601160205260408120805461177191899186908110610cda57610cda61213d565b905061177d81866120b3565b945050505b8061178c81612076565b9150506116d4565b50909392505050565b600581600481106117ad57600080fd5b0154905081565b6001600160a01b0381166000908152601160205260408120548190815b81811015611794576001600160a01b0385166000908152600d60209081526040808320601190925282208054839190859081106118105761181061213d565b90600052602060002001548152602001908152602001600020905080600001546000141561183e57506118b3565b60058160030154600481106118555761185561213d565b0154600282015461186690426120cb565b101561187257506118b3565b6001600160a01b038616600090815260116020526040812080546118a291899186908110610cda57610cda61213d565b90506118ae81866120b3565b945050505b806118bd81612076565b9150506117d1565b600981600481106117ad57600080fd5b6118dd6119ee565b6001600160a01b0381166119425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e0565b61194b81611d72565b50565b6001600160a01b0382166000908152600d6020908152604080832084845290915281206001810154829061198290426120cb565b90506000600583600301546004811061199d5761199d61213d565b01546119aa9060646121b3565b60098460030154600481106119c1576119c161213d565b015484546119d09085906121b3565b6119da91906121b3565b6119e491906121d2565b9695505050505050565b6000546001600160a01b03163314610fb15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e0565b336000908152600d60209081526040808320848452909152812054611a7f5760405162461bcd60e51b81526004016104e090612119565b611a89338361194e565b6002546040516370a0823160e01b815230600482015291925082916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afa9190612153565b1015611b605760405162461bcd60e51b815260206004820152602f60248201527f496e73756666696369656e7420746f6b656e20746f2070617920796f7572207260448201526e6577617264207269676874206e6f7760881b60648201526084016104e0565b60025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd59190612091565b50336000908152600d60209081526040808320858452909152812042600182015560058101805491928492611c0b9084906120b3565b9091555050336000908152600f602052604081208054849290611c2f9084906120b3565b925050819055508160036000828254611c4891906120cb565b9091555050505050565b3360009081526011602052604081205490805b82811015611d3857336000908152601160205260409020805485919083908110611c9157611c9161213d565b90600052602060002001541415611ca757600191505b818015611cbd5750611cba6001846120cb565b81105b15611d2657336000908152601160205260409020611cdc8260016120b3565b81548110611cec57611cec61213d565b600091825260208083209091015433835260119091526040909120805483908110611d1957611d1961213d565b6000918252602090912001555b80611d3081612076565b915050611c65565b50336000908152601160205260409020805480611d5757611d576121f4565b60019003818190600052602060002001600090559055505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8260048101928215611df0579160200282015b82811115611df0578251825591602001919060010190611dd5565b50611dfc929150611e00565b5090565b5b80821115611dfc5760008155600101611e01565b60008060408385031215611e2857600080fd5b82359150602083013560ff81168114611e4057600080fd5b809150509250929050565b80356001600160a01b0381168114611e6257600080fd5b919050565b600060208284031215611e7957600080fd5b611e8282611e4b565b9392505050565b600060208284031215611e9b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060808284031215611eca57600080fd5b82601f830112611ed957600080fd5b6040516080810181811067ffffffffffffffff82111715611f0a57634e487b7160e01b600052604160045260246000fd5b604052806080840185811115611f1f57600080fd5b845b81811015611f39578035835260209283019201611f21565b509195945050505050565b600081518084526020808501945080840160005b83811015611f7457815187529582019590820190600101611f58565b509495945050505050565b6060808252845182820181905260009190608090818501906020808a01865b83811015611fea578151805186528381015184870152604080820151908701528781015188870152868101518787015260a0908101519086015260c09094019390820190600101611f9e565b50508683039087015250611ffe8188611f44565b9250505082810360408401526119e48185611f44565b6000806040838503121561202757600080fd5b61203083611e4b565b946020939093013593505050565b6000806040838503121561205157600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b600060001982141561208a5761208a612060565b5060010190565b6000602082840312156120a357600080fd5b81518015158114611e8257600080fd5b600082198211156120c6576120c6612060565b500190565b6000828210156120dd576120dd612060565b500390565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600a9082015269125b9d985b1a5908125160b21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561216557600080fd5b5051919050565b60208082526027908201527f496e73756666696369656e7420746f6b656e20746f20756e7374616b65207269604082015266676874206e6f7760c81b606082015260800190565b60008160001904831182151516156121cd576121cd612060565b500290565b6000826121ef57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fdfea26469706673582212201f7af9bcfeb7f0f37a5b8519471ddeeb8effceebf4de12d24cf2204e2ff4929164736f6c634300080b00330000000000000000000000009c0c0e21a8a4787e3304f93767695101217de113
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009c0c0e21a8a4787e3304f93767695101217de113
-----Decoded View---------------
Arg [0] : _token (address): 0x9c0c0e21a8a4787e3304f93767695101217de113
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009c0c0e21a8a4787e3304f93767695101217de113
Deployed ByteCode Sourcemap
9493:9995:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11972:834;;;;;;:::i;:::-;;:::i;:::-;;19187:93;;;;;;:::i;:::-;;:::i;18024:731::-;;;;;;:::i;:::-;;:::i;11670:153::-;;;;;;:::i;:::-;;:::i;10016:36::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2051:25:1;;;2039:2;2024:18;10016:36:0;;;;;;;;19388:97;;;:::i;13680:615::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;11831:133::-;;;;;;:::i;:::-;;:::i;11331:331::-;;;;;;:::i;:::-;;:::i;10219:18::-;;;;;;;;;;;;4147:14:1;;4140:22;4122:41;;4110:2;4095:18;10219::0;3982:187:1;19288:92:0;;;:::i;14303:293::-;;;;;;:::i;:::-;;:::i;8563:103::-;;;:::i;10117:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;11017:306;;;;;;:::i;:::-;;:::i;16203:942::-;;;:::i;7915:87::-;7961:7;7988:6;7915:87;;-1:-1:-1;;;;;7988:6:0;;;4579:51:1;;4567:2;4552:18;7915:87:0;4433:203:1;10169:41:0;;;;;;:::i;:::-;;:::i;17153:863::-;;;;;;:::i;:::-;;:::i;9935:55::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5181:25:1;;;5237:2;5222:18;;5215:34;;;;5265:18;;;5258:34;;;;5323:2;5308:18;;5301:34;5366:3;5351:19;;5344:35;5410:3;5395:19;;5388:35;5168:3;5153:19;9935:55:0;4894:535:1;9570:29:0;;;;;;10059:51;;;;;;:::i;:::-;;;;;;;;;;;;;;15210:353;;;;;;:::i;:::-;;:::i;13199:473::-;;;;;;:::i;:::-;;:::i;9816:66::-;;;;;;:::i;:::-;;:::i;14604:598::-;;;;;;:::i;:::-;;:::i;9606:28::-;;;;;;9889:37;;;;;;:::i;:::-;;:::i;8821:201::-;;;;;;:::i;:::-;;:::i;12814:377::-;;;;;;:::i;:::-;;:::i;11972:834::-;12051:6;;;;12050:7;12042:35;;;;-1:-1:-1;;;12042:35:0;;5636:2:1;12042:35:0;;;5618:21:1;5675:2;5655:18;;;5648:30;-1:-1:-1;;;5694:18:1;;;5687:46;5750:18;;12042:35:0;;;;;;;;;12112:1;12096:13;:17;;;12088:45;;;;-1:-1:-1;;;12088:45:0;;5981:2:1;12088:45:0;;;5963:21:1;6020:2;6000:18;;;5993:30;-1:-1:-1;;;6039:18:1;;;6032:46;6095:18;;12088:45:0;5779:340:1;12088:45:0;12153:10;12146:18;;;;:6;:18;;;;;:20;;;;;;:::i;:::-;;;;-1:-1:-1;;12222:144:0;;;;;;;;;;;12236:15;12222:144;;;;;;;;;;;;;;;;;;;;;;12344:10;-1:-1:-1;12334:21:0;;;:9;:21;;;;;:28;;12222:144;;;;;;;;;;;;12177:22;;;:10;:22;;;;;12200:6;:18;;;;;;;;12177:42;;;;;;;;:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12406:18;;;;;12379:46;;;;;;;;;;;;;;;;;;12446:5;;:54;;-1:-1:-1;;;12446:54:0;;;;;6636:34:1;12485:4:0;6686:18:1;;;6679:43;6738:18;;;6731:34;;;-1:-1:-1;;;;;12446:5:0;;;;:18;;6571::1;;12446:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12438:82;;;;-1:-1:-1;;;12438:82:0;;7260:2:1;12438:82:0;;;7242:21:1;7299:2;7279:18;;;7272:30;-1:-1:-1;;;7318:18:1;;;7311:45;7373:18;;12438:82:0;7058:339:1;12438:82:0;12553:7;12533:16;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;12587:10:0;12571:27;;;;:15;:27;;;;;:38;;12602:7;;12571:27;:38;;12602:7;;12571:38;:::i;:::-;;;;-1:-1:-1;;12650:10:0;12755:21;;;;:9;:21;;;;;:28;12625:173;;12675:7;;12697:15;;12727:13;;12755:32;;12786:1;;12755:32;:::i;:::-;12625:173;;;;;;;;7892:25:1;;;7948:2;7933:18;;7926:34;;;;8008:4;7996:17;7991:2;7976:18;;7969:45;8045:2;8030:18;;8023:34;7879:3;7864:19;;7665:398;12625:173:0;;;;;;;;11972:834;;:::o;19187:93::-;7801:13;:11;:13::i;:::-;19250:5:::1;:22:::0;;-1:-1:-1;;;;;;19250:22:0::1;-1:-1:-1::0;;;;;19250:22:0;;;::::1;::::0;;;::::1;::::0;;19187:93::o;18024:731::-;1812:1;2410:7;;:19;;2402:63;;;;-1:-1:-1;;;2402:63:0;;;;;;;:::i;:::-;1812:1;2543:7;:18;18083:10:::1;18089:3:::0;18083:5:::1;:10::i;:::-;18141;18106:21;18130:22:::0;;;:10:::1;:22;::::0;;;;;;;:27;;;;;;;;18176:15;;18168:42:::1;;;;-1:-1:-1::0;;;18168:42:0::1;;;;;;;:::i;:::-;18269:9;18279:8;:21;;;18269:32;;;;;;;:::i;:::-;;::::0;18247:18:::1;::::0;::::1;::::0;18229:36:::1;::::0;:15:::1;:36;:::i;:::-;:72;;18221:101;;;::::0;-1:-1:-1;;;18221:101:0;;9101:2:1;18221:101:0::1;::::0;::::1;9083:21:1::0;9140:2;9120:18;;;9113:30;-1:-1:-1;;;9159:18:1;;;9152:46;9215:18;;18221:101:0::1;8899:340:1::0;18221:101:0::1;18391:15:::0;;18357:5:::1;::::0;:30:::1;::::0;-1:-1:-1;;;18357:30:0;;18381:4:::1;18357:30;::::0;::::1;4579:51:1::0;-1:-1:-1;;;;;18357:5:0;;::::1;::::0;:15:::1;::::0;4552:18:1;;18357:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;18335:138;;;;-1:-1:-1::0;;;18335:138:0::1;;;;;;;:::i;:::-;18486:5;::::0;18513:15;;18486:43:::1;::::0;-1:-1:-1;;;18486:43:0;;18501:10:::1;18486:43;::::0;::::1;10015:51:1::0;10082:18;;;10075:34;;;;-1:-1:-1;;;;;18486:5:0;;::::1;::::0;:14:::1;::::0;9988:18:1;;18486:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18542:12;18550:3;18542:7;:12::i;:::-;18583:10;18572:22;::::0;;;:10:::1;:22;::::0;;;;;;;:27;;;;;;;;18565:34;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;18632:15;;18612:35;;18632:15;;18572:22;18612:35:::1;::::0;18632:15;;18612:35:::1;:::i;:::-;::::0;;;-1:-1:-1;;18689:15:0;;18674:10:::1;18689:15;18658:27:::0;;;:15:::1;:27;::::0;;;;:46;;:27;;18689:15;18658:46:::1;::::0;18689:15;;18658:46:::1;:::i;:::-;::::0;;;-1:-1:-1;;18722:25:0::1;::::0;2051::1;;;18731:10:0::1;::::0;18722:25:::1;::::0;2039:2:1;2024:18;18722:25:0::1;;;;;;;;-1:-1:-1::0;;1768:1:0;2722:22;;18024:731::o;11670:153::-;7801:13;:11;:13::i;:::-;11751:22:::1;:9;11763:10:::0;11751:22:::1;;:::i;:::-;-1:-1:-1::0;11789:26:0::1;::::0;11804:10:::1;::::0;11789:26:::1;::::0;;;::::1;11670:153:::0;:::o;19388:97::-;7801:13;:11;:13::i;:::-;19437:6:::1;:14:::0;;-1:-1:-1;;19437:14:0::1;::::0;;19467:10:::1;::::0;::::1;::::0;19446:5:::1;::::0;19467:10:::1;19388:97::o:0;13680:615::-;-1:-1:-1;;;;;13844:16:0;;13830:11;13844:16;;;:9;:16;;;;;:23;13749:20;;;;;;13844:23;13887:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13887:18:0;;;;;;;;;;;;;;;;;13878:27;;13939:6;13928:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13928:18:0;;13916:30;;13978:6;13967:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13967:18:0;;13957:28;;14002:6;13998:290;14014:6;14012:1;:8;13998:290;;;-1:-1:-1;;;;;14065:17:0;;14041:21;14065:17;;;:10;:17;;;;;;;;14083:9;:16;;;;;:19;;14041:21;;14083:16;14100:1;;14083:19;;;;;;:::i;:::-;;;;;;;;;14065:38;;;;;;;;;;;14041:62;;14130:8;14118:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;14125:1;14118:9;;;;;;;;:::i;:::-;;;;;;:20;;;;14166:37;14176:5;14183:9;:16;14193:5;-1:-1:-1;;;;;14183:16:0;-1:-1:-1;;;;;14183:16:0;;;;;;;;;;;;14200:1;14183:19;;;;;;;;:::i;:::-;;;;;;;;;14166:9;:37::i;:::-;14153:7;14161:1;14153:10;;;;;;;;:::i;:::-;;;;;;:50;;;;;14233:43;14249:5;14256:9;:16;14266:5;-1:-1:-1;;;;;14256:16:0;-1:-1:-1;;;;;14256:16:0;;;;;;;;;;;;14273:1;14256:19;;;;;;;;:::i;:::-;;;;;;;;;14233:15;:43::i;:::-;14218:9;14228:1;14218:12;;;;;;;;:::i;:::-;;;;;;;;;;:58;-1:-1:-1;14022:3:0;;;;:::i;:::-;;;;13998:290;;;;13819:476;13680:615;;;;;:::o;11831:133::-;7801:13;:11;:13::i;:::-;11904:14:::1;:5;11912:6:::0;11904:14:::1;;:::i;:::-;-1:-1:-1::0;11934:22:0::1;::::0;11945:10:::1;::::0;11934:22:::1;::::0;;;::::1;11831:133:::0;:::o;11331:331::-;7801:13;:11;:13::i;:::-;11453:17:::1;;11442:7;:28;;11434:72;;;::::0;-1:-1:-1;;;11434:72:0;;10322:2:1;11434:72:0::1;::::0;::::1;10304:21:1::0;10361:2;10341:18;;;10334:30;10400:33;10380:18;;;10373:61;10451:18;;11434:72:0::1;10120:355:1::0;11434:72:0::1;11538:7;11517:17;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;11558:5:0::1;::::0;:35:::1;::::0;-1:-1:-1;;;11558:35:0;;11573:10:::1;11558:35;::::0;::::1;10015:51:1::0;10082:18;;;10075:34;;;-1:-1:-1;;;;;11558:5:0;;::::1;::::0;:14:::1;::::0;9988:18:1;;11558:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11609:45:0::1;::::0;2051:25:1;;;11634:10:0::1;::::0;11609:45:::1;::::0;2039:2:1;2024:18;11609:45:0::1;;;;;;;;11331:331:::0;:::o;19288:92::-;7801:13;:11;:13::i;:::-;19335:6:::1;:13:::0;;-1:-1:-1;;19335:13:0::1;19344:4;19335:13;::::0;;19364:8:::1;::::0;::::1;::::0;19335:6:::1;::::0;19364:8:::1;19288:92::o:0;14303:293::-;-1:-1:-1;;;;;14414:17:0;;14373:4;14414:17;;;:10;:17;;;;;;;;:22;;;;;;;;14502:21;;;;14492:9;;:32;;;;;;;:::i;:::-;;;14471:18;;;;14453:36;;:15;:36;:::i;:::-;:71;14449:98;;;14546:1;14539:8;;;;;14449:98;14567:21;14577:5;14584:3;14567:9;:21::i;:::-;14560:28;;;14303:293;;;;;:::o;8563:103::-;7801:13;:11;:13::i;:::-;8628:30:::1;8655:1;8628:18;:30::i;:::-;8563:103::o:0;11017:306::-;7801:13;:11;:13::i;:::-;11180:7:::1;11159:17;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;11200:5:0::1;::::0;:54:::1;::::0;-1:-1:-1;;;11200:54:0;;11219:10:::1;11200:54;::::0;::::1;6636:34:1::0;11239:4:0::1;6686:18:1::0;;;6679:43;6738:18;;;6731:34;;;-1:-1:-1;;;;;11200:5:0;;::::1;::::0;:18:::1;::::0;6571::1;;11200:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11272:43:0::1;::::0;2051:25:1;;;11295:10:0::1;::::0;11272:43:::1;::::0;2039:2:1;2024:18;11272:43:0::1;1905:177:1::0;16203:942:0;1812:1;2410:7;;:19;;2402:63;;;;-1:-1:-1;;;2402:63:0;;;;;;;:::i;:::-;1812:1;2543:7;:18;16310:10:::1;16260:11;16300:21:::0;;;:9:::1;:21;::::0;;;;:28;16260:11;16339:591:::1;16355:6;16353:1;:8;16339:591;;;16417:10;16382:21;16406:22:::0;;;:10:::1;:22;::::0;;;;;;;16429:9:::1;:21:::0;;;;;:24;;16382:21;;16429;16451:1;;16429:24;::::1;;;;;:::i;:::-;;;;;;;;;16406:48;;;;;;;;;;;16382:72;;16473:8;:15;;;16492:1;16473:20;16469:51;;;16512:8;;;16469:51;16580:9;16590:8;:21;;;16580:32;;;;;;;:::i;:::-;;::::0;16559:18:::1;::::0;::::1;::::0;16541:36:::1;::::0;:15:::1;:36;:::i;:::-;:71;16537:102;;;16631:8;;;16537:102;16685:10;16656:16;16697:21:::0;;;:9:::1;:21;::::0;;;;:24;;16656:16;;16675:47:::1;::::0;16685:10;;16697:21;16719:1;;16697:24;::::1;;;;;:::i;16675:47::-;16656:66:::0;-1:-1:-1;16741:16:0;16737:47:::1;;16776:8;;;;16737:47;16822:15;16801:8;:18;;:36;;;;16871:11;16852:8;:15;;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;16897:21:0::1;::::0;-1:-1:-1;16907:11:0;16897:21;::::1;:::i;:::-;;;16367:563;;16339:591;16363:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16339:591;;;-1:-1:-1::0;16942:5:0::1;::::0;:34:::1;::::0;-1:-1:-1;;;16942:34:0;;16957:10:::1;16942:34;::::0;::::1;10015:51:1::0;10082:18;;;10075:34;;;-1:-1:-1;;;;;16942:5:0;;::::1;::::0;:14:::1;::::0;9988:18:1;;16942:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17008:6;16987:17;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;17047:10:0::1;17025:33;::::0;;;:21:::1;:33;::::0;;;;:43;;17062:6;;17025:33;:43:::1;::::0;17062:6;;17025:43:::1;:::i;:::-;::::0;;;-1:-1:-1;;17086:51:0::1;::::0;;17113:15:::1;10654:25:1::0;;10710:2;10695:18;;10688:34;;;17101:10:0::1;::::0;17086:51:::1;::::0;10627:18:1;17086:51:0::1;10480:248:1::0;10169:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17153:863::-;1812:1;2410:7;;:19;;2402:63;;;;-1:-1:-1;;;2402:63:0;;;;;;;:::i;:::-;1812:1;2543:7;:18;17226:10:::1;17232:3:::0;17226:5:::1;:10::i;:::-;17284;17249:21;17273:22:::0;;;:10:::1;:22;::::0;;;;;;;:27;;;;;;;;17319:15;;:20;;::::1;::::0;:50:::1;;-1:-1:-1::0;17354:15:0;;17343:26;::::1;;17319:50;17311:73;;;;-1:-1:-1::0;;;17311:73:0::1;;;;;;;:::i;:::-;17443:9;17453:8;:21;;;17443:32;;;;;;;:::i;:::-;;::::0;17421:18:::1;::::0;::::1;::::0;17403:36:::1;::::0;:15:::1;:36;:::i;:::-;:72;;17395:101;;;::::0;-1:-1:-1;;;17395:101:0;;9101:2:1;17395:101:0::1;::::0;::::1;9083:21:1::0;9140:2;9120:18;;;9113:30;-1:-1:-1;;;9159:18:1;;;9152:46;9215:18;;17395:101:0::1;8899:340:1::0;17395:101:0::1;17524:15:::0;;17513:26;::::1;17509:176;;;17556:12;17564:3;17556:7;:12::i;:::-;17603:10;17592:22;::::0;;;:10:::1;:22;::::0;;;;;;;:27;;;;;;;;17585:34;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;17509:176:::1;;;17678:7;17659:8;:15;;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;17509:176:0::1;17720:5;::::0;:30:::1;::::0;-1:-1:-1;;;17720:30:0;;17744:4:::1;17720:30;::::0;::::1;4579:51:1::0;17754:7:0;;-1:-1:-1;;;;;17720:5:0::1;::::0;:15:::1;::::0;4552:18:1;;17720:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;17698:130;;;;-1:-1:-1::0;;;17698:130:0::1;;;;;;;:::i;:::-;17841:5;::::0;:35:::1;::::0;-1:-1:-1;;;17841:35:0;;17856:10:::1;17841:35;::::0;::::1;10015:51:1::0;10082:18;;;10075:34;;;-1:-1:-1;;;;;17841:5:0;;::::1;::::0;:14:::1;::::0;9988:18:1;;17841:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17909:7;17889:16;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;17943:10:0::1;17927:27;::::0;;;:15:::1;:27;::::0;;;;:38;;17958:7;;17927:27;:38:::1;::::0;17958:7;;17927:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;17983:25:0::1;::::0;2051::1;;;17992:10:0::1;::::0;17983:25:::1;::::0;2039:2:1;2024:18;17983:25:0::1;;;;;;;-1:-1:-1::0;;1768:1:0;2722:22;;-1:-1:-1;17153:863:0:o;15210:353::-;1812:1;2410:7;;:19;;2402:63;;;;-1:-1:-1;;;2402:63:0;;;;;;;:::i;:::-;1812:1;2543:7;:18;15307:10:::1;15272:21;15296:22:::0;;;:10:::1;:22;::::0;;;;;;;:27;;;;;;;;15393:21:::1;::::0;::::1;::::0;15383:9:::1;::::0;:32:::1;::::0;::::1;;;;;:::i;:::-;;::::0;15361:18:::1;::::0;::::1;::::0;15343:36:::1;::::0;:15:::1;:36;:::i;:::-;:72;;15334:135;;;::::0;-1:-1:-1;;;15334:135:0;;10935:2:1;15334:135:0::1;::::0;::::1;10917:21:1::0;10974:2;10954:18;;;10947:30;11013:34;10993:18;;;10986:62;-1:-1:-1;;;11064:18:1;;;11057:33;11107:19;;15334:135:0::1;10733:399:1::0;15334:135:0::1;15482:10;15488:3;15482:5;:10::i;:::-;15510:45;::::0;;15534:15:::1;10654:25:1::0;;10710:2;10695:18;;10688:34;;;15522:10:0::1;::::0;15510:45:::1;::::0;10627:18:1;15510:45:0::1;10480:248:1::0;13199:473:0;-1:-1:-1;;;;;13313:16:0;;13256:4;13313:16;;;:9;:16;;;;;:23;13256:4;;;13347:292;13363:6;13361:1;:8;13347:292;;;-1:-1:-1;;;;;13414:17:0;;13390:21;13414:17;;;:10;:17;;;;;;;;13432:9;:16;;;;;:19;;13390:21;;13432:16;13449:1;;13432:19;;;;;;:::i;:::-;;;;;;;;;13414:38;;;;;;;;;;;13390:62;;13471:8;:15;;;13490:1;13471:20;13467:51;;;13510:8;;;13467:51;-1:-1:-1;;;;;13571:16:0;;13535;13571;;;:9;:16;;;;;:19;;13554:37;;13564:5;;13588:1;;13571:19;;;;;;:::i;13554:37::-;13535:56;-1:-1:-1;13606:21:0;13535:56;13606:21;;:::i;:::-;;;13375:264;;13347:292;13371:3;;;;:::i;:::-;;;;13347:292;;;-1:-1:-1;13658:6:0;;13199:473;-1:-1:-1;;;13199:473:0:o;9816:66::-;;;;;;;;;;;;;;;-1:-1:-1;9816:66:0;:::o;14604:598::-;-1:-1:-1;;;;;14724:16:0;;14667:4;14724:16;;;:9;:16;;;;;:23;14667:4;;;14758:411;14774:6;14772:1;:8;14758:411;;;-1:-1:-1;;;;;14825:17:0;;14801:21;14825:17;;;:10;:17;;;;;;;;14843:9;:16;;;;;:19;;14801:21;;14843:16;14860:1;;14843:19;;;;;;:::i;:::-;;;;;;;;;14825:38;;;;;;;;;;;14801:62;;14882:8;:15;;;14901:1;14882:20;14878:51;;;14921:8;;;14878:51;14989:9;14999:8;:21;;;14989:32;;;;;;;:::i;:::-;;;14968:18;;;;14950:36;;:15;:36;:::i;:::-;:71;14946:102;;;15040:8;;;14946:102;-1:-1:-1;;;;;15101:16:0;;15065;15101;;;:9;:16;;;;;:19;;15084:37;;15094:5;;15118:1;;15101:19;;;;;;:::i;15084:37::-;15065:56;-1:-1:-1;15136:21:0;15065:56;15136:21;;:::i;:::-;;;14786:383;;14758:411;14782:3;;;;:::i;:::-;;;;14758:411;;9889:37;;;;;;;;;;;8821:201;7801:13;:11;:13::i;:::-;-1:-1:-1;;;;;8910:22:0;::::1;8902:73;;;::::0;-1:-1:-1;;;8902:73:0;;11339:2:1;8902:73:0::1;::::0;::::1;11321:21:1::0;11378:2;11358:18;;;11351:30;11417:34;11397:18;;;11390:62;-1:-1:-1;;;11468:18:1;;;11461:36;11514:19;;8902:73:0::1;11137:402:1::0;8902:73:0::1;8986:28;9005:8;8986:18;:28::i;:::-;8821:201:::0;:::o;12814:377::-;-1:-1:-1;;;;;12919:17:0;;12878:4;12919:17;;;:10;:17;;;;;;;;:22;;;;;;;;12986:18;;;;12878:4;;12968:36;;:15;:36;:::i;:::-;12952:52;;13017:11;13118:9;13128:8;:21;;;13118:32;;;;;;;:::i;:::-;;;:38;;13153:3;13118:38;:::i;:::-;13060:5;13066:8;:21;;;13060:28;;;;;;;:::i;:::-;;;13031:15;;:26;;13049:8;;13031:26;:::i;:::-;:57;;;;:::i;:::-;:126;;;;:::i;:::-;13017:140;12814:377;-1:-1:-1;;;;;;12814:377:0:o;8080:132::-;7961:7;7988:6;-1:-1:-1;;;;;7988:6:0;6546:10;8144:23;8136:68;;;;-1:-1:-1;;;8136:68:0;;12141:2:1;8136:68:0;;;12123:21:1;;;12160:18;;;12153:30;12219:34;12199:18;;;12192:62;12271:18;;8136:68:0;11939:356:1;15571:624:0;15660:10;15615:11;15649:22;;;:10;:22;;;;;;;;:27;;;;;;;;:34;15641:62;;;;-1:-1:-1;;;15641:62:0;;;;;;;:::i;:::-;15725:26;15735:10;15747:3;15725:9;:26::i;:::-;15784:5;;:30;;-1:-1:-1;;;15784:30:0;;15808:4;15784:30;;;4579:51:1;15716:35:0;;-1:-1:-1;15716:35:0;;-1:-1:-1;;;;;15784:5:0;;;;:15;;4552:18:1;;15784:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;15762:137;;;;-1:-1:-1;;;15762:137:0;;12502:2:1;15762:137:0;;;12484:21:1;12541:2;12521:18;;;12514:30;12580:34;12560:18;;;12553:62;-1:-1:-1;;;12631:18:1;;;12624:45;12686:19;;15762:137:0;12300:411:1;15762:137:0;15912:5;;:34;;-1:-1:-1;;;15912:34:0;;15927:10;15912:34;;;10015:51:1;10082:18;;;10075:34;;;-1:-1:-1;;;;;15912:5:0;;;;:14;;9988:18:1;;15912:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;15994:10:0;15959:21;15983:22;;;:10;:22;;;;;;;;:27;;;;;;;;16042:15;16021:18;;;:36;16068:15;;;:25;;15983:27;;16087:6;;16068:25;;16087:6;;16068:25;:::i;:::-;;;;-1:-1:-1;;16128:10:0;16106:33;;;;:21;:33;;;;;:43;;16143:6;;16106:33;:43;;16143:6;;16106:43;:::i;:::-;;;;;;;;16181:6;16160:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15571:624:0:o;18763:416::-;18834:10;18810:11;18824:21;;;:9;:21;;;;;:28;;18810:11;18894:240;18914:6;18912:1;:8;18894:240;;;18956:10;18946:21;;;;:9;:21;;;;;:24;;18974:3;;18946:21;18968:1;;18946:24;;;;;;:::i;:::-;;;;;;;;;:31;18942:68;;;19006:4;18996:14;;18942:68;19029:7;:21;;;;-1:-1:-1;19042:8:0;19049:1;19042:6;:8;:::i;:::-;19040:1;:10;19029:21;19025:97;;;19106:10;19096:21;;;;:9;:21;;;;;19118:3;:1;19120;19118:3;:::i;:::-;19096:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;19079:10;19069:21;;:9;:21;;;;;;;:24;;19091:1;;19069:24;;;;;;:::i;:::-;;;;;;;;;;:53;19025:97;18922:3;;;;:::i;:::-;;;;18894:240;;;-1:-1:-1;19154:10:0;19144:21;;;;:9;:21;;;;;:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18799:380;;18763:416;:::o;9182:191::-;9256:16;9275:6;;-1:-1:-1;;;;;9292:17:0;;;-1:-1:-1;;;;;;9292:17:0;;;;;;9325:40;;9275:6;;;;;;;9325:40;;9256:16;9325:40;9245:128;9182:191;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:337:1;80:6;88;141:2;129:9;120:7;116:23;112:32;109:52;;;157:1;154;147:12;109:52;193:9;180:23;170:33;;253:2;242:9;238:18;225:32;297:4;290:5;286:16;279:5;276:27;266:55;;317:1;314;307:12;266:55;340:5;330:15;;;14:337;;;;;:::o;356:173::-;424:20;;-1:-1:-1;;;;;473:31:1;;463:42;;453:70;;519:1;516;509:12;453:70;356:173;;;:::o;534:186::-;593:6;646:2;634:9;625:7;621:23;617:32;614:52;;;662:1;659;652:12;614:52;685:29;704:9;685:29;:::i;:::-;675:39;534:186;-1:-1:-1;;;534:186:1:o;725:180::-;784:6;837:2;825:9;816:7;812:23;808:32;805:52;;;853:1;850;843:12;805:52;-1:-1:-1;876:23:1;;725:180;-1:-1:-1;725:180:1:o;910:127::-;971:10;966:3;962:20;959:1;952:31;1002:4;999:1;992:15;1026:4;1023:1;1016:15;1042:858;1124:6;1177:3;1165:9;1156:7;1152:23;1148:33;1145:53;;;1194:1;1191;1184:12;1145:53;1243:7;1236:4;1225:9;1221:20;1217:34;1207:62;;1265:1;1262;1255:12;1207:62;1298:2;1292:9;1340:3;1332:6;1328:16;1410:6;1398:10;1395:22;1374:18;1362:10;1359:34;1356:62;1353:185;;;1460:10;1455:3;1451:20;1448:1;1441:31;1495:4;1492:1;1485:15;1523:4;1520:1;1513:15;1353:185;1554:2;1547:22;1589:6;1633:3;1618:19;;1649;;;1646:39;;;1681:1;1678;1671:12;1646:39;1705:9;1723:146;1739:6;1734:3;1731:15;1723:146;;;1807:17;;1795:30;;1854:4;1845:14;;;;1756;1723:146;;;-1:-1:-1;1888:6:1;;1042:858;-1:-1:-1;;;;;1042:858:1:o;2087:435::-;2140:3;2178:5;2172:12;2205:6;2200:3;2193:19;2231:4;2260:2;2255:3;2251:12;2244:19;;2297:2;2290:5;2286:14;2318:1;2328:169;2342:6;2339:1;2336:13;2328:169;;;2403:13;;2391:26;;2437:12;;;;2472:15;;;;2364:1;2357:9;2328:169;;;-1:-1:-1;2513:3:1;;2087:435;-1:-1:-1;;;;;2087:435:1:o;2527:1450::-;2896:2;2948:21;;;3018:13;;2921:18;;;3040:22;;;2867:4;;2896:2;3081:3;;3100:18;;;;3137:4;3164:15;;;2867:4;3207:522;3221:6;3218:1;3215:13;3207:522;;;3280:13;;3318:9;;3306:22;;3368:11;;;3362:18;3348:12;;;3341:40;3404:4;3448:11;;;3442:18;3428:12;;;3421:40;3501:11;;;3495:18;3481:12;;;3474:40;3554:11;;;3548:18;3534:12;;;3527:40;3590:4;3634:11;;;3628:18;3614:12;;;3607:40;3676:4;3667:14;;;;3704:15;;;;3243:1;3236:9;3207:522;;;-1:-1:-1;;3765:19:1;;;3745:18;;;3738:47;-1:-1:-1;3808:41:1;3769:3;3837:6;3808:41;:::i;:::-;3794:55;;;;3899:9;3891:6;3887:22;3880:4;3869:9;3865:20;3858:52;3927:44;3964:6;3956;3927:44;:::i;4174:254::-;4242:6;4250;4303:2;4291:9;4282:7;4278:23;4274:32;4271:52;;;4319:1;4316;4309:12;4271:52;4342:29;4361:9;4342:29;:::i;:::-;4332:39;4418:2;4403:18;;;;4390:32;;-1:-1:-1;;;4174:254:1:o;4641:248::-;4709:6;4717;4770:2;4758:9;4749:7;4745:23;4741:32;4738:52;;;4786:1;4783;4776:12;4738:52;-1:-1:-1;;4809:23:1;;;4879:2;4864:18;;;4851:32;;-1:-1:-1;4641:248:1:o;6124:127::-;6185:10;6180:3;6176:20;6173:1;6166:31;6216:4;6213:1;6206:15;6240:4;6237:1;6230:15;6256:135;6295:3;-1:-1:-1;;6316:17:1;;6313:43;;;6336:18;;:::i;:::-;-1:-1:-1;6383:1:1;6372:13;;6256:135::o;6776:277::-;6843:6;6896:2;6884:9;6875:7;6871:23;6867:32;6864:52;;;6912:1;6909;6902:12;6864:52;6944:9;6938:16;6997:5;6990:13;6983:21;6976:5;6973:32;6963:60;;7019:1;7016;7009:12;7402:128;7442:3;7473:1;7469:6;7466:1;7463:13;7460:39;;;7479:18;;:::i;:::-;-1:-1:-1;7515:9:1;;7402:128::o;7535:125::-;7575:4;7603:1;7600;7597:8;7594:34;;;7608:18;;:::i;:::-;-1:-1:-1;7645:9:1;;7535:125::o;8068:355::-;8270:2;8252:21;;;8309:2;8289:18;;;8282:30;8348:33;8343:2;8328:18;;8321:61;8414:2;8399:18;;8068:355::o;8428:334::-;8630:2;8612:21;;;8669:2;8649:18;;;8642:30;-1:-1:-1;;;8703:2:1;8688:18;;8681:40;8753:2;8738:18;;8428:334::o;8767:127::-;8828:10;8823:3;8819:20;8816:1;8809:31;8859:4;8856:1;8849:15;8883:4;8880:1;8873:15;9244:184;9314:6;9367:2;9355:9;9346:7;9342:23;9338:32;9335:52;;;9383:1;9380;9373:12;9335:52;-1:-1:-1;9406:16:1;;9244:184;-1:-1:-1;9244:184:1:o;9433:403::-;9635:2;9617:21;;;9674:2;9654:18;;;9647:30;9713:34;9708:2;9693:18;;9686:62;-1:-1:-1;;;9779:2:1;9764:18;;9757:37;9826:3;9811:19;;9433:403::o;11544:168::-;11584:7;11650:1;11646;11642:6;11638:14;11635:1;11632:21;11627:1;11620:9;11613:17;11609:45;11606:71;;;11657:18;;:::i;:::-;-1:-1:-1;11697:9:1;;11544:168::o;11717:217::-;11757:1;11783;11773:132;;11827:10;11822:3;11818:20;11815:1;11808:31;11862:4;11859:1;11852:15;11890:4;11887:1;11880:15;11773:132;-1:-1:-1;11919:9:1;;11717:217::o;12716:127::-;12777:10;12772:3;12768:20;12765:1;12758:31;12808:4;12805:1;12798:15;12832:4;12829:1;12822:15
Swarm Source
ipfs://1f7af9bcfeb7f0f37a5b8519471ddeeb8effceebf4de12d24cf2204e2ff49291
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.