ETH Price: $3,608.63 (+6.14%)

Token

The Cat ($CATSZN)
 

Overview

Max Total Supply

420,690,000,000,000 $CATSZN

Holders

120

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,203,455,000,000.00018255706482278 $CATSZN

Value
$0.00
0xdf59d379e729c031075fa61b57f4acf20143396b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-16
*/

// 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/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// File: @openzeppelin/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.8.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: contracts/catszn.sol


// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;



interface IDexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);
    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

contract Token is ERC20, Ownable {

    IDexRouter public constant ROUTER = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable pair ;
    
    bool public limited;
    uint256 public maxHoldingAmount;


    bool public tradingEnabled;
    uint256 public launchTime;

    mapping (address => bool) public isWhitelisted;
    mapping(address => bool) public isBlacklisted;

    uint256 public transferGas = 25000;

    address public theIncinerator;


  

    constructor()  ERC20("The Cat","$CATSZN") {
        isWhitelisted[msg.sender] = true;
        pair = IDexFactory(ROUTER.factory()).createPair(address(this), ROUTER.WETH());
        _mint(msg.sender, 42069 * (10 ** 10) * (10 ** decimals()));
        maxHoldingAmount = totalSupply()*25 / 10000 ; //0.25% supply
        limited=true;
    }


    function _transfer(address sender, address recipient, uint256 amount) internal override {
       
        if(!tradingEnabled) { require(isWhitelisted[sender], "Trading is disabled"); }

        if(tradingEnabled) { require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted"); }
        
        // Transfer
        if (limited && sender == pair) {
            require(super.balanceOf(recipient) + amount <= maxHoldingAmount, "Max wallet exceeded.");
        }
        if (limited) {
            increaseMaxWallet();
        }
        super._transfer(sender, recipient, amount);
       
    }


    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        launchTime = block.timestamp;
    }


    function blacklist(address _address, bool _isBlacklisted) external onlyOwner {
        isBlacklisted[_address] = _isBlacklisted;
    }
    function blacklistMulti( address[] memory _addresses , bool _isBlacklisted) external onlyOwner {
        for(uint i=0; i<_addresses.length; i++) {
            if(_addresses[i]!=address(0)) {
                isBlacklisted[_addresses[i]] = _isBlacklisted;
            }
            
        }
    }

    function setIsWhitelisted(address account, bool exempt) external onlyOwner {
        isWhitelisted[account] = exempt;
    }



    function setWalletLimits(bool _limited, uint256 _maxHoldingAmount) external onlyOwner {
        limited = _limited;
        maxHoldingAmount = _maxHoldingAmount;
    }

    function increaseMaxWallet() private {
        if(block.timestamp>=launchTime + 600) {
            maxHoldingAmount = totalSupply() / 100 ; //1.0% supply
        }
        if(block.timestamp>=launchTime + 3600) {
            limited=false;
        }
    }

    function setTheIncinerator(address _address) external onlyOwner {
        theIncinerator = _address;
    }

    function burn(uint256 value) external {
        require(msg.sender==theIncinerator,"Denied");
        _burn(msg.sender, value);
    }



}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ROUTER","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisted","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool","name":"_isBlacklisted","type":"bool"}],"name":"blacklistMulti","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setTheIncinerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"}],"name":"setWalletLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"theIncinerator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040526161a8600b553480156200001757600080fd5b506040518060400160405280600781526020017f54686520436174000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f24434154535a4e0000000000000000000000000000000000000000000000000081525081600390816200009591906200084b565b508060049081620000a791906200084b565b505050620000ca620000be6200037960201b60201c565b6200038160201b60201c565b6001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000182573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a891906200099c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024a91906200099c565b6040518363ffffffff1660e01b815260040162000269929190620009df565b6020604051808303816000875af115801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af91906200099c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200032533620002f76200044760201b60201c565b600a62000305919062000b9c565b66017e9d8602b40062000319919062000bed565b6200045060201b60201c565b61271060196200033a620005bd60201b60201c565b62000346919062000bed565b62000352919062000c67565b6006819055506001600560146101000a81548160ff02191690831515021790555062000d8b565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004b99062000d00565b60405180910390fd5b620004d660008383620005c760201b60201c565b8060026000828254620004ea919062000d22565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200059d919062000d6e565b60405180910390a3620005b960008383620005cc60201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200065357607f821691505b6020821081036200066957620006686200060b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000694565b620006df868362000694565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200072c620007266200072084620006f7565b62000701565b620006f7565b9050919050565b6000819050919050565b62000748836200070b565b62000760620007578262000733565b848454620006a1565b825550505050565b600090565b6200077762000768565b620007848184846200073d565b505050565b5b81811015620007ac57620007a06000826200076d565b6001810190506200078a565b5050565b601f821115620007fb57620007c5816200066f565b620007d08462000684565b81016020851015620007e0578190505b620007f8620007ef8562000684565b83018262000789565b50505b505050565b600082821c905092915050565b6000620008206000198460080262000800565b1980831691505092915050565b60006200083b83836200080d565b9150826002028217905092915050565b6200085682620005d1565b67ffffffffffffffff811115620008725762000871620005dc565b5b6200087e82546200063a565b6200088b828285620007b0565b600060209050601f831160018114620008c35760008415620008ae578287015190505b620008ba85826200082d565b8655506200092a565b601f198416620008d3866200066f565b60005b82811015620008fd57848901518255600182019150602085019450602081019050620008d6565b868310156200091d578489015162000919601f8916826200080d565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009648262000937565b9050919050565b620009768162000957565b81146200098257600080fd5b50565b60008151905062000996816200096b565b92915050565b600060208284031215620009b557620009b462000932565b5b6000620009c58482850162000985565b91505092915050565b620009d98162000957565b82525050565b6000604082019050620009f66000830185620009ce565b62000a056020830184620009ce565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a9a5780860481111562000a725762000a7162000a0c565b5b600185161562000a825780820291505b808102905062000a928562000a3b565b945062000a52565b94509492505050565b60008262000ab5576001905062000b88565b8162000ac5576000905062000b88565b816001811462000ade576002811462000ae95762000b1f565b600191505062000b88565b60ff84111562000afe5762000afd62000a0c565b5b8360020a91508482111562000b185762000b1762000a0c565b5b5062000b88565b5060208310610133831016604e8410600b841016171562000b595782820a90508381111562000b535762000b5262000a0c565b5b62000b88565b62000b68848484600162000a48565b9250905081840481111562000b825762000b8162000a0c565b5b81810290505b9392505050565b600060ff82169050919050565b600062000ba982620006f7565b915062000bb68362000b8f565b925062000be57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000aa3565b905092915050565b600062000bfa82620006f7565b915062000c0783620006f7565b925082820262000c1781620006f7565b9150828204841483151762000c315762000c3062000a0c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c7482620006f7565b915062000c8183620006f7565b92508262000c945762000c9362000c38565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ce8601f8362000c9f565b915062000cf58262000cb0565b602082019050919050565b6000602082019050818103600083015262000d1b8162000cd9565b9050919050565b600062000d2f82620006f7565b915062000d3c83620006f7565b925082820190508082111562000d575762000d5662000a0c565b5b92915050565b62000d6881620006f7565b82525050565b600060208201905062000d85600083018462000d5d565b92915050565b6080516128d862000dae60003960008181610c38015261128e01526128d86000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063a8aa1b31116100a2578063f2fde38b11610071578063f2fde38b14610570578063fa03f7971461058c578063fac2896c146105aa578063fe575a87146105c8576101e5565b8063a8aa1b31146104d6578063a9059cbb146104f4578063dd62ed3e14610524578063eea1f61314610554576101e5565b80638a8c523c116100de5780638a8c523c146104605780638da5cb5b1461046a57806395d89b4114610488578063a457c2d7146104a6576101e5565b8063715018a6146103fc578063790ca41314610406578063860a32ec1461042457806389f9a1d314610442576101e5565b806339509351116101875780634ada218b116101565780634ada218b146103765780634eee30c21461039457806354835808146103b057806370a08231146103cc576101e5565b806339509351146102de5780633af32abf1461030e578063404e51291461033e57806342966c681461035a576101e5565b806318160ddd116101c357806318160ddd1461025457806323b872dd14610272578063313ce567146102a257806332fe7b26146102c0576101e5565b806306fdde03146101ea578063095ea7b31461020857806309ec923a14610238575b600080fd5b6101f26105f8565b6040516101ff9190611970565b60405180910390f35b610222600480360381019061021d9190611a3a565b61068a565b60405161022f9190611a95565b60405180910390f35b610252600480360381019061024d9190611adc565b6106ad565b005b61025c610710565b6040516102699190611b2b565b60405180910390f35b61028c60048036038101906102879190611b46565b61071a565b6040516102999190611a95565b60405180910390f35b6102aa610749565b6040516102b79190611bb5565b60405180910390f35b6102c8610752565b6040516102d59190611c2f565b60405180910390f35b6102f860048036038101906102f39190611a3a565b61076a565b6040516103059190611a95565b60405180910390f35b61032860048036038101906103239190611c4a565b6107a1565b6040516103359190611a95565b60405180910390f35b61035860048036038101906103539190611adc565b6107c1565b005b610374600480360381019061036f9190611c77565b610824565b005b61037e6108c1565b60405161038b9190611a95565b60405180910390f35b6103ae60048036038101906103a99190611c4a565b6108d4565b005b6103ca60048036038101906103c59190611dec565b610920565b005b6103e660048036038101906103e19190611c4a565b610a0c565b6040516103f39190611b2b565b60405180910390f35b610404610a54565b005b61040e610a68565b60405161041b9190611b2b565b60405180910390f35b61042c610a6e565b6040516104399190611a95565b60405180910390f35b61044a610a81565b6040516104579190611b2b565b60405180910390f35b610468610a87565b005b610472610b03565b60405161047f9190611e57565b60405180910390f35b610490610b2d565b60405161049d9190611970565b60405180910390f35b6104c060048036038101906104bb9190611a3a565b610bbf565b6040516104cd9190611a95565b60405180910390f35b6104de610c36565b6040516104eb9190611e57565b60405180910390f35b61050e60048036038101906105099190611a3a565b610c5a565b60405161051b9190611a95565b60405180910390f35b61053e60048036038101906105399190611e72565b610c7d565b60405161054b9190611b2b565b60405180910390f35b61056e60048036038101906105699190611eb2565b610d04565b005b61058a60048036038101906105859190611c4a565b610d31565b005b610594610db4565b6040516105a19190611b2b565b60405180910390f35b6105b2610dba565b6040516105bf9190611e57565b60405180910390f35b6105e260048036038101906105dd9190611c4a565b610de0565b6040516105ef9190611a95565b60405180910390f35b60606003805461060790611f21565b80601f016020809104026020016040519081016040528092919081815260200182805461063390611f21565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600080610695610e00565b90506106a2818585610e08565b600191505092915050565b6106b5610fd1565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b600080610725610e00565b905061073285828561104f565b61073d8585856110db565b60019150509392505050565b60006012905090565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080610775610e00565b90506107968185856107878589610c7d565b6107919190611f81565b610e08565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6107c9610fd1565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612001565b60405180910390fd5b6108be3382611368565b50565b600760009054906101000a900460ff1681565b6108dc610fd1565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610928610fd1565b60005b8251811015610a0757600073ffffffffffffffffffffffffffffffffffffffff1683828151811061095f5761095e612021565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146109f45781600a600085848151811061099a57610999612021565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806109ff90612050565b91505061092b565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a5c610fd1565b610a666000611535565b565b60085481565b600560149054906101000a900460ff1681565b60065481565b610a8f610fd1565b600760009054906101000a900460ff1615610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad6906120e4565b60405180910390fd5b6001600760006101000a81548160ff02191690831515021790555042600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b3c90611f21565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6890611f21565b8015610bb55780601f10610b8a57610100808354040283529160200191610bb5565b820191906000526020600020905b815481529060010190602001808311610b9857829003601f168201915b5050505050905090565b600080610bca610e00565b90506000610bd88286610c7d565b905083811015610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612176565b60405180910390fd5b610c2a8286868403610e08565b60019250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610c65610e00565b9050610c728185856110db565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d0c610fd1565b81600560146101000a81548160ff021916908315150217905550806006819055505050565b610d39610fd1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612208565b60405180910390fd5b610db181611535565b50565b600b5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e9061229a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd9061232c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fc49190611b2b565b60405180910390a3505050565b610fd9610e00565b73ffffffffffffffffffffffffffffffffffffffff16610ff7610b03565b73ffffffffffffffffffffffffffffffffffffffff161461104d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104490612398565b60405180910390fd5b565b600061105b8484610c7d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110d557818110156110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be90612404565b60405180910390fd5b6110d48484848403610e08565b5b50505050565b600760009054906101000a900460ff1661117c57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290612470565b60405180910390fd5b5b600760009054906101000a900460ff161561127557600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112355750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b906124dc565b60405180910390fd5b5b600560149054906101000a900460ff1680156112dc57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561133a57600654816112ee84610a0c565b6112f89190611f81565b1115611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090612548565b60405180910390fd5b5b600560149054906101000a900460ff1615611358576113576115fb565b5b611363838383611660565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce906125da565b60405180910390fd5b6113e3826000836118d6565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611469576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114609061266c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161151c9190611b2b565b60405180910390a3611530836000846118db565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61025860085461160b9190611f81565b421061162c57606461161b610710565b61162591906126bb565b6006819055505b610e1060085461163c9190611f81565b421061165e576000600560146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c69061275e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611735906127f0565b60405180910390fd5b6117498383836118d6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c690612882565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118bd9190611b2b565b60405180910390a36118d08484846118db565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561191a5780820151818401526020810190506118ff565b60008484015250505050565b6000601f19601f8301169050919050565b6000611942826118e0565b61194c81856118eb565b935061195c8185602086016118fc565b61196581611926565b840191505092915050565b6000602082019050818103600083015261198a8184611937565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119d1826119a6565b9050919050565b6119e1816119c6565b81146119ec57600080fd5b50565b6000813590506119fe816119d8565b92915050565b6000819050919050565b611a1781611a04565b8114611a2257600080fd5b50565b600081359050611a3481611a0e565b92915050565b60008060408385031215611a5157611a5061199c565b5b6000611a5f858286016119ef565b9250506020611a7085828601611a25565b9150509250929050565b60008115159050919050565b611a8f81611a7a565b82525050565b6000602082019050611aaa6000830184611a86565b92915050565b611ab981611a7a565b8114611ac457600080fd5b50565b600081359050611ad681611ab0565b92915050565b60008060408385031215611af357611af261199c565b5b6000611b01858286016119ef565b9250506020611b1285828601611ac7565b9150509250929050565b611b2581611a04565b82525050565b6000602082019050611b406000830184611b1c565b92915050565b600080600060608486031215611b5f57611b5e61199c565b5b6000611b6d868287016119ef565b9350506020611b7e868287016119ef565b9250506040611b8f86828701611a25565b9150509250925092565b600060ff82169050919050565b611baf81611b99565b82525050565b6000602082019050611bca6000830184611ba6565b92915050565b6000819050919050565b6000611bf5611bf0611beb846119a6565b611bd0565b6119a6565b9050919050565b6000611c0782611bda565b9050919050565b6000611c1982611bfc565b9050919050565b611c2981611c0e565b82525050565b6000602082019050611c446000830184611c20565b92915050565b600060208284031215611c6057611c5f61199c565b5b6000611c6e848285016119ef565b91505092915050565b600060208284031215611c8d57611c8c61199c565b5b6000611c9b84828501611a25565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611ce182611926565b810181811067ffffffffffffffff82111715611d0057611cff611ca9565b5b80604052505050565b6000611d13611992565b9050611d1f8282611cd8565b919050565b600067ffffffffffffffff821115611d3f57611d3e611ca9565b5b602082029050602081019050919050565b600080fd5b6000611d68611d6384611d24565b611d09565b90508083825260208201905060208402830185811115611d8b57611d8a611d50565b5b835b81811015611db45780611da088826119ef565b845260208401935050602081019050611d8d565b5050509392505050565b600082601f830112611dd357611dd2611ca4565b5b8135611de3848260208601611d55565b91505092915050565b60008060408385031215611e0357611e0261199c565b5b600083013567ffffffffffffffff811115611e2157611e206119a1565b5b611e2d85828601611dbe565b9250506020611e3e85828601611ac7565b9150509250929050565b611e51816119c6565b82525050565b6000602082019050611e6c6000830184611e48565b92915050565b60008060408385031215611e8957611e8861199c565b5b6000611e97858286016119ef565b9250506020611ea8858286016119ef565b9150509250929050565b60008060408385031215611ec957611ec861199c565b5b6000611ed785828601611ac7565b9250506020611ee885828601611a25565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f3957607f821691505b602082108103611f4c57611f4b611ef2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f8c82611a04565b9150611f9783611a04565b9250828201905080821115611faf57611fae611f52565b5b92915050565b7f44656e6965640000000000000000000000000000000000000000000000000000600082015250565b6000611feb6006836118eb565b9150611ff682611fb5565b602082019050919050565b6000602082019050818103600083015261201a81611fde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061205b82611a04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361208d5761208c611f52565b5b600182019050919050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b60006120ce601a836118eb565b91506120d982612098565b602082019050919050565b600060208201905081810360008301526120fd816120c1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006121606025836118eb565b915061216b82612104565b604082019050919050565b6000602082019050818103600083015261218f81612153565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121f26026836118eb565b91506121fd82612196565b604082019050919050565b60006020820190508181036000830152612221816121e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006122846024836118eb565b915061228f82612228565b604082019050919050565b600060208201905081810360008301526122b381612277565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123166022836118eb565b9150612321826122ba565b604082019050919050565b6000602082019050818103600083015261234581612309565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123826020836118eb565b915061238d8261234c565b602082019050919050565b600060208201905081810360008301526123b181612375565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006123ee601d836118eb565b91506123f9826123b8565b602082019050919050565b6000602082019050818103600083015261241d816123e1565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b600061245a6013836118eb565b915061246582612424565b602082019050919050565b600060208201905081810360008301526124898161244d565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006124c6600b836118eb565b91506124d182612490565b602082019050919050565b600060208201905081810360008301526124f5816124b9565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b60006125326014836118eb565b915061253d826124fc565b602082019050919050565b6000602082019050818103600083015261256181612525565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006125c46021836118eb565b91506125cf82612568565b604082019050919050565b600060208201905081810360008301526125f3816125b7565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006126566022836118eb565b9150612661826125fa565b604082019050919050565b6000602082019050818103600083015261268581612649565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126c682611a04565b91506126d183611a04565b9250826126e1576126e061268c565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127486025836118eb565b9150612753826126ec565b604082019050919050565b600060208201905081810360008301526127778161273b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127da6023836118eb565b91506127e58261277e565b604082019050919050565b60006020820190508181036000830152612809816127cd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061286c6026836118eb565b915061287782612810565b604082019050919050565b6000602082019050818103600083015261289b8161285f565b905091905056fea26469706673582212203aa92a0bce8b485ed3017fbd29fc28e8a20f75f7c1f6212681c3d4b9fd3b223264736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063a8aa1b31116100a2578063f2fde38b11610071578063f2fde38b14610570578063fa03f7971461058c578063fac2896c146105aa578063fe575a87146105c8576101e5565b8063a8aa1b31146104d6578063a9059cbb146104f4578063dd62ed3e14610524578063eea1f61314610554576101e5565b80638a8c523c116100de5780638a8c523c146104605780638da5cb5b1461046a57806395d89b4114610488578063a457c2d7146104a6576101e5565b8063715018a6146103fc578063790ca41314610406578063860a32ec1461042457806389f9a1d314610442576101e5565b806339509351116101875780634ada218b116101565780634ada218b146103765780634eee30c21461039457806354835808146103b057806370a08231146103cc576101e5565b806339509351146102de5780633af32abf1461030e578063404e51291461033e57806342966c681461035a576101e5565b806318160ddd116101c357806318160ddd1461025457806323b872dd14610272578063313ce567146102a257806332fe7b26146102c0576101e5565b806306fdde03146101ea578063095ea7b31461020857806309ec923a14610238575b600080fd5b6101f26105f8565b6040516101ff9190611970565b60405180910390f35b610222600480360381019061021d9190611a3a565b61068a565b60405161022f9190611a95565b60405180910390f35b610252600480360381019061024d9190611adc565b6106ad565b005b61025c610710565b6040516102699190611b2b565b60405180910390f35b61028c60048036038101906102879190611b46565b61071a565b6040516102999190611a95565b60405180910390f35b6102aa610749565b6040516102b79190611bb5565b60405180910390f35b6102c8610752565b6040516102d59190611c2f565b60405180910390f35b6102f860048036038101906102f39190611a3a565b61076a565b6040516103059190611a95565b60405180910390f35b61032860048036038101906103239190611c4a565b6107a1565b6040516103359190611a95565b60405180910390f35b61035860048036038101906103539190611adc565b6107c1565b005b610374600480360381019061036f9190611c77565b610824565b005b61037e6108c1565b60405161038b9190611a95565b60405180910390f35b6103ae60048036038101906103a99190611c4a565b6108d4565b005b6103ca60048036038101906103c59190611dec565b610920565b005b6103e660048036038101906103e19190611c4a565b610a0c565b6040516103f39190611b2b565b60405180910390f35b610404610a54565b005b61040e610a68565b60405161041b9190611b2b565b60405180910390f35b61042c610a6e565b6040516104399190611a95565b60405180910390f35b61044a610a81565b6040516104579190611b2b565b60405180910390f35b610468610a87565b005b610472610b03565b60405161047f9190611e57565b60405180910390f35b610490610b2d565b60405161049d9190611970565b60405180910390f35b6104c060048036038101906104bb9190611a3a565b610bbf565b6040516104cd9190611a95565b60405180910390f35b6104de610c36565b6040516104eb9190611e57565b60405180910390f35b61050e60048036038101906105099190611a3a565b610c5a565b60405161051b9190611a95565b60405180910390f35b61053e60048036038101906105399190611e72565b610c7d565b60405161054b9190611b2b565b60405180910390f35b61056e60048036038101906105699190611eb2565b610d04565b005b61058a60048036038101906105859190611c4a565b610d31565b005b610594610db4565b6040516105a19190611b2b565b60405180910390f35b6105b2610dba565b6040516105bf9190611e57565b60405180910390f35b6105e260048036038101906105dd9190611c4a565b610de0565b6040516105ef9190611a95565b60405180910390f35b60606003805461060790611f21565b80601f016020809104026020016040519081016040528092919081815260200182805461063390611f21565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b600080610695610e00565b90506106a2818585610e08565b600191505092915050565b6106b5610fd1565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b600080610725610e00565b905061073285828561104f565b61073d8585856110db565b60019150509392505050565b60006012905090565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080610775610e00565b90506107968185856107878589610c7d565b6107919190611f81565b610e08565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6107c9610fd1565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612001565b60405180910390fd5b6108be3382611368565b50565b600760009054906101000a900460ff1681565b6108dc610fd1565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610928610fd1565b60005b8251811015610a0757600073ffffffffffffffffffffffffffffffffffffffff1683828151811061095f5761095e612021565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146109f45781600a600085848151811061099a57610999612021565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806109ff90612050565b91505061092b565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a5c610fd1565b610a666000611535565b565b60085481565b600560149054906101000a900460ff1681565b60065481565b610a8f610fd1565b600760009054906101000a900460ff1615610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad6906120e4565b60405180910390fd5b6001600760006101000a81548160ff02191690831515021790555042600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b3c90611f21565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6890611f21565b8015610bb55780601f10610b8a57610100808354040283529160200191610bb5565b820191906000526020600020905b815481529060010190602001808311610b9857829003601f168201915b5050505050905090565b600080610bca610e00565b90506000610bd88286610c7d565b905083811015610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612176565b60405180910390fd5b610c2a8286868403610e08565b60019250505092915050565b7f000000000000000000000000c43bce6edbfffcc2ab158aa6d903f9bfe1884a2681565b600080610c65610e00565b9050610c728185856110db565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d0c610fd1565b81600560146101000a81548160ff021916908315150217905550806006819055505050565b610d39610fd1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612208565b60405180910390fd5b610db181611535565b50565b600b5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e9061229a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd9061232c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fc49190611b2b565b60405180910390a3505050565b610fd9610e00565b73ffffffffffffffffffffffffffffffffffffffff16610ff7610b03565b73ffffffffffffffffffffffffffffffffffffffff161461104d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104490612398565b60405180910390fd5b565b600061105b8484610c7d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110d557818110156110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be90612404565b60405180910390fd5b6110d48484848403610e08565b5b50505050565b600760009054906101000a900460ff1661117c57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290612470565b60405180910390fd5b5b600760009054906101000a900460ff161561127557600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112355750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b906124dc565b60405180910390fd5b5b600560149054906101000a900460ff1680156112dc57507f000000000000000000000000c43bce6edbfffcc2ab158aa6d903f9bfe1884a2673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561133a57600654816112ee84610a0c565b6112f89190611f81565b1115611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090612548565b60405180910390fd5b5b600560149054906101000a900460ff1615611358576113576115fb565b5b611363838383611660565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce906125da565b60405180910390fd5b6113e3826000836118d6565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611469576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114609061266c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161151c9190611b2b565b60405180910390a3611530836000846118db565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61025860085461160b9190611f81565b421061162c57606461161b610710565b61162591906126bb565b6006819055505b610e1060085461163c9190611f81565b421061165e576000600560146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c69061275e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611735906127f0565b60405180910390fd5b6117498383836118d6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c690612882565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118bd9190611b2b565b60405180910390a36118d08484846118db565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561191a5780820151818401526020810190506118ff565b60008484015250505050565b6000601f19601f8301169050919050565b6000611942826118e0565b61194c81856118eb565b935061195c8185602086016118fc565b61196581611926565b840191505092915050565b6000602082019050818103600083015261198a8184611937565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119d1826119a6565b9050919050565b6119e1816119c6565b81146119ec57600080fd5b50565b6000813590506119fe816119d8565b92915050565b6000819050919050565b611a1781611a04565b8114611a2257600080fd5b50565b600081359050611a3481611a0e565b92915050565b60008060408385031215611a5157611a5061199c565b5b6000611a5f858286016119ef565b9250506020611a7085828601611a25565b9150509250929050565b60008115159050919050565b611a8f81611a7a565b82525050565b6000602082019050611aaa6000830184611a86565b92915050565b611ab981611a7a565b8114611ac457600080fd5b50565b600081359050611ad681611ab0565b92915050565b60008060408385031215611af357611af261199c565b5b6000611b01858286016119ef565b9250506020611b1285828601611ac7565b9150509250929050565b611b2581611a04565b82525050565b6000602082019050611b406000830184611b1c565b92915050565b600080600060608486031215611b5f57611b5e61199c565b5b6000611b6d868287016119ef565b9350506020611b7e868287016119ef565b9250506040611b8f86828701611a25565b9150509250925092565b600060ff82169050919050565b611baf81611b99565b82525050565b6000602082019050611bca6000830184611ba6565b92915050565b6000819050919050565b6000611bf5611bf0611beb846119a6565b611bd0565b6119a6565b9050919050565b6000611c0782611bda565b9050919050565b6000611c1982611bfc565b9050919050565b611c2981611c0e565b82525050565b6000602082019050611c446000830184611c20565b92915050565b600060208284031215611c6057611c5f61199c565b5b6000611c6e848285016119ef565b91505092915050565b600060208284031215611c8d57611c8c61199c565b5b6000611c9b84828501611a25565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611ce182611926565b810181811067ffffffffffffffff82111715611d0057611cff611ca9565b5b80604052505050565b6000611d13611992565b9050611d1f8282611cd8565b919050565b600067ffffffffffffffff821115611d3f57611d3e611ca9565b5b602082029050602081019050919050565b600080fd5b6000611d68611d6384611d24565b611d09565b90508083825260208201905060208402830185811115611d8b57611d8a611d50565b5b835b81811015611db45780611da088826119ef565b845260208401935050602081019050611d8d565b5050509392505050565b600082601f830112611dd357611dd2611ca4565b5b8135611de3848260208601611d55565b91505092915050565b60008060408385031215611e0357611e0261199c565b5b600083013567ffffffffffffffff811115611e2157611e206119a1565b5b611e2d85828601611dbe565b9250506020611e3e85828601611ac7565b9150509250929050565b611e51816119c6565b82525050565b6000602082019050611e6c6000830184611e48565b92915050565b60008060408385031215611e8957611e8861199c565b5b6000611e97858286016119ef565b9250506020611ea8858286016119ef565b9150509250929050565b60008060408385031215611ec957611ec861199c565b5b6000611ed785828601611ac7565b9250506020611ee885828601611a25565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f3957607f821691505b602082108103611f4c57611f4b611ef2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f8c82611a04565b9150611f9783611a04565b9250828201905080821115611faf57611fae611f52565b5b92915050565b7f44656e6965640000000000000000000000000000000000000000000000000000600082015250565b6000611feb6006836118eb565b9150611ff682611fb5565b602082019050919050565b6000602082019050818103600083015261201a81611fde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061205b82611a04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361208d5761208c611f52565b5b600182019050919050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b60006120ce601a836118eb565b91506120d982612098565b602082019050919050565b600060208201905081810360008301526120fd816120c1565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006121606025836118eb565b915061216b82612104565b604082019050919050565b6000602082019050818103600083015261218f81612153565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121f26026836118eb565b91506121fd82612196565b604082019050919050565b60006020820190508181036000830152612221816121e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006122846024836118eb565b915061228f82612228565b604082019050919050565b600060208201905081810360008301526122b381612277565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123166022836118eb565b9150612321826122ba565b604082019050919050565b6000602082019050818103600083015261234581612309565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123826020836118eb565b915061238d8261234c565b602082019050919050565b600060208201905081810360008301526123b181612375565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006123ee601d836118eb565b91506123f9826123b8565b602082019050919050565b6000602082019050818103600083015261241d816123e1565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b600061245a6013836118eb565b915061246582612424565b602082019050919050565b600060208201905081810360008301526124898161244d565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006124c6600b836118eb565b91506124d182612490565b602082019050919050565b600060208201905081810360008301526124f5816124b9565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b60006125326014836118eb565b915061253d826124fc565b602082019050919050565b6000602082019050818103600083015261256181612525565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006125c46021836118eb565b91506125cf82612568565b604082019050919050565b600060208201905081810360008301526125f3816125b7565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006126566022836118eb565b9150612661826125fa565b604082019050919050565b6000602082019050818103600083015261268581612649565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126c682611a04565b91506126d183611a04565b9250826126e1576126e061268c565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127486025836118eb565b9150612753826126ec565b604082019050919050565b600060208201905081810360008301526127778161273b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127da6023836118eb565b91506127e58261277e565b604082019050919050565b60006020820190508181036000830152612809816127cd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061286c6026836118eb565b915061287782612810565b604082019050919050565b6000602082019050818103600083015261289b8161285f565b905091905056fea26469706673582212203aa92a0bce8b485ed3017fbd29fc28e8a20f75f7c1f6212681c3d4b9fd3b223264736f6c63430008120033

Deployed Bytecode Sourcemap

21771:2995:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11702:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23920:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10471:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12483:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10313:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21813:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13187:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22088:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23467:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24621;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22021:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24505:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23609:303;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10642:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2776:103;;;:::i;:::-;;22054:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21953:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21979:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23269:188;;;:::i;:::-;;2128:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9570:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13928:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21910:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10975:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11231:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24057:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3034:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22195:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22238:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22141:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9351:100;9405:13;9438:5;9431:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:100;:::o;11702:201::-;11785:4;11802:13;11818:12;:10;:12::i;:::-;11802:28;;11841:32;11850:5;11857:7;11866:6;11841:8;:32::i;:::-;11891:4;11884:11;;;11702:201;;;;:::o;23920:125::-;2014:13;:11;:13::i;:::-;24031:6:::1;24006:13;:22;24020:7;24006:22;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;23920:125:::0;;:::o;10471:108::-;10532:7;10559:12;;10552:19;;10471:108;:::o;12483:295::-;12614:4;12631:15;12649:12;:10;:12::i;:::-;12631:30;;12672:38;12688:4;12694:7;12703:6;12672:15;:38::i;:::-;12721:27;12731:4;12737:2;12741:6;12721:9;:27::i;:::-;12766:4;12759:11;;;12483:295;;;;;:::o;10313:93::-;10371:5;10396:2;10389:9;;10313:93;:::o;21813:90::-;21860:42;21813:90;:::o;13187:238::-;13275:4;13292:13;13308:12;:10;:12::i;:::-;13292:28;;13331:64;13340:5;13347:7;13384:10;13356:25;13366:5;13373:7;13356:9;:25::i;:::-;:38;;;;:::i;:::-;13331:8;:64::i;:::-;13413:4;13406:11;;;13187:238;;;;:::o;22088:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;23467:136::-;2014:13;:11;:13::i;:::-;23581:14:::1;23555:13;:23;23569:8;23555:23;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;23467:136:::0;;:::o;24621:::-;24690:14;;;;;;;;;;;24678:26;;:10;:26;;;24670:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;24725:24;24731:10;24743:5;24725;:24::i;:::-;24621:136;:::o;22021:26::-;;;;;;;;;;;;;:::o;24505:108::-;2014:13;:11;:13::i;:::-;24597:8:::1;24580:14;;:25;;;;;;;;;;;;;;;;;;24505:108:::0;:::o;23609:303::-;2014:13;:11;:13::i;:::-;23719:6:::1;23715:190;23731:10;:17;23729:1;:19;23715:190;;;23796:1;23773:25;;:10;23784:1;23773:13;;;;;;;;:::i;:::-;;;;;;;;:25;;;23770:110;;23850:14;23819:13;:28;23833:10;23844:1;23833:13;;;;;;;;:::i;:::-;;;;;;;;23819:28;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;23770:110;23750:3;;;;;:::i;:::-;;;;23715:190;;;;23609:303:::0;;:::o;10642:127::-;10716:7;10743:9;:18;10753:7;10743:18;;;;;;;;;;;;;;;;10736:25;;10642:127;;;:::o;2776:103::-;2014:13;:11;:13::i;:::-;2841:30:::1;2868:1;2841:18;:30::i;:::-;2776:103::o:0;22054:25::-;;;;:::o;21953:19::-;;;;;;;;;;;;;:::o;21979:31::-;;;;:::o;23269:188::-;2014:13;:11;:13::i;:::-;23333:14:::1;;;;;;;;;;;23332:15;23324:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;23406:4;23389:14;;:21;;;;;;;;;;;;;;;;;;23434:15;23421:10;:28;;;;23269:188::o:0;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;9570:104::-;9626:13;9659:7;9652:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9570:104;:::o;13928:436::-;14021:4;14038:13;14054:12;:10;:12::i;:::-;14038:28;;14077:24;14104:25;14114:5;14121:7;14104:9;:25::i;:::-;14077:52;;14168:15;14148:16;:35;;14140:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14261:60;14270:5;14277:7;14305:15;14286:16;:34;14261:8;:60::i;:::-;14352:4;14345:11;;;;13928:436;;;;:::o;21910:29::-;;;:::o;10975:193::-;11054:4;11071:13;11087:12;:10;:12::i;:::-;11071:28;;11110;11120:5;11127:2;11131:6;11110:9;:28::i;:::-;11156:4;11149:11;;;10975:193;;;;:::o;11231:151::-;11320:7;11347:11;:18;11359:5;11347:18;;;;;;;;;;;;;;;:27;11366:7;11347:27;;;;;;;;;;;;;;;;11340:34;;11231:151;;;;:::o;24057:170::-;2014:13;:11;:13::i;:::-;24164:8:::1;24154:7;;:18;;;;;;;;;;;;;;;;;;24202:17;24183:16;:36;;;;24057:170:::0;;:::o;3034:201::-;2014:13;:11;:13::i;:::-;3143:1:::1;3123:22;;:8;:22;;::::0;3115:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3199:28;3218:8;3199:18;:28::i;:::-;3034:201:::0;:::o;22195:34::-;;;;:::o;22238:29::-;;;;;;;;;;;;;:::o;22141:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;17955:380::-;18108:1;18091:19;;:5;:19;;;18083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18189:1;18170:21;;:7;:21;;;18162:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18273:6;18243:11;:18;18255:5;18243:18;;;;;;;;;;;;;;;:27;18262:7;18243:27;;;;;;;;;;;;;;;:36;;;;18311:7;18295:32;;18304:5;18295:32;;;18320:6;18295:32;;;;;;:::i;:::-;;;;;;;;17955:380;;;:::o;2293:132::-;2368:12;:10;:12::i;:::-;2357:23;;:7;:5;:7::i;:::-;:23;;;2349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:132::o;18626:453::-;18761:24;18788:25;18798:5;18805:7;18788:9;:25::i;:::-;18761:52;;18848:17;18828:16;:37;18824:248;;18910:6;18890:16;:26;;18882:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18994:51;19003:5;19010:7;19038:6;19019:16;:25;18994:8;:51::i;:::-;18824:248;18750:329;18626:453;;;:::o;22637:622::-;22749:14;;;;;;;;;;;22745:78;;22775:13;:21;22789:6;22775:21;;;;;;;;;;;;;;;;;;;;;;;;;22767:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;22745:78;22838:14;;;;;;;;;;;22835:99;;;22865:13;:21;22879:6;22865:21;;;;;;;;;;;;;;;;;;;;;;;;;22864:22;:51;;;;;22891:13;:24;22905:9;22891:24;;;;;;;;;;;;;;;;;;;;;;;;;22890:25;22864:51;22856:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22835:99;22979:7;;;;;;;;;;;:25;;;;;23000:4;22990:14;;:6;:14;;;22979:25;22975:146;;;23068:16;;23058:6;23029:26;23045:9;23029:15;:26::i;:::-;:35;;;;:::i;:::-;:55;;23021:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;22975:146;23135:7;;;;;;;;;;;23131:59;;;23159:19;:17;:19::i;:::-;23131:59;23200:42;23216:6;23224:9;23235:6;23200:15;:42::i;:::-;22637:622;;;:::o;16842:675::-;16945:1;16926:21;;:7;:21;;;16918:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16998:49;17019:7;17036:1;17040:6;16998:20;:49::i;:::-;17060:22;17085:9;:18;17095:7;17085:18;;;;;;;;;;;;;;;;17060:43;;17140:6;17122:14;:24;;17114:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17259:6;17242:14;:23;17221:9;:18;17231:7;17221:18;;;;;;;;;;;;;;;:44;;;;17376:6;17360:12;;:22;;;;;;;;;;;17437:1;17411:37;;17420:7;17411:37;;;17441:6;17411:37;;;;;;:::i;:::-;;;;;;;;17461:48;17481:7;17498:1;17502:6;17461:19;:48::i;:::-;16907:610;16842:675;;:::o;3395:191::-;3469:16;3488:6;;;;;;;;;;;3469:25;;3514:8;3505:6;;:17;;;;;;;;;;;;;;;;;;3569:8;3538:40;;3559:8;3538:40;;;;;;;;;;;;3458:128;3395:191;:::o;24235:262::-;24316:3;24303:10;;:16;;;;:::i;:::-;24286:15;:33;24283:118;;24371:3;24355:13;:11;:13::i;:::-;:19;;;;:::i;:::-;24336:16;:38;;;;24283:118;24444:4;24431:10;;:17;;;;:::i;:::-;24414:15;:34;24411:79;;24473:5;24465:7;;:13;;;;;;;;;;;;;;;;;;24411:79;24235:262::o;14834:840::-;14981:1;14965:18;;:4;:18;;;14957:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15058:1;15044:16;;:2;:16;;;15036:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15113:38;15134:4;15140:2;15144:6;15113:20;:38::i;:::-;15164:19;15186:9;:15;15196:4;15186:15;;;;;;;;;;;;;;;;15164:37;;15235:6;15220:11;:21;;15212:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15352:6;15338:11;:20;15320:9;:15;15330:4;15320:15;;;;;;;;;;;;;;;:38;;;;15555:6;15538:9;:13;15548:2;15538:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15605:2;15590:26;;15599:4;15590:26;;;15609:6;15590:26;;;;;;:::i;:::-;;;;;;;;15629:37;15649:4;15655:2;15659:6;15629:19;:37::i;:::-;14946:728;14834:840;;;:::o;19679:125::-;;;;:::o;20408: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:468::-;3772:6;3780;3829:2;3817:9;3808:7;3804:23;3800:32;3797:119;;;3835:79;;:::i;:::-;3797:119;3955:1;3980:53;4025:7;4016:6;4005:9;4001:22;3980:53;:::i;:::-;3970:63;;3926:117;4082:2;4108:50;4150:7;4141:6;4130:9;4126:22;4108:50;:::i;:::-;4098:60;;4053:115;3707:468;;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:60::-;5616:3;5637:5;5630:12;;5588:60;;;:::o;5654:142::-;5704:9;5737:53;5755:34;5764:24;5782:5;5764:24;:::i;:::-;5755:34;:::i;:::-;5737:53;:::i;:::-;5724:66;;5654:142;;;:::o;5802:126::-;5852:9;5885:37;5916:5;5885:37;:::i;:::-;5872:50;;5802:126;;;:::o;5934:144::-;6002:9;6035:37;6066:5;6035:37;:::i;:::-;6022:50;;5934:144;;;:::o;6084:167::-;6189:55;6238:5;6189:55;:::i;:::-;6184:3;6177:68;6084:167;;:::o;6257:258::-;6368:4;6406:2;6395:9;6391:18;6383:26;;6419:89;6505:1;6494:9;6490:17;6481:6;6419:89;:::i;:::-;6257:258;;;;:::o;6521:329::-;6580:6;6629:2;6617:9;6608:7;6604:23;6600:32;6597:119;;;6635:79;;:::i;:::-;6597:119;6755:1;6780:53;6825:7;6816:6;6805:9;6801:22;6780:53;:::i;:::-;6770:63;;6726:117;6521:329;;;;:::o;6856:::-;6915:6;6964:2;6952:9;6943:7;6939:23;6935:32;6932:119;;;6970:79;;:::i;:::-;6932:119;7090:1;7115:53;7160:7;7151:6;7140:9;7136:22;7115:53;:::i;:::-;7105:63;;7061:117;6856:329;;;;:::o;7191:117::-;7300:1;7297;7290:12;7314:180;7362:77;7359:1;7352:88;7459:4;7456:1;7449:15;7483:4;7480:1;7473:15;7500:281;7583:27;7605:4;7583:27;:::i;:::-;7575:6;7571:40;7713:6;7701:10;7698:22;7677:18;7665:10;7662:34;7659:62;7656:88;;;7724:18;;:::i;:::-;7656:88;7764:10;7760:2;7753:22;7543:238;7500:281;;:::o;7787:129::-;7821:6;7848:20;;:::i;:::-;7838:30;;7877:33;7905:4;7897:6;7877:33;:::i;:::-;7787:129;;;:::o;7922:311::-;7999:4;8089:18;8081:6;8078:30;8075:56;;;8111:18;;:::i;:::-;8075:56;8161:4;8153:6;8149:17;8141:25;;8221:4;8215;8211:15;8203:23;;7922:311;;;:::o;8239:117::-;8348:1;8345;8338:12;8379:710;8475:5;8500:81;8516:64;8573:6;8516:64;:::i;:::-;8500:81;:::i;:::-;8491:90;;8601:5;8630:6;8623:5;8616:21;8664:4;8657:5;8653:16;8646:23;;8717:4;8709:6;8705:17;8697:6;8693:30;8746:3;8738:6;8735:15;8732:122;;;8765:79;;:::i;:::-;8732:122;8880:6;8863:220;8897:6;8892:3;8889:15;8863:220;;;8972:3;9001:37;9034:3;9022:10;9001:37;:::i;:::-;8996:3;8989:50;9068:4;9063:3;9059:14;9052:21;;8939:144;8923:4;8918:3;8914:14;8907:21;;8863:220;;;8867:21;8481:608;;8379:710;;;;;:::o;9112:370::-;9183:5;9232:3;9225:4;9217:6;9213:17;9209:27;9199:122;;9240:79;;:::i;:::-;9199:122;9357:6;9344:20;9382:94;9472:3;9464:6;9457:4;9449:6;9445:17;9382:94;:::i;:::-;9373:103;;9189:293;9112:370;;;;:::o;9488:678::-;9578:6;9586;9635:2;9623:9;9614:7;9610:23;9606:32;9603:119;;;9641:79;;:::i;:::-;9603:119;9789:1;9778:9;9774:17;9761:31;9819:18;9811:6;9808:30;9805:117;;;9841:79;;:::i;:::-;9805:117;9946:78;10016:7;10007:6;9996:9;9992:22;9946:78;:::i;:::-;9936:88;;9732:302;10073:2;10099:50;10141:7;10132:6;10121:9;10117:22;10099:50;:::i;:::-;10089:60;;10044:115;9488:678;;;;;:::o;10172:118::-;10259:24;10277:5;10259:24;:::i;:::-;10254:3;10247:37;10172:118;;:::o;10296:222::-;10389:4;10427:2;10416:9;10412:18;10404:26;;10440:71;10508:1;10497:9;10493:17;10484:6;10440:71;:::i;:::-;10296:222;;;;:::o;10524:474::-;10592:6;10600;10649:2;10637:9;10628:7;10624:23;10620:32;10617:119;;;10655:79;;:::i;:::-;10617:119;10775:1;10800:53;10845:7;10836:6;10825:9;10821:22;10800:53;:::i;:::-;10790:63;;10746:117;10902:2;10928:53;10973:7;10964:6;10953:9;10949:22;10928:53;:::i;:::-;10918:63;;10873:118;10524:474;;;;;:::o;11004:468::-;11069:6;11077;11126:2;11114:9;11105:7;11101:23;11097:32;11094:119;;;11132:79;;:::i;:::-;11094:119;11252:1;11277:50;11319:7;11310:6;11299:9;11295:22;11277:50;:::i;:::-;11267:60;;11223:114;11376:2;11402:53;11447:7;11438:6;11427:9;11423:22;11402:53;:::i;:::-;11392:63;;11347:118;11004:468;;;;;:::o;11478:180::-;11526:77;11523:1;11516:88;11623:4;11620:1;11613:15;11647:4;11644:1;11637:15;11664:320;11708:6;11745:1;11739:4;11735:12;11725:22;;11792:1;11786:4;11782:12;11813:18;11803:81;;11869:4;11861:6;11857:17;11847:27;;11803:81;11931:2;11923:6;11920:14;11900:18;11897:38;11894:84;;11950:18;;:::i;:::-;11894:84;11715:269;11664:320;;;:::o;11990:180::-;12038:77;12035:1;12028:88;12135:4;12132:1;12125:15;12159:4;12156:1;12149:15;12176:191;12216:3;12235:20;12253:1;12235:20;:::i;:::-;12230:25;;12269:20;12287:1;12269:20;:::i;:::-;12264:25;;12312:1;12309;12305:9;12298:16;;12333:3;12330:1;12327:10;12324:36;;;12340:18;;:::i;:::-;12324:36;12176:191;;;;:::o;12373:156::-;12513:8;12509:1;12501:6;12497:14;12490:32;12373:156;:::o;12535:365::-;12677:3;12698:66;12762:1;12757:3;12698:66;:::i;:::-;12691:73;;12773:93;12862:3;12773:93;:::i;:::-;12891:2;12886:3;12882:12;12875:19;;12535:365;;;:::o;12906:419::-;13072:4;13110:2;13099:9;13095:18;13087:26;;13159:9;13153:4;13149:20;13145:1;13134:9;13130:17;13123:47;13187:131;13313:4;13187:131;:::i;:::-;13179:139;;12906:419;;;:::o;13331:180::-;13379:77;13376:1;13369:88;13476:4;13473:1;13466:15;13500:4;13497:1;13490:15;13517:233;13556:3;13579:24;13597:5;13579:24;:::i;:::-;13570:33;;13625:66;13618:5;13615:77;13612:103;;13695:18;;:::i;:::-;13612:103;13742:1;13735:5;13731:13;13724:20;;13517:233;;;:::o;13756:176::-;13896:28;13892:1;13884:6;13880:14;13873:52;13756:176;:::o;13938:366::-;14080:3;14101:67;14165:2;14160:3;14101:67;:::i;:::-;14094:74;;14177:93;14266:3;14177:93;:::i;:::-;14295:2;14290:3;14286:12;14279:19;;13938:366;;;:::o;14310:419::-;14476:4;14514:2;14503:9;14499:18;14491:26;;14563:9;14557:4;14553:20;14549:1;14538:9;14534:17;14527:47;14591:131;14717:4;14591:131;:::i;:::-;14583:139;;14310:419;;;:::o;14735:224::-;14875:34;14871:1;14863:6;14859:14;14852:58;14944:7;14939:2;14931:6;14927:15;14920:32;14735:224;:::o;14965:366::-;15107:3;15128:67;15192:2;15187:3;15128:67;:::i;:::-;15121:74;;15204:93;15293:3;15204:93;:::i;:::-;15322:2;15317:3;15313:12;15306:19;;14965:366;;;:::o;15337:419::-;15503:4;15541:2;15530:9;15526:18;15518:26;;15590:9;15584:4;15580:20;15576:1;15565:9;15561:17;15554:47;15618:131;15744:4;15618:131;:::i;:::-;15610:139;;15337:419;;;:::o;15762:225::-;15902:34;15898:1;15890:6;15886:14;15879:58;15971:8;15966:2;15958:6;15954:15;15947:33;15762:225;:::o;15993:366::-;16135:3;16156:67;16220:2;16215:3;16156:67;:::i;:::-;16149:74;;16232:93;16321:3;16232:93;:::i;:::-;16350:2;16345:3;16341:12;16334:19;;15993:366;;;:::o;16365:419::-;16531:4;16569:2;16558:9;16554:18;16546:26;;16618:9;16612:4;16608:20;16604:1;16593:9;16589:17;16582:47;16646:131;16772:4;16646:131;:::i;:::-;16638:139;;16365:419;;;:::o;16790:223::-;16930:34;16926:1;16918:6;16914:14;16907:58;16999:6;16994:2;16986:6;16982:15;16975:31;16790:223;:::o;17019:366::-;17161:3;17182:67;17246:2;17241:3;17182:67;:::i;:::-;17175:74;;17258:93;17347:3;17258:93;:::i;:::-;17376:2;17371:3;17367:12;17360:19;;17019:366;;;:::o;17391:419::-;17557:4;17595:2;17584:9;17580:18;17572:26;;17644:9;17638:4;17634:20;17630:1;17619:9;17615:17;17608:47;17672:131;17798:4;17672:131;:::i;:::-;17664:139;;17391:419;;;:::o;17816:221::-;17956:34;17952:1;17944:6;17940:14;17933:58;18025:4;18020:2;18012:6;18008:15;18001:29;17816:221;:::o;18043:366::-;18185:3;18206:67;18270:2;18265:3;18206:67;:::i;:::-;18199:74;;18282:93;18371:3;18282:93;:::i;:::-;18400:2;18395:3;18391:12;18384:19;;18043:366;;;:::o;18415:419::-;18581:4;18619:2;18608:9;18604:18;18596:26;;18668:9;18662:4;18658:20;18654:1;18643:9;18639:17;18632:47;18696:131;18822:4;18696:131;:::i;:::-;18688:139;;18415:419;;;:::o;18840:182::-;18980:34;18976:1;18968:6;18964:14;18957:58;18840:182;:::o;19028:366::-;19170:3;19191:67;19255:2;19250:3;19191:67;:::i;:::-;19184:74;;19267:93;19356:3;19267:93;:::i;:::-;19385:2;19380:3;19376:12;19369:19;;19028:366;;;:::o;19400:419::-;19566:4;19604:2;19593:9;19589:18;19581:26;;19653:9;19647:4;19643:20;19639:1;19628:9;19624:17;19617:47;19681:131;19807:4;19681:131;:::i;:::-;19673:139;;19400:419;;;:::o;19825:179::-;19965:31;19961:1;19953:6;19949:14;19942:55;19825:179;:::o;20010:366::-;20152:3;20173:67;20237:2;20232:3;20173:67;:::i;:::-;20166:74;;20249:93;20338:3;20249:93;:::i;:::-;20367:2;20362:3;20358:12;20351:19;;20010:366;;;:::o;20382:419::-;20548:4;20586:2;20575:9;20571:18;20563:26;;20635:9;20629:4;20625:20;20621:1;20610:9;20606:17;20599:47;20663:131;20789:4;20663:131;:::i;:::-;20655:139;;20382:419;;;:::o;20807:169::-;20947:21;20943:1;20935:6;20931:14;20924:45;20807:169;:::o;20982:366::-;21124:3;21145:67;21209:2;21204:3;21145:67;:::i;:::-;21138:74;;21221:93;21310:3;21221:93;:::i;:::-;21339:2;21334:3;21330:12;21323:19;;20982:366;;;:::o;21354:419::-;21520:4;21558:2;21547:9;21543:18;21535:26;;21607:9;21601:4;21597:20;21593:1;21582:9;21578:17;21571:47;21635:131;21761:4;21635:131;:::i;:::-;21627:139;;21354:419;;;:::o;21779:161::-;21919:13;21915:1;21907:6;21903:14;21896:37;21779:161;:::o;21946:366::-;22088:3;22109:67;22173:2;22168:3;22109:67;:::i;:::-;22102:74;;22185:93;22274:3;22185:93;:::i;:::-;22303:2;22298:3;22294:12;22287:19;;21946:366;;;:::o;22318:419::-;22484:4;22522:2;22511:9;22507:18;22499:26;;22571:9;22565:4;22561:20;22557:1;22546:9;22542:17;22535:47;22599:131;22725:4;22599:131;:::i;:::-;22591:139;;22318:419;;;:::o;22743:170::-;22883:22;22879:1;22871:6;22867:14;22860:46;22743:170;:::o;22919:366::-;23061:3;23082:67;23146:2;23141:3;23082:67;:::i;:::-;23075:74;;23158:93;23247:3;23158:93;:::i;:::-;23276:2;23271:3;23267:12;23260:19;;22919:366;;;:::o;23291:419::-;23457:4;23495:2;23484:9;23480:18;23472:26;;23544:9;23538:4;23534:20;23530:1;23519:9;23515:17;23508:47;23572:131;23698:4;23572:131;:::i;:::-;23564:139;;23291:419;;;:::o;23716:220::-;23856:34;23852:1;23844:6;23840:14;23833:58;23925:3;23920:2;23912:6;23908:15;23901:28;23716:220;:::o;23942:366::-;24084:3;24105:67;24169:2;24164:3;24105:67;:::i;:::-;24098:74;;24181:93;24270:3;24181:93;:::i;:::-;24299:2;24294:3;24290:12;24283:19;;23942:366;;;:::o;24314:419::-;24480:4;24518:2;24507:9;24503:18;24495:26;;24567:9;24561:4;24557:20;24553:1;24542:9;24538:17;24531:47;24595:131;24721:4;24595:131;:::i;:::-;24587:139;;24314:419;;;:::o;24739:221::-;24879:34;24875:1;24867:6;24863:14;24856:58;24948:4;24943:2;24935:6;24931:15;24924:29;24739:221;:::o;24966:366::-;25108:3;25129:67;25193:2;25188:3;25129:67;:::i;:::-;25122:74;;25205:93;25294:3;25205:93;:::i;:::-;25323:2;25318:3;25314:12;25307:19;;24966:366;;;:::o;25338:419::-;25504:4;25542:2;25531:9;25527:18;25519:26;;25591:9;25585:4;25581:20;25577:1;25566:9;25562:17;25555:47;25619:131;25745:4;25619:131;:::i;:::-;25611:139;;25338:419;;;:::o;25763:180::-;25811:77;25808:1;25801:88;25908:4;25905:1;25898:15;25932:4;25929:1;25922:15;25949:185;25989:1;26006:20;26024:1;26006:20;:::i;:::-;26001:25;;26040:20;26058:1;26040:20;:::i;:::-;26035:25;;26079:1;26069:35;;26084:18;;:::i;:::-;26069:35;26126:1;26123;26119:9;26114:14;;25949:185;;;;:::o;26140:224::-;26280:34;26276:1;26268:6;26264:14;26257:58;26349:7;26344:2;26336:6;26332:15;26325:32;26140:224;:::o;26370:366::-;26512:3;26533:67;26597:2;26592:3;26533:67;:::i;:::-;26526:74;;26609:93;26698:3;26609:93;:::i;:::-;26727:2;26722:3;26718:12;26711:19;;26370:366;;;:::o;26742:419::-;26908:4;26946:2;26935:9;26931:18;26923:26;;26995:9;26989:4;26985:20;26981:1;26970:9;26966:17;26959:47;27023:131;27149:4;27023:131;:::i;:::-;27015:139;;26742:419;;;:::o;27167:222::-;27307:34;27303:1;27295:6;27291:14;27284:58;27376:5;27371:2;27363:6;27359:15;27352:30;27167:222;:::o;27395:366::-;27537:3;27558:67;27622:2;27617:3;27558:67;:::i;:::-;27551:74;;27634:93;27723:3;27634:93;:::i;:::-;27752:2;27747:3;27743:12;27736:19;;27395:366;;;:::o;27767:419::-;27933:4;27971:2;27960:9;27956:18;27948:26;;28020:9;28014:4;28010:20;28006:1;27995:9;27991:17;27984:47;28048:131;28174:4;28048:131;:::i;:::-;28040:139;;27767:419;;;:::o;28192:225::-;28332:34;28328:1;28320:6;28316:14;28309:58;28401:8;28396:2;28388:6;28384:15;28377:33;28192:225;:::o;28423:366::-;28565:3;28586:67;28650:2;28645:3;28586:67;:::i;:::-;28579:74;;28662:93;28751:3;28662:93;:::i;:::-;28780:2;28775:3;28771:12;28764:19;;28423:366;;;:::o;28795:419::-;28961:4;28999:2;28988:9;28984:18;28976:26;;29048:9;29042:4;29038:20;29034:1;29023:9;29019:17;29012:47;29076:131;29202:4;29076:131;:::i;:::-;29068:139;;28795:419;;;:::o

Swarm Source

ipfs://3aa92a0bce8b485ed3017fbd29fc28e8a20f75f7c1f6212681c3d4b9fd3b2232
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.