ERC-20
Overview
Max Total Supply
685,690.93282249544692668 CRUMBS
Holders
135
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
9.824177852810300017 CRUMBSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CrumbsToken
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-26 */ pragma solidity ^0.6.0; interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool); /** * @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); } contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for {name} and {symbol}, initializes {decimals} with * a default value of 18. * * To select a different value for {decimals}, use {_setupDecimals}. * * All three of these values are immutable: they can only be set once during * construction. */ constructor (string memory name, string memory symbol) public { _name = name; _symbol = symbol; _decimals = 18; } /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view 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 {_setupDecimals} is * called. * * 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 returns (uint8) { return _decimals; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), 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}; * * Requirements: * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); 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) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(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) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is 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: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, 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 * * - `to` 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 = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(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); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. * * This is 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 Sets {decimals} to a value other than the default one of 18. * * WARNING: This function should only be called from the constructor. Most * applications that interact with token contracts will not expect * {decimals} to ever change, and may work incorrectly if it does. */ function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } /** * @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 to 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 { } } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. // A Solidity high level call has three parts: // 1. The target address is checked to verify it contains contract code // 2. The call itself is made, and success asserted // 3. The return value is decoded, which in turn checks the size of the returned data. // solhint-disable-next-line max-line-length require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract CrumbsToken is ERC20 { struct stakeTracker { uint256 lastBlockChecked; uint256 rewards; uint256 cockStaked; } address private owner; uint256 private rewardsVar; using SafeERC20 for IERC20; using SafeMath for uint256; address private cockAddress; IERC20 private cockToken; uint256 private _totalCockStaked; mapping(address => stakeTracker) private _stakedBalances; constructor() public ERC20("Crumbs", "CRUMBS") { owner = msg.sender; _mint(msg.sender, 2000 * (10 ** 18)); rewardsVar = 100000; } event Staked(address indexed user, uint256 amount, uint256 totalCockStaked); event Withdrawn(address indexed user, uint256 amount); event Rewards(address indexed user, uint256 reward); modifier _onlyOwner() { require(msg.sender == owner); _; } modifier updateStakingReward(address account) { if (block.number > _stakedBalances[account].lastBlockChecked) { uint256 rewardBlocks = block.number .sub(_stakedBalances[account].lastBlockChecked); if (_stakedBalances[account].cockStaked > 0) { _stakedBalances[account].rewards = _stakedBalances[account].rewards .add( _stakedBalances[account].cockStaked .mul(rewardBlocks) / rewardsVar); } _stakedBalances[account].lastBlockChecked = block.number; emit Rewards(account, _stakedBalances[account].rewards); } _; } function setCockAddress(address _cockAddress) public _onlyOwner returns(uint256) { cockAddress = _cockAddress; cockToken = IERC20(_cockAddress); } function updatingStakingReward(address account) public returns(uint256) { if (block.number > _stakedBalances[account].lastBlockChecked) { uint256 rewardBlocks = block.number .sub(_stakedBalances[account].lastBlockChecked); if (_stakedBalances[account].cockStaked > 0) { _stakedBalances[account].rewards = _stakedBalances[account].rewards .add( _stakedBalances[account].cockStaked .mul(rewardBlocks) / rewardsVar); } _stakedBalances[account].lastBlockChecked = block.number; emit Rewards(account, _stakedBalances[account].rewards); } return(_stakedBalances[account].rewards); } function getBlockNum() public view returns (uint256) { return block.number; } function getLastBlockCheckedNum(address _account) public view returns (uint256) { return _stakedBalances[_account].lastBlockChecked; } function getAddressStakeAmount(address _account) public view returns (uint256) { return _stakedBalances[_account].cockStaked; } function setRewardsVar(uint256 _amount) public _onlyOwner { rewardsVar = _amount; } function totalStakedSupply() public view returns (uint256) { return _totalCockStaked; } function myRewardsBalance(address account) public view returns (uint256) { if (block.number > _stakedBalances[account].lastBlockChecked) { uint256 rewardBlocks = block.number .sub(_stakedBalances[account].lastBlockChecked); if (_stakedBalances[account].cockStaked > 0) { return _stakedBalances[account].rewards .add( _stakedBalances[account].cockStaked .mul(rewardBlocks) / rewardsVar); } } } function stake(uint256 amount) public updateStakingReward(msg.sender) { _totalCockStaked = _totalCockStaked.add(amount); _stakedBalances[msg.sender].cockStaked = _stakedBalances[msg.sender].cockStaked.add(amount); cockToken.safeTransferFrom(msg.sender, address(this), amount); emit Staked(msg.sender, amount, _totalCockStaked); } function withdraw(uint256 amount) public updateStakingReward(msg.sender) { _totalCockStaked = _totalCockStaked.sub(amount); _stakedBalances[msg.sender].cockStaked = _stakedBalances[msg.sender].cockStaked.sub(amount); cockToken.safeTransfer(msg.sender, amount); emit Withdrawn(msg.sender, amount); } function getReward() public updateStakingReward(msg.sender) { uint256 reward = _stakedBalances[msg.sender].rewards; _stakedBalances[msg.sender].rewards = 0; _mint(msg.sender, reward.mul(8) / 10); uint256 fundingPoolReward = reward.mul(2) / 10; _mint(cockAddress, fundingPoolReward); emit Rewards(msg.sender, reward); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Rewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalCockStaked","type":"uint256"}],"name":"Staked","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":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","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":[],"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":"address","name":"_account","type":"address"}],"name":"getAddressStakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getLastBlockCheckedNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReward","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":"account","type":"address"}],"name":"myRewardsBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_cockAddress","type":"address"}],"name":"setCockAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setRewardsVar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"updatingStakingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600681526020017f4372756d627300000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4352554d42530000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620003a6565b508060049080519060200190620000af929190620003a6565b506012600560006101000a81548160ff021916908360ff160217905550505033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200012a33686c6b935b8bbd4000006200013a60201b60201c565b620186a060068190555062000455565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620001f2600083836200031860201b60201c565b6200020e816002546200031d60201b620026271790919060201c565b6002819055506200026c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200031d60201b620026271790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6000808284019050838110156200039c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003e957805160ff19168380011785556200041a565b828001600101855582156200041a579182015b8281111562000419578251825591602001919060010190620003fc565b5b5090506200042991906200042d565b5090565b6200045291905b808211156200044e57600081600090555060010162000434565b5090565b90565b612e3880620004656000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806395d89b41116100b8578063bcdc3cfc1161007c578063bcdc3cfc14610639578063be35ef1414610657578063db260b3e146106af578063dd62ed3e146106dd578063e60df1b614610755578063e8e97e83146107ad57610142565b806395d89b4114610464578063a457c2d7146104e7578063a57306dc1461054d578063a694fc3a146105a5578063a9059cbb146105d357610142565b8063313ce5671161010a578063313ce5671461030257806339509351146103265780633d18b9121461038c5780634aa12ec71461039657806370a08231146103ee5780637f6c6f101461044657610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e5780632e1a7d4d146102d4575b600080fd5b61014f610805565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a7565b604051808215151515815260200191505060405180910390f35b6102386108c5565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cf565b604051808215151515815260200191505060405180910390f35b610300600480360360208110156102ea57600080fd5b81019080803590602001909291905050506109a8565b005b61030a610dc0565b604051808260ff1660ff16815260200191505060405180910390f35b6103726004803603604081101561033c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd7565b604051808215151515815260200191505060405180910390f35b610394610e8a565b005b6103d8600480360360208110156103ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a4565b6040518082815260200191505060405180910390f35b6104306004803603602081101561040457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b2565b6040518082815260200191505060405180910390f35b61044e6115fa565b6040518082815260200191505060405180910390f35b61046c611602565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ac578082015181840152602081019050610491565b50505050905090810190601f1680156104d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610533600480360360408110156104fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a4565b604051808215151515815260200191505060405180910390f35b61058f6004803603602081101561056357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611771565b6040518082815260200191505060405180910390f35b6105d1600480360360208110156105bb57600080fd5b8101908080359060200190929190505050611925565b005b61061f600480360360408110156105e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d49565b604051808215151515815260200191505060405180910390f35b610641611d67565b6040518082815260200191505060405180910390f35b6106996004803603602081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d71565b6040518082815260200191505060405180910390f35b6106db600480360360208110156106c557600080fd5b8101908080359060200190929190505050611dbd565b005b61073f600480360360408110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e21565b6040518082815260200191505060405180910390f35b6107976004803603602081101561076b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ea8565b6040518082815260200191505060405180910390f35b6107ef600480360360208110156107c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ef4565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b60006108bb6108b4611fd7565b8484611fdf565b6001905092915050565b6000600254905090565b60006108dc8484846121d6565b61099d846108e8611fd7565b61099885604051806060016040528060288152602001612d4360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094e611fd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124979092919063ffffffff16565b611fdf565b600190509392505050565b33600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154431115610c6b576000610a4a600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115610b9257610b4b600654610af283600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b81610af957fe5b04600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b610c808260095461255790919063ffffffff16565b600981905550610cdb82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461255790919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610d6e3383600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126af9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b6000600560009054906101000a900460ff16905090565b6000610e80610de4611fd7565b84610e7b8560016000610df5611fd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b611fdf565b6001905092915050565b33600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015443111561114d576000610f2c600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015411156110745761102d600654610fd483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b81610fdb57fe5b04600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061120333600a6111f66008856125a190919063ffffffff16565b816111fd57fe5b04612767565b6000600a61121b6002846125a190919063ffffffff16565b8161122257fe5b049050611251600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612767565b3373ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a836040518082815260200191505060405180910390a2505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154431115611568576000611347600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154111561148f576114486006546113ef83600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b816113f657fe5b04600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600043905090565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561169a5780601f1061166f5761010080835404028352916020019161169a565b820191906000526020600020905b81548152906001019060200180831161167d57829003601f168201915b5050505050905090565b60006117676116b1611fd7565b8461176285604051806060016040528060258152602001612dde60259139600160006116db611fd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124979092919063ffffffff16565b611fdf565b6001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015443111561191f576000611814600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154111561191d576119156006546118bc83600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b816118c357fe5b04600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b915050611920565b505b5b919050565b33600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154431115611be85760006119c7600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115611b0f57611ac8600654611a6f83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b81611a7657fe5b04600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b611bfd8260095461262790919063ffffffff16565b600981905550611c5882600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461262790919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611ced333084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661292e909392919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9083600954604051808381526020018281526020019250505060405180910390a25050565b6000611d5d611d56611fd7565b84846121d6565b6001905092915050565b6000600954905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e1757600080fd5b8060068190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f5057600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612065576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612d906024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612cda6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561225c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612d6b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612cb76023913960400191505060405180910390fd5b6122ed838383612a1b565b61235881604051806060016040528060268152602001612cfc602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124979092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123eb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125095780820151818401526020810190506124ee565b50505050905090810190601f1680156125365780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061259983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612497565b905092915050565b6000808314156125b45760009050612621565b60008284029050828482816125c557fe5b041461261c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d226021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156126a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6127628363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a20565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561280a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61281660008383612a1b565b61282b8160025461262790919063ffffffff16565b600281905550612882816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b612a15846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a20565b50505050565b505050565b612a3f8273ffffffffffffffffffffffffffffffffffffffff16612c6b565b612ab1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612b005780518252602082019150602081019050602083039250612add565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612b62576040519150601f19603f3d011682016040523d82523d6000602084013e612b67565b606091505b509150915081612bdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115612c6557808060200190516020811015612bfe57600080fd5b8101908080519060200190929190505050612c64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612db4602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015612cad57506000801b8214155b9250505091905056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbcb430a2515b688cba85965598b9066b64c5796745fe75fbca4985da976ea9164736f6c63430006060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c806395d89b41116100b8578063bcdc3cfc1161007c578063bcdc3cfc14610639578063be35ef1414610657578063db260b3e146106af578063dd62ed3e146106dd578063e60df1b614610755578063e8e97e83146107ad57610142565b806395d89b4114610464578063a457c2d7146104e7578063a57306dc1461054d578063a694fc3a146105a5578063a9059cbb146105d357610142565b8063313ce5671161010a578063313ce5671461030257806339509351146103265780633d18b9121461038c5780634aa12ec71461039657806370a08231146103ee5780637f6c6f101461044657610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e5780632e1a7d4d146102d4575b600080fd5b61014f610805565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a7565b604051808215151515815260200191505060405180910390f35b6102386108c5565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cf565b604051808215151515815260200191505060405180910390f35b610300600480360360208110156102ea57600080fd5b81019080803590602001909291905050506109a8565b005b61030a610dc0565b604051808260ff1660ff16815260200191505060405180910390f35b6103726004803603604081101561033c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd7565b604051808215151515815260200191505060405180910390f35b610394610e8a565b005b6103d8600480360360208110156103ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a4565b6040518082815260200191505060405180910390f35b6104306004803603602081101561040457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b2565b6040518082815260200191505060405180910390f35b61044e6115fa565b6040518082815260200191505060405180910390f35b61046c611602565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ac578082015181840152602081019050610491565b50505050905090810190601f1680156104d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610533600480360360408110156104fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a4565b604051808215151515815260200191505060405180910390f35b61058f6004803603602081101561056357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611771565b6040518082815260200191505060405180910390f35b6105d1600480360360208110156105bb57600080fd5b8101908080359060200190929190505050611925565b005b61061f600480360360408110156105e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d49565b604051808215151515815260200191505060405180910390f35b610641611d67565b6040518082815260200191505060405180910390f35b6106996004803603602081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d71565b6040518082815260200191505060405180910390f35b6106db600480360360208110156106c557600080fd5b8101908080359060200190929190505050611dbd565b005b61073f600480360360408110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e21565b6040518082815260200191505060405180910390f35b6107976004803603602081101561076b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ea8565b6040518082815260200191505060405180910390f35b6107ef600480360360208110156107c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ef4565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b60006108bb6108b4611fd7565b8484611fdf565b6001905092915050565b6000600254905090565b60006108dc8484846121d6565b61099d846108e8611fd7565b61099885604051806060016040528060288152602001612d4360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094e611fd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124979092919063ffffffff16565b611fdf565b600190509392505050565b33600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154431115610c6b576000610a4a600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115610b9257610b4b600654610af283600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b81610af957fe5b04600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b610c808260095461255790919063ffffffff16565b600981905550610cdb82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461255790919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610d6e3383600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126af9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b6000600560009054906101000a900460ff16905090565b6000610e80610de4611fd7565b84610e7b8560016000610df5611fd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b611fdf565b6001905092915050565b33600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015443111561114d576000610f2c600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015411156110745761102d600654610fd483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b81610fdb57fe5b04600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061120333600a6111f66008856125a190919063ffffffff16565b816111fd57fe5b04612767565b6000600a61121b6002846125a190919063ffffffff16565b8161122257fe5b049050611251600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612767565b3373ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a836040518082815260200191505060405180910390a2505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154431115611568576000611347600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154111561148f576114486006546113ef83600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b816113f657fe5b04600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600043905090565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561169a5780601f1061166f5761010080835404028352916020019161169a565b820191906000526020600020905b81548152906001019060200180831161167d57829003601f168201915b5050505050905090565b60006117676116b1611fd7565b8461176285604051806060016040528060258152602001612dde60259139600160006116db611fd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124979092919063ffffffff16565b611fdf565b6001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015443111561191f576000611814600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154111561191d576119156006546118bc83600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b816118c357fe5b04600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b915050611920565b505b5b919050565b33600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154431115611be85760006119c7600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544361255790919063ffffffff16565b90506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115611b0f57611ac8600654611a6f83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546125a190919063ffffffff16565b81611a7657fe5b04600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461262790919063ffffffff16565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff167fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a2505b611bfd8260095461262790919063ffffffff16565b600981905550611c5882600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461262790919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611ced333084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661292e909392919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9083600954604051808381526020018281526020019250505060405180910390a25050565b6000611d5d611d56611fd7565b84846121d6565b6001905092915050565b6000600954905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e1757600080fd5b8060068190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f5057600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612065576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612d906024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612cda6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561225c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612d6b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612cb76023913960400191505060405180910390fd5b6122ed838383612a1b565b61235881604051806060016040528060268152602001612cfc602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124979092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123eb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125095780820151818401526020810190506124ee565b50505050905090810190601f1680156125365780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061259983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612497565b905092915050565b6000808314156125b45760009050612621565b60008284029050828482816125c557fe5b041461261c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d226021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156126a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6127628363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a20565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561280a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61281660008383612a1b565b61282b8160025461262790919063ffffffff16565b600281905550612882816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b612a15846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a20565b50505050565b505050565b612a3f8273ffffffffffffffffffffffffffffffffffffffff16612c6b565b612ab1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612b005780518252602082019150602081019050602083039250612add565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612b62576040519150601f19603f3d011682016040523d82523d6000602084013e612b67565b606091505b509150915081612bdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115612c6557808060200190516020811015612bfe57600080fd5b8101908080519060200190929190505050612c64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612db4602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015612cad57506000801b8214155b9250505091905056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbcb430a2515b688cba85965598b9066b64c5796745fe75fbca4985da976ea9164736f6c63430006060033
Deployed Bytecode Sourcemap
23508:6211:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;23508:6211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;6709:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6709:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8815:169;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8815:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7784:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9458:321;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9458:321:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;28988:339;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;28988:339:0;;;;;;;;;;;;;;;;;:::i;:::-;;7636:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10188:218;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10188:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;29338:370;;;:::i;:::-;;25815:1286;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;25815:1286:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7947:119;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7947:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27113:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6911:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6911:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10909:269;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10909:269:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27743:859;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;27743:859:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28610:370;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;28610:370:0;;;;;;;;;;;;;;;;;:::i;:::-;;8279:175;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8279:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27634:101;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27372:141;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;27372:141:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27525:97;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;27525:97:0;;;;;;;;;;;;;;;;;:::i;:::-;;8517:151;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8517:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27216:148;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;27216:148:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25634:169;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;25634:169:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6709:83;6746:13;6779:5;6772:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6709:83;:::o;8815:169::-;8898:4;8915:39;8924:12;:10;:12::i;:::-;8938:7;8947:6;8915:8;:39::i;:::-;8972:4;8965:11;;8815:169;;;;:::o;7784:100::-;7837:7;7864:12;;7857:19;;7784:100;:::o;9458:321::-;9564:4;9581:36;9591:6;9599:9;9610:6;9581:9;:36::i;:::-;9628:121;9637:6;9645:12;:10;:12::i;:::-;9659:89;9697:6;9659:89;;;;;;;;;;;;;;;;;:11;:19;9671:6;9659:19;;;;;;;;;;;;;;;:33;9679:12;:10;:12::i;:::-;9659:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9628:8;:121::i;:::-;9767:4;9760:11;;9458:321;;;;;:::o;28988:339::-;29049:10;24538:15;:24;24554:7;24538:24;;;;;;;;;;;;;;;:41;;;24523:12;:56;24519:1086;;;24596:20;24619:101;24678:15;:24;24694:7;24678:24;;;;;;;;;;;;;;;:41;;;24619:12;:58;;:101;;;;:::i;:::-;24596:124;;24876:1;24838:15;:24;24854:7;24838:24;;;;;;;;;;;;;;;:35;;;:39;24834:530;;;24933:415;25337:10;;25126:131;25244:12;25126:15;:24;25142:7;25126:24;;;;;;;;;;;;;;;:35;;;:117;;:131;;;;:::i;:::-;:221;;;;;;24933:15;:24;24949:7;24933:24;;;;;;;;;;;;;;;:32;;;:114;;:415;;;;:::i;:::-;24898:15;:24;24914:7;24898:24;;;;;;;;;;;;;;;:32;;:450;;;;24834:530;25444:12;25400:15;:24;25416:7;25400:24;;;;;;;;;;;;;;;:41;;:56;;;;25498:7;25490:50;;;25507:15;:24;25523:7;25507:24;;;;;;;;;;;;;;;:32;;;25490:50;;;;;;;;;;;;;;;;;;24519:1086;;29091:28:::1;29112:6;29091:16;;:20;;:28;;;;:::i;:::-;29072:16;:47;;;;29171:50;29214:6;29171:15;:27;29187:10;29171:27;;;;;;;;;;;;;;;:38;;;:42;;:50;;;;:::i;:::-;29130:15;:27;29146:10;29130:27;;;;;;;;;;;;;;;:38;;:91;;;;29232:42;29255:10;29267:6;29232:9;;;;;;;;;;;:22;;;;:42;;;;;:::i;:::-;29300:10;29290:29;;;29312:6;29290:29;;;;;;;;;;;;;;;;;;28988:339:::0;;:::o;7636:83::-;7677:5;7702:9;;;;;;;;;;;7695:16;;7636:83;:::o;10188:218::-;10276:4;10293:83;10302:12;:10;:12::i;:::-;10316:7;10325:50;10364:10;10325:11;:25;10337:12;:10;:12::i;:::-;10325:25;;;;;;;;;;;;;;;:34;10351:7;10325:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;10293:8;:83::i;:::-;10394:4;10387:11;;10188:218;;;;:::o;29338:370::-;29386:10;24538:15;:24;24554:7;24538:24;;;;;;;;;;;;;;;:41;;;24523:12;:56;24519:1086;;;24596:20;24619:101;24678:15;:24;24694:7;24678:24;;;;;;;;;;;;;;;:41;;;24619:12;:58;;:101;;;;:::i;:::-;24596:124;;24876:1;24838:15;:24;24854:7;24838:24;;;;;;;;;;;;;;;:35;;;:39;24834:530;;;24933:415;25337:10;;25126:131;25244:12;25126:15;:24;25142:7;25126:24;;;;;;;;;;;;;;;:35;;;:117;;:131;;;;:::i;:::-;:221;;;;;;24933:15;:24;24949:7;24933:24;;;;;;;;;;;;;;;:32;;;:114;;:415;;;;:::i;:::-;24898:15;:24;24914:7;24898:24;;;;;;;;;;;;;;;:32;;:450;;;;24834:530;25444:12;25400:15;:24;25416:7;25400:24;;;;;;;;;;;;;;;:41;;:56;;;;25498:7;25490:50;;;25507:15;:24;25523:7;25507:24;;;;;;;;;;;;;;;:32;;;25490:50;;;;;;;;;;;;;;;;;;24519:1086;;29408:14:::1;29425:15;:27;29441:10;29425:27;;;;;;;;;;;;;;;:35;;;29408:52;;29508:1;29470:15;:27;29486:10;29470:27;;;;;;;;;;;;;;;:35;;:39;;;;29519:37;29525:10;29553:2;29537:13;29548:1;29537:6;:10;;:13;;;;:::i;:::-;:18;;;;;;29519:5;:37::i;:::-;29566:25;29610:2;29594:13;29605:1;29594:6;:10;;:13;;;;:::i;:::-;:18;;;;;;29566:46;;29622:37;29628:11;;;;;;;;;;;29641:17;29622:5;:37::i;:::-;29682:10;29674:27;;;29694:6;29674:27;;;;;;;;;;;;;;;;;;25615:1;;29338:370:::0;:::o;25815:1286::-;25878:7;25917:15;:24;25933:7;25917:24;;;;;;;;;;;;;;;:41;;;25902:12;:56;25898:1145;;;25975:20;25998:101;26057:15;:24;26073:7;26057:24;;;;;;;;;;;;;;;:41;;;25998:12;:58;;:101;;;;:::i;:::-;25975:124;;26240:1;26202:15;:24;26218:7;26202:24;;;;;;;;;;;;;;;:35;;;:39;26198:530;;;26297:415;26701:10;;26490:131;26608:12;26490:15;:24;26506:7;26490:24;;;;;;;;;;;;;;;:35;;;:117;;:131;;;;:::i;:::-;:221;;;;;;26297:15;:24;26313:7;26297:24;;;;;;;;;;;;;;;:32;;;:114;;:415;;;;:::i;:::-;26262:15;:24;26278:7;26262:24;;;;;;;;;;;;;;;:32;;:450;;;;26198:530;26836:12;26792:15;:24;26808:7;26792:24;;;;;;;;;;;;;;;:41;;:56;;;;26926:7;26918:50;;;26935:15;:24;26951:7;26935:24;;;;;;;;;;;;;;;:32;;;26918:50;;;;;;;;;;;;;;;;;;25898:1145;;27060:15;:24;27076:7;27060:24;;;;;;;;;;;;;;;:32;;;27053:40;;25815:1286;;;:::o;7947:119::-;8013:7;8040:9;:18;8050:7;8040:18;;;;;;;;;;;;;;;;8033:25;;7947:119;;;:::o;27113:91::-;27157:7;27184:12;27177:19;;27113:91;:::o;6911:87::-;6950:13;6983:7;6976:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6911:87;:::o;10909:269::-;11002:4;11019:129;11028:12;:10;:12::i;:::-;11042:7;11051:96;11090:15;11051:96;;;;;;;;;;;;;;;;;:11;:25;11063:12;:10;:12::i;:::-;11051:25;;;;;;;;;;;;;;;:34;11077:7;11051:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11019:8;:129::i;:::-;11166:4;11159:11;;10909:269;;;;:::o;27743:859::-;27807:7;27846:15;:24;27862:7;27846:24;;;;;;;;;;;;;;;:41;;;27831:12;:56;27827:766;;;27904:20;27927:101;27986:15;:24;28002:7;27986:24;;;;;;;;;;;;;;;:41;;;27927:12;:58;;:101;;;;:::i;:::-;27904:124;;28184:1;28146:15;:24;28162:7;28146:24;;;;;;;;;;;;;;;:35;;;:39;28142:390;;;28213:303;28505:10;;28350:103;28440:12;28350:15;:24;28366:7;28350:24;;;;;;;;;;;;;;;:35;;;:89;;:103;;;;:::i;:::-;:165;;;;;;28213:15;:24;28229:7;28213:24;;;;;;;;;;;;;;;:32;;;:86;;:303;;;;:::i;:::-;28206:310;;;;;28142:390;27827:766;;27743:859;;;;:::o;28610:370::-;28668:10;24538:15;:24;24554:7;24538:24;;;;;;;;;;;;;;;:41;;;24523:12;:56;24519:1086;;;24596:20;24619:101;24678:15;:24;24694:7;24678:24;;;;;;;;;;;;;;;:41;;;24619:12;:58;;:101;;;;:::i;:::-;24596:124;;24876:1;24838:15;:24;24854:7;24838:24;;;;;;;;;;;;;;;:35;;;:39;24834:530;;;24933:415;25337:10;;25126:131;25244:12;25126:15;:24;25142:7;25126:24;;;;;;;;;;;;;;;:35;;;:117;;:131;;;;:::i;:::-;:221;;;;;;24933:15;:24;24949:7;24933:24;;;;;;;;;;;;;;;:32;;;:114;;:415;;;;:::i;:::-;24898:15;:24;24914:7;24898:24;;;;;;;;;;;;;;;:32;;:450;;;;24834:530;25444:12;25400:15;:24;25416:7;25400:24;;;;;;;;;;;;;;;:41;;:56;;;;25498:7;25490:50;;;25507:15;:24;25523:7;25507:24;;;;;;;;;;;;;;;:32;;;25490:50;;;;;;;;;;;;;;;;;;24519:1086;;28710:28:::1;28731:6;28710:16;;:20;;:28;;;;:::i;:::-;28691:16;:47;;;;28790:50;28833:6;28790:15;:27;28806:10;28790:27;;;;;;;;;;;;;;;:38;;;:42;;:50;;;;:::i;:::-;28749:15;:27;28765:10;28749:27;;;;;;;;;;;;;;;:38;;:91;;;;28851:61;28878:10;28898:4;28905:6;28851:9;;;;;;;;;;;:26;;;;:61;;;;;;:::i;:::-;28935:10;28928:44;;;28947:6;28955:16;;28928:44;;;;;;;;;;;;;;;;;;;;;;;;28610:370:::0;;:::o;8279:175::-;8365:4;8382:42;8392:12;:10;:12::i;:::-;8406:9;8417:6;8382:9;:42::i;:::-;8442:4;8435:11;;8279:175;;;;:::o;27634:101::-;27684:7;27711:16;;27704:23;;27634:101;:::o;27372:141::-;27442:7;27469:15;:25;27485:8;27469:25;;;;;;;;;;;;;;;:36;;;27462:43;;27372:141;;;:::o;27525:97::-;24428:5;;;;;;;;;;;24414:19;;:10;:19;;;24406:28;;12:1:-1;9;2:12;24406:28:0;27607:7:::1;27594:10;:20;;;;27525:97:::0;:::o;8517:151::-;8606:7;8633:11;:18;8645:5;8633:18;;;;;;;;;;;;;;;:27;8652:7;8633:27;;;;;;;;;;;;;;;;8626:34;;8517:151;;;;:::o;27216:148::-;27287:7;27314:15;:25;27330:8;27314:25;;;;;;;;;;;;;;;:42;;;27307:49;;27216:148;;;:::o;25634:169::-;25706:7;24428:5;;;;;;;;;;;24414:19;;:10;:19;;;24406:28;;12:1:-1;9;2:12;24406:28:0;25740:12:::1;25726:11;;:26;;;;;;;;;;;;;;;;;;25782:12;25763:9;;:32;;;;;;;;;;;;;;;;;;25634:169:::0;;;:::o;2881:106::-;2934:15;2969:10;2962:17;;2881:106;:::o;14056:346::-;14175:1;14158:19;;:5;:19;;;;14150:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14256:1;14237:21;;:7;:21;;;;14229:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14340:6;14310:11;:18;14322:5;14310:18;;;;;;;;;;;;;;;:27;14329:7;14310:27;;;;;;;;;;;;;;;:36;;;;14378:7;14362:32;;14371:5;14362:32;;;14387:6;14362:32;;;;;;;;;;;;;;;;;;14056:346;;;:::o;11668:539::-;11792:1;11774:20;;:6;:20;;;;11766:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11876:1;11855:23;;:9;:23;;;;11847:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11931:47;11952:6;11960:9;11971:6;11931:20;:47::i;:::-;12011:71;12033:6;12011:71;;;;;;;;;;;;;;;;;:9;:17;12021:6;12011:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;11991:9;:17;12001:6;11991:17;;;;;;;;;;;;;;;:91;;;;12116:32;12141:6;12116:9;:20;12126:9;12116:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12093:9;:20;12103:9;12093:20;;;;;;;;;;;;;;;:55;;;;12181:9;12164:35;;12173:6;12164:35;;;12192:6;12164:35;;;;;;;;;;;;;;;;;;11668:539;;;:::o;19924:192::-;20010:7;20043:1;20038;:6;;20046:12;20030:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;20030:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20070:9;20086:1;20082;:5;20070:17;;20107:1;20100:8;;;19924:192;;;;;:::o;19493:136::-;19551:7;19578:43;19582:1;19585;19578:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;19571:50;;19493:136;;;;:::o;20367:471::-;20425:7;20675:1;20670;:6;20666:47;;;20700:1;20693:8;;;;20666:47;20725:9;20741:1;20737;:5;20725:17;;20770:1;20765;20761;:5;;;;;;:10;20753:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20829:1;20822:8;;;20367:471;;;;;:::o;19037:181::-;19095:7;19115:9;19131:1;19127;:5;19115:17;;19156:1;19151;:6;;19143:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19209:1;19202:8;;;19037:181;;;;:::o;15616:177::-;15699:86;15719:5;15749:23;;;15774:2;15778:5;15726:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15726:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;15726:58:0;15699:19;:86::i;:::-;15616:177;;;:::o;12488:378::-;12591:1;12572:21;;:7;:21;;;;12564:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12642:49;12671:1;12675:7;12684:6;12642:20;:49::i;:::-;12719:24;12736:6;12719:12;;:16;;:24;;;;:::i;:::-;12704:12;:39;;;;12775:30;12798:6;12775:9;:18;12785:7;12775:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;12754:9;:18;12764:7;12754:18;;;;;;;;;;;;;;;:51;;;;12842:7;12821:37;;12838:1;12821:37;;;12851:6;12821:37;;;;;;;;;;;;;;;;;;12488:378;;:::o;15801:205::-;15902:96;15922:5;15952:27;;;15981:4;15987:2;15991:5;15929:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15929:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;15929:68:0;15902:19;:96::i;:::-;15801:205;;;;:::o;15427:92::-;;;;:::o;17660:1115::-;18265:27;18273:5;18265:25;;;:27::i;:::-;18257:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18402:12;18416:23;18451:5;18443:19;;18463:4;18443:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;18443:25:0;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;18401:67:0;;;;18487:7;18479:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18568:1;18548:10;:17;:21;18544:224;;;18690:10;18679:30;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18679:30:0;;;;;;;;;;;;;;;;18671:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18544:224;17660:1115;;;;:::o;3845:619::-;3905:4;4167:16;4194:19;4216:66;4194:88;;;;4385:7;4373:20;4361:32;;4425:11;4413:8;:23;;:42;;;;;4452:3;4440:15;;:8;:15;;4413:42;4405:51;;;;3845:619;;;:::o
Swarm Source
ipfs://dbcb430a2515b688cba85965598b9066b64c5796745fe75fbca4985da976ea91
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.