ERC-20
Overview
Max Total Supply
100,000,000 TOKENWATCH
Holders
451
Market
Price
$0.09 @ 0.000027 ETH
Onchain Market Cap
$9,041,800.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0 TOKENWATCHValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Tokenwatch
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-13 */ /** TOKENWATCH TOKEN CONTRACT **/ pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } abstract contract Ownable is Context { address public _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) public _balances; mapping(address => uint256) public unlockedStakeBalance; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); //_beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); //_afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface Staking { function invalidateUnlockedStaking(address user) external returns (bool); function unlockedStaking(address user, uint256 amount) external returns (bool); function lockedStaking(address user, uint256 amount, uint256 duration) external returns(bool); } pragma solidity ^0.8.9; contract Tokenwatch is Ownable, ERC20 { uint256 public maxTxAmount; uint256 public tradingEnabled = 1; address immutable stakingAddress; //Hard Coded Value Staking immutable staking; constructor(address _stakingAddress) ERC20("TokenWatch", "TOKENWATCH") { _mint(msg.sender, 100000000 * 10 ** decimals()); maxTxAmount = totalSupply() /100; stakingAddress = _stakingAddress; staking = Staking(_stakingAddress); tradingEnabled = 0; } function burn( uint256 amount) external onlyOwner(){ _burn(_msgSender(), amount); } function setMaxTxAmount(uint256 _amount) external onlyOwner() { require(_amount > 0, "MaxTxAmount cannot be 0"); maxTxAmount = (totalSupply() * _amount) /10000; } function enableTrading() external onlyOwner() { tradingEnabled = 1; } function unlockedStaking(uint256 amount) public{ address user = _msgSender(); require(_balances[user] > 100, "Insufficient tokens to stake"); require(amount <= _balances[user]/10, "You can only stake upto 10% of your balance"); _transfer(user, stakingAddress, amount); unlockedStakeBalance[user] += amount; staking.unlockedStaking(user, amount); } function removeUnlockedStakingInternal(address user, uint256 amount) external returns (bool){ require(_msgSender() == stakingAddress, "You are not authorized"); unlockedStakeBalance[user] = 0; _transfer(stakingAddress, user, amount); return true; } function lockedStaking(uint256 amount, uint256 duration) public{ address user = _msgSender(); require(_balances[user] > 100, "Insufficient tokens to stake"); _transfer(user, stakingAddress, amount); staking.lockedStaking(user, amount, duration); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal override { if(from != owner()){ require(tradingEnabled != 0, "Trading is disabled"); require(maxTxAmount >= amount, "Transaction is too large"); } } /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal override { if(from != stakingAddress && unlockedStakeBalance[from] > 100 + (_balances[from]/9)){ unlockedStakeBalance[from] = 0; staking.invalidateUnlockedStaking(from); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_stakingAddress","type":"address"}],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":[],"name":"enableTrading","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":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"lockedStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeUnlockedStakingInternal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unlockedStakeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unlockedStaking","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405260016009553480156200001657600080fd5b506040516200340a3803806200340a83398181016040528101906200003c9190620004fd565b6040518060400160405280600a81526020017f546f6b656e5761746368000000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f544f4b454e574154434800000000000000000000000000000000000000000000815250620000b86200028160201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600690805190602001906200018a929190620003e3565b508060079080519060200190620001a3929190620003e3565b505050620001e633620001bb6200028960201b60201c565b600a620001c99190620006c9565b6305f5e100620001da91906200071a565b6200029260201b60201c565b6064620001f8620003d960201b60201c565b620002049190620007aa565b6008819055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060006009819055505062000955565b600033905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000305576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002fc9062000843565b60405180910390fd5b806005600082825462000319919062000865565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003cd9190620008d3565b60405180910390a35050565b6000600554905090565b828054620003f1906200091f565b90600052602060002090601f01602090048101928262000415576000855562000461565b82601f106200043057805160ff191683800117855562000461565b8280016001018555821562000461579182015b828111156200046057825182559160200191906001019062000443565b5b50905062000470919062000474565b5090565b5b808211156200048f57600081600090555060010162000475565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004c58262000498565b9050919050565b620004d781620004b8565b8114620004e357600080fd5b50565b600081519050620004f781620004cc565b92915050565b60006020828403121562000516576200051562000493565b5b60006200052684828501620004e6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005bd578086048111156200059557620005946200052f565b5b6001851615620005a55780820291505b8081029050620005b5856200055e565b945062000575565b94509492505050565b600082620005d85760019050620006ab565b81620005e85760009050620006ab565b81600181146200060157600281146200060c5762000642565b6001915050620006ab565b60ff8411156200062157620006206200052f565b5b8360020a9150848211156200063b576200063a6200052f565b5b50620006ab565b5060208310610133831016604e8410600b84101617156200067c5782820a9050838111156200067657620006756200052f565b5b620006ab565b6200068b84848460016200056b565b92509050818404811115620006a557620006a46200052f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006d682620006b2565b9150620006e383620006bc565b9250620007127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005c6565b905092915050565b60006200072782620006b2565b91506200073483620006b2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000770576200076f6200052f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007b782620006b2565b9150620007c483620006b2565b925082620007d757620007d66200077b565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200082b601f83620007e2565b91506200083882620007f3565b602082019050919050565b600060208201905081810360008301526200085e816200081c565b9050919050565b60006200087282620006b2565b91506200087f83620006b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008b757620008b66200052f565b5b828201905092915050565b620008cd81620006b2565b82525050565b6000602082019050620008ea6000830184620008c2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200093857607f821691505b602082108114156200094f576200094e620008f0565b5b50919050565b60805160a051612a65620009a560003960008181610a8a015281816111970152611afc015260008181610a0d01528181610cb701528181610d940152818161117001526119c10152612a656000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638a8c523c116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610464578063ec28438a14610494578063f2fde38b146104b0578063fad26af6146104cc57610173565b8063a9059cbb146103e6578063b2bdfa7b14610416578063b3c498ad1461043457610173565b80638a8c523c146103365780638c0b5e22146103405780638cf7f23d1461035e5780638da5cb5b1461037a57806395d89b4114610398578063a457c2d7146103b657610173565b80633950935111610130578063395093511461026257806342966c68146102925780634ada218b146102ae5780636ebcf607146102cc57806370a08231146102fc578063715018a61461032c57610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c65780631e54b501146101e457806323b872dd14610214578063313ce56714610244575b600080fd5b6101806104e8565b60405161018d9190611c45565b60405180910390f35b6101b060048036038101906101ab9190611d00565b61057a565b6040516101bd9190611d5b565b60405180910390f35b6101ce61059d565b6040516101db9190611d85565b60405180910390f35b6101fe60048036038101906101f99190611da0565b6105a7565b60405161020b9190611d85565b60405180910390f35b61022e60048036038101906102299190611dcd565b6105bf565b60405161023b9190611d5b565b60405180910390f35b61024c6105ee565b6040516102599190611e3c565b60405180910390f35b61027c60048036038101906102779190611d00565b6105f7565b6040516102899190611d5b565b60405180910390f35b6102ac60048036038101906102a79190611e57565b61062e565b005b6102b66106be565b6040516102c39190611d85565b60405180910390f35b6102e660048036038101906102e19190611da0565b6106c4565b6040516102f39190611d85565b60405180910390f35b61031660048036038101906103119190611da0565b6106dc565b6040516103239190611d85565b60405180910390f35b610334610725565b005b61033e61085f565b005b6103486108e5565b6040516103559190611d85565b60405180910390f35b61037860048036038101906103739190611e57565b6108eb565b005b610382610b3a565b60405161038f9190611e93565b60405180910390f35b6103a0610b63565b6040516103ad9190611c45565b60405180910390f35b6103d060048036038101906103cb9190611d00565b610bf5565b6040516103dd9190611d5b565b60405180910390f35b61040060048036038101906103fb9190611d00565b610c6c565b60405161040d9190611d5b565b60405180910390f35b61041e610c8f565b60405161042b9190611e93565b60405180910390f35b61044e60048036038101906104499190611d00565b610cb3565b60405161045b9190611d5b565b60405180910390f35b61047e60048036038101906104799190611eae565b610dc4565b60405161048b9190611d85565b60405180910390f35b6104ae60048036038101906104a99190611e57565b610e4b565b005b6104ca60048036038101906104c59190611da0565b610f33565b005b6104e660048036038101906104e19190611eee565b6110dc565b005b6060600680546104f790611f5d565b80601f016020809104026020016040519081016040528092919081815260200182805461052390611f5d565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b60008061058561124a565b9050610592818585611252565b600191505092915050565b6000600554905090565b60036020528060005260406000206000915090505481565b6000806105ca61124a565b90506105d785828561141d565b6105e28585856114a9565b60019150509392505050565b60006012905090565b60008061060261124a565b90506106238185856106148589610dc4565b61061e9190611fbe565b611252565b600191505092915050565b61063661124a565b73ffffffffffffffffffffffffffffffffffffffff16610654610b3a565b73ffffffffffffffffffffffffffffffffffffffff16146106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612060565b60405180910390fd5b6106bb6106b561124a565b82611724565b50565b60095481565b60026020528060005260406000206000915090505481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61072d61124a565b73ffffffffffffffffffffffffffffffffffffffff1661074b610b3a565b73ffffffffffffffffffffffffffffffffffffffff16146107a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079890612060565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61086761124a565b73ffffffffffffffffffffffffffffffffffffffff16610885610b3a565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612060565b60405180910390fd5b6001600981905550565b60085481565b60006108f561124a565b90506064600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610979576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610970906120cc565b60405180910390fd5b600a600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c5919061211b565b821115610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fe906121be565b60405180910390fd5b610a32817f0000000000000000000000000000000000000000000000000000000000000000846114a9565b81600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a819190611fbe565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b5e85c7582846040518363ffffffff1660e01b8152600401610ae39291906121de565b602060405180830381600087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b359190612233565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610b7290611f5d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9e90611f5d565b8015610beb5780601f10610bc057610100808354040283529160200191610beb565b820191906000526020600020905b815481529060010190602001808311610bce57829003601f168201915b5050505050905090565b600080610c0061124a565b90506000610c0e8286610dc4565b905083811015610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906122d2565b60405180910390fd5b610c608286868403611252565b60019250505092915050565b600080610c7761124a565b9050610c848185856114a9565b600191505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610cf461124a565b73ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d419061233e565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba7f000000000000000000000000000000000000000000000000000000000000000084846114a9565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e5361124a565b73ffffffffffffffffffffffffffffffffffffffff16610e71610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90612060565b60405180910390fd5b60008111610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f01906123aa565b60405180910390fd5b61271081610f1661059d565b610f2091906123ca565b610f2a919061211b565b60088190555050565b610f3b61124a565b73ffffffffffffffffffffffffffffffffffffffff16610f59610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690612060565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690612496565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006110e661124a565b90506064600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161116a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611161906120cc565b60405180910390fd5b611195817f0000000000000000000000000000000000000000000000000000000000000000856114a9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663517af6aa8285856040518463ffffffff1660e01b81526004016111f2939291906124b6565b602060405180830381600087803b15801561120c57600080fd5b505af1158015611220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112449190612233565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b99061255f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611332576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611329906125f1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114109190611d85565b60405180910390a3505050565b60006114298484610dc4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114a35781811015611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c9061265d565b60405180910390fd5b6114a28484848403611252565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611510906126ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612781565b60405180910390fd5b6115948383836118f4565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561161b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161290612813565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161170b9190611d85565b60405180910390a361171e8484846119bf565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b906128a5565b60405180910390fd5b6117a0826000836118f4565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e90612937565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118db9190611d85565b60405180910390a36118ef836000846119bf565b505050565b6118fc610b3a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119ba5760006009541415611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b906129a3565b60405180910390fd5b8060085410156119b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b090612a0f565b60405180910390fd5b5b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ab057506009600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a62919061211b565b6064611a6e9190611fbe565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611ba7576000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663406c74fc846040518263ffffffff1660e01b8152600401611b539190611e93565b602060405180830381600087803b158015611b6d57600080fd5b505af1158015611b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba59190612233565b505b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611be6578082015181840152602081019050611bcb565b83811115611bf5576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c1782611bac565b611c218185611bb7565b9350611c31818560208601611bc8565b611c3a81611bfb565b840191505092915050565b60006020820190508181036000830152611c5f8184611c0c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c9782611c6c565b9050919050565b611ca781611c8c565b8114611cb257600080fd5b50565b600081359050611cc481611c9e565b92915050565b6000819050919050565b611cdd81611cca565b8114611ce857600080fd5b50565b600081359050611cfa81611cd4565b92915050565b60008060408385031215611d1757611d16611c67565b5b6000611d2585828601611cb5565b9250506020611d3685828601611ceb565b9150509250929050565b60008115159050919050565b611d5581611d40565b82525050565b6000602082019050611d706000830184611d4c565b92915050565b611d7f81611cca565b82525050565b6000602082019050611d9a6000830184611d76565b92915050565b600060208284031215611db657611db5611c67565b5b6000611dc484828501611cb5565b91505092915050565b600080600060608486031215611de657611de5611c67565b5b6000611df486828701611cb5565b9350506020611e0586828701611cb5565b9250506040611e1686828701611ceb565b9150509250925092565b600060ff82169050919050565b611e3681611e20565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b600060208284031215611e6d57611e6c611c67565b5b6000611e7b84828501611ceb565b91505092915050565b611e8d81611c8c565b82525050565b6000602082019050611ea86000830184611e84565b92915050565b60008060408385031215611ec557611ec4611c67565b5b6000611ed385828601611cb5565b9250506020611ee485828601611cb5565b9150509250929050565b60008060408385031215611f0557611f04611c67565b5b6000611f1385828601611ceb565b9250506020611f2485828601611ceb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f7557607f821691505b60208210811415611f8957611f88611f2e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fc982611cca565b9150611fd483611cca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200957612008611f8f565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061204a602083611bb7565b915061205582612014565b602082019050919050565b600060208201905081810360008301526120798161203d565b9050919050565b7f496e73756666696369656e7420746f6b656e7320746f207374616b6500000000600082015250565b60006120b6601c83611bb7565b91506120c182612080565b602082019050919050565b600060208201905081810360008301526120e5816120a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061212682611cca565b915061213183611cca565b925082612141576121406120ec565b5b828204905092915050565b7f596f752063616e206f6e6c79207374616b65207570746f20313025206f66207960008201527f6f75722062616c616e6365000000000000000000000000000000000000000000602082015250565b60006121a8602b83611bb7565b91506121b38261214c565b604082019050919050565b600060208201905081810360008301526121d78161219b565b9050919050565b60006040820190506121f36000830185611e84565b6122006020830184611d76565b9392505050565b61221081611d40565b811461221b57600080fd5b50565b60008151905061222d81612207565b92915050565b60006020828403121561224957612248611c67565b5b60006122578482850161221e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006122bc602583611bb7565b91506122c782612260565b604082019050919050565b600060208201905081810360008301526122eb816122af565b9050919050565b7f596f7520617265206e6f7420617574686f72697a656400000000000000000000600082015250565b6000612328601683611bb7565b9150612333826122f2565b602082019050919050565b600060208201905081810360008301526123578161231b565b9050919050565b7f4d61785478416d6f756e742063616e6e6f742062652030000000000000000000600082015250565b6000612394601783611bb7565b915061239f8261235e565b602082019050919050565b600060208201905081810360008301526123c381612387565b9050919050565b60006123d582611cca565b91506123e083611cca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561241957612418611f8f565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612480602683611bb7565b915061248b82612424565b604082019050919050565b600060208201905081810360008301526124af81612473565b9050919050565b60006060820190506124cb6000830186611e84565b6124d86020830185611d76565b6124e56040830184611d76565b949350505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612549602483611bb7565b9150612554826124ed565b604082019050919050565b600060208201905081810360008301526125788161253c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125db602283611bb7565b91506125e68261257f565b604082019050919050565b6000602082019050818103600083015261260a816125ce565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612647601d83611bb7565b915061265282612611565b602082019050919050565b600060208201905081810360008301526126768161263a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126d9602583611bb7565b91506126e48261267d565b604082019050919050565b60006020820190508181036000830152612708816126cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061276b602383611bb7565b91506127768261270f565b604082019050919050565b6000602082019050818103600083015261279a8161275e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006127fd602683611bb7565b9150612808826127a1565b604082019050919050565b6000602082019050818103600083015261282c816127f0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061288f602183611bb7565b915061289a82612833565b604082019050919050565b600060208201905081810360008301526128be81612882565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612921602283611bb7565b915061292c826128c5565b604082019050919050565b6000602082019050818103600083015261295081612914565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b600061298d601383611bb7565b915061299882612957565b602082019050919050565b600060208201905081810360008301526129bc81612980565b9050919050565b7f5472616e73616374696f6e20697320746f6f206c617267650000000000000000600082015250565b60006129f9601883611bb7565b9150612a04826129c3565b602082019050919050565b60006020820190508181036000830152612a28816129ec565b905091905056fea264697066735822122062c4ce658ed07158c17b18d30c64e06ddfceb16a2b2138deb811fb5f58df5a6d64736f6c63430008090033000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd5
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80638a8c523c116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610464578063ec28438a14610494578063f2fde38b146104b0578063fad26af6146104cc57610173565b8063a9059cbb146103e6578063b2bdfa7b14610416578063b3c498ad1461043457610173565b80638a8c523c146103365780638c0b5e22146103405780638cf7f23d1461035e5780638da5cb5b1461037a57806395d89b4114610398578063a457c2d7146103b657610173565b80633950935111610130578063395093511461026257806342966c68146102925780634ada218b146102ae5780636ebcf607146102cc57806370a08231146102fc578063715018a61461032c57610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c65780631e54b501146101e457806323b872dd14610214578063313ce56714610244575b600080fd5b6101806104e8565b60405161018d9190611c45565b60405180910390f35b6101b060048036038101906101ab9190611d00565b61057a565b6040516101bd9190611d5b565b60405180910390f35b6101ce61059d565b6040516101db9190611d85565b60405180910390f35b6101fe60048036038101906101f99190611da0565b6105a7565b60405161020b9190611d85565b60405180910390f35b61022e60048036038101906102299190611dcd565b6105bf565b60405161023b9190611d5b565b60405180910390f35b61024c6105ee565b6040516102599190611e3c565b60405180910390f35b61027c60048036038101906102779190611d00565b6105f7565b6040516102899190611d5b565b60405180910390f35b6102ac60048036038101906102a79190611e57565b61062e565b005b6102b66106be565b6040516102c39190611d85565b60405180910390f35b6102e660048036038101906102e19190611da0565b6106c4565b6040516102f39190611d85565b60405180910390f35b61031660048036038101906103119190611da0565b6106dc565b6040516103239190611d85565b60405180910390f35b610334610725565b005b61033e61085f565b005b6103486108e5565b6040516103559190611d85565b60405180910390f35b61037860048036038101906103739190611e57565b6108eb565b005b610382610b3a565b60405161038f9190611e93565b60405180910390f35b6103a0610b63565b6040516103ad9190611c45565b60405180910390f35b6103d060048036038101906103cb9190611d00565b610bf5565b6040516103dd9190611d5b565b60405180910390f35b61040060048036038101906103fb9190611d00565b610c6c565b60405161040d9190611d5b565b60405180910390f35b61041e610c8f565b60405161042b9190611e93565b60405180910390f35b61044e60048036038101906104499190611d00565b610cb3565b60405161045b9190611d5b565b60405180910390f35b61047e60048036038101906104799190611eae565b610dc4565b60405161048b9190611d85565b60405180910390f35b6104ae60048036038101906104a99190611e57565b610e4b565b005b6104ca60048036038101906104c59190611da0565b610f33565b005b6104e660048036038101906104e19190611eee565b6110dc565b005b6060600680546104f790611f5d565b80601f016020809104026020016040519081016040528092919081815260200182805461052390611f5d565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b60008061058561124a565b9050610592818585611252565b600191505092915050565b6000600554905090565b60036020528060005260406000206000915090505481565b6000806105ca61124a565b90506105d785828561141d565b6105e28585856114a9565b60019150509392505050565b60006012905090565b60008061060261124a565b90506106238185856106148589610dc4565b61061e9190611fbe565b611252565b600191505092915050565b61063661124a565b73ffffffffffffffffffffffffffffffffffffffff16610654610b3a565b73ffffffffffffffffffffffffffffffffffffffff16146106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612060565b60405180910390fd5b6106bb6106b561124a565b82611724565b50565b60095481565b60026020528060005260406000206000915090505481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61072d61124a565b73ffffffffffffffffffffffffffffffffffffffff1661074b610b3a565b73ffffffffffffffffffffffffffffffffffffffff16146107a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079890612060565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61086761124a565b73ffffffffffffffffffffffffffffffffffffffff16610885610b3a565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612060565b60405180910390fd5b6001600981905550565b60085481565b60006108f561124a565b90506064600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610979576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610970906120cc565b60405180910390fd5b600a600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c5919061211b565b821115610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fe906121be565b60405180910390fd5b610a32817f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd5846114a9565b81600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a819190611fbe565b925050819055507f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd573ffffffffffffffffffffffffffffffffffffffff1663b5e85c7582846040518363ffffffff1660e01b8152600401610ae39291906121de565b602060405180830381600087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b359190612233565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610b7290611f5d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9e90611f5d565b8015610beb5780601f10610bc057610100808354040283529160200191610beb565b820191906000526020600020905b815481529060010190602001808311610bce57829003601f168201915b5050505050905090565b600080610c0061124a565b90506000610c0e8286610dc4565b905083811015610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906122d2565b60405180910390fd5b610c608286868403611252565b60019250505092915050565b600080610c7761124a565b9050610c848185856114a9565b600191505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd573ffffffffffffffffffffffffffffffffffffffff16610cf461124a565b73ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d419061233e565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba7f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd584846114a9565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e5361124a565b73ffffffffffffffffffffffffffffffffffffffff16610e71610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90612060565b60405180910390fd5b60008111610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f01906123aa565b60405180910390fd5b61271081610f1661059d565b610f2091906123ca565b610f2a919061211b565b60088190555050565b610f3b61124a565b73ffffffffffffffffffffffffffffffffffffffff16610f59610b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690612060565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690612496565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006110e661124a565b90506064600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161116a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611161906120cc565b60405180910390fd5b611195817f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd5856114a9565b7f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd573ffffffffffffffffffffffffffffffffffffffff1663517af6aa8285856040518463ffffffff1660e01b81526004016111f2939291906124b6565b602060405180830381600087803b15801561120c57600080fd5b505af1158015611220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112449190612233565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b99061255f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611332576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611329906125f1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114109190611d85565b60405180910390a3505050565b60006114298484610dc4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114a35781811015611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c9061265d565b60405180910390fd5b6114a28484848403611252565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611510906126ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612781565b60405180910390fd5b6115948383836118f4565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561161b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161290612813565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161170b9190611d85565b60405180910390a361171e8484846119bf565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b906128a5565b60405180910390fd5b6117a0826000836118f4565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e90612937565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118db9190611d85565b60405180910390a36118ef836000846119bf565b505050565b6118fc610b3a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119ba5760006009541415611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b906129a3565b60405180910390fd5b8060085410156119b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b090612a0f565b60405180910390fd5b5b505050565b7f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ab057506009600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a62919061211b565b6064611a6e9190611fbe565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611ba7576000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd573ffffffffffffffffffffffffffffffffffffffff1663406c74fc846040518263ffffffff1660e01b8152600401611b539190611e93565b602060405180830381600087803b158015611b6d57600080fd5b505af1158015611b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba59190612233565b505b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611be6578082015181840152602081019050611bcb565b83811115611bf5576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c1782611bac565b611c218185611bb7565b9350611c31818560208601611bc8565b611c3a81611bfb565b840191505092915050565b60006020820190508181036000830152611c5f8184611c0c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c9782611c6c565b9050919050565b611ca781611c8c565b8114611cb257600080fd5b50565b600081359050611cc481611c9e565b92915050565b6000819050919050565b611cdd81611cca565b8114611ce857600080fd5b50565b600081359050611cfa81611cd4565b92915050565b60008060408385031215611d1757611d16611c67565b5b6000611d2585828601611cb5565b9250506020611d3685828601611ceb565b9150509250929050565b60008115159050919050565b611d5581611d40565b82525050565b6000602082019050611d706000830184611d4c565b92915050565b611d7f81611cca565b82525050565b6000602082019050611d9a6000830184611d76565b92915050565b600060208284031215611db657611db5611c67565b5b6000611dc484828501611cb5565b91505092915050565b600080600060608486031215611de657611de5611c67565b5b6000611df486828701611cb5565b9350506020611e0586828701611cb5565b9250506040611e1686828701611ceb565b9150509250925092565b600060ff82169050919050565b611e3681611e20565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b600060208284031215611e6d57611e6c611c67565b5b6000611e7b84828501611ceb565b91505092915050565b611e8d81611c8c565b82525050565b6000602082019050611ea86000830184611e84565b92915050565b60008060408385031215611ec557611ec4611c67565b5b6000611ed385828601611cb5565b9250506020611ee485828601611cb5565b9150509250929050565b60008060408385031215611f0557611f04611c67565b5b6000611f1385828601611ceb565b9250506020611f2485828601611ceb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f7557607f821691505b60208210811415611f8957611f88611f2e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fc982611cca565b9150611fd483611cca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200957612008611f8f565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061204a602083611bb7565b915061205582612014565b602082019050919050565b600060208201905081810360008301526120798161203d565b9050919050565b7f496e73756666696369656e7420746f6b656e7320746f207374616b6500000000600082015250565b60006120b6601c83611bb7565b91506120c182612080565b602082019050919050565b600060208201905081810360008301526120e5816120a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061212682611cca565b915061213183611cca565b925082612141576121406120ec565b5b828204905092915050565b7f596f752063616e206f6e6c79207374616b65207570746f20313025206f66207960008201527f6f75722062616c616e6365000000000000000000000000000000000000000000602082015250565b60006121a8602b83611bb7565b91506121b38261214c565b604082019050919050565b600060208201905081810360008301526121d78161219b565b9050919050565b60006040820190506121f36000830185611e84565b6122006020830184611d76565b9392505050565b61221081611d40565b811461221b57600080fd5b50565b60008151905061222d81612207565b92915050565b60006020828403121561224957612248611c67565b5b60006122578482850161221e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006122bc602583611bb7565b91506122c782612260565b604082019050919050565b600060208201905081810360008301526122eb816122af565b9050919050565b7f596f7520617265206e6f7420617574686f72697a656400000000000000000000600082015250565b6000612328601683611bb7565b9150612333826122f2565b602082019050919050565b600060208201905081810360008301526123578161231b565b9050919050565b7f4d61785478416d6f756e742063616e6e6f742062652030000000000000000000600082015250565b6000612394601783611bb7565b915061239f8261235e565b602082019050919050565b600060208201905081810360008301526123c381612387565b9050919050565b60006123d582611cca565b91506123e083611cca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561241957612418611f8f565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612480602683611bb7565b915061248b82612424565b604082019050919050565b600060208201905081810360008301526124af81612473565b9050919050565b60006060820190506124cb6000830186611e84565b6124d86020830185611d76565b6124e56040830184611d76565b949350505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612549602483611bb7565b9150612554826124ed565b604082019050919050565b600060208201905081810360008301526125788161253c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125db602283611bb7565b91506125e68261257f565b604082019050919050565b6000602082019050818103600083015261260a816125ce565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612647601d83611bb7565b915061265282612611565b602082019050919050565b600060208201905081810360008301526126768161263a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126d9602583611bb7565b91506126e48261267d565b604082019050919050565b60006020820190508181036000830152612708816126cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061276b602383611bb7565b91506127768261270f565b604082019050919050565b6000602082019050818103600083015261279a8161275e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006127fd602683611bb7565b9150612808826127a1565b604082019050919050565b6000602082019050818103600083015261282c816127f0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061288f602183611bb7565b915061289a82612833565b604082019050919050565b600060208201905081810360008301526128be81612882565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612921602283611bb7565b915061292c826128c5565b604082019050919050565b6000602082019050818103600083015261295081612914565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b600061298d601383611bb7565b915061299882612957565b602082019050919050565b600060208201905081810360008301526129bc81612980565b9050919050565b7f5472616e73616374696f6e20697320746f6f206c617267650000000000000000600082015250565b60006129f9601883611bb7565b9150612a04826129c3565b602082019050919050565b60006020820190508181036000830152612a28816129ec565b905091905056fea264697066735822122062c4ce658ed07158c17b18d30c64e06ddfceb16a2b2138deb811fb5f58df5a6d64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd5
-----Decoded View---------------
Arg [0] : _stakingAddress (address): 0x770dd3cE72a7537DD96D8C06305Be690bA781Fd5
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000770dd3ce72a7537dd96d8c06305be690ba781fd5
Deployed Bytecode Sourcemap
18611:3172:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7096:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9447:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8216:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6361:55;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10228:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8058:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10932:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19131:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18692:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6310:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8387:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3741:148;;;:::i;:::-;;19429:83;;;:::i;:::-;;18659:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19520:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3518:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7315:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11673:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8720:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3240:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19934:289;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8976:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19236:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3899:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20231:288;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7096:100;7150:13;7183:5;7176:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7096:100;:::o;9447:201::-;9530:4;9547:13;9563:12;:10;:12::i;:::-;9547:28;;9586:32;9595:5;9602:7;9611:6;9586:8;:32::i;:::-;9636:4;9629:11;;;9447:201;;;;:::o;8216:108::-;8277:7;8304:12;;8297:19;;8216:108;:::o;6361:55::-;;;;;;;;;;;;;;;;;:::o;10228:295::-;10359:4;10376:15;10394:12;:10;:12::i;:::-;10376:30;;10417:38;10433:4;10439:7;10448:6;10417:15;:38::i;:::-;10466:27;10476:4;10482:2;10486:6;10466:9;:27::i;:::-;10511:4;10504:11;;;10228:295;;;;;:::o;8058:93::-;8116:5;8141:2;8134:9;;8058:93;:::o;10932:238::-;11020:4;11037:13;11053:12;:10;:12::i;:::-;11037:28;;11076:64;11085:5;11092:7;11129:10;11101:25;11111:5;11118:7;11101:9;:25::i;:::-;:38;;;;:::i;:::-;11076:8;:64::i;:::-;11158:4;11151:11;;;10932:238;;;;:::o;19131:97::-;3664:12;:10;:12::i;:::-;3653:23;;:7;:5;:7::i;:::-;:23;;;3645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19193:27:::1;19199:12;:10;:12::i;:::-;19213:6;19193:5;:27::i;:::-;19131:97:::0;:::o;18692:33::-;;;;:::o;6310:44::-;;;;;;;;;;;;;;;;;:::o;8387:127::-;8461:7;8488:9;:18;8498:7;8488:18;;;;;;;;;;;;;;;;8481:25;;8387:127;;;:::o;3741:148::-;3664:12;:10;:12::i;:::-;3653:23;;:7;:5;:7::i;:::-;:23;;;3645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3848:1:::1;3811:40;;3832:6;::::0;::::1;;;;;;;;3811:40;;;;;;;;;;;;3879:1;3862:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3741:148::o:0;19429:83::-;3664:12;:10;:12::i;:::-;3653:23;;:7;:5;:7::i;:::-;:23;;;3645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19503:1:::1;19486:14;:18;;;;19429:83::o:0;18659:26::-;;;;:::o;19520:406::-;19578:12;19593;:10;:12::i;:::-;19578:27;;19642:3;19624:9;:15;19634:4;19624:15;;;;;;;;;;;;;;;;:21;19616:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19723:2;19707:9;:15;19717:4;19707:15;;;;;;;;;;;;;;;;:18;;;;:::i;:::-;19697:6;:28;;19689:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19784:39;19794:4;19800:14;19816:6;19784:9;:39::i;:::-;19864:6;19834:20;:26;19855:4;19834:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;19881:7;:23;;;19905:4;19911:6;19881:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19567:359;19520:406;:::o;3518:87::-;3564:7;3591:6;;;;;;;;;;;3584:13;;3518:87;:::o;7315:104::-;7371:13;7404:7;7397:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:104;:::o;11673:436::-;11766:4;11783:13;11799:12;:10;:12::i;:::-;11783:28;;11822:24;11849:25;11859:5;11866:7;11849:9;:25::i;:::-;11822:52;;11913:15;11893:16;:35;;11885:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12006:60;12015:5;12022:7;12050:15;12031:16;:34;12006:8;:60::i;:::-;12097:4;12090:11;;;;11673:436;;;;:::o;8720:193::-;8799:4;8816:13;8832:12;:10;:12::i;:::-;8816:28;;8855;8865:5;8872:2;8876:6;8855:9;:28::i;:::-;8901:4;8894:11;;;8720:193;;;;:::o;3240:21::-;;;;;;;;;;;;:::o;19934:289::-;20021:4;20061:14;20045:30;;:12;:10;:12::i;:::-;:30;;;20037:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20142:1;20113:20;:26;20134:4;20113:26;;;;;;;;;;;;;;;:30;;;;20154:39;20164:14;20180:4;20186:6;20154:9;:39::i;:::-;20211:4;20204:11;;19934:289;;;;:::o;8976:151::-;9065:7;9092:11;:18;9104:5;9092:18;;;;;;;;;;;;;;;:27;9111:7;9092:27;;;;;;;;;;;;;;;;9085:34;;8976:151;;;;:::o;19236:185::-;3664:12;:10;:12::i;:::-;3653:23;;:7;:5;:7::i;:::-;:23;;;3645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19327:1:::1;19317:7;:11;19309:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;19408:5;19398:7;19382:13;:11;:13::i;:::-;:23;;;;:::i;:::-;19381:32;;;;:::i;:::-;19367:11;:46;;;;19236:185:::0;:::o;3899:244::-;3664:12;:10;:12::i;:::-;3653:23;;:7;:5;:7::i;:::-;:23;;;3645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4008:1:::1;3988:22;;:8;:22;;;;3980:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4098:8;4069:38;;4090:6;::::0;::::1;;;;;;;;4069:38;;;;;;;;;;;;4127:8;4118:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3899:244:::0;:::o;20231:288::-;20305:12;20320;:10;:12::i;:::-;20305:27;;20369:3;20351:9;:15;20361:4;20351:15;;;;;;;;;;;;;;;;:21;20343:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;20416:39;20426:4;20432:14;20448:6;20416:9;:39::i;:::-;20466:7;:21;;;20488:4;20494:6;20502:8;20466:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20294:225;20231:288;;:::o;103:98::-;156:7;183:10;176:17;;103:98;:::o;15704:380::-;15857:1;15840:19;;:5;:19;;;;15832:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15938:1;15919:21;;:7;:21;;;;15911:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16022:6;15992:11;:18;16004:5;15992:18;;;;;;;;;;;;;;;:27;16011:7;15992:27;;;;;;;;;;;;;;;:36;;;;16060:7;16044:32;;16053:5;16044:32;;;16069:6;16044:32;;;;;;:::i;:::-;;;;;;;;15704:380;;;:::o;16375:453::-;16510:24;16537:25;16547:5;16554:7;16537:9;:25::i;:::-;16510:52;;16597:17;16577:16;:37;16573:248;;16659:6;16639:16;:26;;16631:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16743:51;16752:5;16759:7;16787:6;16768:16;:25;16743:8;:51::i;:::-;16573:248;16499:329;16375:453;;;:::o;12579:840::-;12726:1;12710:18;;:4;:18;;;;12702:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12803:1;12789:16;;:2;:16;;;;12781:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12858:38;12879:4;12885:2;12889:6;12858:20;:38::i;:::-;12909:19;12931:9;:15;12941:4;12931:15;;;;;;;;;;;;;;;;12909:37;;12980:6;12965:11;:21;;12957:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13097:6;13083:11;:20;13065:9;:15;13075:4;13065:15;;;;;;;;;;;;;;;:38;;;;13300:6;13283:9;:13;13293:2;13283:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13350:2;13335:26;;13344:4;13335:26;;;13354:6;13335:26;;;;;;:::i;:::-;;;;;;;;13374:37;13394:4;13400:2;13404:6;13374:19;:37::i;:::-;12691:728;12579:840;;;:::o;14591:675::-;14694:1;14675:21;;:7;:21;;;;14667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14747:49;14768:7;14785:1;14789:6;14747:20;:49::i;:::-;14809:22;14834:9;:18;14844:7;14834:18;;;;;;;;;;;;;;;;14809:43;;14889:6;14871:14;:24;;14863:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15008:6;14991:14;:23;14970:9;:18;14980:7;14970:18;;;;;;;;;;;;;;;:44;;;;15125:6;15109:12;;:22;;;;;;;;;;;15186:1;15160:37;;15169:7;15160:37;;;15190:6;15160:37;;;;;;:::i;:::-;;;;;;;;15210:48;15230:7;15247:1;15251:6;15210:19;:48::i;:::-;14656:610;14591:675;;:::o;20527:312::-;20673:7;:5;:7::i;:::-;20665:15;;:4;:15;;;20662:170;;20722:1;20704:14;;:19;;20696:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;20785:6;20770:11;;:21;;20762:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20662:170;20527:312;;;:::o;21443:337::-;21588:14;21580:22;;:4;:22;;;;:80;;;;;21658:1;21642:9;:15;21652:4;21642:15;;;;;;;;;;;;;;;;:17;;;;:::i;:::-;21635:3;:25;;;;:::i;:::-;21606:20;:26;21627:4;21606:26;;;;;;;;;;;;;;;;:54;21580:80;21577:196;;;21706:1;21676:20;:26;21697:4;21676:26;;;;;;;;;;;;;;;:31;;;;21722:7;:33;;;21756:4;21722:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21577:196;21443:337;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:::-;6471:6;6479;6528:2;6516:9;6507:7;6503:23;6499:32;6496:119;;;6534:79;;:::i;:::-;6496:119;6654:1;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6625:117;6781:2;6807:53;6852:7;6843:6;6832:9;6828:22;6807:53;:::i;:::-;6797:63;;6752:118;6403:474;;;;;:::o;6883:180::-;6931:77;6928:1;6921:88;7028:4;7025:1;7018:15;7052:4;7049:1;7042:15;7069:320;7113:6;7150:1;7144:4;7140:12;7130:22;;7197:1;7191:4;7187:12;7218:18;7208:81;;7274:4;7266:6;7262:17;7252:27;;7208:81;7336:2;7328:6;7325:14;7305:18;7302:38;7299:84;;;7355:18;;:::i;:::-;7299:84;7120:269;7069:320;;;:::o;7395:180::-;7443:77;7440:1;7433:88;7540:4;7537:1;7530:15;7564:4;7561:1;7554:15;7581:305;7621:3;7640:20;7658:1;7640:20;:::i;:::-;7635:25;;7674:20;7692:1;7674:20;:::i;:::-;7669:25;;7828:1;7760:66;7756:74;7753:1;7750:81;7747:107;;;7834:18;;:::i;:::-;7747:107;7878:1;7875;7871:9;7864:16;;7581:305;;;;:::o;7892:182::-;8032:34;8028:1;8020:6;8016:14;8009:58;7892:182;:::o;8080:366::-;8222:3;8243:67;8307:2;8302:3;8243:67;:::i;:::-;8236:74;;8319:93;8408:3;8319:93;:::i;:::-;8437:2;8432:3;8428:12;8421:19;;8080:366;;;:::o;8452:419::-;8618:4;8656:2;8645:9;8641:18;8633:26;;8705:9;8699:4;8695:20;8691:1;8680:9;8676:17;8669:47;8733:131;8859:4;8733:131;:::i;:::-;8725:139;;8452:419;;;:::o;8877:178::-;9017:30;9013:1;9005:6;9001:14;8994:54;8877:178;:::o;9061:366::-;9203:3;9224:67;9288:2;9283:3;9224:67;:::i;:::-;9217:74;;9300:93;9389:3;9300:93;:::i;:::-;9418:2;9413:3;9409:12;9402:19;;9061:366;;;:::o;9433:419::-;9599:4;9637:2;9626:9;9622:18;9614:26;;9686:9;9680:4;9676:20;9672:1;9661:9;9657:17;9650:47;9714:131;9840:4;9714:131;:::i;:::-;9706:139;;9433:419;;;:::o;9858:180::-;9906:77;9903:1;9896:88;10003:4;10000:1;9993:15;10027:4;10024:1;10017:15;10044:185;10084:1;10101:20;10119:1;10101:20;:::i;:::-;10096:25;;10135:20;10153:1;10135:20;:::i;:::-;10130:25;;10174:1;10164:35;;10179:18;;:::i;:::-;10164:35;10221:1;10218;10214:9;10209:14;;10044:185;;;;:::o;10235:230::-;10375:34;10371:1;10363:6;10359:14;10352:58;10444:13;10439:2;10431:6;10427:15;10420:38;10235:230;:::o;10471:366::-;10613:3;10634:67;10698:2;10693:3;10634:67;:::i;:::-;10627:74;;10710:93;10799:3;10710:93;:::i;:::-;10828:2;10823:3;10819:12;10812:19;;10471:366;;;:::o;10843:419::-;11009:4;11047:2;11036:9;11032:18;11024:26;;11096:9;11090:4;11086:20;11082:1;11071:9;11067:17;11060:47;11124:131;11250:4;11124:131;:::i;:::-;11116:139;;10843:419;;;:::o;11268:332::-;11389:4;11427:2;11416:9;11412:18;11404:26;;11440:71;11508:1;11497:9;11493:17;11484:6;11440:71;:::i;:::-;11521:72;11589:2;11578:9;11574:18;11565:6;11521:72;:::i;:::-;11268:332;;;;;:::o;11606:116::-;11676:21;11691:5;11676:21;:::i;:::-;11669:5;11666:32;11656:60;;11712:1;11709;11702:12;11656:60;11606:116;:::o;11728:137::-;11782:5;11813:6;11807:13;11798:22;;11829:30;11853:5;11829:30;:::i;:::-;11728:137;;;;:::o;11871:345::-;11938:6;11987:2;11975:9;11966:7;11962:23;11958:32;11955:119;;;11993:79;;:::i;:::-;11955:119;12113:1;12138:61;12191:7;12182:6;12171:9;12167:22;12138:61;:::i;:::-;12128:71;;12084:125;11871:345;;;;:::o;12222:224::-;12362:34;12358:1;12350:6;12346:14;12339:58;12431:7;12426:2;12418:6;12414:15;12407:32;12222:224;:::o;12452:366::-;12594:3;12615:67;12679:2;12674:3;12615:67;:::i;:::-;12608:74;;12691:93;12780:3;12691:93;:::i;:::-;12809:2;12804:3;12800:12;12793:19;;12452:366;;;:::o;12824:419::-;12990:4;13028:2;13017:9;13013:18;13005:26;;13077:9;13071:4;13067:20;13063:1;13052:9;13048:17;13041:47;13105:131;13231:4;13105:131;:::i;:::-;13097:139;;12824:419;;;:::o;13249:172::-;13389:24;13385:1;13377:6;13373:14;13366:48;13249:172;:::o;13427:366::-;13569:3;13590:67;13654:2;13649:3;13590:67;:::i;:::-;13583:74;;13666:93;13755:3;13666:93;:::i;:::-;13784:2;13779:3;13775:12;13768:19;;13427:366;;;:::o;13799:419::-;13965:4;14003:2;13992:9;13988:18;13980:26;;14052:9;14046:4;14042:20;14038:1;14027:9;14023:17;14016:47;14080:131;14206:4;14080:131;:::i;:::-;14072:139;;13799:419;;;:::o;14224:173::-;14364:25;14360:1;14352:6;14348:14;14341:49;14224:173;:::o;14403:366::-;14545:3;14566:67;14630:2;14625:3;14566:67;:::i;:::-;14559:74;;14642:93;14731:3;14642:93;:::i;:::-;14760:2;14755:3;14751:12;14744:19;;14403:366;;;:::o;14775:419::-;14941:4;14979:2;14968:9;14964:18;14956:26;;15028:9;15022:4;15018:20;15014:1;15003:9;14999:17;14992:47;15056:131;15182:4;15056:131;:::i;:::-;15048:139;;14775:419;;;:::o;15200:348::-;15240:7;15263:20;15281:1;15263:20;:::i;:::-;15258:25;;15297:20;15315:1;15297:20;:::i;:::-;15292:25;;15485:1;15417:66;15413:74;15410:1;15407:81;15402:1;15395:9;15388:17;15384:105;15381:131;;;15492:18;;:::i;:::-;15381:131;15540:1;15537;15533:9;15522:20;;15200:348;;;;:::o;15554:225::-;15694:34;15690:1;15682:6;15678:14;15671:58;15763:8;15758:2;15750:6;15746:15;15739:33;15554:225;:::o;15785:366::-;15927:3;15948:67;16012:2;16007:3;15948:67;:::i;:::-;15941:74;;16024:93;16113:3;16024:93;:::i;:::-;16142:2;16137:3;16133:12;16126:19;;15785:366;;;:::o;16157:419::-;16323:4;16361:2;16350:9;16346:18;16338:26;;16410:9;16404:4;16400:20;16396:1;16385:9;16381:17;16374:47;16438:131;16564:4;16438:131;:::i;:::-;16430:139;;16157:419;;;:::o;16582:442::-;16731:4;16769:2;16758:9;16754:18;16746:26;;16782:71;16850:1;16839:9;16835:17;16826:6;16782:71;:::i;:::-;16863:72;16931:2;16920:9;16916:18;16907:6;16863:72;:::i;:::-;16945;17013:2;17002:9;16998:18;16989:6;16945:72;:::i;:::-;16582:442;;;;;;:::o;17030:223::-;17170:34;17166:1;17158:6;17154:14;17147:58;17239:6;17234:2;17226:6;17222:15;17215:31;17030:223;:::o;17259:366::-;17401:3;17422:67;17486:2;17481:3;17422:67;:::i;:::-;17415:74;;17498:93;17587:3;17498:93;:::i;:::-;17616:2;17611:3;17607:12;17600:19;;17259:366;;;:::o;17631:419::-;17797:4;17835:2;17824:9;17820:18;17812:26;;17884:9;17878:4;17874:20;17870:1;17859:9;17855:17;17848:47;17912:131;18038:4;17912:131;:::i;:::-;17904:139;;17631:419;;;:::o;18056:221::-;18196:34;18192:1;18184:6;18180:14;18173:58;18265:4;18260:2;18252:6;18248:15;18241:29;18056:221;:::o;18283:366::-;18425:3;18446:67;18510:2;18505:3;18446:67;:::i;:::-;18439:74;;18522:93;18611:3;18522:93;:::i;:::-;18640:2;18635:3;18631:12;18624:19;;18283:366;;;:::o;18655:419::-;18821:4;18859:2;18848:9;18844:18;18836:26;;18908:9;18902:4;18898:20;18894:1;18883:9;18879:17;18872:47;18936:131;19062:4;18936:131;:::i;:::-;18928:139;;18655:419;;;:::o;19080:179::-;19220:31;19216:1;19208:6;19204:14;19197:55;19080:179;:::o;19265:366::-;19407:3;19428:67;19492:2;19487:3;19428:67;:::i;:::-;19421:74;;19504:93;19593:3;19504:93;:::i;:::-;19622:2;19617:3;19613:12;19606:19;;19265:366;;;:::o;19637:419::-;19803:4;19841:2;19830:9;19826:18;19818:26;;19890:9;19884:4;19880:20;19876:1;19865:9;19861:17;19854:47;19918:131;20044:4;19918:131;:::i;:::-;19910:139;;19637:419;;;:::o;20062:224::-;20202:34;20198:1;20190:6;20186:14;20179:58;20271:7;20266:2;20258:6;20254:15;20247:32;20062:224;:::o;20292:366::-;20434:3;20455:67;20519:2;20514:3;20455:67;:::i;:::-;20448:74;;20531:93;20620:3;20531:93;:::i;:::-;20649:2;20644:3;20640:12;20633:19;;20292:366;;;:::o;20664:419::-;20830:4;20868:2;20857:9;20853:18;20845:26;;20917:9;20911:4;20907:20;20903:1;20892:9;20888:17;20881:47;20945:131;21071:4;20945:131;:::i;:::-;20937:139;;20664:419;;;:::o;21089:222::-;21229:34;21225:1;21217:6;21213:14;21206:58;21298:5;21293:2;21285:6;21281:15;21274:30;21089:222;:::o;21317:366::-;21459:3;21480:67;21544:2;21539:3;21480:67;:::i;:::-;21473:74;;21556:93;21645:3;21556:93;:::i;:::-;21674:2;21669:3;21665:12;21658:19;;21317:366;;;:::o;21689:419::-;21855:4;21893:2;21882:9;21878:18;21870:26;;21942:9;21936:4;21932:20;21928:1;21917:9;21913:17;21906:47;21970:131;22096:4;21970:131;:::i;:::-;21962:139;;21689:419;;;:::o;22114:225::-;22254:34;22250:1;22242:6;22238:14;22231:58;22323:8;22318:2;22310:6;22306:15;22299:33;22114:225;:::o;22345:366::-;22487:3;22508:67;22572:2;22567:3;22508:67;:::i;:::-;22501:74;;22584:93;22673:3;22584:93;:::i;:::-;22702:2;22697:3;22693:12;22686:19;;22345:366;;;:::o;22717:419::-;22883:4;22921:2;22910:9;22906:18;22898:26;;22970:9;22964:4;22960:20;22956:1;22945:9;22941:17;22934:47;22998:131;23124:4;22998:131;:::i;:::-;22990:139;;22717:419;;;:::o;23142:220::-;23282:34;23278:1;23270:6;23266:14;23259:58;23351:3;23346:2;23338:6;23334:15;23327:28;23142:220;:::o;23368:366::-;23510:3;23531:67;23595:2;23590:3;23531:67;:::i;:::-;23524:74;;23607:93;23696:3;23607:93;:::i;:::-;23725:2;23720:3;23716:12;23709:19;;23368:366;;;:::o;23740:419::-;23906:4;23944:2;23933:9;23929:18;23921:26;;23993:9;23987:4;23983:20;23979:1;23968:9;23964:17;23957:47;24021:131;24147:4;24021:131;:::i;:::-;24013:139;;23740:419;;;:::o;24165:221::-;24305:34;24301:1;24293:6;24289:14;24282:58;24374:4;24369:2;24361:6;24357:15;24350:29;24165:221;:::o;24392:366::-;24534:3;24555:67;24619:2;24614:3;24555:67;:::i;:::-;24548:74;;24631:93;24720:3;24631:93;:::i;:::-;24749:2;24744:3;24740:12;24733:19;;24392:366;;;:::o;24764:419::-;24930:4;24968:2;24957:9;24953:18;24945:26;;25017:9;25011:4;25007:20;25003:1;24992:9;24988:17;24981:47;25045:131;25171:4;25045:131;:::i;:::-;25037:139;;24764:419;;;:::o;25189:169::-;25329:21;25325:1;25317:6;25313:14;25306:45;25189:169;:::o;25364:366::-;25506:3;25527:67;25591:2;25586:3;25527:67;:::i;:::-;25520:74;;25603:93;25692:3;25603:93;:::i;:::-;25721:2;25716:3;25712:12;25705:19;;25364:366;;;:::o;25736:419::-;25902:4;25940:2;25929:9;25925:18;25917:26;;25989:9;25983:4;25979:20;25975:1;25964:9;25960:17;25953:47;26017:131;26143:4;26017:131;:::i;:::-;26009:139;;25736:419;;;:::o;26161:174::-;26301:26;26297:1;26289:6;26285:14;26278:50;26161:174;:::o;26341:366::-;26483:3;26504:67;26568:2;26563:3;26504:67;:::i;:::-;26497:74;;26580:93;26669:3;26580:93;:::i;:::-;26698:2;26693:3;26689:12;26682:19;;26341:366;;;:::o;26713:419::-;26879:4;26917:2;26906:9;26902:18;26894:26;;26966:9;26960:4;26956:20;26952:1;26941:9;26937:17;26930:47;26994:131;27120:4;26994:131;:::i;:::-;26986:139;;26713:419;;;:::o
Swarm Source
ipfs://62c4ce658ed07158c17b18d30c64e06ddfceb16a2b2138deb811fb5f58df5a6d
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.