ERC-20
Overview
Max Total Supply
1,000,000 1000x
Holders
76
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2.917300200813668845 1000xValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ThousandX
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-25 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @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); } /** * @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); } /* * @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) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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 guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut 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: * * - `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"); _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"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(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 Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } contract ThousandX is ERC20("1000x", "1000x") { using SafeMath for uint256; address[] avengers; address thanos; modifier onlyThanos{ require(msg.sender == thanos); _; } constructor() public { _mint(msg.sender, 1000000 * (10 ** uint256(decimals()))); thanos = msg.sender; } function snap() public onlyThanos { for (uint256 i = 0; i < avengers.length; i++) { uint256 vibranium = super.balanceOf(avengers[i]).div(2); // Burn their vibranium super._burn(avengers[i], vibranium); } } function iDontFeelSoGood(address spiderman) public onlyThanos { avengers.push(spiderman); } function infinityGauntlet() public view onlyThanos returns (address[] memory){ return avengers; } }
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":"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":[],"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":"spiderman","type":"address"}],"name":"iDontFeelSoGood","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"infinityGauntlet","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snap","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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600581526020017f31303030780000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f3130303078000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620002ae565b508060049080519060200190620000af929190620002ae565b505050620000f433620000c76200013b60201b60201c565b60ff16600a620000d891906200049e565b620f4240620000e89190620005db565b6200014460201b60201c565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000710565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ae9062000396565b60405180910390fd5b620001cb60008383620002a960201b60201c565b8060026000828254620001df9190620003e6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002369190620003e6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200029d9190620003b8565b60405180910390a35050565b505050565b828054620002bc9062000646565b90600052602060002090601f016020900481019282620002e057600085556200032c565b82601f10620002fb57805160ff19168380011785556200032c565b828001600101855582156200032c579182015b828111156200032b5782518255916020019190600101906200030e565b5b5090506200033b91906200033f565b5090565b5b808211156200035a57600081600090555060010162000340565b5090565b60006200036d601f83620003d5565b91506200037a82620006e7565b602082019050919050565b62000390816200063c565b82525050565b60006020820190508181036000830152620003b1816200035e565b9050919050565b6000602082019050620003cf600083018462000385565b92915050565b600082825260208201905092915050565b6000620003f3826200063c565b915062000400836200063c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200043857620004376200067c565b5b828201905092915050565b6000808291508390505b600185111562000495578086048111156200046d576200046c6200067c565b5b60018516156200047d5780820291505b80810290506200048d85620006da565b94506200044d565b94509492505050565b6000620004ab826200063c565b9150620004b8836200063c565b9250620004e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004ef565b905092915050565b600082620005015760019050620005d4565b81620005115760009050620005d4565b81600181146200052a576002811462000535576200056b565b6001915050620005d4565b60ff8411156200054a57620005496200067c565b5b8360020a9150848211156200056457620005636200067c565b5b50620005d4565b5060208310610133831016604e8410600b8410161715620005a55782820a9050838111156200059f576200059e6200067c565b5b620005d4565b620005b4848484600162000443565b92509050818404811115620005ce57620005cd6200067c565b5b81810290505b9392505050565b6000620005e8826200063c565b9150620005f5836200063c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200063157620006306200067c565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200065f57607f821691505b60208210811415620006765762000675620006ab565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611c0b80620007206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a77d38fa11610066578063a77d38fa14610273578063a9059cbb1461027d578063be3ad5f8146102ad578063dd62ed3e146102cb576100ea565b806370a08231146101f557806395d89b4114610225578063a457c2d714610243576100ea565b806323b872dd116100c857806323b872dd1461015b5780632658ed691461018b578063313ce567146101a757806339509351146101c5576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f76102fb565b60405161010491906114b7565b60405180910390f35b61012760048036038101906101229190611218565b61038d565b604051610134919061149c565b60405180910390f35b6101456103ab565b60405161015291906115f9565b60405180910390f35b610175600480360381019061017091906111c9565b6103b5565b604051610182919061149c565b60405180910390f35b6101a560048036038101906101a09190611164565b6104b6565b005b6101af610576565b6040516101bc9190611614565b60405180910390f35b6101df60048036038101906101da9190611218565b61057f565b6040516101ec919061149c565b60405180910390f35b61020f600480360381019061020a9190611164565b61062b565b60405161021c91906115f9565b60405180910390f35b61022d610673565b60405161023a91906114b7565b60405180910390f35b61025d60048036038101906102589190611218565b610705565b60405161026a919061149c565b60405180910390f35b61027b6107f9565b005b61029760048036038101906102929190611218565b61096c565b6040516102a4919061149c565b60405180910390f35b6102b561098a565b6040516102c2919061147a565b60405180910390f35b6102e560048036038101906102e0919061118d565b610a72565b6040516102f291906115f9565b60405180910390f35b60606003805461030a906117c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610336906117c7565b80156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b5050505050905090565b60006103a161039a610af9565b8484610b01565b6001905092915050565b6000600254905090565b60006103c2848484610ccc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061040d610af9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561048d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048490611559565b60405180910390fd5b6104aa85610499610af9565b85846104a5919061170b565b610b01565b60019150509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461051057600080fd5b6005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b600061062161058c610af9565b84846001600061059a610af9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461061c9190611684565b610b01565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610682906117c7565b80601f01602080910402602001604051908101604052809291908181526020018280546106ae906117c7565b80156106fb5780601f106106d0576101008083540402835291602001916106fb565b820191906000526020600020905b8154815290600101906020018083116106de57829003601f168201915b5050505050905090565b60008060016000610714610af9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c8906115d9565b60405180910390fd5b6107ee6107dc610af9565b8585846107e9919061170b565b610b01565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461085357600080fd5b60005b6005805490508110156109695760006108e560026108d7600585815481106108a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661062b565b610f4b90919063ffffffff16565b905061095560058381548110610924577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682610f61565b508080610961906117f9565b915050610856565b50565b6000610980610979610af9565b8484610ccc565b6001905092915050565b6060600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e657600080fd5b6005805480602002602001604051908101604052809291908181526020018280548015610a6857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a1e575b5050505050905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b68906115b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890611519565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cbf91906115f9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390611599565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da3906114d9565b60405180910390fd5b610db7838383611135565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611539565b60405180910390fd5b8181610e49919061170b565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ed99190611684565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f3d91906115f9565b60405180910390a350505050565b60008183610f5991906116da565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890611579565b60405180910390fd5b610fdd82600083611135565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a906114f9565b60405180910390fd5b818161106f919061170b565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110c3919061170b565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112891906115f9565b60405180910390a3505050565b505050565b60008135905061114981611ba7565b92915050565b60008135905061115e81611bbe565b92915050565b60006020828403121561117657600080fd5b60006111848482850161113a565b91505092915050565b600080604083850312156111a057600080fd5b60006111ae8582860161113a565b92505060206111bf8582860161113a565b9150509250929050565b6000806000606084860312156111de57600080fd5b60006111ec8682870161113a565b93505060206111fd8682870161113a565b925050604061120e8682870161114f565b9150509250925092565b6000806040838503121561122b57600080fd5b60006112398582860161113a565b925050602061124a8582860161114f565b9150509250929050565b6000611260838361126c565b60208301905092915050565b6112758161173f565b82525050565b60006112868261163f565b6112908185611662565b935061129b8361162f565b8060005b838110156112cc5781516112b38882611254565b97506112be83611655565b92505060018101905061129f565b5085935050505092915050565b6112e281611751565b82525050565b60006112f38261164a565b6112fd8185611673565b935061130d818560208601611794565b611316816118cf565b840191505092915050565b600061132e602383611673565b9150611339826118e0565b604082019050919050565b6000611351602283611673565b915061135c8261192f565b604082019050919050565b6000611374602283611673565b915061137f8261197e565b604082019050919050565b6000611397602683611673565b91506113a2826119cd565b604082019050919050565b60006113ba602883611673565b91506113c582611a1c565b604082019050919050565b60006113dd602183611673565b91506113e882611a6b565b604082019050919050565b6000611400602583611673565b915061140b82611aba565b604082019050919050565b6000611423602483611673565b915061142e82611b09565b604082019050919050565b6000611446602583611673565b915061145182611b58565b604082019050919050565b6114658161177d565b82525050565b61147481611787565b82525050565b60006020820190508181036000830152611494818461127b565b905092915050565b60006020820190506114b160008301846112d9565b92915050565b600060208201905081810360008301526114d181846112e8565b905092915050565b600060208201905081810360008301526114f281611321565b9050919050565b6000602082019050818103600083015261151281611344565b9050919050565b6000602082019050818103600083015261153281611367565b9050919050565b600060208201905081810360008301526115528161138a565b9050919050565b60006020820190508181036000830152611572816113ad565b9050919050565b60006020820190508181036000830152611592816113d0565b9050919050565b600060208201905081810360008301526115b2816113f3565b9050919050565b600060208201905081810360008301526115d281611416565b9050919050565b600060208201905081810360008301526115f281611439565b9050919050565b600060208201905061160e600083018461145c565b92915050565b6000602082019050611629600083018461146b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061168f8261177d565b915061169a8361177d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116cf576116ce611842565b5b828201905092915050565b60006116e58261177d565b91506116f08361177d565b925082611700576116ff611871565b5b828204905092915050565b60006117168261177d565b91506117218361177d565b92508282101561173457611733611842565b5b828203905092915050565b600061174a8261175d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156117b2578082015181840152602081019050611797565b838111156117c1576000848401525b50505050565b600060028204905060018216806117df57607f821691505b602082108114156117f3576117f26118a0565b5b50919050565b60006118048261177d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561183757611836611842565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611bb08161173f565b8114611bbb57600080fd5b50565b611bc78161177d565b8114611bd257600080fd5b5056fea2646970667358221220f5aea5e88877f57e265b9c671c0620e191a7291cb801a110e9e3a872202a4a6864736f6c63430008040033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a77d38fa11610066578063a77d38fa14610273578063a9059cbb1461027d578063be3ad5f8146102ad578063dd62ed3e146102cb576100ea565b806370a08231146101f557806395d89b4114610225578063a457c2d714610243576100ea565b806323b872dd116100c857806323b872dd1461015b5780632658ed691461018b578063313ce567146101a757806339509351146101c5576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f76102fb565b60405161010491906114b7565b60405180910390f35b61012760048036038101906101229190611218565b61038d565b604051610134919061149c565b60405180910390f35b6101456103ab565b60405161015291906115f9565b60405180910390f35b610175600480360381019061017091906111c9565b6103b5565b604051610182919061149c565b60405180910390f35b6101a560048036038101906101a09190611164565b6104b6565b005b6101af610576565b6040516101bc9190611614565b60405180910390f35b6101df60048036038101906101da9190611218565b61057f565b6040516101ec919061149c565b60405180910390f35b61020f600480360381019061020a9190611164565b61062b565b60405161021c91906115f9565b60405180910390f35b61022d610673565b60405161023a91906114b7565b60405180910390f35b61025d60048036038101906102589190611218565b610705565b60405161026a919061149c565b60405180910390f35b61027b6107f9565b005b61029760048036038101906102929190611218565b61096c565b6040516102a4919061149c565b60405180910390f35b6102b561098a565b6040516102c2919061147a565b60405180910390f35b6102e560048036038101906102e0919061118d565b610a72565b6040516102f291906115f9565b60405180910390f35b60606003805461030a906117c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610336906117c7565b80156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b5050505050905090565b60006103a161039a610af9565b8484610b01565b6001905092915050565b6000600254905090565b60006103c2848484610ccc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061040d610af9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561048d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048490611559565b60405180910390fd5b6104aa85610499610af9565b85846104a5919061170b565b610b01565b60019150509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461051057600080fd5b6005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b600061062161058c610af9565b84846001600061059a610af9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461061c9190611684565b610b01565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610682906117c7565b80601f01602080910402602001604051908101604052809291908181526020018280546106ae906117c7565b80156106fb5780601f106106d0576101008083540402835291602001916106fb565b820191906000526020600020905b8154815290600101906020018083116106de57829003601f168201915b5050505050905090565b60008060016000610714610af9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c8906115d9565b60405180910390fd5b6107ee6107dc610af9565b8585846107e9919061170b565b610b01565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461085357600080fd5b60005b6005805490508110156109695760006108e560026108d7600585815481106108a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661062b565b610f4b90919063ffffffff16565b905061095560058381548110610924577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682610f61565b508080610961906117f9565b915050610856565b50565b6000610980610979610af9565b8484610ccc565b6001905092915050565b6060600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e657600080fd5b6005805480602002602001604051908101604052809291908181526020018280548015610a6857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a1e575b5050505050905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b68906115b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890611519565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cbf91906115f9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390611599565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da3906114d9565b60405180910390fd5b610db7838383611135565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611539565b60405180910390fd5b8181610e49919061170b565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ed99190611684565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f3d91906115f9565b60405180910390a350505050565b60008183610f5991906116da565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890611579565b60405180910390fd5b610fdd82600083611135565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a906114f9565b60405180910390fd5b818161106f919061170b565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110c3919061170b565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112891906115f9565b60405180910390a3505050565b505050565b60008135905061114981611ba7565b92915050565b60008135905061115e81611bbe565b92915050565b60006020828403121561117657600080fd5b60006111848482850161113a565b91505092915050565b600080604083850312156111a057600080fd5b60006111ae8582860161113a565b92505060206111bf8582860161113a565b9150509250929050565b6000806000606084860312156111de57600080fd5b60006111ec8682870161113a565b93505060206111fd8682870161113a565b925050604061120e8682870161114f565b9150509250925092565b6000806040838503121561122b57600080fd5b60006112398582860161113a565b925050602061124a8582860161114f565b9150509250929050565b6000611260838361126c565b60208301905092915050565b6112758161173f565b82525050565b60006112868261163f565b6112908185611662565b935061129b8361162f565b8060005b838110156112cc5781516112b38882611254565b97506112be83611655565b92505060018101905061129f565b5085935050505092915050565b6112e281611751565b82525050565b60006112f38261164a565b6112fd8185611673565b935061130d818560208601611794565b611316816118cf565b840191505092915050565b600061132e602383611673565b9150611339826118e0565b604082019050919050565b6000611351602283611673565b915061135c8261192f565b604082019050919050565b6000611374602283611673565b915061137f8261197e565b604082019050919050565b6000611397602683611673565b91506113a2826119cd565b604082019050919050565b60006113ba602883611673565b91506113c582611a1c565b604082019050919050565b60006113dd602183611673565b91506113e882611a6b565b604082019050919050565b6000611400602583611673565b915061140b82611aba565b604082019050919050565b6000611423602483611673565b915061142e82611b09565b604082019050919050565b6000611446602583611673565b915061145182611b58565b604082019050919050565b6114658161177d565b82525050565b61147481611787565b82525050565b60006020820190508181036000830152611494818461127b565b905092915050565b60006020820190506114b160008301846112d9565b92915050565b600060208201905081810360008301526114d181846112e8565b905092915050565b600060208201905081810360008301526114f281611321565b9050919050565b6000602082019050818103600083015261151281611344565b9050919050565b6000602082019050818103600083015261153281611367565b9050919050565b600060208201905081810360008301526115528161138a565b9050919050565b60006020820190508181036000830152611572816113ad565b9050919050565b60006020820190508181036000830152611592816113d0565b9050919050565b600060208201905081810360008301526115b2816113f3565b9050919050565b600060208201905081810360008301526115d281611416565b9050919050565b600060208201905081810360008301526115f281611439565b9050919050565b600060208201905061160e600083018461145c565b92915050565b6000602082019050611629600083018461146b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061168f8261177d565b915061169a8361177d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116cf576116ce611842565b5b828201905092915050565b60006116e58261177d565b91506116f08361177d565b925082611700576116ff611871565b5b828204905092915050565b60006117168261177d565b91506117218361177d565b92508282101561173457611733611842565b5b828203905092915050565b600061174a8261175d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156117b2578082015181840152602081019050611797565b838111156117c1576000848401525b50505050565b600060028204905060018216806117df57607f821691505b602082108114156117f3576117f26118a0565b5b50919050565b60006118048261177d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561183757611836611842565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611bb08161173f565b8114611bbb57600080fd5b50565b611bc78161177d565b8114611bd257600080fd5b5056fea2646970667358221220f5aea5e88877f57e265b9c671c0620e191a7291cb801a110e9e3a872202a4a6864736f6c63430008040033
Deployed Bytecode Sourcemap
21792:857:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6182:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8349:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7302:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9000:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22422:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7144:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9831:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7473:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6401:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10549:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22147:267;;;:::i;:::-;;7813:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22535:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8051:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6182:100;6236:13;6269:5;6262:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6182:100;:::o;8349:169::-;8432:4;8449:39;8458:12;:10;:12::i;:::-;8472:7;8481:6;8449:8;:39::i;:::-;8506:4;8499:11;;8349:169;;;;:::o;7302:108::-;7363:7;7390:12;;7383:19;;7302:108;:::o;9000:422::-;9106:4;9123:36;9133:6;9141:9;9152:6;9123:9;:36::i;:::-;9172:24;9199:11;:19;9211:6;9199:19;;;;;;;;;;;;;;;:33;9219:12;:10;:12::i;:::-;9199:33;;;;;;;;;;;;;;;;9172:60;;9271:6;9251:16;:26;;9243:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9333:57;9342:6;9350:12;:10;:12::i;:::-;9383:6;9364:16;:25;;;;:::i;:::-;9333:8;:57::i;:::-;9410:4;9403:11;;;9000:422;;;;;:::o;22422:105::-;21978:6;;;;;;;;;;;21964:20;;:10;:20;;;21956:29;;;;;;22495:8:::1;22509:9;22495:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22422:105:::0;:::o;7144:93::-;7202:5;7227:2;7220:9;;7144:93;:::o;9831:215::-;9919:4;9936:80;9945:12;:10;:12::i;:::-;9959:7;10005:10;9968:11;:25;9980:12;:10;:12::i;:::-;9968:25;;;;;;;;;;;;;;;:34;9994:7;9968:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9936:8;:80::i;:::-;10034:4;10027:11;;9831:215;;;;:::o;7473:127::-;7547:7;7574:9;:18;7584:7;7574:18;;;;;;;;;;;;;;;;7567:25;;7473:127;;;:::o;6401:104::-;6457:13;6490:7;6483:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6401:104;:::o;10549:377::-;10642:4;10659:24;10686:11;:25;10698:12;:10;:12::i;:::-;10686:25;;;;;;;;;;;;;;;:34;10712:7;10686:34;;;;;;;;;;;;;;;;10659:61;;10759:15;10739:16;:35;;10731:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10827:67;10836:12;:10;:12::i;:::-;10850:7;10878:15;10859:16;:34;;;;:::i;:::-;10827:8;:67::i;:::-;10914:4;10907:11;;;10549:377;;;;:::o;22147:267::-;21978:6;;;;;;;;;;;21964:20;;:10;:20;;;21956:29;;;;;;22197:9:::1;22192:215;22216:8;:15;;;;22212:1;:19;22192:215;;;22253:17;22273:35;22306:1;22273:28;22289:8;22298:1;22289:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22273:15;:28::i;:::-;:32;;:35;;;;:::i;:::-;22253:55;;22360:35;22372:8;22381:1;22372:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22385:9;22360:11;:35::i;:::-;22192:215;22233:3;;;;;:::i;:::-;;;;22192:215;;;;22147:267::o:0;7813:175::-;7899:4;7916:42;7926:12;:10;:12::i;:::-;7940:9;7951:6;7916:9;:42::i;:::-;7976:4;7969:11;;7813:175;;;;:::o;22535:111::-;22595:16;21978:6;;;;;;;;;;;21964:20;;:10;:20;;;21956:29;;;;;;22630:8:::1;22623:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22535:111:::0;:::o;8051:151::-;8140:7;8167:11;:18;8179:5;8167:18;;;;;;;;;;;;;;;:27;8186:7;8167:27;;;;;;;;;;;;;;;;8160:34;;8051:151;;;;:::o;3862:98::-;3915:7;3942:10;3935:17;;3862:98;:::o;13905:346::-;14024:1;14007:19;;:5;:19;;;;13999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14105:1;14086:21;;:7;:21;;;;14078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14189:6;14159:11;:18;14171:5;14159:18;;;;;;;;;;;;;;;:27;14178:7;14159:27;;;;;;;;;;;;;;;:36;;;;14227:7;14211:32;;14220:5;14211:32;;;14236:6;14211:32;;;;;;:::i;:::-;;;;;;;;13905:346;;;:::o;11416:604::-;11540:1;11522:20;;:6;:20;;;;11514:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11624:1;11603:23;;:9;:23;;;;11595:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11679:47;11700:6;11708:9;11719:6;11679:20;:47::i;:::-;11739:21;11763:9;:17;11773:6;11763:17;;;;;;;;;;;;;;;;11739:41;;11816:6;11799:13;:23;;11791:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11912:6;11896:13;:22;;;;:::i;:::-;11876:9;:17;11886:6;11876:17;;;;;;;;;;;;;;;:42;;;;11953:6;11929:9;:20;11939:9;11929:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11994:9;11977:35;;11986:6;11977:35;;;12005:6;11977:35;;;;;;:::i;:::-;;;;;;;;11416:604;;;;:::o;18687:98::-;18745:7;18776:1;18772;:5;;;;:::i;:::-;18765:12;;18687:98;;;;:::o;12973:494::-;13076:1;13057:21;;:7;:21;;;;13049:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13129:49;13150:7;13167:1;13171:6;13129:20;:49::i;:::-;13191:22;13216:9;:18;13226:7;13216:18;;;;;;;;;;;;;;;;13191:43;;13271:6;13253:14;:24;;13245:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13365:6;13348:14;:23;;;;:::i;:::-;13327:9;:18;13337:7;13327:18;;;;;;;;;;;;;;;:44;;;;13398:6;13382:12;;:22;;;;;;;:::i;:::-;;;;;;;;13448:1;13422:37;;13431:7;13422:37;;;13452:6;13422:37;;;;;;:::i;:::-;;;;;;;;12973:494;;;:::o;14854:92::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;356:6;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;633:6;641;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;1055:6;1063;1071;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;1604:6;1612;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:179::-;2018:10;2039:46;2081:3;2073:6;2039:46;:::i;:::-;2117:4;2112:3;2108:14;2094:28;;2029:99;;;;:::o;2134:108::-;2211:24;2229:5;2211:24;:::i;:::-;2206:3;2199:37;2189:53;;:::o;2278:732::-;2397:3;2426:54;2474:5;2426:54;:::i;:::-;2496:86;2575:6;2570:3;2496:86;:::i;:::-;2489:93;;2606:56;2656:5;2606:56;:::i;:::-;2685:7;2716:1;2701:284;2726:6;2723:1;2720:13;2701:284;;;2802:6;2796:13;2829:63;2888:3;2873:13;2829:63;:::i;:::-;2822:70;;2915:60;2968:6;2915:60;:::i;:::-;2905:70;;2761:224;2748:1;2745;2741:9;2736:14;;2701:284;;;2705:14;3001:3;2994:10;;2402:608;;;;;;;:::o;3016:109::-;3097:21;3112:5;3097:21;:::i;:::-;3092:3;3085:34;3075:50;;:::o;3131:364::-;3219:3;3247:39;3280:5;3247:39;:::i;:::-;3302:71;3366:6;3361:3;3302:71;:::i;:::-;3295:78;;3382:52;3427:6;3422:3;3415:4;3408:5;3404:16;3382:52;:::i;:::-;3459:29;3481:6;3459:29;:::i;:::-;3454:3;3450:39;3443:46;;3223:272;;;;;:::o;3501:366::-;3643:3;3664:67;3728:2;3723:3;3664:67;:::i;:::-;3657:74;;3740:93;3829:3;3740:93;:::i;:::-;3858:2;3853:3;3849:12;3842:19;;3647:220;;;:::o;3873:366::-;4015:3;4036:67;4100:2;4095:3;4036:67;:::i;:::-;4029:74;;4112:93;4201:3;4112:93;:::i;:::-;4230:2;4225:3;4221:12;4214:19;;4019:220;;;:::o;4245:366::-;4387:3;4408:67;4472:2;4467:3;4408:67;:::i;:::-;4401:74;;4484:93;4573:3;4484:93;:::i;:::-;4602:2;4597:3;4593:12;4586:19;;4391:220;;;:::o;4617:366::-;4759:3;4780:67;4844:2;4839:3;4780:67;:::i;:::-;4773:74;;4856:93;4945:3;4856:93;:::i;:::-;4974:2;4969:3;4965:12;4958:19;;4763:220;;;:::o;4989:366::-;5131:3;5152:67;5216:2;5211:3;5152:67;:::i;:::-;5145:74;;5228:93;5317:3;5228:93;:::i;:::-;5346:2;5341:3;5337:12;5330:19;;5135:220;;;:::o;5361:366::-;5503:3;5524:67;5588:2;5583:3;5524:67;:::i;:::-;5517:74;;5600:93;5689:3;5600:93;:::i;:::-;5718:2;5713:3;5709:12;5702:19;;5507:220;;;:::o;5733:366::-;5875:3;5896:67;5960:2;5955:3;5896:67;:::i;:::-;5889:74;;5972:93;6061:3;5972:93;:::i;:::-;6090:2;6085:3;6081:12;6074:19;;5879:220;;;:::o;6105:366::-;6247:3;6268:67;6332:2;6327:3;6268:67;:::i;:::-;6261:74;;6344:93;6433:3;6344:93;:::i;:::-;6462:2;6457:3;6453:12;6446:19;;6251:220;;;:::o;6477:366::-;6619:3;6640:67;6704:2;6699:3;6640:67;:::i;:::-;6633:74;;6716:93;6805:3;6716:93;:::i;:::-;6834:2;6829:3;6825:12;6818:19;;6623:220;;;:::o;6849:118::-;6936:24;6954:5;6936:24;:::i;:::-;6931:3;6924:37;6914:53;;:::o;6973:112::-;7056:22;7072:5;7056:22;:::i;:::-;7051:3;7044:35;7034:51;;:::o;7091:373::-;7234:4;7272:2;7261:9;7257:18;7249:26;;7321:9;7315:4;7311:20;7307:1;7296:9;7292:17;7285:47;7349:108;7452:4;7443:6;7349:108;:::i;:::-;7341:116;;7239:225;;;;:::o;7470:210::-;7557:4;7595:2;7584:9;7580:18;7572:26;;7608:65;7670:1;7659:9;7655:17;7646:6;7608:65;:::i;:::-;7562:118;;;;:::o;7686:313::-;7799:4;7837:2;7826:9;7822:18;7814:26;;7886:9;7880:4;7876:20;7872:1;7861:9;7857:17;7850:47;7914:78;7987:4;7978:6;7914:78;:::i;:::-;7906:86;;7804:195;;;;:::o;8005:419::-;8171:4;8209:2;8198:9;8194:18;8186:26;;8258:9;8252:4;8248:20;8244:1;8233:9;8229:17;8222:47;8286:131;8412:4;8286:131;:::i;:::-;8278:139;;8176:248;;;:::o;8430:419::-;8596:4;8634:2;8623:9;8619:18;8611:26;;8683:9;8677:4;8673:20;8669:1;8658:9;8654:17;8647:47;8711:131;8837:4;8711:131;:::i;:::-;8703:139;;8601:248;;;:::o;8855:419::-;9021:4;9059:2;9048:9;9044:18;9036:26;;9108:9;9102:4;9098:20;9094:1;9083:9;9079:17;9072:47;9136:131;9262:4;9136:131;:::i;:::-;9128:139;;9026:248;;;:::o;9280:419::-;9446:4;9484:2;9473:9;9469:18;9461:26;;9533:9;9527:4;9523:20;9519:1;9508:9;9504:17;9497:47;9561:131;9687:4;9561:131;:::i;:::-;9553:139;;9451:248;;;:::o;9705:419::-;9871:4;9909:2;9898:9;9894:18;9886:26;;9958:9;9952:4;9948:20;9944:1;9933:9;9929:17;9922:47;9986:131;10112:4;9986:131;:::i;:::-;9978:139;;9876:248;;;:::o;10130:419::-;10296:4;10334:2;10323:9;10319:18;10311:26;;10383:9;10377:4;10373:20;10369:1;10358:9;10354:17;10347:47;10411:131;10537:4;10411:131;:::i;:::-;10403:139;;10301:248;;;:::o;10555:419::-;10721:4;10759:2;10748:9;10744:18;10736:26;;10808:9;10802:4;10798:20;10794:1;10783:9;10779:17;10772:47;10836:131;10962:4;10836:131;:::i;:::-;10828:139;;10726:248;;;:::o;10980:419::-;11146:4;11184:2;11173:9;11169:18;11161:26;;11233:9;11227:4;11223:20;11219:1;11208:9;11204:17;11197:47;11261:131;11387:4;11261:131;:::i;:::-;11253:139;;11151:248;;;:::o;11405:419::-;11571:4;11609:2;11598:9;11594:18;11586:26;;11658:9;11652:4;11648:20;11644:1;11633:9;11629:17;11622:47;11686:131;11812:4;11686:131;:::i;:::-;11678:139;;11576:248;;;:::o;11830:222::-;11923:4;11961:2;11950:9;11946:18;11938:26;;11974:71;12042:1;12031:9;12027:17;12018:6;11974:71;:::i;:::-;11928:124;;;;:::o;12058:214::-;12147:4;12185:2;12174:9;12170:18;12162:26;;12198:67;12262:1;12251:9;12247:17;12238:6;12198:67;:::i;:::-;12152:120;;;;:::o;12278:132::-;12345:4;12368:3;12360:11;;12398:4;12393:3;12389:14;12381:22;;12350:60;;;:::o;12416:114::-;12483:6;12517:5;12511:12;12501:22;;12490:40;;;:::o;12536:99::-;12588:6;12622:5;12616:12;12606:22;;12595:40;;;:::o;12641:113::-;12711:4;12743;12738:3;12734:14;12726:22;;12716:38;;;:::o;12760:184::-;12859:11;12893:6;12888:3;12881:19;12933:4;12928:3;12924:14;12909:29;;12871:73;;;;:::o;12950:169::-;13034:11;13068:6;13063:3;13056:19;13108:4;13103:3;13099:14;13084:29;;13046:73;;;;:::o;13125:305::-;13165:3;13184:20;13202:1;13184:20;:::i;:::-;13179:25;;13218:20;13236:1;13218:20;:::i;:::-;13213:25;;13372:1;13304:66;13300:74;13297:1;13294:81;13291:2;;;13378:18;;:::i;:::-;13291:2;13422:1;13419;13415:9;13408:16;;13169:261;;;;:::o;13436:185::-;13476:1;13493:20;13511:1;13493:20;:::i;:::-;13488:25;;13527:20;13545:1;13527:20;:::i;:::-;13522:25;;13566:1;13556:2;;13571:18;;:::i;:::-;13556:2;13613:1;13610;13606:9;13601:14;;13478:143;;;;:::o;13627:191::-;13667:4;13687:20;13705:1;13687:20;:::i;:::-;13682:25;;13721:20;13739:1;13721:20;:::i;:::-;13716:25;;13760:1;13757;13754:8;13751:2;;;13765:18;;:::i;:::-;13751:2;13810:1;13807;13803:9;13795:17;;13672:146;;;;:::o;13824:96::-;13861:7;13890:24;13908:5;13890:24;:::i;:::-;13879:35;;13869:51;;;:::o;13926:90::-;13960:7;14003:5;13996:13;13989:21;13978:32;;13968:48;;;:::o;14022:126::-;14059:7;14099:42;14092:5;14088:54;14077:65;;14067:81;;;:::o;14154:77::-;14191:7;14220:5;14209:16;;14199:32;;;:::o;14237:86::-;14272:7;14312:4;14305:5;14301:16;14290:27;;14280:43;;;:::o;14329:307::-;14397:1;14407:113;14421:6;14418:1;14415:13;14407:113;;;14506:1;14501:3;14497:11;14491:18;14487:1;14482:3;14478:11;14471:39;14443:2;14440:1;14436:10;14431:15;;14407:113;;;14538:6;14535:1;14532:13;14529:2;;;14618:1;14609:6;14604:3;14600:16;14593:27;14529:2;14378:258;;;;:::o;14642:320::-;14686:6;14723:1;14717:4;14713:12;14703:22;;14770:1;14764:4;14760:12;14791:18;14781:2;;14847:4;14839:6;14835:17;14825:27;;14781:2;14909;14901:6;14898:14;14878:18;14875:38;14872:2;;;14928:18;;:::i;:::-;14872:2;14693:269;;;;:::o;14968:233::-;15007:3;15030:24;15048:5;15030:24;:::i;:::-;15021:33;;15076:66;15069:5;15066:77;15063:2;;;15146:18;;:::i;:::-;15063:2;15193:1;15186:5;15182:13;15175:20;;15011:190;;;:::o;15207:180::-;15255:77;15252:1;15245:88;15352:4;15349:1;15342:15;15376:4;15373:1;15366:15;15393:180;15441:77;15438:1;15431:88;15538:4;15535:1;15528:15;15562:4;15559:1;15552:15;15579:180;15627:77;15624:1;15617:88;15724:4;15721:1;15714:15;15748:4;15745:1;15738:15;15765:102;15806:6;15857:2;15853:7;15848:2;15841:5;15837:14;15833:28;15823:38;;15813:54;;;:::o;15873:222::-;16013:34;16009:1;16001:6;15997:14;15990:58;16082:5;16077:2;16069:6;16065:15;16058:30;15979:116;:::o;16101:221::-;16241:34;16237:1;16229:6;16225:14;16218:58;16310:4;16305:2;16297:6;16293:15;16286:29;16207:115;:::o;16328:221::-;16468:34;16464:1;16456:6;16452:14;16445:58;16537:4;16532:2;16524:6;16520:15;16513:29;16434:115;:::o;16555:225::-;16695:34;16691:1;16683:6;16679:14;16672:58;16764:8;16759:2;16751:6;16747:15;16740:33;16661:119;:::o;16786:227::-;16926:34;16922:1;16914:6;16910:14;16903:58;16995:10;16990:2;16982:6;16978:15;16971:35;16892:121;:::o;17019:220::-;17159:34;17155:1;17147:6;17143:14;17136:58;17228:3;17223:2;17215:6;17211:15;17204:28;17125:114;:::o;17245:224::-;17385:34;17381:1;17373:6;17369:14;17362:58;17454:7;17449:2;17441:6;17437:15;17430:32;17351:118;:::o;17475:223::-;17615:34;17611:1;17603:6;17599:14;17592:58;17684:6;17679:2;17671:6;17667:15;17660:31;17581:117;:::o;17704:224::-;17844:34;17840:1;17832:6;17828:14;17821:58;17913:7;17908:2;17900:6;17896:15;17889:32;17810:118;:::o;17934:122::-;18007:24;18025:5;18007:24;:::i;:::-;18000:5;17997:35;17987:2;;18046:1;18043;18036:12;17987:2;17977:79;:::o;18062:122::-;18135:24;18153:5;18135:24;:::i;:::-;18128:5;18125:35;18115:2;;18174:1;18171;18164:12;18115:2;18105:79;:::o
Swarm Source
ipfs://f5aea5e88877f57e265b9c671c0620e191a7291cb801a110e9e3a872202a4a68
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.