ERC-20
Technology
Overview
Max Total Supply
977,061,247.291058 MUD
Holders
2,972 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
1,536.519222 MUDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MetaUserDAOToken
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-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]/security/Pausable.sol // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // 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.8.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; bool internal _frozen; /** * @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(!_frozen, "Freezed for mainnet mapping !"); require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: @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: Token.sol pragma solidity 0.8.9; /// @custom:security-contact [email protected] contract MetaUserDAOToken is ERC20, ERC20Burnable, Pausable, Ownable { address immutable private creator; constructor() ERC20("MetaUserDAO", "MUD") { _frozen = false; creator = msg.sender; _mint(msg.sender, 1000000000 * (10 ** uint256(decimals()))); } //freeze the token tranfer and get ready for main net mapping function mainNetMappingFreeze() external { require(msg.sender == creator, "Not token creator!"); require(!_frozen, "Freezed for mainnet mapping !"); _frozen = true; } function decimals() override public pure returns (uint8) { return 6; } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal whenNotPaused override { super._beforeTokenTransfer(from, 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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"pure","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mainNetMappingFreeze","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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a06040523480156200001157600080fd5b506040518060400160405280600b81526020017f4d6574615573657244414f0000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d554400000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200046d565b508060049080519060200190620000af9291906200046d565b5050506000600560016101000a81548160ff021916908315150217905550620000ed620000e16200018560201b60201c565b6200018d60201b60201c565b6000600560006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200017f33620001516200025360201b60201c565b60ff16600a620001629190620006aa565b633b9aca00620001739190620006fb565b6200025c60201b60201c565b62000941565b600033905090565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006006905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c690620007bd565b60405180910390fd5b620002e360008383620003ca60201b60201c565b8060026000828254620002f79190620007df565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003aa91906200084d565b60405180910390a3620003c660008383620003f760201b60201c565b5050565b620003da620003fc60201b60201c565b620003f28383836200045160201b620009061760201c565b505050565b505050565b6200040c6200045660201b60201c565b156200044f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044690620008ba565b60405180910390fd5b565b505050565b6000600560019054906101000a900460ff16905090565b8280546200047b906200090b565b90600052602060002090601f0160209004810192826200049f5760008555620004eb565b82601f10620004ba57805160ff1916838001178555620004eb565b82800160010185558215620004eb579182015b82811115620004ea578251825591602001919060010190620004cd565b5b509050620004fa9190620004fe565b5090565b5b8082111562000519576000816000905550600101620004ff565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005ab578086048111156200058357620005826200051d565b5b6001851615620005935780820291505b8081029050620005a3856200054c565b945062000563565b94509492505050565b600082620005c6576001905062000699565b81620005d6576000905062000699565b8160018114620005ef5760028114620005fa5762000630565b600191505062000699565b60ff8411156200060f576200060e6200051d565b5b8360020a9150848211156200062957620006286200051d565b5b5062000699565b5060208310610133831016604e8410600b84101617156200066a5782820a9050838111156200066457620006636200051d565b5b62000699565b62000679848484600162000559565b925090508184048111156200069357620006926200051d565b5b81810290505b9392505050565b6000819050919050565b6000620006b782620006a0565b9150620006c483620006a0565b9250620006f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005b4565b905092915050565b60006200070882620006a0565b91506200071583620006a0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200075157620007506200051d565b5b828202905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620007a5601f836200075c565b9150620007b2826200076d565b602082019050919050565b60006020820190508181036000830152620007d88162000796565b9050919050565b6000620007ec82620006a0565b9150620007f983620006a0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200083157620008306200051d565b5b828201905092915050565b6200084781620006a0565b82525050565b60006020820190506200086460008301846200083c565b92915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000620008a26010836200075c565b9150620008af826200086a565b602082019050919050565b60006020820190508181036000830152620008d58162000893565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200092457607f821691505b602082108114156200093b576200093a620008dc565b5b50919050565b608051611ec26200095d60003960006107020152611ec26000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a457c2d711610071578063a457c2d7146102fb578063a9059cbb1461032b578063b09572da1461035b578063dd62ed3e14610365578063f2fde38b146103955761012c565b8063715018a61461028f57806379cc6790146102995780638456cb59146102b55780638da5cb5b146102bf57806395d89b41146102dd5761012c565b806339509351116100f457806339509351146101eb5780633f4ba83a1461021b57806342966c68146102255780635c975abb1461024157806370a082311461025f5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103b1565b6040516101469190611353565b60405180910390f35b6101696004803603810190610164919061140e565b610443565b6040516101769190611469565b60405180910390f35b610187610466565b6040516101949190611493565b60405180910390f35b6101b760048036038101906101b291906114ae565b610470565b6040516101c49190611469565b60405180910390f35b6101d561049f565b6040516101e2919061151d565b60405180910390f35b6102056004803603810190610200919061140e565b6104a8565b6040516102129190611469565b60405180910390f35b6102236104df565b005b61023f600480360381019061023a9190611538565b6104f1565b005b610249610505565b6040516102569190611469565b60405180910390f35b61027960048036038101906102749190611565565b61051c565b6040516102869190611493565b60405180910390f35b610297610564565b005b6102b360048036038101906102ae919061140e565b610578565b005b6102bd610598565b005b6102c76105aa565b6040516102d491906115a1565b60405180910390f35b6102e56105d4565b6040516102f29190611353565b60405180910390f35b6103156004803603810190610310919061140e565b610666565b6040516103229190611469565b60405180910390f35b6103456004803603810190610340919061140e565b6106dd565b6040516103529190611469565b60405180910390f35b610363610700565b005b61037f600480360381019061037a91906115bc565b6107fb565b60405161038c9190611493565b60405180910390f35b6103af60048036038101906103aa9190611565565b610882565b005b6060600380546103c09061162b565b80601f01602080910402602001604051908101604052809291908181526020018280546103ec9061162b565b80156104395780601f1061040e57610100808354040283529160200191610439565b820191906000526020600020905b81548152906001019060200180831161041c57829003601f168201915b5050505050905090565b60008061044e61090b565b905061045b818585610913565b600191505092915050565b6000600254905090565b60008061047b61090b565b9050610488858285610ade565b610493858585610b6a565b60019150509392505050565b60006006905090565b6000806104b361090b565b90506104d48185856104c585896107fb565b6104cf919061168c565b610913565b600191505092915050565b6104e7610e32565b6104ef610eb0565b565b6105026104fc61090b565b82610f13565b50565b6000600560019054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61056c610e32565b61057660006110e1565b565b61058a8261058461090b565b83610ade565b6105948282610f13565b5050565b6105a0610e32565b6105a86111a7565b565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105e39061162b565b80601f016020809104026020016040519081016040528092919081815260200182805461060f9061162b565b801561065c5780601f106106315761010080835404028352916020019161065c565b820191906000526020600020905b81548152906001019060200180831161063f57829003601f168201915b5050505050905090565b60008061067161090b565b9050600061067f82866107fb565b9050838110156106c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bb90611754565b60405180910390fd5b6106d18286868403610913565b60019250505092915050565b6000806106e861090b565b90506106f5818585610b6a565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461078e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610785906117c0565b60405180910390fd5b600560009054906101000a900460ff16156107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d59061182c565b60405180910390fd5b6001600560006101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61088a610e32565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f1906118be565b60405180910390fd5b610903816110e1565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a90611950565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ea906119e2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ad19190611493565b60405180910390a3505050565b6000610aea84846107fb565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b645781811015610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d90611a4e565b60405180910390fd5b610b638484848403610913565b5b50505050565b600560009054906101000a900460ff1615610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb19061182c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190611ae0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190611b72565b60405180910390fd5b610ca583838361120a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290611c04565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e199190611493565b60405180910390a3610e2c848484611222565b50505050565b610e3a61090b565b73ffffffffffffffffffffffffffffffffffffffff16610e586105aa565b73ffffffffffffffffffffffffffffffffffffffff1614610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590611c70565b60405180910390fd5b565b610eb8611227565b6000600560016101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610efc61090b565b604051610f0991906115a1565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90611d02565b60405180910390fd5b610f8f8260008361120a565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90611d94565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110c89190611493565b60405180910390a36110dc83600084611222565b505050565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6111af611270565b6001600560016101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111f361090b565b60405161120091906115a1565b60405180910390a1565b611212611270565b61121d838383610906565b505050565b505050565b61122f610505565b61126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590611e00565b60405180910390fd5b565b611278610505565b156112b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112af90611e6c565b60405180910390fd5b565b600081519050919050565b600082825260208201905092915050565b60005b838110156112f45780820151818401526020810190506112d9565b83811115611303576000848401525b50505050565b6000601f19601f8301169050919050565b6000611325826112ba565b61132f81856112c5565b935061133f8185602086016112d6565b61134881611309565b840191505092915050565b6000602082019050818103600083015261136d818461131a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113a58261137a565b9050919050565b6113b58161139a565b81146113c057600080fd5b50565b6000813590506113d2816113ac565b92915050565b6000819050919050565b6113eb816113d8565b81146113f657600080fd5b50565b600081359050611408816113e2565b92915050565b6000806040838503121561142557611424611375565b5b6000611433858286016113c3565b9250506020611444858286016113f9565b9150509250929050565b60008115159050919050565b6114638161144e565b82525050565b600060208201905061147e600083018461145a565b92915050565b61148d816113d8565b82525050565b60006020820190506114a86000830184611484565b92915050565b6000806000606084860312156114c7576114c6611375565b5b60006114d5868287016113c3565b93505060206114e6868287016113c3565b92505060406114f7868287016113f9565b9150509250925092565b600060ff82169050919050565b61151781611501565b82525050565b6000602082019050611532600083018461150e565b92915050565b60006020828403121561154e5761154d611375565b5b600061155c848285016113f9565b91505092915050565b60006020828403121561157b5761157a611375565b5b6000611589848285016113c3565b91505092915050565b61159b8161139a565b82525050565b60006020820190506115b66000830184611592565b92915050565b600080604083850312156115d3576115d2611375565b5b60006115e1858286016113c3565b92505060206115f2858286016113c3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061164357607f821691505b60208210811415611657576116566115fc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611697826113d8565b91506116a2836113d8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116d7576116d661165d565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061173e6025836112c5565b9150611749826116e2565b604082019050919050565b6000602082019050818103600083015261176d81611731565b9050919050565b7f4e6f7420746f6b656e2063726561746f72210000000000000000000000000000600082015250565b60006117aa6012836112c5565b91506117b582611774565b602082019050919050565b600060208201905081810360008301526117d98161179d565b9050919050565b7f467265657a656420666f72206d61696e6e6574206d617070696e672021000000600082015250565b6000611816601d836112c5565b9150611821826117e0565b602082019050919050565b6000602082019050818103600083015261184581611809565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118a86026836112c5565b91506118b38261184c565b604082019050919050565b600060208201905081810360008301526118d78161189b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061193a6024836112c5565b9150611945826118de565b604082019050919050565b600060208201905081810360008301526119698161192d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119cc6022836112c5565b91506119d782611970565b604082019050919050565b600060208201905081810360008301526119fb816119bf565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a38601d836112c5565b9150611a4382611a02565b602082019050919050565b60006020820190508181036000830152611a6781611a2b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611aca6025836112c5565b9150611ad582611a6e565b604082019050919050565b60006020820190508181036000830152611af981611abd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b5c6023836112c5565b9150611b6782611b00565b604082019050919050565b60006020820190508181036000830152611b8b81611b4f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611bee6026836112c5565b9150611bf982611b92565b604082019050919050565b60006020820190508181036000830152611c1d81611be1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c5a6020836112c5565b9150611c6582611c24565b602082019050919050565b60006020820190508181036000830152611c8981611c4d565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cec6021836112c5565b9150611cf782611c90565b604082019050919050565b60006020820190508181036000830152611d1b81611cdf565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d7e6022836112c5565b9150611d8982611d22565b604082019050919050565b60006020820190508181036000830152611dad81611d71565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000611dea6014836112c5565b9150611df582611db4565b602082019050919050565b60006020820190508181036000830152611e1981611ddd565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000611e566010836112c5565b9150611e6182611e20565b602082019050919050565b60006020820190508181036000830152611e8581611e49565b905091905056fea2646970667358221220cfe3383dba2c524be88942ad72a1ba77fece80d8ad8de9a342a696162c17009464736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a457c2d711610071578063a457c2d7146102fb578063a9059cbb1461032b578063b09572da1461035b578063dd62ed3e14610365578063f2fde38b146103955761012c565b8063715018a61461028f57806379cc6790146102995780638456cb59146102b55780638da5cb5b146102bf57806395d89b41146102dd5761012c565b806339509351116100f457806339509351146101eb5780633f4ba83a1461021b57806342966c68146102255780635c975abb1461024157806370a082311461025f5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103b1565b6040516101469190611353565b60405180910390f35b6101696004803603810190610164919061140e565b610443565b6040516101769190611469565b60405180910390f35b610187610466565b6040516101949190611493565b60405180910390f35b6101b760048036038101906101b291906114ae565b610470565b6040516101c49190611469565b60405180910390f35b6101d561049f565b6040516101e2919061151d565b60405180910390f35b6102056004803603810190610200919061140e565b6104a8565b6040516102129190611469565b60405180910390f35b6102236104df565b005b61023f600480360381019061023a9190611538565b6104f1565b005b610249610505565b6040516102569190611469565b60405180910390f35b61027960048036038101906102749190611565565b61051c565b6040516102869190611493565b60405180910390f35b610297610564565b005b6102b360048036038101906102ae919061140e565b610578565b005b6102bd610598565b005b6102c76105aa565b6040516102d491906115a1565b60405180910390f35b6102e56105d4565b6040516102f29190611353565b60405180910390f35b6103156004803603810190610310919061140e565b610666565b6040516103229190611469565b60405180910390f35b6103456004803603810190610340919061140e565b6106dd565b6040516103529190611469565b60405180910390f35b610363610700565b005b61037f600480360381019061037a91906115bc565b6107fb565b60405161038c9190611493565b60405180910390f35b6103af60048036038101906103aa9190611565565b610882565b005b6060600380546103c09061162b565b80601f01602080910402602001604051908101604052809291908181526020018280546103ec9061162b565b80156104395780601f1061040e57610100808354040283529160200191610439565b820191906000526020600020905b81548152906001019060200180831161041c57829003601f168201915b5050505050905090565b60008061044e61090b565b905061045b818585610913565b600191505092915050565b6000600254905090565b60008061047b61090b565b9050610488858285610ade565b610493858585610b6a565b60019150509392505050565b60006006905090565b6000806104b361090b565b90506104d48185856104c585896107fb565b6104cf919061168c565b610913565b600191505092915050565b6104e7610e32565b6104ef610eb0565b565b6105026104fc61090b565b82610f13565b50565b6000600560019054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61056c610e32565b61057660006110e1565b565b61058a8261058461090b565b83610ade565b6105948282610f13565b5050565b6105a0610e32565b6105a86111a7565b565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105e39061162b565b80601f016020809104026020016040519081016040528092919081815260200182805461060f9061162b565b801561065c5780601f106106315761010080835404028352916020019161065c565b820191906000526020600020905b81548152906001019060200180831161063f57829003601f168201915b5050505050905090565b60008061067161090b565b9050600061067f82866107fb565b9050838110156106c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bb90611754565b60405180910390fd5b6106d18286868403610913565b60019250505092915050565b6000806106e861090b565b90506106f5818585610b6a565b600191505092915050565b7f000000000000000000000000426a3845c59d477d599a5fee34a3c3597f45954f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461078e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610785906117c0565b60405180910390fd5b600560009054906101000a900460ff16156107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d59061182c565b60405180910390fd5b6001600560006101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61088a610e32565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f1906118be565b60405180910390fd5b610903816110e1565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a90611950565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ea906119e2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ad19190611493565b60405180910390a3505050565b6000610aea84846107fb565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b645781811015610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d90611a4e565b60405180910390fd5b610b638484848403610913565b5b50505050565b600560009054906101000a900460ff1615610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb19061182c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190611ae0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190611b72565b60405180910390fd5b610ca583838361120a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290611c04565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e199190611493565b60405180910390a3610e2c848484611222565b50505050565b610e3a61090b565b73ffffffffffffffffffffffffffffffffffffffff16610e586105aa565b73ffffffffffffffffffffffffffffffffffffffff1614610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590611c70565b60405180910390fd5b565b610eb8611227565b6000600560016101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610efc61090b565b604051610f0991906115a1565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90611d02565b60405180910390fd5b610f8f8260008361120a565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90611d94565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110c89190611493565b60405180910390a36110dc83600084611222565b505050565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6111af611270565b6001600560016101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111f361090b565b60405161120091906115a1565b60405180910390a1565b611212611270565b61121d838383610906565b505050565b505050565b61122f610505565b61126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590611e00565b60405180910390fd5b565b611278610505565b156112b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112af90611e6c565b60405180910390fd5b565b600081519050919050565b600082825260208201905092915050565b60005b838110156112f45780820151818401526020810190506112d9565b83811115611303576000848401525b50505050565b6000601f19601f8301169050919050565b6000611325826112ba565b61132f81856112c5565b935061133f8185602086016112d6565b61134881611309565b840191505092915050565b6000602082019050818103600083015261136d818461131a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113a58261137a565b9050919050565b6113b58161139a565b81146113c057600080fd5b50565b6000813590506113d2816113ac565b92915050565b6000819050919050565b6113eb816113d8565b81146113f657600080fd5b50565b600081359050611408816113e2565b92915050565b6000806040838503121561142557611424611375565b5b6000611433858286016113c3565b9250506020611444858286016113f9565b9150509250929050565b60008115159050919050565b6114638161144e565b82525050565b600060208201905061147e600083018461145a565b92915050565b61148d816113d8565b82525050565b60006020820190506114a86000830184611484565b92915050565b6000806000606084860312156114c7576114c6611375565b5b60006114d5868287016113c3565b93505060206114e6868287016113c3565b92505060406114f7868287016113f9565b9150509250925092565b600060ff82169050919050565b61151781611501565b82525050565b6000602082019050611532600083018461150e565b92915050565b60006020828403121561154e5761154d611375565b5b600061155c848285016113f9565b91505092915050565b60006020828403121561157b5761157a611375565b5b6000611589848285016113c3565b91505092915050565b61159b8161139a565b82525050565b60006020820190506115b66000830184611592565b92915050565b600080604083850312156115d3576115d2611375565b5b60006115e1858286016113c3565b92505060206115f2858286016113c3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061164357607f821691505b60208210811415611657576116566115fc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611697826113d8565b91506116a2836113d8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116d7576116d661165d565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061173e6025836112c5565b9150611749826116e2565b604082019050919050565b6000602082019050818103600083015261176d81611731565b9050919050565b7f4e6f7420746f6b656e2063726561746f72210000000000000000000000000000600082015250565b60006117aa6012836112c5565b91506117b582611774565b602082019050919050565b600060208201905081810360008301526117d98161179d565b9050919050565b7f467265657a656420666f72206d61696e6e6574206d617070696e672021000000600082015250565b6000611816601d836112c5565b9150611821826117e0565b602082019050919050565b6000602082019050818103600083015261184581611809565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118a86026836112c5565b91506118b38261184c565b604082019050919050565b600060208201905081810360008301526118d78161189b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061193a6024836112c5565b9150611945826118de565b604082019050919050565b600060208201905081810360008301526119698161192d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119cc6022836112c5565b91506119d782611970565b604082019050919050565b600060208201905081810360008301526119fb816119bf565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a38601d836112c5565b9150611a4382611a02565b602082019050919050565b60006020820190508181036000830152611a6781611a2b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611aca6025836112c5565b9150611ad582611a6e565b604082019050919050565b60006020820190508181036000830152611af981611abd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b5c6023836112c5565b9150611b6782611b00565b604082019050919050565b60006020820190508181036000830152611b8b81611b4f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611bee6026836112c5565b9150611bf982611b92565b604082019050919050565b60006020820190508181036000830152611c1d81611be1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c5a6020836112c5565b9150611c6582611c24565b602082019050919050565b60006020820190508181036000830152611c8981611c4d565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cec6021836112c5565b9150611cf782611c90565b604082019050919050565b60006020820190508181036000830152611d1b81611cdf565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d7e6022836112c5565b9150611d8982611d22565b604082019050919050565b60006020820190508181036000830152611dad81611d71565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000611dea6014836112c5565b9150611df582611db4565b602082019050919050565b60006020820190508181036000830152611e1981611ddd565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000611e566010836112c5565b9150611e6182611e20565b602082019050919050565b60006020820190508181036000830152611e8581611e49565b905091905056fea2646970667358221220cfe3383dba2c524be88942ad72a1ba77fece80d8ad8de9a342a696162c17009464736f6c63430008090033
Deployed Bytecode Sourcemap
24603:1027:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12072:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14423:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13192:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15204:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25193:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15908:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25355:65;;;:::i;:::-;;23910:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5284:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13363:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2788:103;;;:::i;:::-;;24320:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25286:61;;;:::i;:::-;;2140:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12291:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16649:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13696:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24977:208;;;:::i;:::-;;13952:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3046:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12072:100;12126:13;12159:5;12152:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12072:100;:::o;14423:201::-;14506:4;14523:13;14539:12;:10;:12::i;:::-;14523:28;;14562:32;14571:5;14578:7;14587:6;14562:8;:32::i;:::-;14612:4;14605:11;;;14423:201;;;;:::o;13192:108::-;13253:7;13280:12;;13273:19;;13192:108;:::o;15204:295::-;15335:4;15352:15;15370:12;:10;:12::i;:::-;15352:30;;15393:38;15409:4;15415:7;15424:6;15393:15;:38::i;:::-;15442:27;15452:4;15458:2;15462:6;15442:9;:27::i;:::-;15487:4;15480:11;;;15204:295;;;;;:::o;25193:85::-;25243:5;25269:1;25262:8;;25193:85;:::o;15908:238::-;15996:4;16013:13;16029:12;:10;:12::i;:::-;16013:28;;16052:64;16061:5;16068:7;16105:10;16077:25;16087:5;16094:7;16077:9;:25::i;:::-;:38;;;;:::i;:::-;16052:8;:64::i;:::-;16134:4;16127:11;;;15908:238;;;;:::o;25355:65::-;2026:13;:11;:13::i;:::-;25402:10:::1;:8;:10::i;:::-;25355:65::o:0;23910:91::-;23966:27;23972:12;:10;:12::i;:::-;23986:6;23966:5;:27::i;:::-;23910:91;:::o;5284:86::-;5331:4;5355:7;;;;;;;;;;;5348:14;;5284:86;:::o;13363:127::-;13437:7;13464:9;:18;13474:7;13464:18;;;;;;;;;;;;;;;;13457:25;;13363:127;;;:::o;2788:103::-;2026:13;:11;:13::i;:::-;2853:30:::1;2880:1;2853:18;:30::i;:::-;2788:103::o:0;24320:164::-;24397:46;24413:7;24422:12;:10;:12::i;:::-;24436:6;24397:15;:46::i;:::-;24454:22;24460:7;24469:6;24454:5;:22::i;:::-;24320:164;;:::o;25286:61::-;2026:13;:11;:13::i;:::-;25331:8:::1;:6;:8::i;:::-;25286:61::o:0;2140:87::-;2186:7;2213:6;;;;;;;;;;;2206:13;;2140:87;:::o;12291:104::-;12347:13;12380:7;12373:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12291:104;:::o;16649:436::-;16742:4;16759:13;16775:12;:10;:12::i;:::-;16759:28;;16798:24;16825:25;16835:5;16842:7;16825:9;:25::i;:::-;16798:52;;16889:15;16869:16;:35;;16861:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16982:60;16991:5;16998:7;17026:15;17007:16;:34;16982:8;:60::i;:::-;17073:4;17066:11;;;;16649:436;;;;:::o;13696:193::-;13775:4;13792:13;13808:12;:10;:12::i;:::-;13792:28;;13831;13841:5;13848:2;13852:6;13831:9;:28::i;:::-;13877:4;13870:11;;;13696:193;;;;:::o;24977:208::-;25051:7;25037:21;;:10;:21;;;25029:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;25101:7;;;;;;;;;;;25100:8;25092:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;25173:4;25163:7;;:14;;;;;;;;;;;;;;;;;;24977:208::o;13952:151::-;14041:7;14068:11;:18;14080:5;14068:18;;;;;;;;;;;;;;;:27;14087:7;14068:27;;;;;;;;;;;;;;;;14061:34;;13952:151;;;;:::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;22461:125::-;;;;:::o;685:98::-;738:7;765:10;758:17;;685:98;:::o;20737:380::-;20890:1;20873:19;;:5;:19;;;;20865:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20971:1;20952:21;;:7;:21;;;;20944:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21055:6;21025:11;:18;21037:5;21025:18;;;;;;;;;;;;;;;:27;21044:7;21025:27;;;;;;;;;;;;;;;:36;;;;21093:7;21077:32;;21086:5;21077:32;;;21102:6;21077:32;;;;;;:::i;:::-;;;;;;;;20737:380;;;:::o;21408:453::-;21543:24;21570:25;21580:5;21587:7;21570:9;:25::i;:::-;21543:52;;21630:17;21610:16;:37;21606:248;;21692:6;21672:16;:26;;21664:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21776:51;21785:5;21792:7;21820:6;21801:16;:25;21776:8;:51::i;:::-;21606:248;21532:329;21408:453;;;:::o;17555:901::-;17687:7;;;;;;;;;;;17686:8;17678:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;17763:1;17747:18;;:4;:18;;;;17739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17840:1;17826:16;;:2;:16;;;;17818:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17895:38;17916:4;17922:2;17926:6;17895:20;:38::i;:::-;17946:19;17968:9;:15;17978:4;17968:15;;;;;;;;;;;;;;;;17946:37;;18017:6;18002:11;:21;;17994:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18134:6;18120:11;:20;18102:9;:15;18112:4;18102:15;;;;;;;;;;;;;;;:38;;;;18337:6;18320:9;:13;18330:2;18320:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18387:2;18372:26;;18381:4;18372:26;;;18391:6;18372:26;;;;;;:::i;:::-;;;;;;;;18411:37;18431:4;18437:2;18441:6;18411:19;:37::i;:::-;17667:789;17555:901;;;:::o;2305:132::-;2380:12;:10;:12::i;:::-;2369:23;;:7;:5;:7::i;:::-;:23;;;2361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2305:132::o;6139:120::-;5148:16;:14;:16::i;:::-;6208:5:::1;6198:7;;:15;;;;;;;;;;;;;;;;;;6229:22;6238:12;:10;:12::i;:::-;6229:22;;;;;;:::i;:::-;;;;;;;;6139:120::o:0;19624:675::-;19727:1;19708:21;;:7;:21;;;;19700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19780:49;19801:7;19818:1;19822:6;19780:20;:49::i;:::-;19842:22;19867:9;:18;19877:7;19867:18;;;;;;;;;;;;;;;;19842:43;;19922:6;19904:14;:24;;19896:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20041:6;20024:14;:23;20003:9;:18;20013:7;20003:18;;;;;;;;;;;;;;;:44;;;;20158:6;20142:12;;:22;;;;;;;;;;;20219:1;20193:37;;20202:7;20193:37;;;20223:6;20193:37;;;;;;:::i;:::-;;;;;;;;20243:48;20263:7;20280:1;20284:6;20243:19;:48::i;:::-;19689:610;19624:675;;:::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;5880:118::-;4889:19;:17;:19::i;:::-;5950:4:::1;5940:7;;:14;;;;;;;;;;;;;;;;;;5970:20;5977:12;:10;:12::i;:::-;5970:20;;;;;;:::i;:::-;;;;;;;;5880:118::o:0;25428:199::-;4889:19;:17;:19::i;:::-;25575:44:::1;25602:4;25608:2;25612:6;25575:26;:44::i;:::-;25428:199:::0;;;:::o;23190:124::-;;;;:::o;5628:108::-;5695:8;:6;:8::i;:::-;5687:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;5628:108::o;5443:::-;5514:8;:6;:8::i;:::-;5513:9;5505:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5443:108::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:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:::-;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:180::-;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:320;6633:6;6670:1;6664:4;6660:12;6650:22;;6717:1;6711:4;6707:12;6738:18;6728:81;;6794:4;6786:6;6782:17;6772:27;;6728:81;6856:2;6848:6;6845:14;6825:18;6822:38;6819:84;;;6875:18;;:::i;:::-;6819:84;6640:269;6589:320;;;:::o;6915:180::-;6963:77;6960:1;6953:88;7060:4;7057:1;7050:15;7084:4;7081:1;7074:15;7101:305;7141:3;7160:20;7178:1;7160:20;:::i;:::-;7155:25;;7194:20;7212:1;7194:20;:::i;:::-;7189:25;;7348:1;7280:66;7276:74;7273:1;7270:81;7267:107;;;7354:18;;:::i;:::-;7267:107;7398:1;7395;7391:9;7384:16;;7101:305;;;;:::o;7412:224::-;7552:34;7548:1;7540:6;7536:14;7529:58;7621:7;7616:2;7608:6;7604:15;7597:32;7412:224;:::o;7642:366::-;7784:3;7805:67;7869:2;7864:3;7805:67;:::i;:::-;7798:74;;7881:93;7970:3;7881:93;:::i;:::-;7999:2;7994:3;7990:12;7983:19;;7642:366;;;:::o;8014:419::-;8180:4;8218:2;8207:9;8203:18;8195:26;;8267:9;8261:4;8257:20;8253:1;8242:9;8238:17;8231:47;8295:131;8421:4;8295:131;:::i;:::-;8287:139;;8014:419;;;:::o;8439:168::-;8579:20;8575:1;8567:6;8563:14;8556:44;8439:168;:::o;8613:366::-;8755:3;8776:67;8840:2;8835:3;8776:67;:::i;:::-;8769:74;;8852:93;8941:3;8852:93;:::i;:::-;8970:2;8965:3;8961:12;8954:19;;8613:366;;;:::o;8985:419::-;9151:4;9189:2;9178:9;9174:18;9166:26;;9238:9;9232:4;9228:20;9224:1;9213:9;9209:17;9202:47;9266:131;9392:4;9266:131;:::i;:::-;9258:139;;8985:419;;;:::o;9410:179::-;9550:31;9546:1;9538:6;9534:14;9527:55;9410:179;:::o;9595:366::-;9737:3;9758:67;9822:2;9817:3;9758:67;:::i;:::-;9751:74;;9834:93;9923:3;9834:93;:::i;:::-;9952:2;9947:3;9943:12;9936:19;;9595:366;;;:::o;9967:419::-;10133:4;10171:2;10160:9;10156:18;10148:26;;10220:9;10214:4;10210:20;10206:1;10195:9;10191:17;10184:47;10248:131;10374:4;10248:131;:::i;:::-;10240:139;;9967:419;;;:::o;10392:225::-;10532:34;10528:1;10520:6;10516:14;10509:58;10601:8;10596:2;10588:6;10584:15;10577:33;10392:225;:::o;10623:366::-;10765:3;10786:67;10850:2;10845:3;10786:67;:::i;:::-;10779:74;;10862:93;10951:3;10862:93;:::i;:::-;10980:2;10975:3;10971:12;10964:19;;10623:366;;;:::o;10995:419::-;11161:4;11199:2;11188:9;11184:18;11176:26;;11248:9;11242:4;11238:20;11234:1;11223:9;11219:17;11212:47;11276:131;11402:4;11276:131;:::i;:::-;11268:139;;10995:419;;;:::o;11420:223::-;11560:34;11556:1;11548:6;11544:14;11537:58;11629:6;11624:2;11616:6;11612:15;11605:31;11420:223;:::o;11649:366::-;11791:3;11812:67;11876:2;11871:3;11812:67;:::i;:::-;11805:74;;11888:93;11977:3;11888:93;:::i;:::-;12006:2;12001:3;11997:12;11990:19;;11649:366;;;:::o;12021:419::-;12187:4;12225:2;12214:9;12210:18;12202:26;;12274:9;12268:4;12264:20;12260:1;12249:9;12245:17;12238:47;12302:131;12428:4;12302:131;:::i;:::-;12294:139;;12021:419;;;:::o;12446:221::-;12586:34;12582:1;12574:6;12570:14;12563:58;12655:4;12650:2;12642:6;12638:15;12631:29;12446:221;:::o;12673:366::-;12815:3;12836:67;12900:2;12895:3;12836:67;:::i;:::-;12829:74;;12912:93;13001:3;12912:93;:::i;:::-;13030:2;13025:3;13021:12;13014:19;;12673:366;;;:::o;13045:419::-;13211:4;13249:2;13238:9;13234:18;13226:26;;13298:9;13292:4;13288:20;13284:1;13273:9;13269:17;13262:47;13326:131;13452:4;13326:131;:::i;:::-;13318:139;;13045:419;;;:::o;13470:179::-;13610:31;13606:1;13598:6;13594:14;13587:55;13470:179;:::o;13655:366::-;13797:3;13818:67;13882:2;13877:3;13818:67;:::i;:::-;13811:74;;13894:93;13983:3;13894:93;:::i;:::-;14012:2;14007:3;14003:12;13996:19;;13655:366;;;:::o;14027:419::-;14193:4;14231:2;14220:9;14216:18;14208:26;;14280:9;14274:4;14270:20;14266:1;14255:9;14251:17;14244:47;14308:131;14434:4;14308:131;:::i;:::-;14300:139;;14027:419;;;:::o;14452:224::-;14592:34;14588:1;14580:6;14576:14;14569:58;14661:7;14656:2;14648:6;14644:15;14637:32;14452:224;:::o;14682:366::-;14824:3;14845:67;14909:2;14904:3;14845:67;:::i;:::-;14838:74;;14921:93;15010:3;14921:93;:::i;:::-;15039:2;15034:3;15030:12;15023:19;;14682:366;;;:::o;15054:419::-;15220:4;15258:2;15247:9;15243:18;15235:26;;15307:9;15301:4;15297:20;15293:1;15282:9;15278:17;15271:47;15335:131;15461:4;15335:131;:::i;:::-;15327:139;;15054:419;;;:::o;15479:222::-;15619:34;15615:1;15607:6;15603:14;15596:58;15688:5;15683:2;15675:6;15671:15;15664:30;15479:222;:::o;15707:366::-;15849:3;15870:67;15934:2;15929:3;15870:67;:::i;:::-;15863:74;;15946:93;16035:3;15946:93;:::i;:::-;16064:2;16059:3;16055:12;16048:19;;15707:366;;;:::o;16079:419::-;16245:4;16283:2;16272:9;16268:18;16260:26;;16332:9;16326:4;16322:20;16318:1;16307:9;16303:17;16296:47;16360:131;16486:4;16360:131;:::i;:::-;16352:139;;16079:419;;;:::o;16504:225::-;16644:34;16640:1;16632:6;16628:14;16621:58;16713:8;16708:2;16700:6;16696:15;16689:33;16504:225;:::o;16735:366::-;16877:3;16898:67;16962:2;16957:3;16898:67;:::i;:::-;16891:74;;16974:93;17063:3;16974:93;:::i;:::-;17092:2;17087:3;17083:12;17076:19;;16735:366;;;:::o;17107:419::-;17273:4;17311:2;17300:9;17296:18;17288:26;;17360:9;17354:4;17350:20;17346:1;17335:9;17331:17;17324:47;17388:131;17514:4;17388:131;:::i;:::-;17380:139;;17107:419;;;:::o;17532:182::-;17672:34;17668:1;17660:6;17656:14;17649:58;17532:182;:::o;17720:366::-;17862:3;17883:67;17947:2;17942:3;17883:67;:::i;:::-;17876:74;;17959:93;18048:3;17959:93;:::i;:::-;18077:2;18072:3;18068:12;18061:19;;17720:366;;;:::o;18092:419::-;18258:4;18296:2;18285:9;18281:18;18273:26;;18345:9;18339:4;18335:20;18331:1;18320:9;18316:17;18309:47;18373:131;18499:4;18373:131;:::i;:::-;18365:139;;18092:419;;;:::o;18517:220::-;18657:34;18653:1;18645:6;18641:14;18634:58;18726:3;18721:2;18713:6;18709:15;18702:28;18517:220;:::o;18743:366::-;18885:3;18906:67;18970:2;18965:3;18906:67;:::i;:::-;18899:74;;18982:93;19071:3;18982:93;:::i;:::-;19100:2;19095:3;19091:12;19084:19;;18743:366;;;:::o;19115:419::-;19281:4;19319:2;19308:9;19304:18;19296:26;;19368:9;19362:4;19358:20;19354:1;19343:9;19339:17;19332:47;19396:131;19522:4;19396:131;:::i;:::-;19388:139;;19115:419;;;:::o;19540:221::-;19680:34;19676:1;19668:6;19664:14;19657:58;19749:4;19744:2;19736:6;19732:15;19725:29;19540:221;:::o;19767:366::-;19909:3;19930:67;19994:2;19989:3;19930:67;:::i;:::-;19923:74;;20006:93;20095:3;20006:93;:::i;:::-;20124:2;20119:3;20115:12;20108:19;;19767:366;;;:::o;20139:419::-;20305:4;20343:2;20332:9;20328:18;20320:26;;20392:9;20386:4;20382:20;20378:1;20367:9;20363:17;20356:47;20420:131;20546:4;20420:131;:::i;:::-;20412:139;;20139:419;;;:::o;20564:170::-;20704:22;20700:1;20692:6;20688:14;20681:46;20564:170;:::o;20740:366::-;20882:3;20903:67;20967:2;20962:3;20903:67;:::i;:::-;20896:74;;20979:93;21068:3;20979:93;:::i;:::-;21097:2;21092:3;21088:12;21081:19;;20740:366;;;:::o;21112:419::-;21278:4;21316:2;21305:9;21301:18;21293:26;;21365:9;21359:4;21355:20;21351:1;21340:9;21336:17;21329:47;21393:131;21519:4;21393:131;:::i;:::-;21385:139;;21112:419;;;:::o;21537:166::-;21677:18;21673:1;21665:6;21661:14;21654:42;21537:166;:::o;21709:366::-;21851:3;21872:67;21936:2;21931:3;21872:67;:::i;:::-;21865:74;;21948:93;22037:3;21948:93;:::i;:::-;22066:2;22061:3;22057:12;22050:19;;21709:366;;;:::o;22081:419::-;22247:4;22285:2;22274:9;22270:18;22262:26;;22334:9;22328:4;22324:20;22320:1;22309:9;22305:17;22298:47;22362:131;22488:4;22362:131;:::i;:::-;22354:139;;22081:419;;;:::o
Swarm Source
ipfs://cfe3383dba2c524be88942ad72a1ba77fece80d8ad8de9a342a696162c170094
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.