ERC-20
Overview
Max Total Supply
1,000,000 WATCH
Holders
70
Total Transfers
-
Market
Price
$0.00 @ 0.000000 FTM
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
NativeToken
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2022-03-20 */ // File: @openzeppelin/contracts/utils/math/SafeMath.sol // OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // 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 generally not needed starting with Solidity 0.8, since 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. 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; } } } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol) 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); /** * @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); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, _allowances[owner][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = _allowances[owner][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, 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: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Spend `amount` form the allowance of `owner` toward `spender`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: NativeToken.sol pragma solidity 0.8.10; contract NativeToken is ERC20 { using SafeMath for uint256; // Transfer tax rate in basis points. (default 5%) uint16 public transferTaxRate = 0; // Max transfer tax rate: 20%. uint16 public constant maxTaxRate = 2000; // Burn address address public constant burnAddr = 0x000000000000000000000000000000000000dEaD; // Contract address is excluded from tax. mapping(address => bool) public noTaxRecipient; // Contract address is excluded from tax. mapping(address => bool) public noTaxSender; // The operator can call all functions except of minting NativeToken address private _operator; //Token properties address public masterchef; address public presaleContract; uint256 public maxSupply = 0; uint256 public initialSupply = 0; // Events event OperatorTransferred(address indexed previousOperator, address indexed newOperator); event TransferTaxRateUpdated(address indexed operator, uint256 previousRate, uint256 newRate); event SetNoTaxSenderAddr(address indexed operator, address indexed noTaxSenderAddr, bool _value); event SetNoTaxRecipientAddr(address indexed operator, address indexed noTaxRecipientAddr, bool _value); event InitialSupplyMint(address indexed user, uint256 amount); event MasterchefInitialized(address indexed masterchef); event UpdatedTokenCap(uint256 amount); modifier onlyOperator() { require(_operator == msg.sender, "operator: caller is not the operator"); _; } modifier onlyMasterchef() { require(msg.sender == masterchef, "Caller is not the Masterchef"); _; } /** * @notice Constructs the MarioBros Token contract. */ constructor(address _to, uint256 _initialSupply, uint256 _maxSupply) ERC20("Watchpoint", "WATCH") { _operator = _msgSender(); initialSupply = _initialSupply; maxSupply = _maxSupply; _mint(_to, initialSupply); emit OperatorTransferred(address(0), _operator); emit InitialSupplyMint(_to, initialSupply); } // This function initializes the masterchef address into the token address. This can only be called ONCE. function initializeMC(address _masterchef) external onlyOperator { require( masterchef == address(0) && _masterchef != address(0) && _masterchef != address(this), "ERROR: Masterchef cannot be the zero address." ); masterchef = _masterchef; noTaxSender[masterchef] = true; noTaxRecipient[masterchef] = true; emit MasterchefInitialized(masterchef); } // This function initializes the presale contract address for whitelisting in the token transfer tax. function initializePresaleContract (address _presaleContract) external onlyOperator { require(presaleContract == address(0), "Presale contract already whitelisted."); presaleContract = _presaleContract; noTaxSender[presaleContract] = true; noTaxRecipient[presaleContract] = true; } /// @notice Creates `_amount` token to `_to`. Must only be called by the owner (MasterChef). function mint(address _to, uint256 _amount) public onlyMasterchef { _mint(_to, _amount); } /// @dev overrides transfer function to meet tokenomics of Native function _transfer(address sender, address recipient, uint256 amount) internal virtual override { if (recipient == burnAddr || sender == _operator || noTaxRecipient[recipient] || noTaxSender[sender] || transferTaxRate == 0 ) { super._transfer(sender, recipient, amount); // transfer with no Tax } else { // default tax is 5% of every transfer uint256 taxAmount = amount.mul(transferTaxRate).div(10000); // default 95% of transfer sent to recipient uint256 sendAmount = amount.sub(taxAmount); require(amount == sendAmount + taxAmount, "Native::transfer: Tax value invalid"); super._transfer(sender, burnAddr, taxAmount); super._transfer(sender, recipient, sendAmount); } } /** * @dev Update the transfer tax rate. * Can only be called by the current operator. */ function updateTransferTaxRate(uint16 _transferTaxRate) external onlyOperator { require(_transferTaxRate <= maxTaxRate, "Native::updateTransferTaxRate: Transfer tax rate must not exceed the maximum rate."); emit TransferTaxRateUpdated(msg.sender, transferTaxRate, _transferTaxRate); transferTaxRate = _transferTaxRate; } /** * @dev Update the token soft cap. * Can only be called by the current operator. */ function updateMaxSupply(uint256 _newMaxSupply) external onlyOperator { require(_newMaxSupply > maxSupply, "Cannot be lower than current maximum."); maxSupply = _newMaxSupply; } /** * @dev Update the no Tax Contract Address. * Can only be called by the current operator. */ function setNoTaxSenderAddr(address _noTaxSenderAddr, bool _value) external onlyOperator { noTaxSender[_noTaxSenderAddr] = _value; emit SetNoTaxSenderAddr(msg.sender, _noTaxSenderAddr, _value); } function setNoTaxRecipientAddr(address _noTaxRecipientAddr, bool _value) external onlyOperator { noTaxRecipient[_noTaxRecipientAddr] = _value; emit SetNoTaxRecipientAddr(msg.sender, _noTaxRecipientAddr, _value); } /** * @dev Returns the address of the current operator. */ function operator() public view returns (address) { return _operator; } /** * @dev Transfers operator of the contract to a new account (`newOperator`). * Can only be called by the current operator. */ function transferOperator(address newOperator) external onlyOperator { require(newOperator != address(0), "Native::transferOperator: new operator is the zero address"); emit OperatorTransferred(_operator, newOperator); _operator = newOperator; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"},{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InitialSupplyMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"masterchef","type":"address"}],"name":"MasterchefInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"noTaxRecipientAddr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetNoTaxRecipientAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"noTaxSenderAddr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetNoTaxSenderAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"TransferTaxRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UpdatedTokenCap","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":"burnAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_masterchef","type":"address"}],"name":"initializeMC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_presaleContract","type":"address"}],"name":"initializePresaleContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterchef","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTaxRate","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noTaxRecipient","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noTaxSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_noTaxRecipientAddr","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setNoTaxRecipientAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_noTaxSenderAddr","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setNoTaxSenderAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTaxRate","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxSupply","type":"uint256"}],"name":"updateMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_transferTaxRate","type":"uint16"}],"name":"updateTransferTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600560006101000a81548161ffff021916908361ffff1602179055506000600b556000600c553480156200003957600080fd5b50604051620036ea380380620036ea83398181016040528101906200005f919062000529565b6040518060400160405280600a81526020017f5761746368706f696e74000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f57415443480000000000000000000000000000000000000000000000000000008152508160039080519060200190620000e3929190620003d4565b508060049080519060200190620000fc929190620003d4565b5050506200010f6200024960201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c8190555080600b819055506200017183600c546200025160201b60201c565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a38273ffffffffffffffffffffffffffffffffffffffff167fd347a0de5076f1b7d1351fc93b1beb020c9bcbee74a6707bf5fe66d6703caf32600c5460405162000238919062000596565b60405180910390a250505062000727565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002bb9062000614565b60405180910390fd5b620002d860008383620003ca60201b60201c565b8060026000828254620002ec919062000665565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000343919062000665565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003aa919062000596565b60405180910390a3620003c660008383620003cf60201b60201c565b5050565b505050565b505050565b828054620003e290620006f1565b90600052602060002090601f01602090048101928262000406576000855562000452565b82601f106200042157805160ff191683800117855562000452565b8280016001018555821562000452579182015b828111156200045157825182559160200191906001019062000434565b5b50905062000461919062000465565b5090565b5b808211156200048057600081600090555060010162000466565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004b68262000489565b9050919050565b620004c881620004a9565b8114620004d457600080fd5b50565b600081519050620004e881620004bd565b92915050565b6000819050919050565b6200050381620004ee565b81146200050f57600080fd5b50565b6000815190506200052381620004f8565b92915050565b60008060006060848603121562000545576200054462000484565b5b60006200055586828701620004d7565b9350506020620005688682870162000512565b92505060406200057b8682870162000512565b9150509250925092565b6200059081620004ee565b82525050565b6000602082019050620005ad600083018462000585565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620005fc601f83620005b3565b91506200060982620005c4565b602082019050919050565b600060208201905081810360008301526200062f81620005ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200067282620004ee565b91506200067f83620004ee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006b757620006b662000636565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200070a57607f821691505b60208210811415620007215762000720620006c2565b5b50919050565b612fb380620007376000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806363afa05f11610104578063d246d411116100a2578063e48849b211610071578063e48849b214610544578063e6727e0b14610562578063f103b43314610592578063fb1db278146105ae576101cf565b8063d246d411146104bc578063d5abeb01146104da578063daa96e94146104f8578063dd62ed3e14610514576101cf565b806395d89b41116100de57806395d89b4114610420578063a457c2d71461043e578063a9059cbb1461046e578063b65d08b01461049e576101cf565b806363afa05f146103b657806363d9df85146103d257806370a08231146103f0576101cf565b8063376c2391116101715780633ccbaf031161014b5780633ccbaf031461034457806340c10f1914610360578063570ca7351461037c5780635b44d8591461039a576101cf565b8063376c2391146102da578063378dc3dc146102f65780633950935114610314576101cf565b806318160ddd116101ad57806318160ddd1461025257806323b872dd1461027057806329605e77146102a0578063313ce567146102bc576101cf565b806306fdde03146101d4578063095ea7b3146101f25780630bb7720614610222575b600080fd5b6101dc6105cc565b6040516101e991906120cb565b60405180910390f35b61020c60048036038101906102079190612186565b61065e565b60405161021991906121e1565b60405180910390f35b61023c600480360381019061023791906121fc565b610681565b60405161024991906121e1565b60405180910390f35b61025a6106a1565b6040516102679190612238565b60405180910390f35b61028a60048036038101906102859190612253565b6106ab565b60405161029791906121e1565b60405180910390f35b6102ba60048036038101906102b591906121fc565b6106da565b005b6102c461089a565b6040516102d191906122c2565b60405180910390f35b6102f460048036038101906102ef9190612317565b6108a3565b005b6102fe610a00565b60405161030b9190612238565b60405180910390f35b61032e60048036038101906103299190612186565b610a06565b60405161033b91906121e1565b60405180910390f35b61035e600480360381019061035991906121fc565b610ab0565b005b61037a60048036038101906103759190612186565b610ddf565b005b610384610e7d565b6040516103919190612353565b60405180910390f35b6103b460048036038101906103af91906121fc565b610ea7565b005b6103d060048036038101906103cb919061239a565b611100565b005b6103da611250565b6040516103e79190612353565b60405180910390f35b61040a600480360381019061040591906121fc565b611276565b6040516104179190612238565b60405180910390f35b6104286112be565b60405161043591906120cb565b60405180910390f35b61045860048036038101906104539190612186565b611350565b60405161046591906121e1565b60405180910390f35b61048860048036038101906104839190612186565b61143a565b60405161049591906121e1565b60405180910390f35b6104a661145d565b6040516104b391906123e9565b60405180910390f35b6104c4611471565b6040516104d19190612353565b60405180910390f35b6104e2611477565b6040516104ef9190612238565b60405180910390f35b610512600480360381019061050d919061239a565b61147d565b005b61052e60048036038101906105299190612404565b6115cd565b60405161053b9190612238565b60405180910390f35b61054c611654565b60405161055991906123e9565b60405180910390f35b61057c600480360381019061057791906121fc565b61165a565b60405161058991906121e1565b60405180910390f35b6105ac60048036038101906105a79190612444565b61167a565b005b6105b6611758565b6040516105c39190612353565b60405180910390f35b6060600380546105db906124a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610607906124a0565b80156106545780601f1061062957610100808354040283529160200191610654565b820191906000526020600020905b81548152906001019060200180831161063757829003601f168201915b5050505050905090565b60008061066961177e565b9050610676818585611786565b600191505092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b6000806106b661177e565b90506106c3858285611951565b6106ce8585856119dd565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612544565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d1906125d6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90612544565b60405180910390fd5b6107d061ffff168161ffff161115610980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109779061268e565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fe9d5c8ee2a65d4fb859c680669d8f902172d53e3f15f9f11108a31bbada4b70b600560009054906101000a900461ffff16836040516109d89291906126e9565b60405180910390a280600560006101000a81548161ffff021916908361ffff16021790555050565b600c5481565b600080610a1161177e565b9050610aa5818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aa09190612741565b611786565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3790612544565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610bcb5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c0357503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990612809565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f560af44e8521c1f80503d5e5137dfef35294bf103bc52f0105ba3db098372ef460405160405180910390a250565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612875565b60405180910390fd5b610e798282611c05565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2e90612544565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbf90612907565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612544565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f23bfc94d99731e125b658f96c33f01a529e592e4b67c368c4e0b56f0a42c1b728360405161124491906121e1565b60405180910390a35050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546112cd906124a0565b80601f01602080910402602001604051908101604052809291908181526020018280546112f9906124a0565b80156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b60008061135b61177e565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612999565b60405180910390fd5b61142e8286868403611786565b60019250505092915050565b60008061144561177e565b90506114528185856119dd565b600191505092915050565b600560009054906101000a900461ffff1681565b61dead81565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612544565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f018fbba1b69799d0633d23b5ecdd20262da54942a71f7bb1ec1ff5c7c4a530a0836040516115c191906121e1565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6107d081565b60076020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170190612544565b60405180910390fd5b600b54811161174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174590612a2b565b60405180910390fd5b80600b8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ed90612abd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612b4f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119449190612238565b60405180910390a3505050565b600061195d84846115cd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119d757818110156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612bbb565b60405180910390fd5b6119d68484848403611786565b5b50505050565b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611a665750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611aba5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b0e5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b2d57506000600560009054906101000a900461ffff1661ffff16145b15611b4257611b3d838383611d65565b611c00565b6000611b7f612710611b71600560009054906101000a900461ffff1661ffff1685611fe690919063ffffffff16565b611ffc90919063ffffffff16565b90506000611b96828461201290919063ffffffff16565b90508181611ba49190612741565b8314611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612c4d565b60405180910390fd5b611bf28561dead84611d65565b611bfd858583611d65565b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c90612cb9565b60405180910390fd5b611c8160008383612028565b8060026000828254611c939190612741565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ce89190612741565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d4d9190612238565b60405180910390a3611d616000838361202d565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612d4b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c90612ddd565b60405180910390fd5b611e50838383612028565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd90612e6f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f699190612741565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fcd9190612238565b60405180910390a3611fe084848461202d565b50505050565b60008183611ff49190612e8f565b905092915050565b6000818361200a9190612f18565b905092915050565b600081836120209190612f49565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561206c578082015181840152602081019050612051565b8381111561207b576000848401525b50505050565b6000601f19601f8301169050919050565b600061209d82612032565b6120a7818561203d565b93506120b781856020860161204e565b6120c081612081565b840191505092915050565b600060208201905081810360008301526120e58184612092565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061211d826120f2565b9050919050565b61212d81612112565b811461213857600080fd5b50565b60008135905061214a81612124565b92915050565b6000819050919050565b61216381612150565b811461216e57600080fd5b50565b6000813590506121808161215a565b92915050565b6000806040838503121561219d5761219c6120ed565b5b60006121ab8582860161213b565b92505060206121bc85828601612171565b9150509250929050565b60008115159050919050565b6121db816121c6565b82525050565b60006020820190506121f660008301846121d2565b92915050565b600060208284031215612212576122116120ed565b5b60006122208482850161213b565b91505092915050565b61223281612150565b82525050565b600060208201905061224d6000830184612229565b92915050565b60008060006060848603121561226c5761226b6120ed565b5b600061227a8682870161213b565b935050602061228b8682870161213b565b925050604061229c86828701612171565b9150509250925092565b600060ff82169050919050565b6122bc816122a6565b82525050565b60006020820190506122d760008301846122b3565b92915050565b600061ffff82169050919050565b6122f4816122dd565b81146122ff57600080fd5b50565b600081359050612311816122eb565b92915050565b60006020828403121561232d5761232c6120ed565b5b600061233b84828501612302565b91505092915050565b61234d81612112565b82525050565b60006020820190506123686000830184612344565b92915050565b612377816121c6565b811461238257600080fd5b50565b6000813590506123948161236e565b92915050565b600080604083850312156123b1576123b06120ed565b5b60006123bf8582860161213b565b92505060206123d085828601612385565b9150509250929050565b6123e3816122dd565b82525050565b60006020820190506123fe60008301846123da565b92915050565b6000806040838503121561241b5761241a6120ed565b5b60006124298582860161213b565b925050602061243a8582860161213b565b9150509250929050565b60006020828403121561245a576124596120ed565b5b600061246884828501612171565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124b857607f821691505b602082108114156124cc576124cb612471565b5b50919050565b7f6f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657260008201527f61746f7200000000000000000000000000000000000000000000000000000000602082015250565b600061252e60248361203d565b9150612539826124d2565b604082019050919050565b6000602082019050818103600083015261255d81612521565b9050919050565b7f4e61746976653a3a7472616e736665724f70657261746f723a206e6577206f7060008201527f657261746f7220697320746865207a65726f2061646472657373000000000000602082015250565b60006125c0603a8361203d565b91506125cb82612564565b604082019050919050565b600060208201905081810360008301526125ef816125b3565b9050919050565b7f4e61746976653a3a7570646174655472616e73666572546178526174653a205460008201527f72616e73666572207461782072617465206d757374206e6f742065786365656460208201527f20746865206d6178696d756d20726174652e0000000000000000000000000000604082015250565b600061267860528361203d565b9150612683826125f6565b606082019050919050565b600060208201905081810360008301526126a78161266b565b9050919050565b6000819050919050565b60006126d36126ce6126c9846122dd565b6126ae565b612150565b9050919050565b6126e3816126b8565b82525050565b60006040820190506126fe60008301856126da565b61270b60208301846126da565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061274c82612150565b915061275783612150565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278c5761278b612712565b5b828201905092915050565b7f4552524f523a204d6173746572636865662063616e6e6f74206265207468652060008201527f7a65726f20616464726573732e00000000000000000000000000000000000000602082015250565b60006127f3602d8361203d565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f43616c6c6572206973206e6f7420746865204d61737465726368656600000000600082015250565b600061285f601c8361203d565b915061286a82612829565b602082019050919050565b6000602082019050818103600083015261288e81612852565b9050919050565b7f50726573616c6520636f6e747261637420616c72656164792077686974656c6960008201527f737465642e000000000000000000000000000000000000000000000000000000602082015250565b60006128f160258361203d565b91506128fc82612895565b604082019050919050565b60006020820190508181036000830152612920816128e4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061298360258361203d565b915061298e82612927565b604082019050919050565b600060208201905081810360008301526129b281612976565b9050919050565b7f43616e6e6f74206265206c6f776572207468616e2063757272656e74206d617860008201527f696d756d2e000000000000000000000000000000000000000000000000000000602082015250565b6000612a1560258361203d565b9150612a20826129b9565b604082019050919050565b60006020820190508181036000830152612a4481612a08565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612aa760248361203d565b9150612ab282612a4b565b604082019050919050565b60006020820190508181036000830152612ad681612a9a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b3960228361203d565b9150612b4482612add565b604082019050919050565b60006020820190508181036000830152612b6881612b2c565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612ba5601d8361203d565b9150612bb082612b6f565b602082019050919050565b60006020820190508181036000830152612bd481612b98565b9050919050565b7f4e61746976653a3a7472616e736665723a205461782076616c756520696e766160008201527f6c69640000000000000000000000000000000000000000000000000000000000602082015250565b6000612c3760238361203d565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612ca3601f8361203d565b9150612cae82612c6d565b602082019050919050565b60006020820190508181036000830152612cd281612c96565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d3560258361203d565b9150612d4082612cd9565b604082019050919050565b60006020820190508181036000830152612d6481612d28565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dc760238361203d565b9150612dd282612d6b565b604082019050919050565b60006020820190508181036000830152612df681612dba565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612e5960268361203d565b9150612e6482612dfd565b604082019050919050565b60006020820190508181036000830152612e8881612e4c565b9050919050565b6000612e9a82612150565b9150612ea583612150565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ede57612edd612712565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f2382612150565b9150612f2e83612150565b925082612f3e57612f3d612ee9565b5b828204905092915050565b6000612f5482612150565b9150612f5f83612150565b925082821015612f7257612f71612712565b5b82820390509291505056fea264697066735822122079915d990d177adcd7f9323df37a5b07e95a75fb5b7cd3caa453667bd14cafde64736f6c634300080a00330000000000000000000000003e615b523c32d0192601bcd5528c32a7987444d400000000000000000000000000000000000000000000043c33c193756480000000000000000000000000000000000000000000000000111c9c46f4dde5a00000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c806363afa05f11610104578063d246d411116100a2578063e48849b211610071578063e48849b214610544578063e6727e0b14610562578063f103b43314610592578063fb1db278146105ae576101cf565b8063d246d411146104bc578063d5abeb01146104da578063daa96e94146104f8578063dd62ed3e14610514576101cf565b806395d89b41116100de57806395d89b4114610420578063a457c2d71461043e578063a9059cbb1461046e578063b65d08b01461049e576101cf565b806363afa05f146103b657806363d9df85146103d257806370a08231146103f0576101cf565b8063376c2391116101715780633ccbaf031161014b5780633ccbaf031461034457806340c10f1914610360578063570ca7351461037c5780635b44d8591461039a576101cf565b8063376c2391146102da578063378dc3dc146102f65780633950935114610314576101cf565b806318160ddd116101ad57806318160ddd1461025257806323b872dd1461027057806329605e77146102a0578063313ce567146102bc576101cf565b806306fdde03146101d4578063095ea7b3146101f25780630bb7720614610222575b600080fd5b6101dc6105cc565b6040516101e991906120cb565b60405180910390f35b61020c60048036038101906102079190612186565b61065e565b60405161021991906121e1565b60405180910390f35b61023c600480360381019061023791906121fc565b610681565b60405161024991906121e1565b60405180910390f35b61025a6106a1565b6040516102679190612238565b60405180910390f35b61028a60048036038101906102859190612253565b6106ab565b60405161029791906121e1565b60405180910390f35b6102ba60048036038101906102b591906121fc565b6106da565b005b6102c461089a565b6040516102d191906122c2565b60405180910390f35b6102f460048036038101906102ef9190612317565b6108a3565b005b6102fe610a00565b60405161030b9190612238565b60405180910390f35b61032e60048036038101906103299190612186565b610a06565b60405161033b91906121e1565b60405180910390f35b61035e600480360381019061035991906121fc565b610ab0565b005b61037a60048036038101906103759190612186565b610ddf565b005b610384610e7d565b6040516103919190612353565b60405180910390f35b6103b460048036038101906103af91906121fc565b610ea7565b005b6103d060048036038101906103cb919061239a565b611100565b005b6103da611250565b6040516103e79190612353565b60405180910390f35b61040a600480360381019061040591906121fc565b611276565b6040516104179190612238565b60405180910390f35b6104286112be565b60405161043591906120cb565b60405180910390f35b61045860048036038101906104539190612186565b611350565b60405161046591906121e1565b60405180910390f35b61048860048036038101906104839190612186565b61143a565b60405161049591906121e1565b60405180910390f35b6104a661145d565b6040516104b391906123e9565b60405180910390f35b6104c4611471565b6040516104d19190612353565b60405180910390f35b6104e2611477565b6040516104ef9190612238565b60405180910390f35b610512600480360381019061050d919061239a565b61147d565b005b61052e60048036038101906105299190612404565b6115cd565b60405161053b9190612238565b60405180910390f35b61054c611654565b60405161055991906123e9565b60405180910390f35b61057c600480360381019061057791906121fc565b61165a565b60405161058991906121e1565b60405180910390f35b6105ac60048036038101906105a79190612444565b61167a565b005b6105b6611758565b6040516105c39190612353565b60405180910390f35b6060600380546105db906124a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610607906124a0565b80156106545780601f1061062957610100808354040283529160200191610654565b820191906000526020600020905b81548152906001019060200180831161063757829003601f168201915b5050505050905090565b60008061066961177e565b9050610676818585611786565b600191505092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b6000806106b661177e565b90506106c3858285611951565b6106ce8585856119dd565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076190612544565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d1906125d6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006012905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90612544565b60405180910390fd5b6107d061ffff168161ffff161115610980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109779061268e565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fe9d5c8ee2a65d4fb859c680669d8f902172d53e3f15f9f11108a31bbada4b70b600560009054906101000a900461ffff16836040516109d89291906126e9565b60405180910390a280600560006101000a81548161ffff021916908361ffff16021790555050565b600c5481565b600080610a1161177e565b9050610aa5818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aa09190612741565b611786565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3790612544565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610bcb5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c0357503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990612809565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f560af44e8521c1f80503d5e5137dfef35294bf103bc52f0105ba3db098372ef460405160405180910390a250565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612875565b60405180910390fd5b610e798282611c05565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2e90612544565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbf90612907565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612544565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f23bfc94d99731e125b658f96c33f01a529e592e4b67c368c4e0b56f0a42c1b728360405161124491906121e1565b60405180910390a35050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546112cd906124a0565b80601f01602080910402602001604051908101604052809291908181526020018280546112f9906124a0565b80156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b60008061135b61177e565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612999565b60405180910390fd5b61142e8286868403611786565b60019250505092915050565b60008061144561177e565b90506114528185856119dd565b600191505092915050565b600560009054906101000a900461ffff1681565b61dead81565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612544565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f018fbba1b69799d0633d23b5ecdd20262da54942a71f7bb1ec1ff5c7c4a530a0836040516115c191906121e1565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6107d081565b60076020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170190612544565b60405180910390fd5b600b54811161174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174590612a2b565b60405180910390fd5b80600b8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ed90612abd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612b4f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119449190612238565b60405180910390a3505050565b600061195d84846115cd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119d757818110156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612bbb565b60405180910390fd5b6119d68484848403611786565b5b50505050565b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611a665750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611aba5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b0e5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b2d57506000600560009054906101000a900461ffff1661ffff16145b15611b4257611b3d838383611d65565b611c00565b6000611b7f612710611b71600560009054906101000a900461ffff1661ffff1685611fe690919063ffffffff16565b611ffc90919063ffffffff16565b90506000611b96828461201290919063ffffffff16565b90508181611ba49190612741565b8314611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612c4d565b60405180910390fd5b611bf28561dead84611d65565b611bfd858583611d65565b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c90612cb9565b60405180910390fd5b611c8160008383612028565b8060026000828254611c939190612741565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ce89190612741565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d4d9190612238565b60405180910390a3611d616000838361202d565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612d4b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c90612ddd565b60405180910390fd5b611e50838383612028565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd90612e6f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f699190612741565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fcd9190612238565b60405180910390a3611fe084848461202d565b50505050565b60008183611ff49190612e8f565b905092915050565b6000818361200a9190612f18565b905092915050565b600081836120209190612f49565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561206c578082015181840152602081019050612051565b8381111561207b576000848401525b50505050565b6000601f19601f8301169050919050565b600061209d82612032565b6120a7818561203d565b93506120b781856020860161204e565b6120c081612081565b840191505092915050565b600060208201905081810360008301526120e58184612092565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061211d826120f2565b9050919050565b61212d81612112565b811461213857600080fd5b50565b60008135905061214a81612124565b92915050565b6000819050919050565b61216381612150565b811461216e57600080fd5b50565b6000813590506121808161215a565b92915050565b6000806040838503121561219d5761219c6120ed565b5b60006121ab8582860161213b565b92505060206121bc85828601612171565b9150509250929050565b60008115159050919050565b6121db816121c6565b82525050565b60006020820190506121f660008301846121d2565b92915050565b600060208284031215612212576122116120ed565b5b60006122208482850161213b565b91505092915050565b61223281612150565b82525050565b600060208201905061224d6000830184612229565b92915050565b60008060006060848603121561226c5761226b6120ed565b5b600061227a8682870161213b565b935050602061228b8682870161213b565b925050604061229c86828701612171565b9150509250925092565b600060ff82169050919050565b6122bc816122a6565b82525050565b60006020820190506122d760008301846122b3565b92915050565b600061ffff82169050919050565b6122f4816122dd565b81146122ff57600080fd5b50565b600081359050612311816122eb565b92915050565b60006020828403121561232d5761232c6120ed565b5b600061233b84828501612302565b91505092915050565b61234d81612112565b82525050565b60006020820190506123686000830184612344565b92915050565b612377816121c6565b811461238257600080fd5b50565b6000813590506123948161236e565b92915050565b600080604083850312156123b1576123b06120ed565b5b60006123bf8582860161213b565b92505060206123d085828601612385565b9150509250929050565b6123e3816122dd565b82525050565b60006020820190506123fe60008301846123da565b92915050565b6000806040838503121561241b5761241a6120ed565b5b60006124298582860161213b565b925050602061243a8582860161213b565b9150509250929050565b60006020828403121561245a576124596120ed565b5b600061246884828501612171565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124b857607f821691505b602082108114156124cc576124cb612471565b5b50919050565b7f6f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657260008201527f61746f7200000000000000000000000000000000000000000000000000000000602082015250565b600061252e60248361203d565b9150612539826124d2565b604082019050919050565b6000602082019050818103600083015261255d81612521565b9050919050565b7f4e61746976653a3a7472616e736665724f70657261746f723a206e6577206f7060008201527f657261746f7220697320746865207a65726f2061646472657373000000000000602082015250565b60006125c0603a8361203d565b91506125cb82612564565b604082019050919050565b600060208201905081810360008301526125ef816125b3565b9050919050565b7f4e61746976653a3a7570646174655472616e73666572546178526174653a205460008201527f72616e73666572207461782072617465206d757374206e6f742065786365656460208201527f20746865206d6178696d756d20726174652e0000000000000000000000000000604082015250565b600061267860528361203d565b9150612683826125f6565b606082019050919050565b600060208201905081810360008301526126a78161266b565b9050919050565b6000819050919050565b60006126d36126ce6126c9846122dd565b6126ae565b612150565b9050919050565b6126e3816126b8565b82525050565b60006040820190506126fe60008301856126da565b61270b60208301846126da565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061274c82612150565b915061275783612150565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278c5761278b612712565b5b828201905092915050565b7f4552524f523a204d6173746572636865662063616e6e6f74206265207468652060008201527f7a65726f20616464726573732e00000000000000000000000000000000000000602082015250565b60006127f3602d8361203d565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f43616c6c6572206973206e6f7420746865204d61737465726368656600000000600082015250565b600061285f601c8361203d565b915061286a82612829565b602082019050919050565b6000602082019050818103600083015261288e81612852565b9050919050565b7f50726573616c6520636f6e747261637420616c72656164792077686974656c6960008201527f737465642e000000000000000000000000000000000000000000000000000000602082015250565b60006128f160258361203d565b91506128fc82612895565b604082019050919050565b60006020820190508181036000830152612920816128e4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061298360258361203d565b915061298e82612927565b604082019050919050565b600060208201905081810360008301526129b281612976565b9050919050565b7f43616e6e6f74206265206c6f776572207468616e2063757272656e74206d617860008201527f696d756d2e000000000000000000000000000000000000000000000000000000602082015250565b6000612a1560258361203d565b9150612a20826129b9565b604082019050919050565b60006020820190508181036000830152612a4481612a08565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612aa760248361203d565b9150612ab282612a4b565b604082019050919050565b60006020820190508181036000830152612ad681612a9a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b3960228361203d565b9150612b4482612add565b604082019050919050565b60006020820190508181036000830152612b6881612b2c565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612ba5601d8361203d565b9150612bb082612b6f565b602082019050919050565b60006020820190508181036000830152612bd481612b98565b9050919050565b7f4e61746976653a3a7472616e736665723a205461782076616c756520696e766160008201527f6c69640000000000000000000000000000000000000000000000000000000000602082015250565b6000612c3760238361203d565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612ca3601f8361203d565b9150612cae82612c6d565b602082019050919050565b60006020820190508181036000830152612cd281612c96565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d3560258361203d565b9150612d4082612cd9565b604082019050919050565b60006020820190508181036000830152612d6481612d28565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dc760238361203d565b9150612dd282612d6b565b604082019050919050565b60006020820190508181036000830152612df681612dba565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612e5960268361203d565b9150612e6482612dfd565b604082019050919050565b60006020820190508181036000830152612e8881612e4c565b9050919050565b6000612e9a82612150565b9150612ea583612150565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ede57612edd612712565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f2382612150565b9150612f2e83612150565b925082612f3e57612f3d612ee9565b5b828204905092915050565b6000612f5482612150565b9150612f5f83612150565b925082821015612f7257612f71612712565b5b82820390509291505056fea264697066735822122079915d990d177adcd7f9323df37a5b07e95a75fb5b7cd3caa453667bd14cafde64736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003e615b523c32d0192601bcd5528c32a7987444d400000000000000000000000000000000000000000000043c33c193756480000000000000000000000000000000000000000000000000111c9c46f4dde5a00000
-----Decoded View---------------
Arg [0] : _to (address): 0x3E615B523c32d0192601bcd5528C32A7987444d4
Arg [1] : _initialSupply (uint256): 20000000000000000000000
Arg [2] : _maxSupply (uint256): 80808000000000000000000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000003e615b523c32d0192601bcd5528c32a7987444d4
Arg [1] : 00000000000000000000000000000000000000000000043c33c1937564800000
Arg [2] : 00000000000000000000000000000000000000000000111c9c46f4dde5a00000
Deployed Bytecode Sourcemap
24536:6306:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13680:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16031:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24941:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14800:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16812:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30560:277;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14642:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28968:352;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25329:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17516:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26793:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27813:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30315:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27383:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29995:236;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25257:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14971:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13899:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18259:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15304:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24664:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24808:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25294:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29769:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15560:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24740:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25041:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29438:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25225:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13680:100;13734:13;13767:5;13760:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13680:100;:::o;16031:201::-;16114:4;16131:13;16147:12;:10;:12::i;:::-;16131:28;;16170:32;16179:5;16186:7;16195:6;16170:8;:32::i;:::-;16220:4;16213:11;;;16031:201;;;;:::o;24941:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;14800:108::-;14861:7;14888:12;;14881:19;;14800:108;:::o;16812:295::-;16943:4;16960:15;16978:12;:10;:12::i;:::-;16960:30;;17001:38;17017:4;17023:7;17032:6;17001:15;:38::i;:::-;17050:27;17060:4;17066:2;17070:6;17050:9;:27::i;:::-;17095:4;17088:11;;;16812:295;;;;;:::o;30560:277::-;26024:10;26011:23;;:9;;;;;;;;;;;:23;;;26003:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;30671:1:::1;30648:25;;:11;:25;;;;30640:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;30783:11;30752:43;;30772:9;;;;;;;;;;;30752:43;;;;;;;;;;;;30818:11;30806:9;;:23;;;;;;;;;;;;;;;;;;30560:277:::0;:::o;14642:93::-;14700:5;14725:2;14718:9;;14642:93;:::o;28968:352::-;26024:10;26011:23;;:9;;;;;;;;;;;:23;;;26003:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;24776:4:::1;29065:30;;:16;:30;;;;29057:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;29221:10;29198:69;;;29233:15;;;;;;;;;;;29250:16;29198:69;;;;;;;:::i;:::-;;;;;;;;29296:16;29278:15;;:34;;;;;;;;;;;;;;;;;;28968:352:::0;:::o;25329:32::-;;;;:::o;17516:240::-;17604:4;17621:13;17637:12;:10;:12::i;:::-;17621:28;;17660:66;17669:5;17676:7;17715:10;17685:11;:18;17697:5;17685:18;;;;;;;;;;;;;;;:27;17704:7;17685:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;17660:8;:66::i;:::-;17744:4;17737:11;;;17516:240;;;;:::o;26793:475::-;26024:10;26011:23;;:9;;;;;;;;;;;:23;;;26003:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;26913:1:::1;26891:24;;:10;;;;;;;;;;;:24;;;:67;;;;;26956:1;26933:25;;:11;:25;;;;26891:67;:113;;;;;26999:4;26976:28;;:11;:28;;;;26891:113;26869:208;;;;;;;;;;;;:::i;:::-;;;;;;;;;27111:11;27098:10;;:24;;;;;;;;;;;;;;;;;;27161:4;27135:11;:23;27147:10;;;;;;;;;;;27135:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;27205:4;27176:14;:26;27191:10;;;;;;;;;;;27176:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;27249:10;;;;;;;;;;;27227:33;;;;;;;;;;;;26793:475:::0;:::o;27813:107::-;26162:10;;;;;;;;;;;26148:24;;:10;:24;;;26140:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;27893:19:::1;27899:3;27904:7;27893:5;:19::i;:::-;27813:107:::0;;:::o;30315:85::-;30356:7;30383:9;;;;;;;;;;;30376:16;;30315:85;:::o;27383:324::-;26024:10;26011:23;;:9;;;;;;;;;;;:23;;;26003:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;27513:1:::1;27486:29;;:15;;;;;;;;;;;:29;;;27478:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;27586:16;27568:15;;:34;;;;;;;;;;;;;;;;;;27646:4;27615:11;:28;27627:15;;;;;;;;;;;27615:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;27695:4;27661:14;:31;27676:15;;;;;;;;;;;27661:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;27383:324:::0;:::o;29995:236::-;26024:10;26011:23;;:9;;;;;;;;;;;:23;;;26003:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;30139:6:::1;30101:14;:35;30116:19;30101:35;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;30195:19;30161:62;;30183:10;30161:62;;;30216:6;30161:62;;;;;;:::i;:::-;;;;;;;;29995:236:::0;;:::o;25257:30::-;;;;;;;;;;;;;:::o;14971:127::-;15045:7;15072:9;:18;15082:7;15072:18;;;;;;;;;;;;;;;;15065:25;;14971:127;;;:::o;13899:104::-;13955:13;13988:7;13981:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13899:104;:::o;18259:438::-;18352:4;18369:13;18385:12;:10;:12::i;:::-;18369:28;;18408:24;18435:11;:18;18447:5;18435:18;;;;;;;;;;;;;;;:27;18454:7;18435:27;;;;;;;;;;;;;;;;18408:54;;18501:15;18481:16;:35;;18473:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18594:60;18603:5;18610:7;18638:15;18619:16;:34;18594:8;:60::i;:::-;18685:4;18678:11;;;;18259:438;;;;:::o;15304:193::-;15383:4;15400:13;15416:12;:10;:12::i;:::-;15400:28;;15439;15449:5;15456:2;15460:6;15439:9;:28::i;:::-;15485:4;15478:11;;;15304:193;;;;:::o;24664:33::-;;;;;;;;;;;;;:::o;24808:77::-;24843:42;24808:77;:::o;25294:28::-;;;;:::o;29769:218::-;26024:10;26011:23;;:9;;;;;;;;;;;:23;;;26003:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;29901:6:::1;29869:11;:29;29881:16;29869:29;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;29954:16;29923:56;;29942:10;29923:56;;;29972:6;29923:56;;;;;;:::i;:::-;;;;;;;;29769:218:::0;;:::o;15560:151::-;15649:7;15676:11;:18;15688:5;15676:18;;;;;;;;;;;;;;;:27;15695:7;15676:27;;;;;;;;;;;;;;;;15669:34;;15560:151;;;;:::o;24740:40::-;24776:4;24740:40;:::o;25041:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;29438:200::-;26024:10;26011:23;;:9;;;;;;;;;;;:23;;;26003:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;29543:9:::1;;29527:13;:25;29519:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;29617:13;29605:9;:25;;;;29438:200:::0;:::o;25225:25::-;;;;;;;;;;;;;:::o;7706:98::-;7759:7;7786:10;7779:17;;7706:98;:::o;21895:380::-;22048:1;22031:19;;:5;:19;;;;22023:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22129:1;22110:21;;:7;:21;;;;22102:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22213:6;22183:11;:18;22195:5;22183:18;;;;;;;;;;;;;;;:27;22202:7;22183:27;;;;;;;;;;;;;;;:36;;;;22251:7;22235:32;;22244:5;22235:32;;;22260:6;22235:32;;;;;;:::i;:::-;;;;;;;;21895:380;;;:::o;22562:453::-;22697:24;22724:25;22734:5;22741:7;22724:9;:25::i;:::-;22697:52;;22784:17;22764:16;:37;22760:248;;22846:6;22826:16;:26;;22818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22930:51;22939:5;22946:7;22974:6;22955:16;:25;22930:8;:51::i;:::-;22760:248;22686:329;22562:453;;;:::o;27999:848::-;24843:42;28112:21;;:9;:21;;;:44;;;;28147:9;;;;;;;;;;;28137:19;;:6;:19;;;28112:44;:82;;;;28169:14;:25;28184:9;28169:25;;;;;;;;;;;;;;;;;;;;;;;;;28112:82;:105;;;;28198:11;:19;28210:6;28198:19;;;;;;;;;;;;;;;;;;;;;;;;;28112:105;:138;;;;28249:1;28230:15;;;;;;;;;;;:20;;;28112:138;28108:732;;;28270:42;28286:6;28294:9;28305:6;28270:15;:42::i;:::-;28108:732;;;28436:17;28456:38;28488:5;28456:27;28467:15;;;;;;;;;;;28456:27;;:6;:10;;:27;;;;:::i;:::-;:31;;:38;;;;:::i;:::-;28436:58;;28569:18;28590:21;28601:9;28590:6;:10;;:21;;;;:::i;:::-;28569:42;;28657:9;28644:10;:22;;;;:::i;:::-;28634:6;:32;28626:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;28723:44;28739:6;24843:42;28757:9;28723:15;:44::i;:::-;28782:46;28798:6;28806:9;28817:10;28782:15;:46::i;:::-;28369:471;;28108:732;27999:848;;;:::o;20134:399::-;20237:1;20218:21;;:7;:21;;;;20210:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20288:49;20317:1;20321:7;20330:6;20288:20;:49::i;:::-;20366:6;20350:12;;:22;;;;;;;:::i;:::-;;;;;;;;20405:6;20383:9;:18;20393:7;20383:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;20448:7;20427:37;;20444:1;20427:37;;;20457:6;20427:37;;;;;;:::i;:::-;;;;;;;;20477:48;20505:1;20509:7;20518:6;20477:19;:48::i;:::-;20134:399;;:::o;19176:671::-;19323:1;19307:18;;:4;:18;;;;19299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19400:1;19386:16;;:2;:16;;;;19378:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19455:38;19476:4;19482:2;19486:6;19455:20;:38::i;:::-;19506:19;19528:9;:15;19538:4;19528:15;;;;;;;;;;;;;;;;19506:37;;19577:6;19562:11;:21;;19554:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19694:6;19680:11;:20;19662:9;:15;19672:4;19662:15;;;;;;;;;;;;;;;:38;;;;19739:6;19722:9;:13;19732:2;19722:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;19778:2;19763:26;;19772:4;19763:26;;;19782:6;19763:26;;;;;;:::i;:::-;;;;;;;;19802:37;19822:4;19828:2;19832:6;19802:19;:37::i;:::-;19288:559;19176:671;;;:::o;3600:98::-;3658:7;3689:1;3685;:5;;;;:::i;:::-;3678:12;;3600:98;;;;:::o;3999:::-;4057:7;4088:1;4084;:5;;;;:::i;:::-;4077:12;;3999:98;;;;:::o;3243:::-;3301:7;3332:1;3328;:5;;;;:::i;:::-;3321:12;;3243:98;;;;:::o;23615:125::-;;;;:::o;24344:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:89::-;5272:7;5312:6;5305:5;5301:18;5290:29;;5236:89;;;:::o;5331:120::-;5403:23;5420:5;5403:23;:::i;:::-;5396:5;5393:34;5383:62;;5441:1;5438;5431:12;5383:62;5331:120;:::o;5457:137::-;5502:5;5540:6;5527:20;5518:29;;5556:32;5582:5;5556:32;:::i;:::-;5457:137;;;;:::o;5600:327::-;5658:6;5707:2;5695:9;5686:7;5682:23;5678:32;5675:119;;;5713:79;;:::i;:::-;5675:119;5833:1;5858:52;5902:7;5893:6;5882:9;5878:22;5858:52;:::i;:::-;5848:62;;5804:116;5600:327;;;;:::o;5933:118::-;6020:24;6038:5;6020:24;:::i;:::-;6015:3;6008:37;5933:118;;:::o;6057:222::-;6150:4;6188:2;6177:9;6173:18;6165:26;;6201:71;6269:1;6258:9;6254:17;6245:6;6201:71;:::i;:::-;6057:222;;;;:::o;6285:116::-;6355:21;6370:5;6355:21;:::i;:::-;6348:5;6345:32;6335:60;;6391:1;6388;6381:12;6335:60;6285:116;:::o;6407:133::-;6450:5;6488:6;6475:20;6466:29;;6504:30;6528:5;6504:30;:::i;:::-;6407:133;;;;:::o;6546:468::-;6611:6;6619;6668:2;6656:9;6647:7;6643:23;6639:32;6636:119;;;6674:79;;:::i;:::-;6636:119;6794:1;6819:53;6864:7;6855:6;6844:9;6840:22;6819:53;:::i;:::-;6809:63;;6765:117;6921:2;6947:50;6989:7;6980:6;6969:9;6965:22;6947:50;:::i;:::-;6937:60;;6892:115;6546:468;;;;;:::o;7020:115::-;7105:23;7122:5;7105:23;:::i;:::-;7100:3;7093:36;7020:115;;:::o;7141:218::-;7232:4;7270:2;7259:9;7255:18;7247:26;;7283:69;7349:1;7338:9;7334:17;7325:6;7283:69;:::i;:::-;7141:218;;;;:::o;7365:474::-;7433:6;7441;7490:2;7478:9;7469:7;7465:23;7461:32;7458:119;;;7496:79;;:::i;:::-;7458:119;7616:1;7641:53;7686:7;7677:6;7666:9;7662:22;7641:53;:::i;:::-;7631:63;;7587:117;7743:2;7769:53;7814:7;7805:6;7794:9;7790:22;7769:53;:::i;:::-;7759:63;;7714:118;7365:474;;;;;:::o;7845:329::-;7904:6;7953:2;7941:9;7932:7;7928:23;7924:32;7921:119;;;7959:79;;:::i;:::-;7921:119;8079:1;8104:53;8149:7;8140:6;8129:9;8125:22;8104:53;:::i;:::-;8094:63;;8050:117;7845:329;;;;:::o;8180:180::-;8228:77;8225:1;8218:88;8325:4;8322:1;8315:15;8349:4;8346:1;8339:15;8366:320;8410:6;8447:1;8441:4;8437:12;8427:22;;8494:1;8488:4;8484:12;8515:18;8505:81;;8571:4;8563:6;8559:17;8549:27;;8505:81;8633:2;8625:6;8622:14;8602:18;8599:38;8596:84;;;8652:18;;:::i;:::-;8596:84;8417:269;8366:320;;;:::o;8692:223::-;8832:34;8828:1;8820:6;8816:14;8809:58;8901:6;8896:2;8888:6;8884:15;8877:31;8692:223;:::o;8921:366::-;9063:3;9084:67;9148:2;9143:3;9084:67;:::i;:::-;9077:74;;9160:93;9249:3;9160:93;:::i;:::-;9278:2;9273:3;9269:12;9262:19;;8921:366;;;:::o;9293:419::-;9459:4;9497:2;9486:9;9482:18;9474:26;;9546:9;9540:4;9536:20;9532:1;9521:9;9517:17;9510:47;9574:131;9700:4;9574:131;:::i;:::-;9566:139;;9293:419;;;:::o;9718:245::-;9858:34;9854:1;9846:6;9842:14;9835:58;9927:28;9922:2;9914:6;9910:15;9903:53;9718:245;:::o;9969:366::-;10111:3;10132:67;10196:2;10191:3;10132:67;:::i;:::-;10125:74;;10208:93;10297:3;10208:93;:::i;:::-;10326:2;10321:3;10317:12;10310:19;;9969:366;;;:::o;10341:419::-;10507:4;10545:2;10534:9;10530:18;10522:26;;10594:9;10588:4;10584:20;10580:1;10569:9;10565:17;10558:47;10622:131;10748:4;10622:131;:::i;:::-;10614:139;;10341:419;;;:::o;10766:306::-;10906:34;10902:1;10894:6;10890:14;10883:58;10975:34;10970:2;10962:6;10958:15;10951:59;11044:20;11039:2;11031:6;11027:15;11020:45;10766:306;:::o;11078:366::-;11220:3;11241:67;11305:2;11300:3;11241:67;:::i;:::-;11234:74;;11317:93;11406:3;11317:93;:::i;:::-;11435:2;11430:3;11426:12;11419:19;;11078:366;;;:::o;11450:419::-;11616:4;11654:2;11643:9;11639:18;11631:26;;11703:9;11697:4;11693:20;11689:1;11678:9;11674:17;11667:47;11731:131;11857:4;11731:131;:::i;:::-;11723:139;;11450:419;;;:::o;11875:60::-;11903:3;11924:5;11917:12;;11875:60;;;:::o;11941:140::-;11990:9;12023:52;12041:33;12050:23;12067:5;12050:23;:::i;:::-;12041:33;:::i;:::-;12023:52;:::i;:::-;12010:65;;11941:140;;;:::o;12087:129::-;12173:36;12203:5;12173:36;:::i;:::-;12168:3;12161:49;12087:129;;:::o;12222:328::-;12341:4;12379:2;12368:9;12364:18;12356:26;;12392:70;12459:1;12448:9;12444:17;12435:6;12392:70;:::i;:::-;12472:71;12539:2;12528:9;12524:18;12515:6;12472:71;:::i;:::-;12222:328;;;;;:::o;12556:180::-;12604:77;12601:1;12594:88;12701:4;12698:1;12691:15;12725:4;12722:1;12715:15;12742:305;12782:3;12801:20;12819:1;12801:20;:::i;:::-;12796:25;;12835:20;12853:1;12835:20;:::i;:::-;12830:25;;12989:1;12921:66;12917:74;12914:1;12911:81;12908:107;;;12995:18;;:::i;:::-;12908:107;13039:1;13036;13032:9;13025:16;;12742:305;;;;:::o;13053:232::-;13193:34;13189:1;13181:6;13177:14;13170:58;13262:15;13257:2;13249:6;13245:15;13238:40;13053:232;:::o;13291:366::-;13433:3;13454:67;13518:2;13513:3;13454:67;:::i;:::-;13447:74;;13530:93;13619:3;13530:93;:::i;:::-;13648:2;13643:3;13639:12;13632:19;;13291:366;;;:::o;13663:419::-;13829:4;13867:2;13856:9;13852:18;13844:26;;13916:9;13910:4;13906:20;13902:1;13891:9;13887:17;13880:47;13944:131;14070:4;13944:131;:::i;:::-;13936:139;;13663:419;;;:::o;14088:178::-;14228:30;14224:1;14216:6;14212:14;14205:54;14088:178;:::o;14272:366::-;14414:3;14435:67;14499:2;14494:3;14435:67;:::i;:::-;14428:74;;14511:93;14600:3;14511:93;:::i;:::-;14629:2;14624:3;14620:12;14613:19;;14272:366;;;:::o;14644:419::-;14810:4;14848:2;14837:9;14833:18;14825:26;;14897:9;14891:4;14887:20;14883:1;14872:9;14868:17;14861:47;14925:131;15051:4;14925:131;:::i;:::-;14917:139;;14644:419;;;:::o;15069:224::-;15209:34;15205:1;15197:6;15193:14;15186:58;15278:7;15273:2;15265:6;15261:15;15254:32;15069:224;:::o;15299:366::-;15441:3;15462:67;15526:2;15521:3;15462:67;:::i;:::-;15455:74;;15538:93;15627:3;15538:93;:::i;:::-;15656:2;15651:3;15647:12;15640:19;;15299:366;;;:::o;15671:419::-;15837:4;15875:2;15864:9;15860:18;15852:26;;15924:9;15918:4;15914:20;15910:1;15899:9;15895:17;15888:47;15952:131;16078:4;15952:131;:::i;:::-;15944:139;;15671:419;;;:::o;16096:224::-;16236:34;16232:1;16224:6;16220:14;16213:58;16305:7;16300:2;16292:6;16288:15;16281:32;16096:224;:::o;16326:366::-;16468:3;16489:67;16553:2;16548:3;16489:67;:::i;:::-;16482:74;;16565:93;16654:3;16565:93;:::i;:::-;16683:2;16678:3;16674:12;16667:19;;16326:366;;;:::o;16698:419::-;16864:4;16902:2;16891:9;16887:18;16879:26;;16951:9;16945:4;16941:20;16937:1;16926:9;16922:17;16915:47;16979:131;17105:4;16979:131;:::i;:::-;16971:139;;16698:419;;;:::o;17123:224::-;17263:34;17259:1;17251:6;17247:14;17240:58;17332:7;17327:2;17319:6;17315:15;17308:32;17123:224;:::o;17353:366::-;17495:3;17516:67;17580:2;17575:3;17516:67;:::i;:::-;17509:74;;17592:93;17681:3;17592:93;:::i;:::-;17710:2;17705:3;17701:12;17694:19;;17353:366;;;:::o;17725:419::-;17891:4;17929:2;17918:9;17914:18;17906:26;;17978:9;17972:4;17968:20;17964:1;17953:9;17949:17;17942:47;18006:131;18132:4;18006:131;:::i;:::-;17998:139;;17725:419;;;:::o;18150:223::-;18290:34;18286:1;18278:6;18274:14;18267:58;18359:6;18354:2;18346:6;18342:15;18335:31;18150:223;:::o;18379:366::-;18521:3;18542:67;18606:2;18601:3;18542:67;:::i;:::-;18535:74;;18618:93;18707:3;18618:93;:::i;:::-;18736:2;18731:3;18727:12;18720:19;;18379:366;;;:::o;18751:419::-;18917:4;18955:2;18944:9;18940:18;18932:26;;19004:9;18998:4;18994:20;18990:1;18979:9;18975:17;18968:47;19032:131;19158:4;19032:131;:::i;:::-;19024:139;;18751:419;;;:::o;19176:221::-;19316:34;19312:1;19304:6;19300:14;19293:58;19385:4;19380:2;19372:6;19368:15;19361:29;19176:221;:::o;19403:366::-;19545:3;19566:67;19630:2;19625:3;19566:67;:::i;:::-;19559:74;;19642:93;19731:3;19642:93;:::i;:::-;19760:2;19755:3;19751:12;19744:19;;19403:366;;;:::o;19775:419::-;19941:4;19979:2;19968:9;19964:18;19956:26;;20028:9;20022:4;20018:20;20014:1;20003:9;19999:17;19992:47;20056:131;20182:4;20056:131;:::i;:::-;20048:139;;19775:419;;;:::o;20200:179::-;20340:31;20336:1;20328:6;20324:14;20317:55;20200:179;:::o;20385:366::-;20527:3;20548:67;20612:2;20607:3;20548:67;:::i;:::-;20541:74;;20624:93;20713:3;20624:93;:::i;:::-;20742:2;20737:3;20733:12;20726:19;;20385:366;;;:::o;20757:419::-;20923:4;20961:2;20950:9;20946:18;20938:26;;21010:9;21004:4;21000:20;20996:1;20985:9;20981:17;20974:47;21038:131;21164:4;21038:131;:::i;:::-;21030:139;;20757:419;;;:::o;21182:222::-;21322:34;21318:1;21310:6;21306:14;21299:58;21391:5;21386:2;21378:6;21374:15;21367:30;21182:222;:::o;21410:366::-;21552:3;21573:67;21637:2;21632:3;21573:67;:::i;:::-;21566:74;;21649:93;21738:3;21649:93;:::i;:::-;21767:2;21762:3;21758:12;21751:19;;21410:366;;;:::o;21782:419::-;21948:4;21986:2;21975:9;21971:18;21963:26;;22035:9;22029:4;22025:20;22021:1;22010:9;22006:17;21999:47;22063:131;22189:4;22063:131;:::i;:::-;22055:139;;21782:419;;;:::o;22207:181::-;22347:33;22343:1;22335:6;22331:14;22324:57;22207:181;:::o;22394:366::-;22536:3;22557:67;22621:2;22616:3;22557:67;:::i;:::-;22550:74;;22633:93;22722:3;22633:93;:::i;:::-;22751:2;22746:3;22742:12;22735:19;;22394:366;;;:::o;22766:419::-;22932:4;22970:2;22959:9;22955:18;22947:26;;23019:9;23013:4;23009:20;23005:1;22994:9;22990:17;22983:47;23047:131;23173:4;23047:131;:::i;:::-;23039:139;;22766:419;;;:::o;23191:224::-;23331:34;23327:1;23319:6;23315:14;23308:58;23400:7;23395:2;23387:6;23383:15;23376:32;23191:224;:::o;23421:366::-;23563:3;23584:67;23648:2;23643:3;23584:67;:::i;:::-;23577:74;;23660:93;23749:3;23660:93;:::i;:::-;23778:2;23773:3;23769:12;23762:19;;23421:366;;;:::o;23793:419::-;23959:4;23997:2;23986:9;23982:18;23974:26;;24046:9;24040:4;24036:20;24032:1;24021:9;24017:17;24010:47;24074:131;24200:4;24074:131;:::i;:::-;24066:139;;23793:419;;;:::o;24218:222::-;24358:34;24354:1;24346:6;24342:14;24335:58;24427:5;24422:2;24414:6;24410:15;24403:30;24218:222;:::o;24446:366::-;24588:3;24609:67;24673:2;24668:3;24609:67;:::i;:::-;24602:74;;24685:93;24774:3;24685:93;:::i;:::-;24803:2;24798:3;24794:12;24787:19;;24446:366;;;:::o;24818:419::-;24984:4;25022:2;25011:9;25007:18;24999:26;;25071:9;25065:4;25061:20;25057:1;25046:9;25042:17;25035:47;25099:131;25225:4;25099:131;:::i;:::-;25091:139;;24818:419;;;:::o;25243:225::-;25383:34;25379:1;25371:6;25367:14;25360:58;25452:8;25447:2;25439:6;25435:15;25428:33;25243:225;:::o;25474:366::-;25616:3;25637:67;25701:2;25696:3;25637:67;:::i;:::-;25630:74;;25713:93;25802:3;25713:93;:::i;:::-;25831:2;25826:3;25822:12;25815:19;;25474:366;;;:::o;25846:419::-;26012:4;26050:2;26039:9;26035:18;26027:26;;26099:9;26093:4;26089:20;26085:1;26074:9;26070:17;26063:47;26127:131;26253:4;26127:131;:::i;:::-;26119:139;;25846:419;;;:::o;26271:348::-;26311:7;26334:20;26352:1;26334:20;:::i;:::-;26329:25;;26368:20;26386:1;26368:20;:::i;:::-;26363:25;;26556:1;26488:66;26484:74;26481:1;26478:81;26473:1;26466:9;26459:17;26455:105;26452:131;;;26563:18;;:::i;:::-;26452:131;26611:1;26608;26604:9;26593:20;;26271:348;;;;:::o;26625:180::-;26673:77;26670:1;26663:88;26770:4;26767:1;26760:15;26794:4;26791:1;26784:15;26811:185;26851:1;26868:20;26886:1;26868:20;:::i;:::-;26863:25;;26902:20;26920:1;26902:20;:::i;:::-;26897:25;;26941:1;26931:35;;26946:18;;:::i;:::-;26931:35;26988:1;26985;26981:9;26976:14;;26811:185;;;;:::o;27002:191::-;27042:4;27062:20;27080:1;27062:20;:::i;:::-;27057:25;;27096:20;27114:1;27096:20;:::i;:::-;27091:25;;27135:1;27132;27129:8;27126:34;;;27140:18;;:::i;:::-;27126:34;27185:1;27182;27178:9;27170:17;;27002:191;;;;:::o
Swarm Source
ipfs://79915d990d177adcd7f9323df37a5b07e95a75fb5b7cd3caa453667bd14cafde
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.