ERC-20
Gaming
Overview
Max Total Supply
68,969,996,349,899.999999999999999999 FEVO
Holders
609 (0.00%)
Market
Price
$0.00 @ 0.000000 MATIC (-0.15%)
Onchain Market Cap
$2,503,610.87
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,500 FEVOValue
$0.00 ( ~0 MATIC) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
FlappyBirdEvolution
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2024-03-14 */ // File: @openzeppelin/[email protected]/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/[email protected]/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/[email protected]/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/[email protected]/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/[email protected]/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.7.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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _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; _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; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: @openzeppelin/[email protected]/token/ERC20/extensions/ERC20Burnable.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } // File: contracts/Token.sol pragma solidity ^0.8.4; /// @custom:security-contact [email protected] contract FlappyBirdEvolution is ERC20, ERC20Burnable, Ownable { struct Claim{ uint256 FEVOAmount; uint256 data; uint256 value1; uint256 value2; bytes32 value3; bytes32 value4; bytes32 value5; } mapping(address => Claim[]) claim; mapping(address => uint256) totalClaim; mapping (address => bool) public allowedContracts; function setApproveContract(address _contract, bool _allow) public onlyOwner{ allowedContracts[_contract] = _allow; } function addClaim(address _address, uint256 _fevoAmount,uint256 _value1,uint256 _value2,bytes32 _value3,bytes32 _value4,bytes32 _value5) external{ require(allowedContracts[msg.sender] , 'Contract not allowed' ); claim[_address].push(Claim(_fevoAmount,block.timestamp ,_value1,_value2,_value3,_value4,_value5)); totalClaim[_address] += _fevoAmount; } function getClaim(address _address, uint index) public view returns(Claim memory){ return claim[_address][index]; } function getClaimCount(address _address) public view returns(uint count) { return claim[_address].length; } function getClaimTotal(address _address) public view returns(uint256 count) { return totalClaim[_address]; } constructor() ERC20("Flappy bird evolution", "FEVO") { _mint(msg.sender, 100000000000000 * 10 ** decimals()); } function mint(address to, uint256 amount) public onlyOwner { _mint(to, amount); } function mintByContract(address to, uint256 amount) external { require(allowedContracts[msg.sender] , 'Contract not allowed' ); _mint(to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_address","type":"address"},{"internalType":"uint256","name":"_fevoAmount","type":"uint256"},{"internalType":"uint256","name":"_value1","type":"uint256"},{"internalType":"uint256","name":"_value2","type":"uint256"},{"internalType":"bytes32","name":"_value3","type":"bytes32"},{"internalType":"bytes32","name":"_value4","type":"bytes32"},{"internalType":"bytes32","name":"_value5","type":"bytes32"}],"name":"addClaim","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getClaim","outputs":[{"components":[{"internalType":"uint256","name":"FEVOAmount","type":"uint256"},{"internalType":"uint256","name":"data","type":"uint256"},{"internalType":"uint256","name":"value1","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"bytes32","name":"value3","type":"bytes32"},{"internalType":"bytes32","name":"value4","type":"bytes32"},{"internalType":"bytes32","name":"value5","type":"bytes32"}],"internalType":"struct FlappyBirdEvolution.Claim","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getClaimCount","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getClaimTotal","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintByContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"bool","name":"_allow","type":"bool"}],"name":"setApproveContract","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":[{"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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280601581526020017f466c6170707920626972642065766f6c7574696f6e00000000000000000000008152506040518060400160405280600481526020017f4645564f0000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000374565b508060049080519060200190620000af92919062000374565b505050620000d2620000c66200011a60201b60201c565b6200012260201b60201c565b6200011433620000e7620001e860201b60201c565b600a620000f5919062000564565b655af3107a4000620001089190620006a1565b620001f160201b60201c565b620007e3565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200025b906200045c565b60405180910390fd5b62000278600083836200036a60201b60201c565b80600260008282546200028c9190620004ac565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002e39190620004ac565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200034a91906200047e565b60405180910390a362000366600083836200036f60201b60201c565b5050565b505050565b505050565b828054620003829062000719565b90600052602060002090601f016020900481019282620003a65760008555620003f2565b82601f10620003c157805160ff1916838001178555620003f2565b82800160010185558215620003f2579182015b82811115620003f1578251825591602001919060010190620003d4565b5b50905062000401919062000405565b5090565b5b808211156200042057600081600090555060010162000406565b5090565b600062000433601f836200049b565b91506200044082620007ba565b602082019050919050565b620004568162000702565b82525050565b60006020820190508181036000830152620004778162000424565b9050919050565b60006020820190506200049560008301846200044b565b92915050565b600082825260208201905092915050565b6000620004b98262000702565b9150620004c68362000702565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004fe57620004fd6200074f565b5b828201905092915050565b6000808291508390505b60018511156200055b578086048111156200053357620005326200074f565b5b6001851615620005435780820291505b80810290506200055385620007ad565b945062000513565b94509492505050565b6000620005718262000702565b91506200057e836200070c565b9250620005ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005b5565b905092915050565b600082620005c757600190506200069a565b81620005d757600090506200069a565b8160018114620005f05760028114620005fb5762000631565b60019150506200069a565b60ff84111562000610576200060f6200074f565b5b8360020a9150848211156200062a57620006296200074f565b5b506200069a565b5060208310610133831016604e8410600b84101617156200066b5782820a9050838111156200066557620006646200074f565b5b6200069a565b6200067a848484600162000509565b925090508184048111156200069457620006936200074f565b5b81810290505b9392505050565b6000620006ae8262000702565b9150620006bb8362000702565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006f757620006f66200074f565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200073257607f821691505b602082108114156200074957620007486200077e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61248f80620007f36000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063a9059cbb1161007c578063a9059cbb146103ed578063ad112b4f1461041d578063d5fdfe8714610439578063dd62ed3e14610469578063e9252e1114610499578063f2fde38b146104b557610158565b806370a082311461032b578063715018a61461035b57806379cc6790146103655780638da5cb5b1461038157806395d89b411461039f578063a457c2d7146103bd57610158565b80633950935111610115578063395093511461024757806340c10f191461027757806342966c68146102935780634da7e2ac146102af57806351e0e26b146102cb578063571b8132146102fb57610158565b806306fdde031461015d578063095ea7b31461017b5780630f79ab39146101ab57806318160ddd146101db57806323b872dd146101f9578063313ce56714610229575b600080fd5b6101656104d1565b6040516101729190611c72565b60405180910390f35b61019560048036038101906101909190611845565b610563565b6040516101a29190611c57565b60405180910390f35b6101c560048036038101906101c09190611845565b610586565b6040516101d29190611e34565b60405180910390f35b6101e3610646565b6040516101f09190611e4f565b60405180910390f35b610213600480360381019061020e91906117b2565b610650565b6040516102209190611c57565b60405180910390f35b61023161067f565b60405161023e9190611e6a565b60405180910390f35b610261600480360381019061025c9190611845565b610688565b60405161026e9190611c57565b60405180910390f35b610291600480360381019061028c9190611845565b6106bf565b005b6102ad60048036038101906102a89190611927565b6106d5565b005b6102c960048036038101906102c49190611845565b6106e9565b005b6102e560048036038101906102e09190611745565b610783565b6040516102f29190611c57565b60405180910390f35b61031560048036038101906103109190611745565b6107a3565b6040516103229190611e4f565b60405180910390f35b61034560048036038101906103409190611745565b6107ec565b6040516103529190611e4f565b60405180910390f35b610363610834565b005b61037f600480360381019061037a9190611845565b610848565b005b610389610868565b6040516103969190611c3c565b60405180910390f35b6103a7610892565b6040516103b49190611c72565b60405180910390f35b6103d760048036038101906103d29190611845565b610924565b6040516103e49190611c57565b60405180910390f35b61040760048036038101906104029190611845565b61099b565b6040516104149190611c57565b60405180910390f35b61043760048036038101906104329190611885565b6109be565b005b610453600480360381019061044e9190611745565b610b8c565b6040516104609190611e4f565b60405180910390f35b610483600480360381019061047e9190611772565b610bd8565b6040516104909190611e4f565b60405180910390f35b6104b360048036038101906104ae9190611805565b610c5f565b005b6104cf60048036038101906104ca9190611745565b610cc2565b005b6060600380546104e090611fbd565b80601f016020809104026020016040519081016040528092919081815260200182805461050c90611fbd565b80156105595780601f1061052e57610100808354040283529160200191610559565b820191906000526020600020905b81548152906001019060200180831161053c57829003601f168201915b5050505050905090565b60008061056e610d46565b905061057b818585610d4e565b600191505092915050565b61058e6116ab565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106105df576105de61204d565b5b90600052602060002090600702016040518060e0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481525050905092915050565b6000600254905090565b60008061065b610d46565b9050610668858285610f19565b610673858585610fa5565b60019150509392505050565b60006012905090565b600080610693610d46565b90506106b48185856106a58589610bd8565b6106af9190611ea1565b610d4e565b600191505092915050565b6106c7611226565b6106d182826112a4565b5050565b6106e66106e0610d46565b82611404565b50565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c90611d14565b60405180910390fd5b61077f82826112a4565b5050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61083c611226565b61084660006115db565b565b61085a82610854610d46565b83610f19565b6108648282611404565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108a190611fbd565b80601f01602080910402602001604051908101604052809291908181526020018280546108cd90611fbd565b801561091a5780601f106108ef5761010080835404028352916020019161091a565b820191906000526020600020905b8154815290600101906020018083116108fd57829003601f168201915b5050505050905090565b60008061092f610d46565b9050600061093d8286610bd8565b905083811015610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097990611df4565b60405180910390fd5b61098f8286868403610d4e565b60019250505092915050565b6000806109a6610d46565b90506109b3818585610fa5565b600191505092915050565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611d14565b60405180910390fd5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405280888152602001428152602001878152602001868152602001858152602001848152602001838152509080600181540180825580915050600190039060005260206000209060070201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155505085600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b7c9190611ea1565b9250508190555050505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c67611226565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610cca611226565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190611cd4565b60405180910390fd5b610d43816115db565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611dd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2590611cf4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0c9190611e4f565b60405180910390a3505050565b6000610f258484610bd8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f9f5781811015610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890611d34565b60405180910390fd5b610f9e8484848403610d4e565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90611db4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90611c94565b60405180910390fd5b6110908383836116a1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90611d54565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111a99190611ea1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161120d9190611e4f565b60405180910390a36112208484846116a6565b50505050565b61122e610d46565b73ffffffffffffffffffffffffffffffffffffffff1661124c610868565b73ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990611d74565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90611e14565b60405180910390fd5b611320600083836116a1565b80600260008282546113329190611ea1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113879190611ea1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113ec9190611e4f565b60405180910390a3611400600083836116a6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90611d94565b60405180910390fd5b611480826000836116a1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd90611cb4565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002600082825461155d9190611ef7565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115c29190611e4f565b60405180910390a36115d6836000846116a6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000801916815260200160008019168152602001600080191681525090565b600081359050611700816123fd565b92915050565b60008135905061171581612414565b92915050565b60008135905061172a8161242b565b92915050565b60008135905061173f81612442565b92915050565b60006020828403121561175b5761175a61207c565b5b6000611769848285016116f1565b91505092915050565b600080604083850312156117895761178861207c565b5b6000611797858286016116f1565b92505060206117a8858286016116f1565b9150509250929050565b6000806000606084860312156117cb576117ca61207c565b5b60006117d9868287016116f1565b93505060206117ea868287016116f1565b92505060406117fb86828701611730565b9150509250925092565b6000806040838503121561181c5761181b61207c565b5b600061182a858286016116f1565b925050602061183b85828601611706565b9150509250929050565b6000806040838503121561185c5761185b61207c565b5b600061186a858286016116f1565b925050602061187b85828601611730565b9150509250929050565b600080600080600080600060e0888a0312156118a4576118a361207c565b5b60006118b28a828b016116f1565b97505060206118c38a828b01611730565b96505060406118d48a828b01611730565b95505060606118e58a828b01611730565b94505060806118f68a828b0161171b565b93505060a06119078a828b0161171b565b92505060c06119188a828b0161171b565b91505092959891949750929550565b60006020828403121561193d5761193c61207c565b5b600061194b84828501611730565b91505092915050565b61195d81611f2b565b82525050565b61196c81611f3d565b82525050565b61197b81611f49565b82525050565b600061198c82611e85565b6119968185611e90565b93506119a6818560208601611f8a565b6119af81612081565b840191505092915050565b60006119c7602383611e90565b91506119d282612092565b604082019050919050565b60006119ea602283611e90565b91506119f5826120e1565b604082019050919050565b6000611a0d602683611e90565b9150611a1882612130565b604082019050919050565b6000611a30602283611e90565b9150611a3b8261217f565b604082019050919050565b6000611a53601483611e90565b9150611a5e826121ce565b602082019050919050565b6000611a76601d83611e90565b9150611a81826121f7565b602082019050919050565b6000611a99602683611e90565b9150611aa482612220565b604082019050919050565b6000611abc602083611e90565b9150611ac78261226f565b602082019050919050565b6000611adf602183611e90565b9150611aea82612298565b604082019050919050565b6000611b02602583611e90565b9150611b0d826122e7565b604082019050919050565b6000611b25602483611e90565b9150611b3082612336565b604082019050919050565b6000611b48602583611e90565b9150611b5382612385565b604082019050919050565b6000611b6b601f83611e90565b9150611b76826123d4565b602082019050919050565b60e082016000820151611b976000850182611c0f565b506020820151611baa6020850182611c0f565b506040820151611bbd6040850182611c0f565b506060820151611bd06060850182611c0f565b506080820151611be36080850182611972565b5060a0820151611bf660a0850182611972565b5060c0820151611c0960c0850182611972565b50505050565b611c1881611f73565b82525050565b611c2781611f73565b82525050565b611c3681611f7d565b82525050565b6000602082019050611c516000830184611954565b92915050565b6000602082019050611c6c6000830184611963565b92915050565b60006020820190508181036000830152611c8c8184611981565b905092915050565b60006020820190508181036000830152611cad816119ba565b9050919050565b60006020820190508181036000830152611ccd816119dd565b9050919050565b60006020820190508181036000830152611ced81611a00565b9050919050565b60006020820190508181036000830152611d0d81611a23565b9050919050565b60006020820190508181036000830152611d2d81611a46565b9050919050565b60006020820190508181036000830152611d4d81611a69565b9050919050565b60006020820190508181036000830152611d6d81611a8c565b9050919050565b60006020820190508181036000830152611d8d81611aaf565b9050919050565b60006020820190508181036000830152611dad81611ad2565b9050919050565b60006020820190508181036000830152611dcd81611af5565b9050919050565b60006020820190508181036000830152611ded81611b18565b9050919050565b60006020820190508181036000830152611e0d81611b3b565b9050919050565b60006020820190508181036000830152611e2d81611b5e565b9050919050565b600060e082019050611e496000830184611b81565b92915050565b6000602082019050611e646000830184611c1e565b92915050565b6000602082019050611e7f6000830184611c2d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611eac82611f73565b9150611eb783611f73565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611eec57611eeb611fef565b5b828201905092915050565b6000611f0282611f73565b9150611f0d83611f73565b925082821015611f2057611f1f611fef565b5b828203905092915050565b6000611f3682611f53565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611fa8578082015181840152602081019050611f8d565b83811115611fb7576000848401525b50505050565b60006002820490506001821680611fd557607f821691505b60208210811415611fe957611fe861201e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206e6f7420616c6c6f776564000000000000000000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61240681611f2b565b811461241157600080fd5b50565b61241d81611f3d565b811461242857600080fd5b50565b61243481611f49565b811461243f57600080fd5b50565b61244b81611f73565b811461245657600080fd5b5056fea2646970667358221220ab524bf736b361ff727e0bf246c167a7e357c6542c0512a86b8ea15ac32f8fe464736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063a9059cbb1161007c578063a9059cbb146103ed578063ad112b4f1461041d578063d5fdfe8714610439578063dd62ed3e14610469578063e9252e1114610499578063f2fde38b146104b557610158565b806370a082311461032b578063715018a61461035b57806379cc6790146103655780638da5cb5b1461038157806395d89b411461039f578063a457c2d7146103bd57610158565b80633950935111610115578063395093511461024757806340c10f191461027757806342966c68146102935780634da7e2ac146102af57806351e0e26b146102cb578063571b8132146102fb57610158565b806306fdde031461015d578063095ea7b31461017b5780630f79ab39146101ab57806318160ddd146101db57806323b872dd146101f9578063313ce56714610229575b600080fd5b6101656104d1565b6040516101729190611c72565b60405180910390f35b61019560048036038101906101909190611845565b610563565b6040516101a29190611c57565b60405180910390f35b6101c560048036038101906101c09190611845565b610586565b6040516101d29190611e34565b60405180910390f35b6101e3610646565b6040516101f09190611e4f565b60405180910390f35b610213600480360381019061020e91906117b2565b610650565b6040516102209190611c57565b60405180910390f35b61023161067f565b60405161023e9190611e6a565b60405180910390f35b610261600480360381019061025c9190611845565b610688565b60405161026e9190611c57565b60405180910390f35b610291600480360381019061028c9190611845565b6106bf565b005b6102ad60048036038101906102a89190611927565b6106d5565b005b6102c960048036038101906102c49190611845565b6106e9565b005b6102e560048036038101906102e09190611745565b610783565b6040516102f29190611c57565b60405180910390f35b61031560048036038101906103109190611745565b6107a3565b6040516103229190611e4f565b60405180910390f35b61034560048036038101906103409190611745565b6107ec565b6040516103529190611e4f565b60405180910390f35b610363610834565b005b61037f600480360381019061037a9190611845565b610848565b005b610389610868565b6040516103969190611c3c565b60405180910390f35b6103a7610892565b6040516103b49190611c72565b60405180910390f35b6103d760048036038101906103d29190611845565b610924565b6040516103e49190611c57565b60405180910390f35b61040760048036038101906104029190611845565b61099b565b6040516104149190611c57565b60405180910390f35b61043760048036038101906104329190611885565b6109be565b005b610453600480360381019061044e9190611745565b610b8c565b6040516104609190611e4f565b60405180910390f35b610483600480360381019061047e9190611772565b610bd8565b6040516104909190611e4f565b60405180910390f35b6104b360048036038101906104ae9190611805565b610c5f565b005b6104cf60048036038101906104ca9190611745565b610cc2565b005b6060600380546104e090611fbd565b80601f016020809104026020016040519081016040528092919081815260200182805461050c90611fbd565b80156105595780601f1061052e57610100808354040283529160200191610559565b820191906000526020600020905b81548152906001019060200180831161053c57829003601f168201915b5050505050905090565b60008061056e610d46565b905061057b818585610d4e565b600191505092915050565b61058e6116ab565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106105df576105de61204d565b5b90600052602060002090600702016040518060e0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481525050905092915050565b6000600254905090565b60008061065b610d46565b9050610668858285610f19565b610673858585610fa5565b60019150509392505050565b60006012905090565b600080610693610d46565b90506106b48185856106a58589610bd8565b6106af9190611ea1565b610d4e565b600191505092915050565b6106c7611226565b6106d182826112a4565b5050565b6106e66106e0610d46565b82611404565b50565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c90611d14565b60405180910390fd5b61077f82826112a4565b5050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61083c611226565b61084660006115db565b565b61085a82610854610d46565b83610f19565b6108648282611404565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108a190611fbd565b80601f01602080910402602001604051908101604052809291908181526020018280546108cd90611fbd565b801561091a5780601f106108ef5761010080835404028352916020019161091a565b820191906000526020600020905b8154815290600101906020018083116108fd57829003601f168201915b5050505050905090565b60008061092f610d46565b9050600061093d8286610bd8565b905083811015610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097990611df4565b60405180910390fd5b61098f8286868403610d4e565b60019250505092915050565b6000806109a6610d46565b90506109b3818585610fa5565b600191505092915050565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611d14565b60405180910390fd5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405280888152602001428152602001878152602001868152602001858152602001848152602001838152509080600181540180825580915050600190039060005260206000209060070201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155505085600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b7c9190611ea1565b9250508190555050505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c67611226565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610cca611226565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190611cd4565b60405180910390fd5b610d43816115db565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611dd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2590611cf4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0c9190611e4f565b60405180910390a3505050565b6000610f258484610bd8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f9f5781811015610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890611d34565b60405180910390fd5b610f9e8484848403610d4e565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90611db4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90611c94565b60405180910390fd5b6110908383836116a1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90611d54565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111a99190611ea1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161120d9190611e4f565b60405180910390a36112208484846116a6565b50505050565b61122e610d46565b73ffffffffffffffffffffffffffffffffffffffff1661124c610868565b73ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990611d74565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90611e14565b60405180910390fd5b611320600083836116a1565b80600260008282546113329190611ea1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113879190611ea1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113ec9190611e4f565b60405180910390a3611400600083836116a6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90611d94565b60405180910390fd5b611480826000836116a1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd90611cb4565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002600082825461155d9190611ef7565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115c29190611e4f565b60405180910390a36115d6836000846116a6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000801916815260200160008019168152602001600080191681525090565b600081359050611700816123fd565b92915050565b60008135905061171581612414565b92915050565b60008135905061172a8161242b565b92915050565b60008135905061173f81612442565b92915050565b60006020828403121561175b5761175a61207c565b5b6000611769848285016116f1565b91505092915050565b600080604083850312156117895761178861207c565b5b6000611797858286016116f1565b92505060206117a8858286016116f1565b9150509250929050565b6000806000606084860312156117cb576117ca61207c565b5b60006117d9868287016116f1565b93505060206117ea868287016116f1565b92505060406117fb86828701611730565b9150509250925092565b6000806040838503121561181c5761181b61207c565b5b600061182a858286016116f1565b925050602061183b85828601611706565b9150509250929050565b6000806040838503121561185c5761185b61207c565b5b600061186a858286016116f1565b925050602061187b85828601611730565b9150509250929050565b600080600080600080600060e0888a0312156118a4576118a361207c565b5b60006118b28a828b016116f1565b97505060206118c38a828b01611730565b96505060406118d48a828b01611730565b95505060606118e58a828b01611730565b94505060806118f68a828b0161171b565b93505060a06119078a828b0161171b565b92505060c06119188a828b0161171b565b91505092959891949750929550565b60006020828403121561193d5761193c61207c565b5b600061194b84828501611730565b91505092915050565b61195d81611f2b565b82525050565b61196c81611f3d565b82525050565b61197b81611f49565b82525050565b600061198c82611e85565b6119968185611e90565b93506119a6818560208601611f8a565b6119af81612081565b840191505092915050565b60006119c7602383611e90565b91506119d282612092565b604082019050919050565b60006119ea602283611e90565b91506119f5826120e1565b604082019050919050565b6000611a0d602683611e90565b9150611a1882612130565b604082019050919050565b6000611a30602283611e90565b9150611a3b8261217f565b604082019050919050565b6000611a53601483611e90565b9150611a5e826121ce565b602082019050919050565b6000611a76601d83611e90565b9150611a81826121f7565b602082019050919050565b6000611a99602683611e90565b9150611aa482612220565b604082019050919050565b6000611abc602083611e90565b9150611ac78261226f565b602082019050919050565b6000611adf602183611e90565b9150611aea82612298565b604082019050919050565b6000611b02602583611e90565b9150611b0d826122e7565b604082019050919050565b6000611b25602483611e90565b9150611b3082612336565b604082019050919050565b6000611b48602583611e90565b9150611b5382612385565b604082019050919050565b6000611b6b601f83611e90565b9150611b76826123d4565b602082019050919050565b60e082016000820151611b976000850182611c0f565b506020820151611baa6020850182611c0f565b506040820151611bbd6040850182611c0f565b506060820151611bd06060850182611c0f565b506080820151611be36080850182611972565b5060a0820151611bf660a0850182611972565b5060c0820151611c0960c0850182611972565b50505050565b611c1881611f73565b82525050565b611c2781611f73565b82525050565b611c3681611f7d565b82525050565b6000602082019050611c516000830184611954565b92915050565b6000602082019050611c6c6000830184611963565b92915050565b60006020820190508181036000830152611c8c8184611981565b905092915050565b60006020820190508181036000830152611cad816119ba565b9050919050565b60006020820190508181036000830152611ccd816119dd565b9050919050565b60006020820190508181036000830152611ced81611a00565b9050919050565b60006020820190508181036000830152611d0d81611a23565b9050919050565b60006020820190508181036000830152611d2d81611a46565b9050919050565b60006020820190508181036000830152611d4d81611a69565b9050919050565b60006020820190508181036000830152611d6d81611a8c565b9050919050565b60006020820190508181036000830152611d8d81611aaf565b9050919050565b60006020820190508181036000830152611dad81611ad2565b9050919050565b60006020820190508181036000830152611dcd81611af5565b9050919050565b60006020820190508181036000830152611ded81611b18565b9050919050565b60006020820190508181036000830152611e0d81611b3b565b9050919050565b60006020820190508181036000830152611e2d81611b5e565b9050919050565b600060e082019050611e496000830184611b81565b92915050565b6000602082019050611e646000830184611c1e565b92915050565b6000602082019050611e7f6000830184611c2d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611eac82611f73565b9150611eb783611f73565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611eec57611eeb611fef565b5b828201905092915050565b6000611f0282611f73565b9150611f0d83611f73565b925082821015611f2057611f1f611fef565b5b828203905092915050565b6000611f3682611f53565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611fa8578082015181840152602081019050611f8d565b83811115611fb7576000848401525b50505050565b60006002820490506001821680611fd557607f821691505b60208210811415611fe957611fe861201e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206e6f7420616c6c6f776564000000000000000000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61240681611f2b565b811461241157600080fd5b50565b61241d81611f3d565b811461242857600080fd5b50565b61243481611f49565b811461243f57600080fd5b50565b61244b81611f73565b811461245657600080fd5b5056fea2646970667358221220ab524bf736b361ff727e0bf246c167a7e357c6542c0512a86b8ea15ac32f8fe464736f6c63430008070033
Deployed Bytecode Sourcemap
21464:1751:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11734:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22408:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10503:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12515:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10345:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13219:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22941:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20758:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23042:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21828:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22674:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10674:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2788:103;;;:::i;:::-;;21168:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2140:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13960:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11007:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22025:375;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22545:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11263:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21884:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3046:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9383:100;9437:13;9470:5;9463:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;:::o;11734:201::-;11817:4;11834:13;11850:12;:10;:12::i;:::-;11834:28;;11873:32;11882:5;11889:7;11898:6;11873:8;:32::i;:::-;11923:4;11916:11;;;11734:201;;;;:::o;22408:129::-;22476:12;;:::i;:::-;22507:5;:15;22513:8;22507:15;;;;;;;;;;;;;;;22523:5;22507:22;;;;;;;;:::i;:::-;;;;;;;;;;;;22500:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22408:129;;;;:::o;10503:108::-;10564:7;10591:12;;10584:19;;10503:108;:::o;12515:295::-;12646:4;12663:15;12681:12;:10;:12::i;:::-;12663:30;;12704:38;12720:4;12726:7;12735:6;12704:15;:38::i;:::-;12753:27;12763:4;12769:2;12773:6;12753:9;:27::i;:::-;12798:4;12791:11;;;12515:295;;;;;:::o;10345:93::-;10403:5;10428:2;10421:9;;10345:93;:::o;13219:238::-;13307:4;13324:13;13340:12;:10;:12::i;:::-;13324:28;;13363:64;13372:5;13379:7;13416:10;13388:25;13398:5;13405:7;13388:9;:25::i;:::-;:38;;;;:::i;:::-;13363:8;:64::i;:::-;13445:4;13438:11;;;13219:238;;;;:::o;22941:95::-;2026:13;:11;:13::i;:::-;23011:17:::1;23017:2;23021:6;23011:5;:17::i;:::-;22941:95:::0;;:::o;20758:91::-;20814:27;20820:12;:10;:12::i;:::-;20834:6;20814:5;:27::i;:::-;20758:91;:::o;23042:165::-;23116:16;:28;23133:10;23116:28;;;;;;;;;;;;;;;;;;;;;;;;;23108:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;23182:17;23188:2;23192:6;23182:5;:17::i;:::-;23042:165;;:::o;21828:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;22674:122::-;22735:13;22768:10;:20;22779:8;22768:20;;;;;;;;;;;;;;;;22761:27;;22674:122;;;:::o;10674:127::-;10748:7;10775:9;:18;10785:7;10775:18;;;;;;;;;;;;;;;;10768:25;;10674:127;;;:::o;2788:103::-;2026:13;:11;:13::i;:::-;2853:30:::1;2880:1;2853:18;:30::i;:::-;2788:103::o:0;21168:164::-;21245:46;21261:7;21270:12;:10;:12::i;:::-;21284:6;21245:15;:46::i;:::-;21302:22;21308:7;21317:6;21302:5;:22::i;:::-;21168:164;;:::o;2140:87::-;2186:7;2213:6;;;;;;;;;;;2206:13;;2140:87;:::o;9602:104::-;9658:13;9691:7;9684:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:104;:::o;13960:436::-;14053:4;14070:13;14086:12;:10;:12::i;:::-;14070:28;;14109:24;14136:25;14146:5;14153:7;14136:9;:25::i;:::-;14109:52;;14200:15;14180:16;:35;;14172:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14293:60;14302:5;14309:7;14337:15;14318:16;:34;14293:8;:60::i;:::-;14384:4;14377:11;;;;13960:436;;;;:::o;11007:193::-;11086:4;11103:13;11119:12;:10;:12::i;:::-;11103:28;;11142;11152:5;11159:2;11163:6;11142:9;:28::i;:::-;11188:4;11181:11;;;11007:193;;;;:::o;22025:375::-;22183:16;:28;22200:10;22183:28;;;;;;;;;;;;;;;;;;;;;;;;;22175:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22249:5;:15;22255:8;22249:15;;;;;;;;;;;;;;;22270:75;;;;;;;;22276:11;22270:75;;;;22288:15;22270:75;;;;22305:7;22270:75;;;;22313:7;22270:75;;;;22321:7;22270:75;;;;22329:7;22270:75;;;;22337:7;22270:75;;;22249:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22381:11;22357:10;:20;22368:8;22357:20;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;22025:375;;;;;;;:::o;22545:121::-;22606:10;22636:5;:15;22642:8;22636:15;;;;;;;;;;;;;;;:22;;;;22629:29;;22545:121;;;:::o;11263:151::-;11352:7;11379:11;:18;11391:5;11379:18;;;;;;;;;;;;;;;:27;11398:7;11379:27;;;;;;;;;;;;;;;;11372:34;;11263:151;;;;:::o;21884:131::-;2026:13;:11;:13::i;:::-;22001:6:::1;21971:16;:27;21988:9;21971:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;21884:131:::0;;:::o;3046:201::-;2026:13;:11;:13::i;:::-;3155:1:::1;3135:22;;:8;:22;;;;3127:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3211:28;3230:8;3211:18;:28::i;:::-;3046:201:::0;:::o;685:98::-;738:7;765:10;758:17;;685:98;:::o;17585:380::-;17738:1;17721:19;;:5;:19;;;;17713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17819:1;17800:21;;:7;:21;;;;17792:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17903:6;17873:11;:18;17885:5;17873:18;;;;;;;;;;;;;;;:27;17892:7;17873:27;;;;;;;;;;;;;;;:36;;;;17941:7;17925:32;;17934:5;17925:32;;;17950:6;17925:32;;;;;;:::i;:::-;;;;;;;;17585:380;;;:::o;18256:453::-;18391:24;18418:25;18428:5;18435:7;18418:9;:25::i;:::-;18391:52;;18478:17;18458:16;:37;18454:248;;18540:6;18520:16;:26;;18512:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18624:51;18633:5;18640:7;18668:6;18649:16;:25;18624:8;:51::i;:::-;18454:248;18380:329;18256:453;;;:::o;14866:671::-;15013:1;14997:18;;:4;:18;;;;14989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15090:1;15076:16;;:2;:16;;;;15068:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15145:38;15166:4;15172:2;15176:6;15145:20;:38::i;:::-;15196:19;15218:9;:15;15228:4;15218:15;;;;;;;;;;;;;;;;15196:37;;15267:6;15252:11;:21;;15244:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15384:6;15370:11;:20;15352:9;:15;15362:4;15352:15;;;;;;;;;;;;;;;:38;;;;15429:6;15412:9;:13;15422:2;15412:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;15468:2;15453:26;;15462:4;15453:26;;;15472:6;15453:26;;;;;;:::i;:::-;;;;;;;;15492:37;15512:4;15518:2;15522:6;15492:19;:37::i;:::-;14978:559;14866:671;;;:::o;2305:132::-;2380:12;:10;:12::i;:::-;2369:23;;:7;:5;:7::i;:::-;:23;;;2361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2305:132::o;15824:399::-;15927:1;15908:21;;:7;:21;;;;15900:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15978:49;16007:1;16011:7;16020:6;15978:20;:49::i;:::-;16056:6;16040:12;;:22;;;;;;;:::i;:::-;;;;;;;;16095:6;16073:9;:18;16083:7;16073:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;16138:7;16117:37;;16134:1;16117:37;;;16147:6;16117:37;;;;;;:::i;:::-;;;;;;;;16167:48;16195:1;16199:7;16208:6;16167:19;:48::i;:::-;15824:399;;:::o;16556:591::-;16659:1;16640:21;;:7;:21;;;;16632:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16712:49;16733:7;16750:1;16754:6;16712:20;:49::i;:::-;16774:22;16799:9;:18;16809:7;16799:18;;;;;;;;;;;;;;;;16774:43;;16854:6;16836:14;:24;;16828:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16973:6;16956:14;:23;16935:9;:18;16945:7;16935:18;;;;;;;;;;;;;;;:44;;;;17017:6;17001:12;;:22;;;;;;;:::i;:::-;;;;;;;;17067:1;17041:37;;17050:7;17041:37;;;17071:6;17041:37;;;;;;:::i;:::-;;;;;;;;17091:48;17111:7;17128:1;17132:6;17091:19;:48::i;:::-;16621:526;16556:591;;:::o;3407:191::-;3481:16;3500:6;;;;;;;;;;;3481:25;;3526:8;3517:6;;:17;;;;;;;;;;;;;;;;;;3581:8;3550:40;;3571:8;3550:40;;;;;;;;;;;;3470:128;3407:191;:::o;19309:125::-;;;;:::o;20038:124::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;291:139;;;;:::o;436:::-;482:5;520:6;507:20;498:29;;536:33;563:5;536:33;:::i;:::-;436:139;;;;:::o;581:329::-;640:6;689:2;677:9;668:7;664:23;660:32;657:119;;;695:79;;:::i;:::-;657:119;815:1;840:53;885:7;876:6;865:9;861:22;840:53;:::i;:::-;830:63;;786:117;581:329;;;;:::o;916:474::-;984:6;992;1041:2;1029:9;1020:7;1016:23;1012:32;1009:119;;;1047:79;;:::i;:::-;1009:119;1167:1;1192:53;1237:7;1228:6;1217:9;1213:22;1192:53;:::i;:::-;1182:63;;1138:117;1294:2;1320:53;1365:7;1356:6;1345:9;1341:22;1320:53;:::i;:::-;1310:63;;1265:118;916:474;;;;;:::o;1396:619::-;1473:6;1481;1489;1538:2;1526:9;1517:7;1513:23;1509:32;1506:119;;;1544:79;;:::i;:::-;1506:119;1664:1;1689:53;1734:7;1725:6;1714:9;1710:22;1689:53;:::i;:::-;1679:63;;1635:117;1791:2;1817:53;1862:7;1853:6;1842:9;1838:22;1817:53;:::i;:::-;1807:63;;1762:118;1919:2;1945:53;1990:7;1981:6;1970:9;1966:22;1945:53;:::i;:::-;1935:63;;1890:118;1396:619;;;;;:::o;2021:468::-;2086:6;2094;2143:2;2131:9;2122:7;2118:23;2114:32;2111:119;;;2149:79;;:::i;:::-;2111:119;2269:1;2294:53;2339:7;2330:6;2319:9;2315:22;2294:53;:::i;:::-;2284:63;;2240:117;2396:2;2422:50;2464:7;2455:6;2444:9;2440:22;2422:50;:::i;:::-;2412:60;;2367:115;2021:468;;;;;:::o;2495:474::-;2563:6;2571;2620:2;2608:9;2599:7;2595:23;2591:32;2588:119;;;2626:79;;:::i;:::-;2588:119;2746:1;2771:53;2816:7;2807:6;2796:9;2792:22;2771:53;:::i;:::-;2761:63;;2717:117;2873:2;2899:53;2944:7;2935:6;2924:9;2920:22;2899:53;:::i;:::-;2889:63;;2844:118;2495:474;;;;;:::o;2975:1203::-;3088:6;3096;3104;3112;3120;3128;3136;3185:3;3173:9;3164:7;3160:23;3156:33;3153:120;;;3192:79;;:::i;:::-;3153:120;3312:1;3337:53;3382:7;3373:6;3362:9;3358:22;3337:53;:::i;:::-;3327:63;;3283:117;3439:2;3465:53;3510:7;3501:6;3490:9;3486:22;3465:53;:::i;:::-;3455:63;;3410:118;3567:2;3593:53;3638:7;3629:6;3618:9;3614:22;3593:53;:::i;:::-;3583:63;;3538:118;3695:2;3721:53;3766:7;3757:6;3746:9;3742:22;3721:53;:::i;:::-;3711:63;;3666:118;3823:3;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3794:119;3952:3;3979:53;4024:7;4015:6;4004:9;4000:22;3979:53;:::i;:::-;3969:63;;3923:119;4081:3;4108:53;4153:7;4144:6;4133:9;4129:22;4108:53;:::i;:::-;4098:63;;4052:119;2975:1203;;;;;;;;;;:::o;4184:329::-;4243:6;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4184:329;;;;:::o;4519:118::-;4606:24;4624:5;4606:24;:::i;:::-;4601:3;4594:37;4519:118;;:::o;4643:109::-;4724:21;4739:5;4724:21;:::i;:::-;4719:3;4712:34;4643:109;;:::o;4758:108::-;4835:24;4853:5;4835:24;:::i;:::-;4830:3;4823:37;4758:108;;:::o;4872:364::-;4960:3;4988:39;5021:5;4988:39;:::i;:::-;5043:71;5107:6;5102:3;5043:71;:::i;:::-;5036:78;;5123:52;5168:6;5163:3;5156:4;5149:5;5145:16;5123:52;:::i;:::-;5200:29;5222:6;5200:29;:::i;:::-;5195:3;5191:39;5184:46;;4964:272;4872:364;;;;:::o;5242:366::-;5384:3;5405:67;5469:2;5464:3;5405:67;:::i;:::-;5398:74;;5481:93;5570:3;5481:93;:::i;:::-;5599:2;5594:3;5590:12;5583:19;;5242:366;;;:::o;5614:::-;5756:3;5777:67;5841:2;5836:3;5777:67;:::i;:::-;5770:74;;5853:93;5942:3;5853:93;:::i;:::-;5971:2;5966:3;5962:12;5955:19;;5614:366;;;:::o;5986:::-;6128:3;6149:67;6213:2;6208:3;6149:67;:::i;:::-;6142:74;;6225:93;6314:3;6225:93;:::i;:::-;6343:2;6338:3;6334:12;6327:19;;5986:366;;;:::o;6358:::-;6500:3;6521:67;6585:2;6580:3;6521:67;:::i;:::-;6514:74;;6597:93;6686:3;6597:93;:::i;:::-;6715:2;6710:3;6706:12;6699:19;;6358:366;;;:::o;6730:::-;6872:3;6893:67;6957:2;6952:3;6893:67;:::i;:::-;6886:74;;6969:93;7058:3;6969:93;:::i;:::-;7087:2;7082:3;7078:12;7071:19;;6730:366;;;:::o;7102:::-;7244:3;7265:67;7329:2;7324:3;7265:67;:::i;:::-;7258:74;;7341:93;7430:3;7341:93;:::i;:::-;7459:2;7454:3;7450:12;7443:19;;7102:366;;;:::o;7474:::-;7616:3;7637:67;7701:2;7696:3;7637:67;:::i;:::-;7630:74;;7713:93;7802:3;7713:93;:::i;:::-;7831:2;7826:3;7822:12;7815:19;;7474:366;;;:::o;7846:::-;7988:3;8009:67;8073:2;8068:3;8009:67;:::i;:::-;8002:74;;8085:93;8174:3;8085:93;:::i;:::-;8203:2;8198:3;8194:12;8187:19;;7846:366;;;:::o;8218:::-;8360:3;8381:67;8445:2;8440:3;8381:67;:::i;:::-;8374:74;;8457:93;8546:3;8457:93;:::i;:::-;8575:2;8570:3;8566:12;8559:19;;8218:366;;;:::o;8590:::-;8732:3;8753:67;8817:2;8812:3;8753:67;:::i;:::-;8746:74;;8829:93;8918:3;8829:93;:::i;:::-;8947:2;8942:3;8938:12;8931:19;;8590:366;;;:::o;8962:::-;9104:3;9125:67;9189:2;9184:3;9125:67;:::i;:::-;9118:74;;9201:93;9290:3;9201:93;:::i;:::-;9319:2;9314:3;9310:12;9303:19;;8962:366;;;:::o;9334:::-;9476:3;9497:67;9561:2;9556:3;9497:67;:::i;:::-;9490:74;;9573:93;9662:3;9573:93;:::i;:::-;9691:2;9686:3;9682:12;9675:19;;9334:366;;;:::o;9706:::-;9848:3;9869:67;9933:2;9928:3;9869:67;:::i;:::-;9862:74;;9945:93;10034:3;9945:93;:::i;:::-;10063:2;10058:3;10054:12;10047:19;;9706:366;;;:::o;10154:1387::-;10295:4;10290:3;10286:14;10388:4;10381:5;10377:16;10371:23;10407:63;10464:4;10459:3;10455:14;10441:12;10407:63;:::i;:::-;10310:170;10562:4;10555:5;10551:16;10545:23;10581:63;10638:4;10633:3;10629:14;10615:12;10581:63;:::i;:::-;10490:164;10738:4;10731:5;10727:16;10721:23;10757:63;10814:4;10809:3;10805:14;10791:12;10757:63;:::i;:::-;10664:166;10914:4;10907:5;10903:16;10897:23;10933:63;10990:4;10985:3;10981:14;10967:12;10933:63;:::i;:::-;10840:166;11090:4;11083:5;11079:16;11073:23;11109:63;11166:4;11161:3;11157:14;11143:12;11109:63;:::i;:::-;11016:166;11266:4;11259:5;11255:16;11249:23;11285:63;11342:4;11337:3;11333:14;11319:12;11285:63;:::i;:::-;11192:166;11442:4;11435:5;11431:16;11425:23;11461:63;11518:4;11513:3;11509:14;11495:12;11461:63;:::i;:::-;11368:166;10264:1277;10154:1387;;:::o;11547:108::-;11624:24;11642:5;11624:24;:::i;:::-;11619:3;11612:37;11547:108;;:::o;11661:118::-;11748:24;11766:5;11748:24;:::i;:::-;11743:3;11736:37;11661:118;;:::o;11785:112::-;11868:22;11884:5;11868:22;:::i;:::-;11863:3;11856:35;11785:112;;:::o;11903:222::-;11996:4;12034:2;12023:9;12019:18;12011:26;;12047:71;12115:1;12104:9;12100:17;12091:6;12047:71;:::i;:::-;11903:222;;;;:::o;12131:210::-;12218:4;12256:2;12245:9;12241:18;12233:26;;12269:65;12331:1;12320:9;12316:17;12307:6;12269:65;:::i;:::-;12131:210;;;;:::o;12347:313::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12547:9;12541:4;12537:20;12533:1;12522:9;12518:17;12511:47;12575:78;12648:4;12639:6;12575:78;:::i;:::-;12567:86;;12347:313;;;;:::o;12666:419::-;12832:4;12870:2;12859:9;12855:18;12847:26;;12919:9;12913:4;12909:20;12905:1;12894:9;12890:17;12883:47;12947:131;13073:4;12947:131;:::i;:::-;12939:139;;12666:419;;;:::o;13091:::-;13257:4;13295:2;13284:9;13280:18;13272:26;;13344:9;13338:4;13334:20;13330:1;13319:9;13315:17;13308:47;13372:131;13498:4;13372:131;:::i;:::-;13364:139;;13091:419;;;:::o;13516:::-;13682:4;13720:2;13709:9;13705:18;13697:26;;13769:9;13763:4;13759:20;13755:1;13744:9;13740:17;13733:47;13797:131;13923:4;13797:131;:::i;:::-;13789:139;;13516:419;;;:::o;13941:::-;14107:4;14145:2;14134:9;14130:18;14122:26;;14194:9;14188:4;14184:20;14180:1;14169:9;14165:17;14158:47;14222:131;14348:4;14222:131;:::i;:::-;14214:139;;13941:419;;;:::o;14366:::-;14532:4;14570:2;14559:9;14555:18;14547:26;;14619:9;14613:4;14609:20;14605:1;14594:9;14590:17;14583:47;14647:131;14773:4;14647:131;:::i;:::-;14639:139;;14366:419;;;:::o;14791:::-;14957:4;14995:2;14984:9;14980:18;14972:26;;15044:9;15038:4;15034:20;15030:1;15019:9;15015:17;15008:47;15072:131;15198:4;15072:131;:::i;:::-;15064:139;;14791:419;;;:::o;15216:::-;15382:4;15420:2;15409:9;15405:18;15397:26;;15469:9;15463:4;15459:20;15455:1;15444:9;15440:17;15433:47;15497:131;15623:4;15497:131;:::i;:::-;15489:139;;15216:419;;;:::o;15641:::-;15807:4;15845:2;15834:9;15830:18;15822:26;;15894:9;15888:4;15884:20;15880:1;15869:9;15865:17;15858:47;15922:131;16048:4;15922:131;:::i;:::-;15914:139;;15641:419;;;:::o;16066:::-;16232:4;16270:2;16259:9;16255:18;16247:26;;16319:9;16313:4;16309:20;16305:1;16294:9;16290:17;16283:47;16347:131;16473:4;16347:131;:::i;:::-;16339:139;;16066:419;;;:::o;16491:::-;16657:4;16695:2;16684:9;16680:18;16672:26;;16744:9;16738:4;16734:20;16730:1;16719:9;16715:17;16708:47;16772:131;16898:4;16772:131;:::i;:::-;16764:139;;16491:419;;;:::o;16916:::-;17082:4;17120:2;17109:9;17105:18;17097:26;;17169:9;17163:4;17159:20;17155:1;17144:9;17140:17;17133:47;17197:131;17323:4;17197:131;:::i;:::-;17189:139;;16916:419;;;:::o;17341:::-;17507:4;17545:2;17534:9;17530:18;17522:26;;17594:9;17588:4;17584:20;17580:1;17569:9;17565:17;17558:47;17622:131;17748:4;17622:131;:::i;:::-;17614:139;;17341:419;;;:::o;17766:::-;17932:4;17970:2;17959:9;17955:18;17947:26;;18019:9;18013:4;18009:20;18005:1;17994:9;17990:17;17983:47;18047:131;18173:4;18047:131;:::i;:::-;18039:139;;17766:419;;;:::o;18191:311::-;18328:4;18366:3;18355:9;18351:19;18343:27;;18380:115;18492:1;18481:9;18477:17;18468:6;18380:115;:::i;:::-;18191:311;;;;:::o;18508:222::-;18601:4;18639:2;18628:9;18624:18;18616:26;;18652:71;18720:1;18709:9;18705:17;18696:6;18652:71;:::i;:::-;18508:222;;;;:::o;18736:214::-;18825:4;18863:2;18852:9;18848:18;18840:26;;18876:67;18940:1;18929:9;18925:17;18916:6;18876:67;:::i;:::-;18736:214;;;;:::o;19037:99::-;19089:6;19123:5;19117:12;19107:22;;19037:99;;;:::o;19142:169::-;19226:11;19260:6;19255:3;19248:19;19300:4;19295:3;19291:14;19276:29;;19142:169;;;;:::o;19317:305::-;19357:3;19376:20;19394:1;19376:20;:::i;:::-;19371:25;;19410:20;19428:1;19410:20;:::i;:::-;19405:25;;19564:1;19496:66;19492:74;19489:1;19486:81;19483:107;;;19570:18;;:::i;:::-;19483:107;19614:1;19611;19607:9;19600:16;;19317:305;;;;:::o;19628:191::-;19668:4;19688:20;19706:1;19688:20;:::i;:::-;19683:25;;19722:20;19740:1;19722:20;:::i;:::-;19717:25;;19761:1;19758;19755:8;19752:34;;;19766:18;;:::i;:::-;19752:34;19811:1;19808;19804:9;19796:17;;19628:191;;;;:::o;19825:96::-;19862:7;19891:24;19909:5;19891:24;:::i;:::-;19880:35;;19825:96;;;:::o;19927:90::-;19961:7;20004:5;19997:13;19990:21;19979:32;;19927:90;;;:::o;20023:77::-;20060:7;20089:5;20078:16;;20023:77;;;:::o;20106:126::-;20143:7;20183:42;20176:5;20172:54;20161:65;;20106:126;;;:::o;20238:77::-;20275:7;20304:5;20293:16;;20238:77;;;:::o;20321:86::-;20356:7;20396:4;20389:5;20385:16;20374:27;;20321:86;;;:::o;20413:307::-;20481:1;20491:113;20505:6;20502:1;20499:13;20491:113;;;20590:1;20585:3;20581:11;20575:18;20571:1;20566:3;20562:11;20555:39;20527:2;20524:1;20520:10;20515:15;;20491:113;;;20622:6;20619:1;20616:13;20613:101;;;20702:1;20693:6;20688:3;20684:16;20677:27;20613:101;20462:258;20413:307;;;:::o;20726:320::-;20770:6;20807:1;20801:4;20797:12;20787:22;;20854:1;20848:4;20844:12;20875:18;20865:81;;20931:4;20923:6;20919:17;20909:27;;20865:81;20993:2;20985:6;20982:14;20962:18;20959:38;20956:84;;;21012:18;;:::i;:::-;20956:84;20777:269;20726:320;;;:::o;21052:180::-;21100:77;21097:1;21090:88;21197:4;21194:1;21187:15;21221:4;21218:1;21211:15;21238:180;21286:77;21283:1;21276:88;21383:4;21380:1;21373:15;21407:4;21404:1;21397:15;21424:180;21472:77;21469:1;21462:88;21569:4;21566:1;21559:15;21593:4;21590:1;21583:15;21733:117;21842:1;21839;21832:12;21856:102;21897:6;21948:2;21944:7;21939:2;21932:5;21928:14;21924:28;21914:38;;21856:102;;;:::o;21964:222::-;22104:34;22100:1;22092:6;22088:14;22081:58;22173:5;22168:2;22160:6;22156:15;22149:30;21964:222;:::o;22192:221::-;22332:34;22328:1;22320:6;22316:14;22309:58;22401:4;22396:2;22388:6;22384:15;22377:29;22192:221;:::o;22419:225::-;22559:34;22555:1;22547:6;22543:14;22536:58;22628:8;22623:2;22615:6;22611:15;22604:33;22419:225;:::o;22650:221::-;22790:34;22786:1;22778:6;22774:14;22767:58;22859:4;22854:2;22846:6;22842:15;22835:29;22650:221;:::o;22877:170::-;23017:22;23013:1;23005:6;23001:14;22994:46;22877:170;:::o;23053:179::-;23193:31;23189:1;23181:6;23177:14;23170:55;23053:179;:::o;23238:225::-;23378:34;23374:1;23366:6;23362:14;23355:58;23447:8;23442:2;23434:6;23430:15;23423:33;23238:225;:::o;23469:182::-;23609:34;23605:1;23597:6;23593:14;23586:58;23469:182;:::o;23657:220::-;23797:34;23793:1;23785:6;23781:14;23774:58;23866:3;23861:2;23853:6;23849:15;23842:28;23657:220;:::o;23883:224::-;24023:34;24019:1;24011:6;24007:14;24000:58;24092:7;24087:2;24079:6;24075:15;24068:32;23883:224;:::o;24113:223::-;24253:34;24249:1;24241:6;24237:14;24230:58;24322:6;24317:2;24309:6;24305:15;24298:31;24113:223;:::o;24342:224::-;24482:34;24478:1;24470:6;24466:14;24459:58;24551:7;24546:2;24538:6;24534:15;24527:32;24342:224;:::o;24572:181::-;24712:33;24708:1;24700:6;24696:14;24689:57;24572:181;:::o;24759:122::-;24832:24;24850:5;24832:24;:::i;:::-;24825:5;24822:35;24812:63;;24871:1;24868;24861:12;24812:63;24759:122;:::o;24887:116::-;24957:21;24972:5;24957:21;:::i;:::-;24950:5;24947:32;24937:60;;24993:1;24990;24983:12;24937:60;24887:116;:::o;25009:122::-;25082:24;25100:5;25082:24;:::i;:::-;25075:5;25072:35;25062:63;;25121:1;25118;25111:12;25062:63;25009:122;:::o;25137:::-;25210:24;25228:5;25210:24;:::i;:::-;25203:5;25200:35;25190:63;;25249:1;25246;25239:12;25190:63;25137:122;:::o
Swarm Source
ipfs://ab524bf736b361ff727e0bf246c167a7e357c6542c0512a86b8ea15ac32f8fe4
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.