Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 92 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Rewards | 18368438 | 444 days ago | IN | 0 ETH | 0.00051047 | ||||
Withdraw Rewards | 18333047 | 449 days ago | IN | 0 ETH | 0.00044644 | ||||
Deposit To Staki... | 18310905 | 452 days ago | IN | 0 ETH | 0.00056244 | ||||
Withdraw Rewards | 18310883 | 452 days ago | IN | 0 ETH | 0.00044427 | ||||
Withdraw Rewards | 18269489 | 458 days ago | IN | 0 ETH | 0.00055421 | ||||
Withdraw Rewards | 18248382 | 461 days ago | IN | 0 ETH | 0.00051696 | ||||
Deposit To Staki... | 18226985 | 464 days ago | IN | 0 ETH | 0.00174094 | ||||
Withdraw Rewards | 18226945 | 464 days ago | IN | 0 ETH | 0.00071589 | ||||
Withdraw Rewards | 18203780 | 467 days ago | IN | 0 ETH | 0.00056563 | ||||
Withdraw Rewards | 18169739 | 472 days ago | IN | 0 ETH | 0.00084094 | ||||
Deposit To Staki... | 18134537 | 477 days ago | IN | 0 ETH | 0.00165969 | ||||
Withdraw Rewards | 18134509 | 477 days ago | IN | 0 ETH | 0.00112322 | ||||
Withdraw Rewards | 18106247 | 481 days ago | IN | 0 ETH | 0.00078628 | ||||
Deposit To Staki... | 18082301 | 484 days ago | IN | 0 ETH | 0.00105721 | ||||
Withdraw Rewards | 18082286 | 484 days ago | IN | 0 ETH | 0.00081988 | ||||
Withdraw Rewards | 18056137 | 488 days ago | IN | 0 ETH | 0.00110813 | ||||
Deposit To Staki... | 18010854 | 494 days ago | IN | 0 ETH | 0.00137648 | ||||
Withdraw Rewards | 18010822 | 494 days ago | IN | 0 ETH | 0.00103381 | ||||
Withdraw Rewards | 17968078 | 500 days ago | IN | 0 ETH | 0.00103726 | ||||
Deposit To Staki... | 17947002 | 503 days ago | IN | 0 ETH | 0.00141286 | ||||
Withdraw Rewards | 17946988 | 503 days ago | IN | 0 ETH | 0.00105106 | ||||
Deposit To Staki... | 17925755 | 506 days ago | IN | 0 ETH | 0.00276135 | ||||
Withdraw Rewards | 17925714 | 506 days ago | IN | 0 ETH | 0.00138913 | ||||
Deposit To Staki... | 17896860 | 510 days ago | IN | 0 ETH | 0.00136878 | ||||
Withdraw Rewards | 17896818 | 510 days ago | IN | 0 ETH | 0.00098983 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
alphaStaking
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-01 */ // 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: @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/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: AlphaStaking.sol pragma solidity ^0.8.9; /* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */ /* -.-.-.-.-.-.-. ALPHA STAKING POOL v0.2 .-.-.-.-.-.-. */ /* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */ contract alphaStaking is ERC20, Ownable{ IERC20 public tokenAddr; // 0x6632d8c49234a6783b45cdc5fc9355a47124e187 (ChadGPT) uint256 public timerDuration; // 248400 (69 hours) uint256 public rwdRate; // 420 (4.2% of pool) uint256 public stakedPoolSupply; bool public stakingOpen; mapping(address => bool) public isStaked; mapping(address => uint256) public withdrawTimer; mapping(address => uint256) public stakedPoolBalances; event DepositEmit(address user, uint256 amountDeposited, uint256 userBalance); event WithdrawEmit(address user, uint256 userBalance); event RewardsEmit(address user, uint256 userBalance, uint256 userReward); constructor( address _tokenAddr, uint256 _timerDuration, uint256 _rwdRate) ERC20("Alpha Staking", "aChad"){ tokenAddr = IERC20(_tokenAddr); timerDuration = _timerDuration; rwdRate = _rwdRate; stakingOpen = false; } function calculateRewards(address _user) public view returns (uint256) { require(stakingOpen == true, "Staking pool is closed"); require(isStaked[_user], "This address has not staked"); uint256 totalTokenBalance = IERC20(tokenAddr).balanceOf(address(this)); uint256 rwdPoolSupply = totalTokenBalance - stakedPoolSupply; uint256 rwdPoolAftrRate = rwdPoolSupply * rwdRate / 10000; uint256 userBalance = stakedPoolBalances[_user]; uint256 userRewardsAmount = rwdPoolAftrRate * userBalance / stakedPoolSupply; return userRewardsAmount; } function calculateTime(address _user) public view returns (uint256) { require(isStaked[_user], "This address has not staked"); uint256 timeElapsed = block.timestamp - withdrawTimer[_user]; return timeElapsed; } function depositToStaking(uint256 _amount) public{ require(stakingOpen == true, "Staking pool is closed"); require(_amount > 0, "Deposit must be > 0"); uint before = IERC20(tokenAddr).balanceOf(address(this)); // all users must APPROVE staking contract to use erc20 before v-this-v can work bool success = IERC20(tokenAddr).transferFrom(msg.sender, address(this), _amount); require(success == true, "transfer failed!"); uint totalStaked = (IERC20(tokenAddr).balanceOf(address(this))) - before; isStaked[msg.sender] = true; withdrawTimer[msg.sender] = block.timestamp; stakedPoolBalances[msg.sender] += totalStaked; stakedPoolSupply += totalStaked; _mint(msg.sender, totalStaked); //aChad emit DepositEmit(msg.sender, totalStaked, stakedPoolBalances[msg.sender]); } function withdrawRewards() public{ require(stakingOpen == true, "Staking pool is closed"); require(isStaked[msg.sender], "This address has not staked"); uint256 timeElapsed = calculateTime(msg.sender); require(timeElapsed >= timerDuration, 'Minimum required staking time not met'); uint256 userBalance = stakedPoolBalances[msg.sender]; require(userBalance > 0, 'insufficient balance'); uint256 userReward = calculateRewards(msg.sender); require(userReward > 0, 'insufficient reward'); withdrawTimer[msg.sender] = block.timestamp; bool success = IERC20(tokenAddr).transfer(msg.sender, userReward); require(success == true, "transfer failed!"); emit RewardsEmit(msg.sender, userBalance, userReward); } function withdrawAll() public{ require(isStaked[msg.sender], "This address has not staked"); uint256 userBalance = stakedPoolBalances[msg.sender]; require(userBalance > 0, 'insufficient balance'); uint256 timeElapsed = calculateTime(msg.sender); require(timeElapsed < timerDuration, 'withdraw rewards first'); delete isStaked[msg.sender]; delete withdrawTimer[msg.sender]; delete stakedPoolBalances[msg.sender]; stakedPoolSupply -= userBalance; bool success = IERC20(tokenAddr).transfer(msg.sender, userBalance); require(success == true, "transfer failed!"); _burn(msg.sender, userBalance); //aChad emit WithdrawEmit(msg.sender, userBalance); } //onlyOwners function setTimer(uint256 _time) external onlyOwner { timerDuration = _time; } function setRate(uint256 _rwdRate) external onlyOwner { require(_rwdRate > 0 && _rwdRate < 1000, "Rate must be > 0 and < 1000"); rwdRate = _rwdRate; } function setTokenAddress(address _newTokenAddress) external onlyOwner { tokenAddr = IERC20(_newTokenAddress); } function setStakingOpen(bool _trueOrFalse) external onlyOwner { stakingOpen = _trueOrFalse; } function closeRewardsPool() external payable onlyOwner { uint256 tokenBalance = IERC20(tokenAddr).balanceOf(address(this)); uint256 gasBalance = address(this).balance; if(tokenBalance > 0){ bool success1 = IERC20(tokenAddr).transfer(msg.sender, tokenBalance - stakedPoolSupply); require(success1 == true, "transfer failed!"); } if(gasBalance > 0){ (bool success2,) = payable(msg.sender).call{value: gasBalance}(""); require(success2 == true, "transfer failed!"); } } // aChad overrides function transfer(address to, uint256 amount) public override onlyOwner returns (bool success) { return super.transfer(to, amount); } function transferFrom(address from, address to, uint256 amount) public override onlyOwner returns (bool success) { return super.transferFrom(from, to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_timerDuration","type":"uint256"},{"internalType":"uint256","name":"_rwdRate","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountDeposited","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"userBalance","type":"uint256"}],"name":"DepositEmit","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"userBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"userReward","type":"uint256"}],"name":"RewardsEmit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"userBalance","type":"uint256"}],"name":"WithdrawEmit","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"calculateRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"calculateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeRewardsPool","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositToStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rwdRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rwdRate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_trueOrFalse","type":"bool"}],"name":"setStakingOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"setTimer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTokenAddress","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakedPoolBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakedPoolSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timerDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddr","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162003fa638038062003fa68339818101604052810190620000379190620002cf565b6040518060400160405280600d81526020017f416c706861205374616b696e67000000000000000000000000000000000000008152506040518060400160405280600581526020017f61436861640000000000000000000000000000000000000000000000000000008152508160039081620000b491906200059b565b508060049081620000c691906200059b565b505050620000e9620000dd6200015c60201b60201c565b6200016460201b60201c565b82600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600781905550806008819055506000600a60006101000a81548160ff02191690831515021790555050505062000682565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200025c826200022f565b9050919050565b6200026e816200024f565b81146200027a57600080fd5b50565b6000815190506200028e8162000263565b92915050565b6000819050919050565b620002a98162000294565b8114620002b557600080fd5b50565b600081519050620002c9816200029e565b92915050565b600080600060608486031215620002eb57620002ea6200022a565b5b6000620002fb868287016200027d565b93505060206200030e86828701620002b8565b92505060406200032186828701620002b8565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003ad57607f821691505b602082108103620003c357620003c262000365565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200042d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003ee565b620004398683620003ee565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200047c62000476620004708462000294565b62000451565b62000294565b9050919050565b6000819050919050565b62000498836200045b565b620004b0620004a78262000483565b848454620003fb565b825550505050565b600090565b620004c7620004b8565b620004d48184846200048d565b505050565b5b81811015620004fc57620004f0600082620004bd565b600181019050620004da565b5050565b601f8211156200054b576200051581620003c9565b6200052084620003de565b8101602085101562000530578190505b620005486200053f85620003de565b830182620004d9565b50505b505050565b600082821c905092915050565b6000620005706000198460080262000550565b1980831691505092915050565b60006200058b83836200055d565b9150826002028217905092915050565b620005a6826200032b565b67ffffffffffffffff811115620005c257620005c162000336565b5b620005ce825462000394565b620005db82828562000500565b600060209050601f831160018114620006135760008415620005fe578287015190505b6200060a85826200057d565b8655506200067a565b601f1984166200062386620003c9565b60005b828110156200064d5784890151825560018201915060208501945060208101905062000626565b868310156200066d578489015162000669601f8916826200055d565b8355505b6001600288020188555050505b505050505050565b61391480620006926000396000f3fe6080604052600436106101e35760003560e01c8063715018a611610102578063ab1d379111610095578063dccfbb2611610064578063dccfbb26146106d7578063dd62ed3e14610714578063f00da13814610751578063f2fde38b1461078e576101e3565b8063ab1d379114610643578063b47c38e71461066c578063b976bd1714610697578063c7b8981c146106c0576101e3565b806395d89b41116100d157806395d89b4114610573578063a457c2d71461059e578063a9059cbb146105db578063aaa04c9714610618576101e3565b8063715018a6146104ef578063853828b6146105065780638da5cb5b1461051d5780639119c13c14610548576101e3565b8063387602981161017a5780635fbe4d1d116101495780635fbe4d1d1461040d5780636177fd181461043857806364ab86751461047557806370a08231146104b2576101e3565b80633876029814610372578063395093511461039d5780633d142e3d146103da578063564892dc146103e4576101e3565b806323b872dd116101b657806323b872dd146102b857806326a4e8d2146102f5578063313ce5671461031e57806334fcf43714610349576101e3565b80630120d1ad146101e857806306fdde0314610225578063095ea7b31461025057806318160ddd1461028d575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a91906127e3565b6107b7565b60405161021c9190612829565b60405180910390f35b34801561023157600080fd5b5061023a61089d565b60405161024791906128d4565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190612922565b61092f565b604051610284919061297d565b60405180910390f35b34801561029957600080fd5b506102a2610952565b6040516102af9190612829565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190612998565b61095c565b6040516102ec919061297d565b60405180910390f35b34801561030157600080fd5b5061031c600480360381019061031791906127e3565b61097a565b005b34801561032a57600080fd5b506103336109c6565b6040516103409190612a07565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612a22565b6109cf565b005b34801561037e57600080fd5b50610387610a31565b604051610394919061297d565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190612922565b610a44565b6040516103d1919061297d565b60405180910390f35b6103e2610a7b565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612a7b565b610ced565b005b34801561041957600080fd5b50610422610d12565b60405161042f9190612b07565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a91906127e3565b610d38565b60405161046c919061297d565b60405180910390f35b34801561048157600080fd5b5061049c600480360381019061049791906127e3565b610d58565b6040516104a99190612829565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d491906127e3565b610f7b565b6040516104e69190612829565b60405180910390f35b3480156104fb57600080fd5b50610504610fc3565b005b34801561051257600080fd5b5061051b610fd7565b005b34801561052957600080fd5b5061053261135c565b60405161053f9190612b31565b60405180910390f35b34801561055457600080fd5b5061055d611386565b60405161056a9190612829565b60405180910390f35b34801561057f57600080fd5b5061058861138c565b60405161059591906128d4565b60405180910390f35b3480156105aa57600080fd5b506105c560048036038101906105c09190612922565b61141e565b6040516105d2919061297d565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190612922565b611495565b60405161060f919061297d565b60405180910390f35b34801561062457600080fd5b5061062d6114b1565b60405161063a9190612829565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190612a22565b6114b7565b005b34801561067857600080fd5b5061068161191d565b60405161068e9190612829565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b99190612a22565b611923565b005b3480156106cc57600080fd5b506106d5611935565b005b3480156106e357600080fd5b506106fe60048036038101906106f991906127e3565b611cb0565b60405161070b9190612829565b60405180910390f35b34801561072057600080fd5b5061073b60048036038101906107369190612b4c565b611cc8565b6040516107489190612829565b60405180910390f35b34801561075d57600080fd5b50610778600480360381019061077391906127e3565b611d4f565b6040516107859190612829565b60405180910390f35b34801561079a57600080fd5b506107b560048036038101906107b091906127e3565b611d67565b005b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c90612bd8565b60405180910390fd5b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054426108929190612c27565b905080915050919050565b6060600380546108ac90612c8a565b80601f01602080910402602001604051908101604052809291908181526020018280546108d890612c8a565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b5050505050905090565b60008061093a611dea565b9050610947818585611df2565b600191505092915050565b6000600254905090565b6000610966611fbb565b610971848484612039565b90509392505050565b610982611fbb565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b6109d7611fbb565b6000811180156109e857506103e881105b610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90612d07565b60405180910390fd5b8060088190555050565b600a60009054906101000a900460ff1681565b600080610a4f611dea565b9050610a70818585610a618589611cc8565b610a6b9190612d27565b611df2565b600191505092915050565b610a83611fbb565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ae09190612b31565b602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b219190612d70565b905060004790506000821115610c2b576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360095486610b809190612c27565b6040518363ffffffff1660e01b8152600401610b9d929190612d9d565b6020604051808303816000875af1158015610bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be09190612ddb565b90506001151581151514610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612e54565b60405180910390fd5b505b6000811115610ce95760003373ffffffffffffffffffffffffffffffffffffffff1682604051610c5a90612ea5565b60006040518083038185875af1925050503d8060008114610c97576040519150601f19603f3d011682016040523d82523d6000602084013e610c9c565b606091505b505090506001151581151514610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90612e54565b60405180910390fd5b505b5050565b610cf5611fbb565b80600a60006101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b600060011515600a60009054906101000a900460ff16151514610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da790612f06565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390612bd8565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e999190612b31565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190612d70565b9050600060095482610eec9190612c27565b9050600061271060085483610f019190612f26565b610f0b9190612f97565b90506000600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006009548284610f629190612f26565b610f6c9190612f97565b90508095505050505050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fcb611fbb565b610fd56000612068565b565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a90612bd8565b60405180910390fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081116110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e190613014565b60405180910390fd5b60006110f5336107b7565b9050600754811061113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290613080565b60405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905581600960008282546112229190612c27565b925050819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401611288929190612d9d565b6020604051808303816000875af11580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190612ddb565b90506001151581151514611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612e54565b60405180910390fd5b61131e338461212e565b7fc071def65372980c9bd08830627a4aa028af02b30ba63ea2b773431dd008c5de338460405161134f929190612d9d565b60405180910390a1505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606004805461139b90612c8a565b80601f01602080910402602001604051908101604052809291908181526020018280546113c790612c8a565b80156114145780601f106113e957610100808354040283529160200191611414565b820191906000526020600020905b8154815290600101906020018083116113f757829003601f168201915b5050505050905090565b600080611429611dea565b905060006114378286611cc8565b90508381101561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613112565b60405180910390fd5b6114898286868403611df2565b60019250505092915050565b600061149f611fbb565b6114a983836122fb565b905092915050565b60085481565b60011515600a60009054906101000a900460ff1615151461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612f06565b60405180910390fd5b60008111611550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115479061317e565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115ad9190612b31565b602060405180830381865afa1580156115ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ee9190612d70565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016116519392919061319e565b6020604051808303816000875af1158015611670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116949190612ddb565b905060011515811515146116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d490612e54565b60405180910390fd5b600082600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161173b9190612b31565b602060405180830381865afa158015611758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177c9190612d70565b6117869190612c27565b90506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555042600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118739190612d27565b92505081905550806009600082825461188c9190612d27565b9250508190555061189d338261231e565b7f2dc7e71ea91fcbb65762435a882ffdd94f3fd1defd5d65a130b0e6298e3bc1683382600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161190f939291906131d5565b60405180910390a150505050565b60095481565b61192b611fbb565b8060078190555050565b60011515600a60009054906101000a900460ff1615151461198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290612f06565b60405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0e90612bd8565b60405180910390fd5b6000611a22336107b7565b9050600754811015611a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a609061327e565b60405180910390fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae790613014565b60405180910390fd5b6000611afb33610d58565b905060008111611b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b37906132ea565b60405180910390fd5b42600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611be3929190612d9d565b6020604051808303816000875af1158015611c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c269190612ddb565b90506001151581151514611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6690612e54565b60405180910390fd5b7fb5e9e71a3ac15f8b4e95c9f4793c5f6d3d7a82b344832cf6fe0e4c6be1ee7f36338484604051611ca2939291906131d5565b60405180910390a150505050565b600d6020528060005260406000206000915090505481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c6020528060005260406000206000915090505481565b611d6f611fbb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd59061337c565b60405180910390fd5b611de781612068565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e589061340e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec7906134a0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fae9190612829565b60405180910390a3505050565b611fc3611dea565b73ffffffffffffffffffffffffffffffffffffffff16611fe161135c565b73ffffffffffffffffffffffffffffffffffffffff1614612037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202e9061350c565b60405180910390fd5b565b600080612044611dea565b9050612051858285612474565b61205c858585612500565b60019150509392505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061359e565b60405180910390fd5b6121a982600083612776565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561222f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222690613630565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122e29190612829565b60405180910390a36122f68360008461277b565b505050565b600080612306611dea565b9050612313818585612500565b600191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361238d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123849061369c565b60405180910390fd5b61239960008383612776565b80600260008282546123ab9190612d27565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161245c9190612829565b60405180910390a36124706000838361277b565b5050565b60006124808484611cc8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146124fa57818110156124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e390613708565b60405180910390fd5b6124f98484848403611df2565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361256f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125669061379a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d59061382c565b60405180910390fd5b6125e9838383612776565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561266f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612666906138be565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161275d9190612829565b60405180910390a361277084848461277b565b50505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127b082612785565b9050919050565b6127c0816127a5565b81146127cb57600080fd5b50565b6000813590506127dd816127b7565b92915050565b6000602082840312156127f9576127f8612780565b5b6000612807848285016127ce565b91505092915050565b6000819050919050565b61282381612810565b82525050565b600060208201905061283e600083018461281a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561287e578082015181840152602081019050612863565b60008484015250505050565b6000601f19601f8301169050919050565b60006128a682612844565b6128b0818561284f565b93506128c0818560208601612860565b6128c98161288a565b840191505092915050565b600060208201905081810360008301526128ee818461289b565b905092915050565b6128ff81612810565b811461290a57600080fd5b50565b60008135905061291c816128f6565b92915050565b6000806040838503121561293957612938612780565b5b6000612947858286016127ce565b92505060206129588582860161290d565b9150509250929050565b60008115159050919050565b61297781612962565b82525050565b6000602082019050612992600083018461296e565b92915050565b6000806000606084860312156129b1576129b0612780565b5b60006129bf868287016127ce565b93505060206129d0868287016127ce565b92505060406129e18682870161290d565b9150509250925092565b600060ff82169050919050565b612a01816129eb565b82525050565b6000602082019050612a1c60008301846129f8565b92915050565b600060208284031215612a3857612a37612780565b5b6000612a468482850161290d565b91505092915050565b612a5881612962565b8114612a6357600080fd5b50565b600081359050612a7581612a4f565b92915050565b600060208284031215612a9157612a90612780565b5b6000612a9f84828501612a66565b91505092915050565b6000819050919050565b6000612acd612ac8612ac384612785565b612aa8565b612785565b9050919050565b6000612adf82612ab2565b9050919050565b6000612af182612ad4565b9050919050565b612b0181612ae6565b82525050565b6000602082019050612b1c6000830184612af8565b92915050565b612b2b816127a5565b82525050565b6000602082019050612b466000830184612b22565b92915050565b60008060408385031215612b6357612b62612780565b5b6000612b71858286016127ce565b9250506020612b82858286016127ce565b9150509250929050565b7f54686973206164647265737320686173206e6f74207374616b65640000000000600082015250565b6000612bc2601b8361284f565b9150612bcd82612b8c565b602082019050919050565b60006020820190508181036000830152612bf181612bb5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3282612810565b9150612c3d83612810565b9250828203905081811115612c5557612c54612bf8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ca257607f821691505b602082108103612cb557612cb4612c5b565b5b50919050565b7f52617465206d757374206265203e203020616e64203c20313030300000000000600082015250565b6000612cf1601b8361284f565b9150612cfc82612cbb565b602082019050919050565b60006020820190508181036000830152612d2081612ce4565b9050919050565b6000612d3282612810565b9150612d3d83612810565b9250828201905080821115612d5557612d54612bf8565b5b92915050565b600081519050612d6a816128f6565b92915050565b600060208284031215612d8657612d85612780565b5b6000612d9484828501612d5b565b91505092915050565b6000604082019050612db26000830185612b22565b612dbf602083018461281a565b9392505050565b600081519050612dd581612a4f565b92915050565b600060208284031215612df157612df0612780565b5b6000612dff84828501612dc6565b91505092915050565b7f7472616e73666572206661696c65642100000000000000000000000000000000600082015250565b6000612e3e60108361284f565b9150612e4982612e08565b602082019050919050565b60006020820190508181036000830152612e6d81612e31565b9050919050565b600081905092915050565b50565b6000612e8f600083612e74565b9150612e9a82612e7f565b600082019050919050565b6000612eb082612e82565b9150819050919050565b7f5374616b696e6720706f6f6c20697320636c6f73656400000000000000000000600082015250565b6000612ef060168361284f565b9150612efb82612eba565b602082019050919050565b60006020820190508181036000830152612f1f81612ee3565b9050919050565b6000612f3182612810565b9150612f3c83612810565b9250828202612f4a81612810565b91508282048414831517612f6157612f60612bf8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fa282612810565b9150612fad83612810565b925082612fbd57612fbc612f68565b5b828204905092915050565b7f696e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000612ffe60148361284f565b915061300982612fc8565b602082019050919050565b6000602082019050818103600083015261302d81612ff1565b9050919050565b7f7769746864726177207265776172647320666972737400000000000000000000600082015250565b600061306a60168361284f565b915061307582613034565b602082019050919050565b600060208201905081810360008301526130998161305d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006130fc60258361284f565b9150613107826130a0565b604082019050919050565b6000602082019050818103600083015261312b816130ef565b9050919050565b7f4465706f736974206d757374206265203e203000000000000000000000000000600082015250565b600061316860138361284f565b915061317382613132565b602082019050919050565b600060208201905081810360008301526131978161315b565b9050919050565b60006060820190506131b36000830186612b22565b6131c06020830185612b22565b6131cd604083018461281a565b949350505050565b60006060820190506131ea6000830186612b22565b6131f7602083018561281a565b613204604083018461281a565b949350505050565b7f4d696e696d756d207265717569726564207374616b696e672074696d65206e6f60008201527f74206d6574000000000000000000000000000000000000000000000000000000602082015250565b600061326860258361284f565b91506132738261320c565b604082019050919050565b600060208201905081810360008301526132978161325b565b9050919050565b7f696e73756666696369656e742072657761726400000000000000000000000000600082015250565b60006132d460138361284f565b91506132df8261329e565b602082019050919050565b60006020820190508181036000830152613303816132c7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061336660268361284f565b91506133718261330a565b604082019050919050565b6000602082019050818103600083015261339581613359565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133f860248361284f565b91506134038261339c565b604082019050919050565b60006020820190508181036000830152613427816133eb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061348a60228361284f565b91506134958261342e565b604082019050919050565b600060208201905081810360008301526134b98161347d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134f660208361284f565b9150613501826134c0565b602082019050919050565b60006020820190508181036000830152613525816134e9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061358860218361284f565b91506135938261352c565b604082019050919050565b600060208201905081810360008301526135b78161357b565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061361a60228361284f565b9150613625826135be565b604082019050919050565b600060208201905081810360008301526136498161360d565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613686601f8361284f565b915061369182613650565b602082019050919050565b600060208201905081810360008301526136b581613679565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006136f2601d8361284f565b91506136fd826136bc565b602082019050919050565b60006020820190508181036000830152613721816136e5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061378460258361284f565b915061378f82613728565b604082019050919050565b600060208201905081810360008301526137b381613777565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061381660238361284f565b9150613821826137ba565b604082019050919050565b6000602082019050818103600083015261384581613809565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138a860268361284f565b91506138b38261384c565b604082019050919050565b600060208201905081810360008301526138d78161389b565b905091905056fea2646970667358221220557fb8a61f5146136b9fe521f0ac61c95e5733070e13f6d48c7ce38eb3dd133564736f6c634300081200330000000000000000000000006632d8c49234a6783b45cdc5fc9355a47124e187000000000000000000000000000000000000000000000000000000000003ca5000000000000000000000000000000000000000000000000000000000000001a4
Deployed Bytecode
0x6080604052600436106101e35760003560e01c8063715018a611610102578063ab1d379111610095578063dccfbb2611610064578063dccfbb26146106d7578063dd62ed3e14610714578063f00da13814610751578063f2fde38b1461078e576101e3565b8063ab1d379114610643578063b47c38e71461066c578063b976bd1714610697578063c7b8981c146106c0576101e3565b806395d89b41116100d157806395d89b4114610573578063a457c2d71461059e578063a9059cbb146105db578063aaa04c9714610618576101e3565b8063715018a6146104ef578063853828b6146105065780638da5cb5b1461051d5780639119c13c14610548576101e3565b8063387602981161017a5780635fbe4d1d116101495780635fbe4d1d1461040d5780636177fd181461043857806364ab86751461047557806370a08231146104b2576101e3565b80633876029814610372578063395093511461039d5780633d142e3d146103da578063564892dc146103e4576101e3565b806323b872dd116101b657806323b872dd146102b857806326a4e8d2146102f5578063313ce5671461031e57806334fcf43714610349576101e3565b80630120d1ad146101e857806306fdde0314610225578063095ea7b31461025057806318160ddd1461028d575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a91906127e3565b6107b7565b60405161021c9190612829565b60405180910390f35b34801561023157600080fd5b5061023a61089d565b60405161024791906128d4565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190612922565b61092f565b604051610284919061297d565b60405180910390f35b34801561029957600080fd5b506102a2610952565b6040516102af9190612829565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190612998565b61095c565b6040516102ec919061297d565b60405180910390f35b34801561030157600080fd5b5061031c600480360381019061031791906127e3565b61097a565b005b34801561032a57600080fd5b506103336109c6565b6040516103409190612a07565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612a22565b6109cf565b005b34801561037e57600080fd5b50610387610a31565b604051610394919061297d565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190612922565b610a44565b6040516103d1919061297d565b60405180910390f35b6103e2610a7b565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612a7b565b610ced565b005b34801561041957600080fd5b50610422610d12565b60405161042f9190612b07565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a91906127e3565b610d38565b60405161046c919061297d565b60405180910390f35b34801561048157600080fd5b5061049c600480360381019061049791906127e3565b610d58565b6040516104a99190612829565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d491906127e3565b610f7b565b6040516104e69190612829565b60405180910390f35b3480156104fb57600080fd5b50610504610fc3565b005b34801561051257600080fd5b5061051b610fd7565b005b34801561052957600080fd5b5061053261135c565b60405161053f9190612b31565b60405180910390f35b34801561055457600080fd5b5061055d611386565b60405161056a9190612829565b60405180910390f35b34801561057f57600080fd5b5061058861138c565b60405161059591906128d4565b60405180910390f35b3480156105aa57600080fd5b506105c560048036038101906105c09190612922565b61141e565b6040516105d2919061297d565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190612922565b611495565b60405161060f919061297d565b60405180910390f35b34801561062457600080fd5b5061062d6114b1565b60405161063a9190612829565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190612a22565b6114b7565b005b34801561067857600080fd5b5061068161191d565b60405161068e9190612829565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b99190612a22565b611923565b005b3480156106cc57600080fd5b506106d5611935565b005b3480156106e357600080fd5b506106fe60048036038101906106f991906127e3565b611cb0565b60405161070b9190612829565b60405180910390f35b34801561072057600080fd5b5061073b60048036038101906107369190612b4c565b611cc8565b6040516107489190612829565b60405180910390f35b34801561075d57600080fd5b50610778600480360381019061077391906127e3565b611d4f565b6040516107859190612829565b60405180910390f35b34801561079a57600080fd5b506107b560048036038101906107b091906127e3565b611d67565b005b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c90612bd8565b60405180910390fd5b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054426108929190612c27565b905080915050919050565b6060600380546108ac90612c8a565b80601f01602080910402602001604051908101604052809291908181526020018280546108d890612c8a565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b5050505050905090565b60008061093a611dea565b9050610947818585611df2565b600191505092915050565b6000600254905090565b6000610966611fbb565b610971848484612039565b90509392505050565b610982611fbb565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b6109d7611fbb565b6000811180156109e857506103e881105b610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90612d07565b60405180910390fd5b8060088190555050565b600a60009054906101000a900460ff1681565b600080610a4f611dea565b9050610a70818585610a618589611cc8565b610a6b9190612d27565b611df2565b600191505092915050565b610a83611fbb565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ae09190612b31565b602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b219190612d70565b905060004790506000821115610c2b576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360095486610b809190612c27565b6040518363ffffffff1660e01b8152600401610b9d929190612d9d565b6020604051808303816000875af1158015610bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be09190612ddb565b90506001151581151514610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612e54565b60405180910390fd5b505b6000811115610ce95760003373ffffffffffffffffffffffffffffffffffffffff1682604051610c5a90612ea5565b60006040518083038185875af1925050503d8060008114610c97576040519150601f19603f3d011682016040523d82523d6000602084013e610c9c565b606091505b505090506001151581151514610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90612e54565b60405180910390fd5b505b5050565b610cf5611fbb565b80600a60006101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b600060011515600a60009054906101000a900460ff16151514610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da790612f06565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390612bd8565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e999190612b31565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190612d70565b9050600060095482610eec9190612c27565b9050600061271060085483610f019190612f26565b610f0b9190612f97565b90506000600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006009548284610f629190612f26565b610f6c9190612f97565b90508095505050505050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fcb611fbb565b610fd56000612068565b565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a90612bd8565b60405180910390fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081116110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e190613014565b60405180910390fd5b60006110f5336107b7565b9050600754811061113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290613080565b60405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905581600960008282546112229190612c27565b925050819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401611288929190612d9d565b6020604051808303816000875af11580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190612ddb565b90506001151581151514611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612e54565b60405180910390fd5b61131e338461212e565b7fc071def65372980c9bd08830627a4aa028af02b30ba63ea2b773431dd008c5de338460405161134f929190612d9d565b60405180910390a1505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606004805461139b90612c8a565b80601f01602080910402602001604051908101604052809291908181526020018280546113c790612c8a565b80156114145780601f106113e957610100808354040283529160200191611414565b820191906000526020600020905b8154815290600101906020018083116113f757829003601f168201915b5050505050905090565b600080611429611dea565b905060006114378286611cc8565b90508381101561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613112565b60405180910390fd5b6114898286868403611df2565b60019250505092915050565b600061149f611fbb565b6114a983836122fb565b905092915050565b60085481565b60011515600a60009054906101000a900460ff1615151461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612f06565b60405180910390fd5b60008111611550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115479061317e565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115ad9190612b31565b602060405180830381865afa1580156115ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ee9190612d70565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016116519392919061319e565b6020604051808303816000875af1158015611670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116949190612ddb565b905060011515811515146116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d490612e54565b60405180910390fd5b600082600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161173b9190612b31565b602060405180830381865afa158015611758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177c9190612d70565b6117869190612c27565b90506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555042600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118739190612d27565b92505081905550806009600082825461188c9190612d27565b9250508190555061189d338261231e565b7f2dc7e71ea91fcbb65762435a882ffdd94f3fd1defd5d65a130b0e6298e3bc1683382600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161190f939291906131d5565b60405180910390a150505050565b60095481565b61192b611fbb565b8060078190555050565b60011515600a60009054906101000a900460ff1615151461198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290612f06565b60405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0e90612bd8565b60405180910390fd5b6000611a22336107b7565b9050600754811015611a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a609061327e565b60405180910390fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae790613014565b60405180910390fd5b6000611afb33610d58565b905060008111611b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b37906132ea565b60405180910390fd5b42600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611be3929190612d9d565b6020604051808303816000875af1158015611c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c269190612ddb565b90506001151581151514611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6690612e54565b60405180910390fd5b7fb5e9e71a3ac15f8b4e95c9f4793c5f6d3d7a82b344832cf6fe0e4c6be1ee7f36338484604051611ca2939291906131d5565b60405180910390a150505050565b600d6020528060005260406000206000915090505481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c6020528060005260406000206000915090505481565b611d6f611fbb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd59061337c565b60405180910390fd5b611de781612068565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e589061340e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec7906134a0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fae9190612829565b60405180910390a3505050565b611fc3611dea565b73ffffffffffffffffffffffffffffffffffffffff16611fe161135c565b73ffffffffffffffffffffffffffffffffffffffff1614612037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202e9061350c565b60405180910390fd5b565b600080612044611dea565b9050612051858285612474565b61205c858585612500565b60019150509392505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361219d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121949061359e565b60405180910390fd5b6121a982600083612776565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561222f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222690613630565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122e29190612829565b60405180910390a36122f68360008461277b565b505050565b600080612306611dea565b9050612313818585612500565b600191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361238d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123849061369c565b60405180910390fd5b61239960008383612776565b80600260008282546123ab9190612d27565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161245c9190612829565b60405180910390a36124706000838361277b565b5050565b60006124808484611cc8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146124fa57818110156124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e390613708565b60405180910390fd5b6124f98484848403611df2565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361256f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125669061379a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d59061382c565b60405180910390fd5b6125e9838383612776565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561266f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612666906138be565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161275d9190612829565b60405180910390a361277084848461277b565b50505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127b082612785565b9050919050565b6127c0816127a5565b81146127cb57600080fd5b50565b6000813590506127dd816127b7565b92915050565b6000602082840312156127f9576127f8612780565b5b6000612807848285016127ce565b91505092915050565b6000819050919050565b61282381612810565b82525050565b600060208201905061283e600083018461281a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561287e578082015181840152602081019050612863565b60008484015250505050565b6000601f19601f8301169050919050565b60006128a682612844565b6128b0818561284f565b93506128c0818560208601612860565b6128c98161288a565b840191505092915050565b600060208201905081810360008301526128ee818461289b565b905092915050565b6128ff81612810565b811461290a57600080fd5b50565b60008135905061291c816128f6565b92915050565b6000806040838503121561293957612938612780565b5b6000612947858286016127ce565b92505060206129588582860161290d565b9150509250929050565b60008115159050919050565b61297781612962565b82525050565b6000602082019050612992600083018461296e565b92915050565b6000806000606084860312156129b1576129b0612780565b5b60006129bf868287016127ce565b93505060206129d0868287016127ce565b92505060406129e18682870161290d565b9150509250925092565b600060ff82169050919050565b612a01816129eb565b82525050565b6000602082019050612a1c60008301846129f8565b92915050565b600060208284031215612a3857612a37612780565b5b6000612a468482850161290d565b91505092915050565b612a5881612962565b8114612a6357600080fd5b50565b600081359050612a7581612a4f565b92915050565b600060208284031215612a9157612a90612780565b5b6000612a9f84828501612a66565b91505092915050565b6000819050919050565b6000612acd612ac8612ac384612785565b612aa8565b612785565b9050919050565b6000612adf82612ab2565b9050919050565b6000612af182612ad4565b9050919050565b612b0181612ae6565b82525050565b6000602082019050612b1c6000830184612af8565b92915050565b612b2b816127a5565b82525050565b6000602082019050612b466000830184612b22565b92915050565b60008060408385031215612b6357612b62612780565b5b6000612b71858286016127ce565b9250506020612b82858286016127ce565b9150509250929050565b7f54686973206164647265737320686173206e6f74207374616b65640000000000600082015250565b6000612bc2601b8361284f565b9150612bcd82612b8c565b602082019050919050565b60006020820190508181036000830152612bf181612bb5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3282612810565b9150612c3d83612810565b9250828203905081811115612c5557612c54612bf8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ca257607f821691505b602082108103612cb557612cb4612c5b565b5b50919050565b7f52617465206d757374206265203e203020616e64203c20313030300000000000600082015250565b6000612cf1601b8361284f565b9150612cfc82612cbb565b602082019050919050565b60006020820190508181036000830152612d2081612ce4565b9050919050565b6000612d3282612810565b9150612d3d83612810565b9250828201905080821115612d5557612d54612bf8565b5b92915050565b600081519050612d6a816128f6565b92915050565b600060208284031215612d8657612d85612780565b5b6000612d9484828501612d5b565b91505092915050565b6000604082019050612db26000830185612b22565b612dbf602083018461281a565b9392505050565b600081519050612dd581612a4f565b92915050565b600060208284031215612df157612df0612780565b5b6000612dff84828501612dc6565b91505092915050565b7f7472616e73666572206661696c65642100000000000000000000000000000000600082015250565b6000612e3e60108361284f565b9150612e4982612e08565b602082019050919050565b60006020820190508181036000830152612e6d81612e31565b9050919050565b600081905092915050565b50565b6000612e8f600083612e74565b9150612e9a82612e7f565b600082019050919050565b6000612eb082612e82565b9150819050919050565b7f5374616b696e6720706f6f6c20697320636c6f73656400000000000000000000600082015250565b6000612ef060168361284f565b9150612efb82612eba565b602082019050919050565b60006020820190508181036000830152612f1f81612ee3565b9050919050565b6000612f3182612810565b9150612f3c83612810565b9250828202612f4a81612810565b91508282048414831517612f6157612f60612bf8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fa282612810565b9150612fad83612810565b925082612fbd57612fbc612f68565b5b828204905092915050565b7f696e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000612ffe60148361284f565b915061300982612fc8565b602082019050919050565b6000602082019050818103600083015261302d81612ff1565b9050919050565b7f7769746864726177207265776172647320666972737400000000000000000000600082015250565b600061306a60168361284f565b915061307582613034565b602082019050919050565b600060208201905081810360008301526130998161305d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006130fc60258361284f565b9150613107826130a0565b604082019050919050565b6000602082019050818103600083015261312b816130ef565b9050919050565b7f4465706f736974206d757374206265203e203000000000000000000000000000600082015250565b600061316860138361284f565b915061317382613132565b602082019050919050565b600060208201905081810360008301526131978161315b565b9050919050565b60006060820190506131b36000830186612b22565b6131c06020830185612b22565b6131cd604083018461281a565b949350505050565b60006060820190506131ea6000830186612b22565b6131f7602083018561281a565b613204604083018461281a565b949350505050565b7f4d696e696d756d207265717569726564207374616b696e672074696d65206e6f60008201527f74206d6574000000000000000000000000000000000000000000000000000000602082015250565b600061326860258361284f565b91506132738261320c565b604082019050919050565b600060208201905081810360008301526132978161325b565b9050919050565b7f696e73756666696369656e742072657761726400000000000000000000000000600082015250565b60006132d460138361284f565b91506132df8261329e565b602082019050919050565b60006020820190508181036000830152613303816132c7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061336660268361284f565b91506133718261330a565b604082019050919050565b6000602082019050818103600083015261339581613359565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133f860248361284f565b91506134038261339c565b604082019050919050565b60006020820190508181036000830152613427816133eb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061348a60228361284f565b91506134958261342e565b604082019050919050565b600060208201905081810360008301526134b98161347d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134f660208361284f565b9150613501826134c0565b602082019050919050565b60006020820190508181036000830152613525816134e9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061358860218361284f565b91506135938261352c565b604082019050919050565b600060208201905081810360008301526135b78161357b565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061361a60228361284f565b9150613625826135be565b604082019050919050565b600060208201905081810360008301526136498161360d565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613686601f8361284f565b915061369182613650565b602082019050919050565b600060208201905081810360008301526136b581613679565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006136f2601d8361284f565b91506136fd826136bc565b602082019050919050565b60006020820190508181036000830152613721816136e5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061378460258361284f565b915061378f82613728565b604082019050919050565b600060208201905081810360008301526137b381613777565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061381660238361284f565b9150613821826137ba565b604082019050919050565b6000602082019050818103600083015261384581613809565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138a860268361284f565b91506138b38261384c565b604082019050919050565b600060208201905081810360008301526138d78161389b565b905091905056fea2646970667358221220557fb8a61f5146136b9fe521f0ac61c95e5733070e13f6d48c7ce38eb3dd133564736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006632d8c49234a6783b45cdc5fc9355a47124e187000000000000000000000000000000000000000000000000000000000003ca5000000000000000000000000000000000000000000000000000000000000001a4
-----Decoded View---------------
Arg [0] : _tokenAddr (address): 0x6632D8c49234a6783B45CDC5fc9355a47124e187
Arg [1] : _timerDuration (uint256): 248400
Arg [2] : _rwdRate (uint256): 420
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000006632d8c49234a6783b45cdc5fc9355a47124e187
Arg [1] : 000000000000000000000000000000000000000000000000000000000003ca50
Arg [2] : 00000000000000000000000000000000000000000000000000000000000001a4
Deployed Bytecode Sourcemap
20787:5931:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22414:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9351:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11702:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10471:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26540:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25521:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10313:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25340:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21068:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13187:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25776:577;;;:::i;:::-;;25655:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20835:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21100:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21795:611;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10642:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2776:103;;;;;;;;;;;;;:::i;:::-;;24428:786;;;;;;;;;;;;;:::i;:::-;;2128:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20923:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9570:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13928:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26385:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20979:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22664:910;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21030:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25240:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23582:838;;;;;;;;;;;;;:::i;:::-;;21202:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11231:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21147:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3034:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22414:242;22473:7;22501:8;:15;22510:5;22501:15;;;;;;;;;;;;;;;;;;;;;;;;;22493:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;22559:19;22599:13;:20;22613:5;22599:20;;;;;;;;;;;;;;;;22581:15;:38;;;;:::i;:::-;22559:60;;22637:11;22630:18;;;22414:242;;;:::o;9351:100::-;9405:13;9438:5;9431:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:100;:::o;11702:201::-;11785:4;11802:13;11818:12;:10;:12::i;:::-;11802:28;;11841:32;11850:5;11857:7;11866:6;11841:8;:32::i;:::-;11891:4;11884:11;;;11702:201;;;;:::o;10471:108::-;10532:7;10559:12;;10552:19;;10471:108;:::o;26540:175::-;26639:12;2014:13;:11;:13::i;:::-;26671:36:::1;26690:4;26696:2;26700:6;26671:18;:36::i;:::-;26664:43;;26540:175:::0;;;;;:::o;25521:125::-;2014:13;:11;:13::i;:::-;25621:16:::1;25602:9;;:36;;;;;;;;;;;;;;;;;;25521:125:::0;:::o;10313:93::-;10371:5;10396:2;10389:9;;10313:93;:::o;25340:173::-;2014:13;:11;:13::i;:::-;25424:1:::1;25413:8;:12;:31;;;;;25440:4;25429:8;:15;25413:31;25405:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25497:8;25487:7;:18;;;;25340:173:::0;:::o;21068:23::-;;;;;;;;;;;;;:::o;13187:238::-;13275:4;13292:13;13308:12;:10;:12::i;:::-;13292:28;;13331:64;13340:5;13347:7;13384:10;13356:25;13366:5;13373:7;13356:9;:25::i;:::-;:38;;;;:::i;:::-;13331:8;:64::i;:::-;13413:4;13406:11;;;13187:238;;;;:::o;25776:577::-;2014:13;:11;:13::i;:::-;25842:20:::1;25872:9;;;;;;;;;;;25865:27;;;25901:4;25865:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25842:65;;25918:18;25939:21;25918:42;;25989:1;25974:12;:16;25971:194;;;26006:13;26029:9;;;;;;;;;;;26022:26;;;26049:10;26076:16;;26061:12;:31;;;;:::i;:::-;26022:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26006:87;;26128:4;26116:16;;:8;:16;;;26108:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;25991:174;25971:194;26191:1;26178:10;:14;26175:171;;;26209:13;26235:10;26227:24;;26259:10;26227:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26208:66;;;26309:4;26297:16;;:8;:16;;;26289:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;26193:153;26175:171;25831:522;;25776:577::o:0;25655:108::-;2014:13;:11;:13::i;:::-;25743:12:::1;25728:11;;:27;;;;;;;;;;;;;;;;;;25655:108:::0;:::o;20835:23::-;;;;;;;;;;;;;:::o;21100:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;21795:611::-;21857:7;21900:4;21885:19;;:11;;;;;;;;;;;:19;;;21877:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;21950:8;:15;21959:5;21950:15;;;;;;;;;;;;;;;;;;;;;;;;;21942:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;22008:25;22043:9;;;;;;;;;;;22036:27;;;22072:4;22036:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22008:70;;22089:21;22133:16;;22113:17;:36;;;;:::i;:::-;22089:60;;22160:23;22212:5;22202:7;;22186:13;:23;;;;:::i;:::-;:31;;;;:::i;:::-;22160:57;;22228:19;22250:18;:25;22269:5;22250:25;;;;;;;;;;;;;;;;22228:47;;22286:25;22347:16;;22333:11;22315:15;:29;;;;:::i;:::-;:48;;;;:::i;:::-;22286:77;;22381:17;22374:24;;;;;;;21795:611;;;:::o;10642:127::-;10716:7;10743:9;:18;10753:7;10743:18;;;;;;;;;;;;;;;;10736:25;;10642:127;;;:::o;2776:103::-;2014:13;:11;:13::i;:::-;2841:30:::1;2868:1;2841:18;:30::i;:::-;2776:103::o:0;24428:786::-;24476:8;:20;24485:10;24476:20;;;;;;;;;;;;;;;;;;;;;;;;;24468:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;24541:19;24563:18;:30;24582:10;24563:30;;;;;;;;;;;;;;;;24541:52;;24626:1;24612:11;:15;24604:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24673:19;24695:25;24709:10;24695:13;:25::i;:::-;24673:47;;24753:13;;24739:11;:27;24731:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;24813:8;:20;24822:10;24813:20;;;;;;;;;;;;;;;;24806:27;;;;;;;;;;;24851:13;:25;24865:10;24851:25;;;;;;;;;;;;;;;24844:32;;;24894:18;:30;24913:10;24894:30;;;;;;;;;;;;;;;24887:37;;;24955:11;24935:16;;:31;;;;;;;:::i;:::-;;;;;;;;24979:12;25001:9;;;;;;;;;;;24994:26;;;25021:10;25033:11;24994:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24979:66;;25075:4;25064:15;;:7;:15;;;25056:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;25113:30;25119:10;25131:11;25113:5;:30::i;:::-;25169:37;25182:10;25194:11;25169:37;;;;;;;:::i;:::-;;;;;;;;24457:757;;;24428:786::o;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;20923:28::-;;;;:::o;9570:104::-;9626:13;9659:7;9652:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9570:104;:::o;13928:436::-;14021:4;14038:13;14054:12;:10;:12::i;:::-;14038:28;;14077:24;14104:25;14114:5;14121:7;14104:9;:25::i;:::-;14077:52;;14168:15;14148:16;:35;;14140:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14261:60;14270:5;14277:7;14305:15;14286:16;:34;14261:8;:60::i;:::-;14352:4;14345:11;;;;13928:436;;;;:::o;26385:147::-;26466:12;2014:13;:11;:13::i;:::-;26498:26:::1;26513:2;26517:6;26498:14;:26::i;:::-;26491:33;;26385:147:::0;;;;:::o;20979:22::-;;;;:::o;22664:910::-;22747:4;22732:19;;:11;;;;;;;;;;;:19;;;22724:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;22807:1;22797:7;:11;22789:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;22853:11;22874:9;;;;;;;;;;;22867:27;;;22903:4;22867:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22853:56;;23010:12;23032:9;;;;;;;;;;;23025:30;;;23056:10;23076:4;23083:7;23025:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23010:81;;23121:4;23110:15;;:7;:15;;;23102:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;23157:16;23223:6;23184:9;;;;;;;;;;;23177:27;;;23213:4;23177:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23176:53;;;;:::i;:::-;23157:72;;23273:4;23250:8;:20;23259:10;23250:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23316:15;23288:13;:25;23302:10;23288:25;;;;;;;;;;;;;;;:43;;;;23376:11;23342:18;:30;23361:10;23342:30;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;23418:11;23398:16;;:31;;;;;;;:::i;:::-;;;;;;;;23442:30;23448:10;23460:11;23442:5;:30::i;:::-;23498:68;23510:10;23522:11;23535:18;:30;23554:10;23535:30;;;;;;;;;;;;;;;;23498:68;;;;;;;;:::i;:::-;;;;;;;;22713:861;;;22664:910;:::o;21030:31::-;;;;:::o;25240:92::-;2014:13;:11;:13::i;:::-;25319:5:::1;25303:13;:21;;;;25240:92:::0;:::o;23582:838::-;23649:4;23634:19;;:11;;;;;;;;;;;:19;;;23626:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;23699:8;:20;23708:10;23699:20;;;;;;;;;;;;;;;;;;;;;;;;;23691:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;23772:19;23794:25;23808:10;23794:13;:25::i;:::-;23772:47;;23853:13;;23838:11;:28;;23830:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;23921:19;23943:18;:30;23962:10;23943:30;;;;;;;;;;;;;;;;23921:52;;24006:1;23992:11;:15;23984:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24045:18;24066:28;24083:10;24066:16;:28::i;:::-;24045:49;;24126:1;24113:10;:14;24105:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;24200:15;24172:13;:25;24186:10;24172:25;;;;;;;;;;;;;;;:43;;;;24226:12;24248:9;;;;;;;;;;;24241:26;;;24268:10;24280;24241:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24226:65;;24321:4;24310:15;;:7;:15;;;24302:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;24364:48;24376:10;24388:11;24401:10;24364:48;;;;;;;;:::i;:::-;;;;;;;;23615:805;;;;23582:838::o;21202:53::-;;;;;;;;;;;;;;;;;:::o;11231:151::-;11320:7;11347:11;:18;11359:5;11347:18;;;;;;;;;;;;;;;:27;11366:7;11347:27;;;;;;;;;;;;;;;;11340:34;;11231:151;;;;:::o;21147:48::-;;;;;;;;;;;;;;;;;:::o;3034:201::-;2014:13;:11;:13::i;:::-;3143:1:::1;3123:22;;:8;:22;;::::0;3115:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3199:28;3218:8;3199:18;:28::i;:::-;3034:201:::0;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;17955:380::-;18108:1;18091:19;;:5;:19;;;18083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18189:1;18170:21;;:7;:21;;;18162:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18273:6;18243:11;:18;18255:5;18243:18;;;;;;;;;;;;;;;:27;18262:7;18243:27;;;;;;;;;;;;;;;:36;;;;18311:7;18295:32;;18304:5;18295:32;;;18320:6;18295:32;;;;;;:::i;:::-;;;;;;;;17955:380;;;:::o;2293:132::-;2368:12;:10;:12::i;:::-;2357:23;;:7;:5;:7::i;:::-;:23;;;2349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:132::o;12483:295::-;12614:4;12631:15;12649:12;:10;:12::i;:::-;12631:30;;12672:38;12688:4;12694:7;12703:6;12672:15;:38::i;:::-;12721:27;12731:4;12737:2;12741:6;12721:9;:27::i;:::-;12766:4;12759:11;;;12483:295;;;;;:::o;3395:191::-;3469:16;3488:6;;;;;;;;;;;3469:25;;3514:8;3505:6;;:17;;;;;;;;;;;;;;;;;;3569:8;3538:40;;3559:8;3538:40;;;;;;;;;;;;3458:128;3395:191;:::o;16842:675::-;16945:1;16926:21;;:7;:21;;;16918:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16998:49;17019:7;17036:1;17040:6;16998:20;:49::i;:::-;17060:22;17085:9;:18;17095:7;17085:18;;;;;;;;;;;;;;;;17060:43;;17140:6;17122:14;:24;;17114:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17259:6;17242:14;:23;17221:9;:18;17231:7;17221:18;;;;;;;;;;;;;;;:44;;;;17376:6;17360:12;;:22;;;;;;;;;;;17437:1;17411:37;;17420:7;17411:37;;;17441:6;17411:37;;;;;;:::i;:::-;;;;;;;;17461:48;17481:7;17498:1;17502:6;17461:19;:48::i;:::-;16907:610;16842:675;;:::o;10975:193::-;11054:4;11071:13;11087:12;:10;:12::i;:::-;11071:28;;11110;11120:5;11127:2;11131:6;11110:9;:28::i;:::-;11156:4;11149:11;;;10975:193;;;;:::o;15961:548::-;16064:1;16045:21;;:7;:21;;;16037:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16115:49;16144:1;16148:7;16157:6;16115:20;:49::i;:::-;16193:6;16177:12;;:22;;;;;;;:::i;:::-;;;;;;;;16370:6;16348:9;:18;16358:7;16348:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;16424:7;16403:37;;16420:1;16403:37;;;16433:6;16403:37;;;;;;:::i;:::-;;;;;;;;16453:48;16481:1;16485:7;16494:6;16453:19;:48::i;:::-;15961:548;;:::o;18626:453::-;18761:24;18788:25;18798:5;18805:7;18788:9;:25::i;:::-;18761:52;;18848:17;18828:16;:37;18824:248;;18910:6;18890:16;:26;;18882:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18994:51;19003:5;19010:7;19038:6;19019:16;:25;18994:8;:51::i;:::-;18824:248;18750:329;18626:453;;;:::o;14834:840::-;14981:1;14965:18;;:4;:18;;;14957:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15058:1;15044:16;;:2;:16;;;15036:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15113:38;15134:4;15140:2;15144:6;15113:20;:38::i;:::-;15164:19;15186:9;:15;15196:4;15186:15;;;;;;;;;;;;;;;;15164:37;;15235:6;15220:11;:21;;15212:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15352:6;15338:11;:20;15320:9;:15;15330:4;15320:15;;;;;;;;;;;;;;;:38;;;;15555:6;15538:9;:13;15548:2;15538:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15605:2;15590:26;;15599:4;15590:26;;;15609:6;15590:26;;;;;;:::i;:::-;;;;;;;;15629:37;15649:4;15655:2;15659:6;15629:19;:37::i;:::-;14946:728;14834:840;;;:::o;19679:125::-;;;;:::o;20408:124::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:246::-;1972:1;1982:113;1996:6;1993:1;1990:13;1982:113;;;2081:1;2076:3;2072:11;2066:18;2062:1;2057:3;2053:11;2046:39;2018:2;2015:1;2011:10;2006:15;;1982:113;;;2129:1;2120:6;2115:3;2111:16;2104:27;1953:184;1891:246;;;:::o;2143:102::-;2184:6;2235:2;2231:7;2226:2;2219:5;2215:14;2211:28;2201:38;;2143:102;;;:::o;2251:377::-;2339:3;2367:39;2400:5;2367:39;:::i;:::-;2422:71;2486:6;2481:3;2422:71;:::i;:::-;2415:78;;2502:65;2560:6;2555:3;2548:4;2541:5;2537:16;2502:65;:::i;:::-;2592:29;2614:6;2592:29;:::i;:::-;2587:3;2583:39;2576:46;;2343:285;2251:377;;;;:::o;2634:313::-;2747:4;2785:2;2774:9;2770:18;2762:26;;2834:9;2828:4;2824:20;2820:1;2809:9;2805:17;2798:47;2862:78;2935:4;2926:6;2862:78;:::i;:::-;2854:86;;2634:313;;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:116::-;5593:21;5608:5;5593:21;:::i;:::-;5586:5;5583:32;5573:60;;5629:1;5626;5619:12;5573:60;5523:116;:::o;5645:133::-;5688:5;5726:6;5713:20;5704:29;;5742:30;5766:5;5742:30;:::i;:::-;5645:133;;;;:::o;5784:323::-;5840:6;5889:2;5877:9;5868:7;5864:23;5860:32;5857:119;;;5895:79;;:::i;:::-;5857:119;6015:1;6040:50;6082:7;6073:6;6062:9;6058:22;6040:50;:::i;:::-;6030:60;;5986:114;5784:323;;;;:::o;6113:60::-;6141:3;6162:5;6155:12;;6113:60;;;:::o;6179:142::-;6229:9;6262:53;6280:34;6289:24;6307:5;6289:24;:::i;:::-;6280:34;:::i;:::-;6262:53;:::i;:::-;6249:66;;6179:142;;;:::o;6327:126::-;6377:9;6410:37;6441:5;6410:37;:::i;:::-;6397:50;;6327:126;;;:::o;6459:140::-;6523:9;6556:37;6587:5;6556:37;:::i;:::-;6543:50;;6459:140;;;:::o;6605:159::-;6706:51;6751:5;6706:51;:::i;:::-;6701:3;6694:64;6605:159;;:::o;6770:250::-;6877:4;6915:2;6904:9;6900:18;6892:26;;6928:85;7010:1;6999:9;6995:17;6986:6;6928:85;:::i;:::-;6770:250;;;;:::o;7026:118::-;7113:24;7131:5;7113:24;:::i;:::-;7108:3;7101:37;7026:118;;:::o;7150:222::-;7243:4;7281:2;7270:9;7266:18;7258:26;;7294:71;7362:1;7351:9;7347:17;7338:6;7294:71;:::i;:::-;7150:222;;;;:::o;7378:474::-;7446:6;7454;7503:2;7491:9;7482:7;7478:23;7474:32;7471:119;;;7509:79;;:::i;:::-;7471:119;7629:1;7654:53;7699:7;7690:6;7679:9;7675:22;7654:53;:::i;:::-;7644:63;;7600:117;7756:2;7782:53;7827:7;7818:6;7807:9;7803:22;7782:53;:::i;:::-;7772:63;;7727:118;7378:474;;;;;:::o;7858:177::-;7998:29;7994:1;7986:6;7982:14;7975:53;7858:177;:::o;8041:366::-;8183:3;8204:67;8268:2;8263:3;8204:67;:::i;:::-;8197:74;;8280:93;8369:3;8280:93;:::i;:::-;8398:2;8393:3;8389:12;8382:19;;8041:366;;;:::o;8413:419::-;8579:4;8617:2;8606:9;8602:18;8594:26;;8666:9;8660:4;8656:20;8652:1;8641:9;8637:17;8630:47;8694:131;8820:4;8694:131;:::i;:::-;8686:139;;8413:419;;;:::o;8838:180::-;8886:77;8883:1;8876:88;8983:4;8980:1;8973:15;9007:4;9004:1;8997:15;9024:194;9064:4;9084:20;9102:1;9084:20;:::i;:::-;9079:25;;9118:20;9136:1;9118:20;:::i;:::-;9113:25;;9162:1;9159;9155:9;9147:17;;9186:1;9180:4;9177:11;9174:37;;;9191:18;;:::i;:::-;9174:37;9024:194;;;;:::o;9224:180::-;9272:77;9269:1;9262:88;9369:4;9366:1;9359:15;9393:4;9390:1;9383:15;9410:320;9454:6;9491:1;9485:4;9481:12;9471:22;;9538:1;9532:4;9528:12;9559:18;9549:81;;9615:4;9607:6;9603:17;9593:27;;9549:81;9677:2;9669:6;9666:14;9646:18;9643:38;9640:84;;9696:18;;:::i;:::-;9640:84;9461:269;9410:320;;;:::o;9736:177::-;9876:29;9872:1;9864:6;9860:14;9853:53;9736:177;:::o;9919:366::-;10061:3;10082:67;10146:2;10141:3;10082:67;:::i;:::-;10075:74;;10158:93;10247:3;10158:93;:::i;:::-;10276:2;10271:3;10267:12;10260:19;;9919:366;;;:::o;10291:419::-;10457:4;10495:2;10484:9;10480:18;10472:26;;10544:9;10538:4;10534:20;10530:1;10519:9;10515:17;10508:47;10572:131;10698:4;10572:131;:::i;:::-;10564:139;;10291:419;;;:::o;10716:191::-;10756:3;10775:20;10793:1;10775:20;:::i;:::-;10770:25;;10809:20;10827:1;10809:20;:::i;:::-;10804:25;;10852:1;10849;10845:9;10838:16;;10873:3;10870:1;10867:10;10864:36;;;10880:18;;:::i;:::-;10864:36;10716:191;;;;:::o;10913:143::-;10970:5;11001:6;10995:13;10986:22;;11017:33;11044:5;11017:33;:::i;:::-;10913:143;;;;:::o;11062:351::-;11132:6;11181:2;11169:9;11160:7;11156:23;11152:32;11149:119;;;11187:79;;:::i;:::-;11149:119;11307:1;11332:64;11388:7;11379:6;11368:9;11364:22;11332:64;:::i;:::-;11322:74;;11278:128;11062:351;;;;:::o;11419:332::-;11540:4;11578:2;11567:9;11563:18;11555:26;;11591:71;11659:1;11648:9;11644:17;11635:6;11591:71;:::i;:::-;11672:72;11740:2;11729:9;11725:18;11716:6;11672:72;:::i;:::-;11419:332;;;;;:::o;11757:137::-;11811:5;11842:6;11836:13;11827:22;;11858:30;11882:5;11858:30;:::i;:::-;11757:137;;;;:::o;11900:345::-;11967:6;12016:2;12004:9;11995:7;11991:23;11987:32;11984:119;;;12022:79;;:::i;:::-;11984:119;12142:1;12167:61;12220:7;12211:6;12200:9;12196:22;12167:61;:::i;:::-;12157:71;;12113:125;11900:345;;;;:::o;12251:166::-;12391:18;12387:1;12379:6;12375:14;12368:42;12251:166;:::o;12423:366::-;12565:3;12586:67;12650:2;12645:3;12586:67;:::i;:::-;12579:74;;12662:93;12751:3;12662:93;:::i;:::-;12780:2;12775:3;12771:12;12764:19;;12423:366;;;:::o;12795:419::-;12961:4;12999:2;12988:9;12984:18;12976:26;;13048:9;13042:4;13038:20;13034:1;13023:9;13019:17;13012:47;13076:131;13202:4;13076:131;:::i;:::-;13068:139;;12795:419;;;:::o;13220:147::-;13321:11;13358:3;13343:18;;13220:147;;;;:::o;13373:114::-;;:::o;13493:398::-;13652:3;13673:83;13754:1;13749:3;13673:83;:::i;:::-;13666:90;;13765:93;13854:3;13765:93;:::i;:::-;13883:1;13878:3;13874:11;13867:18;;13493:398;;;:::o;13897:379::-;14081:3;14103:147;14246:3;14103:147;:::i;:::-;14096:154;;14267:3;14260:10;;13897:379;;;:::o;14282:172::-;14422:24;14418:1;14410:6;14406:14;14399:48;14282:172;:::o;14460:366::-;14602:3;14623:67;14687:2;14682:3;14623:67;:::i;:::-;14616:74;;14699:93;14788:3;14699:93;:::i;:::-;14817:2;14812:3;14808:12;14801:19;;14460:366;;;:::o;14832:419::-;14998:4;15036:2;15025:9;15021:18;15013:26;;15085:9;15079:4;15075:20;15071:1;15060:9;15056:17;15049:47;15113:131;15239:4;15113:131;:::i;:::-;15105:139;;14832:419;;;:::o;15257:410::-;15297:7;15320:20;15338:1;15320:20;:::i;:::-;15315:25;;15354:20;15372:1;15354:20;:::i;:::-;15349:25;;15409:1;15406;15402:9;15431:30;15449:11;15431:30;:::i;:::-;15420:41;;15610:1;15601:7;15597:15;15594:1;15591:22;15571:1;15564:9;15544:83;15521:139;;15640:18;;:::i;:::-;15521:139;15305:362;15257:410;;;;:::o;15673:180::-;15721:77;15718:1;15711:88;15818:4;15815:1;15808:15;15842:4;15839:1;15832:15;15859:185;15899:1;15916:20;15934:1;15916:20;:::i;:::-;15911:25;;15950:20;15968:1;15950:20;:::i;:::-;15945:25;;15989:1;15979:35;;15994:18;;:::i;:::-;15979:35;16036:1;16033;16029:9;16024:14;;15859:185;;;;:::o;16050:170::-;16190:22;16186:1;16178:6;16174:14;16167:46;16050:170;:::o;16226:366::-;16368:3;16389:67;16453:2;16448:3;16389:67;:::i;:::-;16382:74;;16465:93;16554:3;16465:93;:::i;:::-;16583:2;16578:3;16574:12;16567:19;;16226:366;;;:::o;16598:419::-;16764:4;16802:2;16791:9;16787:18;16779:26;;16851:9;16845:4;16841:20;16837:1;16826:9;16822:17;16815:47;16879:131;17005:4;16879:131;:::i;:::-;16871:139;;16598:419;;;:::o;17023:172::-;17163:24;17159:1;17151:6;17147:14;17140:48;17023:172;:::o;17201:366::-;17343:3;17364:67;17428:2;17423:3;17364:67;:::i;:::-;17357:74;;17440:93;17529:3;17440:93;:::i;:::-;17558:2;17553:3;17549:12;17542:19;;17201:366;;;:::o;17573:419::-;17739:4;17777:2;17766:9;17762:18;17754:26;;17826:9;17820:4;17816:20;17812:1;17801:9;17797:17;17790:47;17854:131;17980:4;17854:131;:::i;:::-;17846:139;;17573:419;;;:::o;17998:224::-;18138:34;18134:1;18126:6;18122:14;18115:58;18207:7;18202:2;18194:6;18190:15;18183:32;17998:224;:::o;18228:366::-;18370:3;18391:67;18455:2;18450:3;18391:67;:::i;:::-;18384:74;;18467:93;18556:3;18467:93;:::i;:::-;18585:2;18580:3;18576:12;18569:19;;18228:366;;;:::o;18600:419::-;18766:4;18804:2;18793:9;18789:18;18781:26;;18853:9;18847:4;18843:20;18839:1;18828:9;18824:17;18817:47;18881:131;19007:4;18881:131;:::i;:::-;18873:139;;18600:419;;;:::o;19025:169::-;19165:21;19161:1;19153:6;19149:14;19142:45;19025:169;:::o;19200:366::-;19342:3;19363:67;19427:2;19422:3;19363:67;:::i;:::-;19356:74;;19439:93;19528:3;19439:93;:::i;:::-;19557:2;19552:3;19548:12;19541:19;;19200:366;;;:::o;19572:419::-;19738:4;19776:2;19765:9;19761:18;19753:26;;19825:9;19819:4;19815:20;19811:1;19800:9;19796:17;19789:47;19853:131;19979:4;19853:131;:::i;:::-;19845:139;;19572:419;;;:::o;19997:442::-;20146:4;20184:2;20173:9;20169:18;20161:26;;20197:71;20265:1;20254:9;20250:17;20241:6;20197:71;:::i;:::-;20278:72;20346:2;20335:9;20331:18;20322:6;20278:72;:::i;:::-;20360;20428:2;20417:9;20413:18;20404:6;20360:72;:::i;:::-;19997:442;;;;;;:::o;20445:::-;20594:4;20632:2;20621:9;20617:18;20609:26;;20645:71;20713:1;20702:9;20698:17;20689:6;20645:71;:::i;:::-;20726:72;20794:2;20783:9;20779:18;20770:6;20726:72;:::i;:::-;20808;20876:2;20865:9;20861:18;20852:6;20808:72;:::i;:::-;20445:442;;;;;;:::o;20893:224::-;21033:34;21029:1;21021:6;21017:14;21010:58;21102:7;21097:2;21089:6;21085:15;21078:32;20893:224;:::o;21123:366::-;21265:3;21286:67;21350:2;21345:3;21286:67;:::i;:::-;21279:74;;21362:93;21451:3;21362:93;:::i;:::-;21480:2;21475:3;21471:12;21464:19;;21123:366;;;:::o;21495:419::-;21661:4;21699:2;21688:9;21684:18;21676:26;;21748:9;21742:4;21738:20;21734:1;21723:9;21719:17;21712:47;21776:131;21902:4;21776:131;:::i;:::-;21768:139;;21495:419;;;:::o;21920:169::-;22060:21;22056:1;22048:6;22044:14;22037:45;21920:169;:::o;22095:366::-;22237:3;22258:67;22322:2;22317:3;22258:67;:::i;:::-;22251:74;;22334:93;22423:3;22334:93;:::i;:::-;22452:2;22447:3;22443:12;22436:19;;22095:366;;;:::o;22467:419::-;22633:4;22671:2;22660:9;22656:18;22648:26;;22720:9;22714:4;22710:20;22706:1;22695:9;22691:17;22684:47;22748:131;22874:4;22748:131;:::i;:::-;22740:139;;22467:419;;;:::o;22892:225::-;23032:34;23028:1;23020:6;23016:14;23009:58;23101:8;23096:2;23088:6;23084:15;23077:33;22892:225;:::o;23123:366::-;23265:3;23286:67;23350:2;23345:3;23286:67;:::i;:::-;23279:74;;23362:93;23451:3;23362:93;:::i;:::-;23480:2;23475:3;23471:12;23464:19;;23123:366;;;:::o;23495:419::-;23661:4;23699:2;23688:9;23684:18;23676:26;;23748:9;23742:4;23738:20;23734:1;23723:9;23719:17;23712:47;23776:131;23902:4;23776:131;:::i;:::-;23768:139;;23495:419;;;:::o;23920:223::-;24060:34;24056:1;24048:6;24044:14;24037:58;24129:6;24124:2;24116:6;24112:15;24105:31;23920:223;:::o;24149:366::-;24291:3;24312:67;24376:2;24371:3;24312:67;:::i;:::-;24305:74;;24388:93;24477:3;24388:93;:::i;:::-;24506:2;24501:3;24497:12;24490:19;;24149:366;;;:::o;24521:419::-;24687:4;24725:2;24714:9;24710:18;24702:26;;24774:9;24768:4;24764:20;24760:1;24749:9;24745:17;24738:47;24802:131;24928:4;24802:131;:::i;:::-;24794:139;;24521:419;;;:::o;24946:221::-;25086:34;25082:1;25074:6;25070:14;25063:58;25155:4;25150:2;25142:6;25138:15;25131:29;24946:221;:::o;25173:366::-;25315:3;25336:67;25400:2;25395:3;25336:67;:::i;:::-;25329:74;;25412:93;25501:3;25412:93;:::i;:::-;25530:2;25525:3;25521:12;25514:19;;25173:366;;;:::o;25545:419::-;25711:4;25749:2;25738:9;25734:18;25726:26;;25798:9;25792:4;25788:20;25784:1;25773:9;25769:17;25762:47;25826:131;25952:4;25826:131;:::i;:::-;25818:139;;25545:419;;;:::o;25970:182::-;26110:34;26106:1;26098:6;26094:14;26087:58;25970:182;:::o;26158:366::-;26300:3;26321:67;26385:2;26380:3;26321:67;:::i;:::-;26314:74;;26397:93;26486:3;26397:93;:::i;:::-;26515:2;26510:3;26506:12;26499:19;;26158:366;;;:::o;26530:419::-;26696:4;26734:2;26723:9;26719:18;26711:26;;26783:9;26777:4;26773:20;26769:1;26758:9;26754:17;26747:47;26811:131;26937:4;26811:131;:::i;:::-;26803:139;;26530:419;;;:::o;26955:220::-;27095:34;27091:1;27083:6;27079:14;27072:58;27164:3;27159:2;27151:6;27147:15;27140:28;26955:220;:::o;27181:366::-;27323:3;27344:67;27408:2;27403:3;27344:67;:::i;:::-;27337:74;;27420:93;27509:3;27420:93;:::i;:::-;27538:2;27533:3;27529:12;27522:19;;27181:366;;;:::o;27553:419::-;27719:4;27757:2;27746:9;27742:18;27734:26;;27806:9;27800:4;27796:20;27792:1;27781:9;27777:17;27770:47;27834:131;27960:4;27834:131;:::i;:::-;27826:139;;27553:419;;;:::o;27978:221::-;28118:34;28114:1;28106:6;28102:14;28095:58;28187:4;28182:2;28174:6;28170:15;28163:29;27978:221;:::o;28205:366::-;28347:3;28368:67;28432:2;28427:3;28368:67;:::i;:::-;28361:74;;28444:93;28533:3;28444:93;:::i;:::-;28562:2;28557:3;28553:12;28546:19;;28205:366;;;:::o;28577:419::-;28743:4;28781:2;28770:9;28766:18;28758:26;;28830:9;28824:4;28820:20;28816:1;28805:9;28801:17;28794:47;28858:131;28984:4;28858:131;:::i;:::-;28850:139;;28577:419;;;:::o;29002:181::-;29142:33;29138:1;29130:6;29126:14;29119:57;29002:181;:::o;29189:366::-;29331:3;29352:67;29416:2;29411:3;29352:67;:::i;:::-;29345:74;;29428:93;29517:3;29428:93;:::i;:::-;29546:2;29541:3;29537:12;29530:19;;29189:366;;;:::o;29561:419::-;29727:4;29765:2;29754:9;29750:18;29742:26;;29814:9;29808:4;29804:20;29800:1;29789:9;29785:17;29778:47;29842:131;29968:4;29842:131;:::i;:::-;29834:139;;29561:419;;;:::o;29986:179::-;30126:31;30122:1;30114:6;30110:14;30103:55;29986:179;:::o;30171:366::-;30313:3;30334:67;30398:2;30393:3;30334:67;:::i;:::-;30327:74;;30410:93;30499:3;30410:93;:::i;:::-;30528:2;30523:3;30519:12;30512:19;;30171:366;;;:::o;30543:419::-;30709:4;30747:2;30736:9;30732:18;30724:26;;30796:9;30790:4;30786:20;30782:1;30771:9;30767:17;30760:47;30824:131;30950:4;30824:131;:::i;:::-;30816:139;;30543:419;;;:::o;30968:224::-;31108:34;31104:1;31096:6;31092:14;31085:58;31177:7;31172:2;31164:6;31160:15;31153:32;30968:224;:::o;31198:366::-;31340:3;31361:67;31425:2;31420:3;31361:67;:::i;:::-;31354:74;;31437:93;31526:3;31437:93;:::i;:::-;31555:2;31550:3;31546:12;31539:19;;31198:366;;;:::o;31570:419::-;31736:4;31774:2;31763:9;31759:18;31751:26;;31823:9;31817:4;31813:20;31809:1;31798:9;31794:17;31787:47;31851:131;31977:4;31851:131;:::i;:::-;31843:139;;31570:419;;;:::o;31995:222::-;32135:34;32131:1;32123:6;32119:14;32112:58;32204:5;32199:2;32191:6;32187:15;32180:30;31995:222;:::o;32223:366::-;32365:3;32386:67;32450:2;32445:3;32386:67;:::i;:::-;32379:74;;32462:93;32551:3;32462:93;:::i;:::-;32580:2;32575:3;32571:12;32564:19;;32223:366;;;:::o;32595:419::-;32761:4;32799:2;32788:9;32784:18;32776:26;;32848:9;32842:4;32838:20;32834:1;32823:9;32819:17;32812:47;32876:131;33002:4;32876:131;:::i;:::-;32868:139;;32595:419;;;:::o;33020:225::-;33160:34;33156:1;33148:6;33144:14;33137:58;33229:8;33224:2;33216:6;33212:15;33205:33;33020:225;:::o;33251:366::-;33393:3;33414:67;33478:2;33473:3;33414:67;:::i;:::-;33407:74;;33490:93;33579:3;33490:93;:::i;:::-;33608:2;33603:3;33599:12;33592:19;;33251:366;;;:::o;33623:419::-;33789:4;33827:2;33816:9;33812:18;33804:26;;33876:9;33870:4;33866:20;33862:1;33851:9;33847:17;33840:47;33904:131;34030:4;33904:131;:::i;:::-;33896:139;;33623:419;;;:::o
Swarm Source
ipfs://557fb8a61f5146136b9fe521f0ac61c95e5733070e13f6d48c7ce38eb3dd1335
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.