ETH Price: $2,898.46 (+5.88%)
 

Overview

Max Total Supply

1,000,000,000,000 FIST

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: FIST 7
Balance
7,768,984,964.362265561 FIST

Value
$0.00
0xac22f82e70445f289d6b50c36dc8357ba7ea81ad
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:
Fist

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-27
*/

// 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.9.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. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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.9.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.9.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].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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}.
     *
     * 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 default value returned by this function, unless
     * it's 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: FIST.sol


/*

███████╗██╗███████╗████████╗
██╔════╝██║██╔════╝╚══██╔══╝
█████╗  ██║███████╗   ██║   
██╔══╝  ██║╚════██║   ██║   
██║     ██║███████║   ██║   
╚═╝     ╚═╝╚══════╝   ╚═╝   
                                      
The most iconic diamond hand meme coin in existence. 
HODLing crypto like a fist of determination, while busters shocked at the moonward surge! 

Website: https://www.fist-token.wtf

Twitter: https://twitter.com/Fist_Token_Wtf

Telegram: https://t.me/Fist_Token_Wtf

*/

pragma solidity 0.8.19;


 
interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
 
 
library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
 
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}
 
contract Fist is ERC20, Ownable{
    using Address for address payable;
 
    mapping (address user => bool status) public exemptFee;
    mapping (address user => bool status) public isBlacklisted;
 
    IRouter public router;
    address public pair;
    address public marketingWallet;
 
    bool private swapping;
    bool public swapEnabled = true;
 
    uint256 public swapThreshold = 3_000_000_000 * 10**9;
    uint256 public maxWallet = 20_000_000_000 * 10**9;
    uint256 public maxTx = 20_000_000_000 * 10**9;
 
    uint256 public tax = 90;
 
    modifier mutexLock() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
 
    constructor(address _router) ERC20("Fist", "FIST") {
        _mint(msg.sender, 1_000_000_000_000 * 10 ** 9);
 
        router = IRouter(_router);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
 
        marketingWallet = msg.sender;
 
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
 
        _approve(address(this), address(router), type(uint256).max);
    }
 
    function decimals() public pure override returns(uint8){
        return 9;
    }
 
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address");
 
        if (swapping || exemptFee[sender] || exemptFee[recipient]){
            super._transfer(sender, recipient, amount);
            return;
        }
 
        require(amount <= maxTx, "Max tx reached");
        if(recipient != pair) {
            require(balanceOf(recipient) + amount <= maxWallet, "Max wallet reached");
        }
 
        uint256 taxAmt = amount * tax / 100;
 
        if (swapEnabled && sender != pair) swapFees();
 
        //rest to recipient
        super._transfer(sender, recipient, amount - taxAmt);
        if(taxAmt > 0){
            super._transfer(sender, address(this), taxAmt);
        }
    }
 
    function swapFees() private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 initialBalance = address(this).balance;
            swapTokensForEth(swapThreshold);
            uint256 deltaBalance = address(this).balance - initialBalance;
            if(deltaBalance > 0) payable(marketingWallet).sendValue(deltaBalance);
        }
    }
 
 
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
 
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }
 
 
    function updateSwapEnabled(bool status) external onlyOwner {
        swapEnabled = status;
    }
 
    function updateSwapTreshhold(uint256 amount) external onlyOwner {
        swapThreshold = amount * 10**9;
    }
 
    function updateTax(uint256 newTax) external onlyOwner{
        tax = newTax;
    }
 
    function updateMaxTx(uint256 newMaxTx) external onlyOwner{
        maxTx = newMaxTx * 10**9;
    }
 
    function updateMaxWallet(uint256 newMaxWallet) external onlyOwner{
        maxWallet = newMaxWallet * 10**9;
    }
 
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
        _approve(address(this), address(newRouter), type(uint256).max);
    }
 
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
        exemptFee[newWallet] = true;
    }
 
    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }
 
    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner{
        uint256 size = accounts.length;
        for(uint256 i = 0; i < size;){
            exemptFee[accounts[i]] = state;
            unchecked {
                ++i;
            }
        }
    }
 
    function updateBlacklist(address _address, bool state) external onlyOwner {
        isBlacklisted[_address] = state;
    }
 
    function bulkBlacklist(address[] memory accounts, bool state) external onlyOwner{
        uint256 size = accounts.length;
        for(uint256 i = 0; i < size;){
            isBlacklisted[accounts[i]] = state;
            unchecked{
                ++i;
            }
        }
    }
 
    function madeBy() external pure returns(string memory){
        return "Snow";
    }
 
    function rescueETH(uint256 weiAmount) external onlyOwner{
        //Make meme coins great again with FIST
        payable(msg.sender).sendValue(weiAmount);
    }
 
    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner{
        IERC20(tokenAdd).transfer(msg.sender, amount);
    }
 
    // fallbacks
    receive() external payable {}
 
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"madeBy","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"updateMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"updateTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600a60156101000a81548160ff0219169083151502179055506729a2241af62c0000600b556801158e460913d00000600c556801158e460913d00000600d55605a600e553480156200005757600080fd5b50604051620041cd380380620041cd83398181016040528101906200007d919062000941565b6040518060400160405280600481526020017f46697374000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f46495354000000000000000000000000000000000000000000000000000000008152508160039081620000fa919062000bed565b5080600490816200010c919062000bed565b5050506200012f62000123620004c160201b60201c565b620004c960201b60201c565b6200014a33683635c9adc5dea000006200058f60201b60201c565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021f919062000941565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000941565b6040518363ffffffff1660e01b8152600401620002ee92919062000ce5565b6020604051808303816000875af11580156200030e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000334919062000941565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004ba30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620006fc60201b60201c565b5062000f5d565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000601576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005f89062000d73565b60405180910390fd5b6200061560008383620008cd60201b60201c565b806002600082825462000629919062000dc4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006dc919062000e10565b60405180910390a3620006f860008383620008d260201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200076e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007659062000ea3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d79062000f3b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620008c0919062000e10565b60405180910390a3505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200090982620008dc565b9050919050565b6200091b81620008fc565b81146200092757600080fd5b50565b6000815190506200093b8162000910565b92915050565b6000602082840312156200095a5762000959620008d7565b5b60006200096a848285016200092a565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009f557607f821691505b60208210810362000a0b5762000a0a620009ad565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a36565b62000a81868362000a36565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ace62000ac862000ac28462000a99565b62000aa3565b62000a99565b9050919050565b6000819050919050565b62000aea8362000aad565b62000b0262000af98262000ad5565b84845462000a43565b825550505050565b600090565b62000b1962000b0a565b62000b2681848462000adf565b505050565b5b8181101562000b4e5762000b4260008262000b0f565b60018101905062000b2c565b5050565b601f82111562000b9d5762000b678162000a11565b62000b728462000a26565b8101602085101562000b82578190505b62000b9a62000b918562000a26565b83018262000b2b565b50505b505050565b600082821c905092915050565b600062000bc26000198460080262000ba2565b1980831691505092915050565b600062000bdd838362000baf565b9150826002028217905092915050565b62000bf88262000973565b67ffffffffffffffff81111562000c145762000c136200097e565b5b62000c208254620009dc565b62000c2d82828562000b52565b600060209050601f83116001811462000c65576000841562000c50578287015190505b62000c5c858262000bcf565b86555062000ccc565b601f19841662000c758662000a11565b60005b8281101562000c9f5784890151825560018201915060208501945060208101905062000c78565b8683101562000cbf578489015162000cbb601f89168262000baf565b8355505b6001600288020188555050505b505050505050565b62000cdf81620008fc565b82525050565b600060408201905062000cfc600083018562000cd4565b62000d0b602083018462000cd4565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d5b601f8362000d12565b915062000d688262000d23565b602082019050919050565b6000602082019050818103600083015262000d8e8162000d4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000dd18262000a99565b915062000dde8362000a99565b925082820190508082111562000df95762000df862000d95565b5b92915050565b62000e0a8162000a99565b82525050565b600060208201905062000e27600083018462000dff565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000e8b60248362000d12565b915062000e988262000e2d565b604082019050919050565b6000602082019050818103600083015262000ebe8162000e7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f2360228362000d12565b915062000f308262000ec5565b604082019050919050565b6000602082019050818103600083015262000f568162000f14565b9050919050565b6132608062000f6d6000396000f3fe6080604052600436106102285760003560e01c80638cd4426d11610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461080f578063f2fde38b1461084c578063f887ea4014610875578063f8b45b05146108a0578063fe575a87146108cb5761022f565b8063a9059cbb1461071a578063aacebbe314610757578063c2d0ffca14610780578063c5d32bb2146107a9578063cca0feb6146107e65761022f565b806395d89b41116100f257806395d89b411461063357806399c8d5561461065e5780639e252f0014610689578063a457c2d7146106b2578063a8aa1b31146106ef5761022f565b80638cd4426d1461058d5780638da5cb5b146105b65780639155e083146105e1578063924de9b71461060a5761022f565b80632563dbec116101b15780636ddd1713116101755780636ddd1713146104b857806370a08231146104e3578063715018a6146105205780637437681e1461053757806375f0a874146105625761022f565b80632563dbec146103d3578063313ce567146103fe578063355496ca14610429578063395093511461045257806340b28c2f1461048f5761022f565b8063095ea7b3116101f8578063095ea7b3146102dc5780630e375a5c1461031957806318160ddd146103425780631c499ab01461036d57806323b872dd146103965761022f565b80625dd8ed146102345780630445b6671461025d578063055ea8301461028857806306fdde03146102b15761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612276565b610908565b005b34801561026957600080fd5b506102726109a3565b60405161027f91906122eb565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190612332565b6109a9565b005b3480156102bd57600080fd5b506102c66109ca565b6040516102d391906123de565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190612400565b610a5c565b604051610310919061244f565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190612276565b610a7f565b005b34801561034e57600080fd5b50610357610b1a565b60405161036491906122eb565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190612332565b610b24565b005b3480156103a257600080fd5b506103bd60048036038101906103b8919061246a565b610b45565b6040516103ca919061244f565b60405180910390f35b3480156103df57600080fd5b506103e8610b74565b6040516103f591906123de565b60405180910390f35b34801561040a57600080fd5b50610413610bb1565b60405161042091906124d9565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b91906124f4565b610bba565b005b34801561045e57600080fd5b5061047960048036038101906104749190612400565b610c1d565b604051610486919061244f565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b19190612534565b610c54565b005b3480156104c457600080fd5b506104cd610d0d565b6040516104da919061244f565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612574565b610d20565b60405161051791906122eb565b60405180910390f35b34801561052c57600080fd5b50610535610d68565b005b34801561054357600080fd5b5061054c610d7c565b60405161055991906122eb565b60405180910390f35b34801561056e57600080fd5b50610577610d82565b60405161058491906125b0565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612400565b610da8565b005b3480156105c257600080fd5b506105cb610e33565b6040516105d891906125b0565b60405180910390f35b3480156105ed57600080fd5b50610608600480360381019061060391906124f4565b610e5d565b005b34801561061657600080fd5b50610631600480360381019061062c91906125cb565b610ec0565b005b34801561063f57600080fd5b50610648610ee5565b60405161065591906123de565b60405180910390f35b34801561066a57600080fd5b50610673610f77565b60405161068091906122eb565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab9190612332565b610f7d565b005b3480156106be57600080fd5b506106d960048036038101906106d49190612400565b610fb1565b6040516106e6919061244f565b60405180910390f35b3480156106fb57600080fd5b50610704611028565b60405161071191906125b0565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190612400565b61104e565b60405161074e919061244f565b60405180910390f35b34801561076357600080fd5b5061077e60048036038101906107799190612574565b611071565b005b34801561078c57600080fd5b506107a760048036038101906107a29190612332565b611115565b005b3480156107b557600080fd5b506107d060048036038101906107cb9190612574565b611136565b6040516107dd919061244f565b60405180910390f35b3480156107f257600080fd5b5061080d60048036038101906108089190612332565b611156565b005b34801561081b57600080fd5b5061083660048036038101906108319190612534565b611168565b60405161084391906122eb565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e9190612574565b6111ef565b005b34801561088157600080fd5b5061088a611272565b6040516108979190612657565b60405180910390f35b3480156108ac57600080fd5b506108b5611298565b6040516108c291906122eb565b60405180910390f35b3480156108d757600080fd5b506108f260048036038101906108ed9190612574565b61129e565b6040516108ff919061244f565b60405180910390f35b6109106112be565b60008251905060005b8181101561099d57826007600086848151811061093957610938612672565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610919565b50505050565b600b5481565b6109b16112be565b633b9aca00816109c191906126d0565b600b8190555050565b6060600380546109d990612741565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0590612741565b8015610a525780601f10610a2757610100808354040283529160200191610a52565b820191906000526020600020905b815481529060010190602001808311610a3557829003601f168201915b5050505050905090565b600080610a6761133c565b9050610a74818585611344565b600191505092915050565b610a876112be565b60008251905060005b81811015610b14578260066000868481518110610ab057610aaf612672565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610a90565b50505050565b6000600254905090565b610b2c6112be565b633b9aca0081610b3c91906126d0565b600c8190555050565b600080610b5061133c565b9050610b5d85828561150d565b610b68858585611599565b60019150509392505050565b60606040518060400160405280600481526020017f536e6f7700000000000000000000000000000000000000000000000000000000815250905090565b60006009905090565b610bc26112be565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080610c2861133c565b9050610c49818585610c3a8589611168565b610c449190612772565b611344565b600191505092915050565b610c5c6112be565b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0930837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611344565b5050565b600a60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d706112be565b610d7a6000611947565b565b600d5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db06112be565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610deb9291906127a6565b6020604051808303816000875af1158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e91906127e4565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e656112be565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ec86112be565b80600a60156101000a81548160ff02191690831515021790555050565b606060048054610ef490612741565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2090612741565b8015610f6d5780601f10610f4257610100808354040283529160200191610f6d565b820191906000526020600020905b815481529060010190602001808311610f5057829003601f168201915b5050505050905090565b600e5481565b610f856112be565b610fae813373ffffffffffffffffffffffffffffffffffffffff16611a0d90919063ffffffff16565b50565b600080610fbc61133c565b90506000610fca8286611168565b90508381101561100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612883565b60405180910390fd5b61101c8286868403611344565b60019250505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061105961133c565b9050611066818585611599565b600191505092915050565b6110796112be565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61111d6112be565b633b9aca008161112d91906126d0565b600d8190555050565b60066020528060005260406000206000915054906101000a900460ff1681565b61115e6112be565b80600e8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111f76112be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d90612915565b60405180910390fd5b61126f81611947565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60076020528060005260406000206000915054906101000a900460ff1681565b6112c661133c565b73ffffffffffffffffffffffffffffffffffffffff166112e4610e33565b73ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612981565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90612a13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141990612aa5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161150091906122eb565b60405180910390a3505050565b60006115198484611168565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115935781811015611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c90612b11565b60405180910390fd5b6115928484848403611344565b5b50505050565b600081116115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d390612ba3565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116805750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612c0f565b60405180910390fd5b600a60149054906101000a900460ff16806117235750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117775750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561178c57611787838383611b01565b611942565b600d548111156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612c7b565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461187f57600c548161183384610d20565b61183d9190612772565b111561187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612ce7565b60405180910390fd5b5b60006064600e548361189191906126d0565b61189b9190612d36565b9050600a60159054906101000a900460ff1680156119075750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561191557611914611d77565b5b61192b848483856119269190612d67565b611b01565b60008111156119405761193f843083611b01565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4790612de7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611a7690612e38565b60006040518083038185875af1925050503d8060008114611ab3576040519150601f19603f3d011682016040523d82523d6000602084013e611ab8565b606091505b5050905080611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af390612ebf565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790612f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd690612fe3565b60405180910390fd5b611bea838383611e53565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790613075565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5e91906122eb565b60405180910390a3611d71848484611e58565b50505050565b600a60149054906101000a900460ff16611e51576001600a60146101000a81548160ff0219169083151502179055506000611db130610d20565b9050600b548110611e34576000479050611dcc600b54611e5d565b60008147611dda9190612d67565b90506000811115611e3157611e3081600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a0d90919063ffffffff16565b5b50505b506000600a60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff811115611e7a57611e7961209d565b5b604051908082528060200260200182016040528015611ea85781602001602082028036833780820191505090505b5090503081600081518110611ec057611ebf612672565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b91906130aa565b81600181518110611f9f57611f9e612672565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161203d9594939291906131d0565b600060405180830381600087803b15801561205757600080fd5b505af115801561206b573d6000803e3d6000fd5b505050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120d58261208c565b810181811067ffffffffffffffff821117156120f4576120f361209d565b5b80604052505050565b6000612107612073565b905061211382826120cc565b919050565b600067ffffffffffffffff8211156121335761213261209d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061217482612149565b9050919050565b61218481612169565b811461218f57600080fd5b50565b6000813590506121a18161217b565b92915050565b60006121ba6121b584612118565b6120fd565b905080838252602082019050602084028301858111156121dd576121dc612144565b5b835b8181101561220657806121f28882612192565b8452602084019350506020810190506121df565b5050509392505050565b600082601f83011261222557612224612087565b5b81356122358482602086016121a7565b91505092915050565b60008115159050919050565b6122538161223e565b811461225e57600080fd5b50565b6000813590506122708161224a565b92915050565b6000806040838503121561228d5761228c61207d565b5b600083013567ffffffffffffffff8111156122ab576122aa612082565b5b6122b785828601612210565b92505060206122c885828601612261565b9150509250929050565b6000819050919050565b6122e5816122d2565b82525050565b600060208201905061230060008301846122dc565b92915050565b61230f816122d2565b811461231a57600080fd5b50565b60008135905061232c81612306565b92915050565b6000602082840312156123485761234761207d565b5b60006123568482850161231d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561239957808201518184015260208101905061237e565b60008484015250505050565b60006123b08261235f565b6123ba818561236a565b93506123ca81856020860161237b565b6123d38161208c565b840191505092915050565b600060208201905081810360008301526123f881846123a5565b905092915050565b600080604083850312156124175761241661207d565b5b600061242585828601612192565b92505060206124368582860161231d565b9150509250929050565b6124498161223e565b82525050565b60006020820190506124646000830184612440565b92915050565b6000806000606084860312156124835761248261207d565b5b600061249186828701612192565b93505060206124a286828701612192565b92505060406124b38682870161231d565b9150509250925092565b600060ff82169050919050565b6124d3816124bd565b82525050565b60006020820190506124ee60008301846124ca565b92915050565b6000806040838503121561250b5761250a61207d565b5b600061251985828601612192565b925050602061252a85828601612261565b9150509250929050565b6000806040838503121561254b5761254a61207d565b5b600061255985828601612192565b925050602061256a85828601612192565b9150509250929050565b60006020828403121561258a5761258961207d565b5b600061259884828501612192565b91505092915050565b6125aa81612169565b82525050565b60006020820190506125c560008301846125a1565b92915050565b6000602082840312156125e1576125e061207d565b5b60006125ef84828501612261565b91505092915050565b6000819050919050565b600061261d61261861261384612149565b6125f8565b612149565b9050919050565b600061262f82612602565b9050919050565b600061264182612624565b9050919050565b61265181612636565b82525050565b600060208201905061266c6000830184612648565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126db826122d2565b91506126e6836122d2565b92508282026126f4816122d2565b9150828204841483151761270b5761270a6126a1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061275957607f821691505b60208210810361276c5761276b612712565b5b50919050565b600061277d826122d2565b9150612788836122d2565b92508282019050808211156127a05761279f6126a1565b5b92915050565b60006040820190506127bb60008301856125a1565b6127c860208301846122dc565b9392505050565b6000815190506127de8161224a565b92915050565b6000602082840312156127fa576127f961207d565b5b6000612808848285016127cf565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061286d60258361236a565b915061287882612811565b604082019050919050565b6000602082019050818103600083015261289c81612860565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128ff60268361236a565b915061290a826128a3565b604082019050919050565b6000602082019050818103600083015261292e816128f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061296b60208361236a565b915061297682612935565b602082019050919050565b6000602082019050818103600083015261299a8161295e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129fd60248361236a565b9150612a08826129a1565b604082019050919050565b60006020820190508181036000830152612a2c816129f0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8f60228361236a565b9150612a9a82612a33565b604082019050919050565b60006020820190508181036000830152612abe81612a82565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612afb601d8361236a565b9150612b0682612ac5565b602082019050919050565b60006020820190508181036000830152612b2a81612aee565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b8d60298361236a565b9150612b9882612b31565b604082019050919050565b60006020820190508181036000830152612bbc81612b80565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000612bf960138361236a565b9150612c0482612bc3565b602082019050919050565b60006020820190508181036000830152612c2881612bec565b9050919050565b7f4d61782074782072656163686564000000000000000000000000000000000000600082015250565b6000612c65600e8361236a565b9150612c7082612c2f565b602082019050919050565b60006020820190508181036000830152612c9481612c58565b9050919050565b7f4d61782077616c6c657420726561636865640000000000000000000000000000600082015250565b6000612cd160128361236a565b9150612cdc82612c9b565b602082019050919050565b60006020820190508181036000830152612d0081612cc4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d41826122d2565b9150612d4c836122d2565b925082612d5c57612d5b612d07565b5b828204905092915050565b6000612d72826122d2565b9150612d7d836122d2565b9250828203905081811115612d9557612d946126a1565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000612dd1601d8361236a565b9150612ddc82612d9b565b602082019050919050565b60006020820190508181036000830152612e0081612dc4565b9050919050565b600081905092915050565b50565b6000612e22600083612e07565b9150612e2d82612e12565b600082019050919050565b6000612e4382612e15565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000612ea9603a8361236a565b9150612eb482612e4d565b604082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f3b60258361236a565b9150612f4682612edf565b604082019050919050565b60006020820190508181036000830152612f6a81612f2e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fcd60238361236a565b9150612fd882612f71565b604082019050919050565b60006020820190508181036000830152612ffc81612fc0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061305f60268361236a565b915061306a82613003565b604082019050919050565b6000602082019050818103600083015261308e81613052565b9050919050565b6000815190506130a48161217b565b92915050565b6000602082840312156130c0576130bf61207d565b5b60006130ce84828501613095565b91505092915050565b6000819050919050565b60006130fc6130f76130f2846130d7565b6125f8565b6122d2565b9050919050565b61310c816130e1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61314781612169565b82525050565b6000613159838361313e565b60208301905092915050565b6000602082019050919050565b600061317d82613112565b613187818561311d565b93506131928361312e565b8060005b838110156131c35781516131aa888261314d565b97506131b583613165565b925050600181019050613196565b5085935050505092915050565b600060a0820190506131e560008301886122dc565b6131f26020830187613103565b81810360408301526132048186613172565b905061321360608301856125a1565b61322060808301846122dc565b969550505050505056fea26469706673582212207a2554a1f3d4366eba8134b5cd1390c4bb442c43472544a14dc473e28bd80bc564736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102285760003560e01c80638cd4426d11610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461080f578063f2fde38b1461084c578063f887ea4014610875578063f8b45b05146108a0578063fe575a87146108cb5761022f565b8063a9059cbb1461071a578063aacebbe314610757578063c2d0ffca14610780578063c5d32bb2146107a9578063cca0feb6146107e65761022f565b806395d89b41116100f257806395d89b411461063357806399c8d5561461065e5780639e252f0014610689578063a457c2d7146106b2578063a8aa1b31146106ef5761022f565b80638cd4426d1461058d5780638da5cb5b146105b65780639155e083146105e1578063924de9b71461060a5761022f565b80632563dbec116101b15780636ddd1713116101755780636ddd1713146104b857806370a08231146104e3578063715018a6146105205780637437681e1461053757806375f0a874146105625761022f565b80632563dbec146103d3578063313ce567146103fe578063355496ca14610429578063395093511461045257806340b28c2f1461048f5761022f565b8063095ea7b3116101f8578063095ea7b3146102dc5780630e375a5c1461031957806318160ddd146103425780631c499ab01461036d57806323b872dd146103965761022f565b80625dd8ed146102345780630445b6671461025d578063055ea8301461028857806306fdde03146102b15761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612276565b610908565b005b34801561026957600080fd5b506102726109a3565b60405161027f91906122eb565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190612332565b6109a9565b005b3480156102bd57600080fd5b506102c66109ca565b6040516102d391906123de565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190612400565b610a5c565b604051610310919061244f565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190612276565b610a7f565b005b34801561034e57600080fd5b50610357610b1a565b60405161036491906122eb565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190612332565b610b24565b005b3480156103a257600080fd5b506103bd60048036038101906103b8919061246a565b610b45565b6040516103ca919061244f565b60405180910390f35b3480156103df57600080fd5b506103e8610b74565b6040516103f591906123de565b60405180910390f35b34801561040a57600080fd5b50610413610bb1565b60405161042091906124d9565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b91906124f4565b610bba565b005b34801561045e57600080fd5b5061047960048036038101906104749190612400565b610c1d565b604051610486919061244f565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b19190612534565b610c54565b005b3480156104c457600080fd5b506104cd610d0d565b6040516104da919061244f565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612574565b610d20565b60405161051791906122eb565b60405180910390f35b34801561052c57600080fd5b50610535610d68565b005b34801561054357600080fd5b5061054c610d7c565b60405161055991906122eb565b60405180910390f35b34801561056e57600080fd5b50610577610d82565b60405161058491906125b0565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612400565b610da8565b005b3480156105c257600080fd5b506105cb610e33565b6040516105d891906125b0565b60405180910390f35b3480156105ed57600080fd5b50610608600480360381019061060391906124f4565b610e5d565b005b34801561061657600080fd5b50610631600480360381019061062c91906125cb565b610ec0565b005b34801561063f57600080fd5b50610648610ee5565b60405161065591906123de565b60405180910390f35b34801561066a57600080fd5b50610673610f77565b60405161068091906122eb565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab9190612332565b610f7d565b005b3480156106be57600080fd5b506106d960048036038101906106d49190612400565b610fb1565b6040516106e6919061244f565b60405180910390f35b3480156106fb57600080fd5b50610704611028565b60405161071191906125b0565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190612400565b61104e565b60405161074e919061244f565b60405180910390f35b34801561076357600080fd5b5061077e60048036038101906107799190612574565b611071565b005b34801561078c57600080fd5b506107a760048036038101906107a29190612332565b611115565b005b3480156107b557600080fd5b506107d060048036038101906107cb9190612574565b611136565b6040516107dd919061244f565b60405180910390f35b3480156107f257600080fd5b5061080d60048036038101906108089190612332565b611156565b005b34801561081b57600080fd5b5061083660048036038101906108319190612534565b611168565b60405161084391906122eb565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e9190612574565b6111ef565b005b34801561088157600080fd5b5061088a611272565b6040516108979190612657565b60405180910390f35b3480156108ac57600080fd5b506108b5611298565b6040516108c291906122eb565b60405180910390f35b3480156108d757600080fd5b506108f260048036038101906108ed9190612574565b61129e565b6040516108ff919061244f565b60405180910390f35b6109106112be565b60008251905060005b8181101561099d57826007600086848151811061093957610938612672565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610919565b50505050565b600b5481565b6109b16112be565b633b9aca00816109c191906126d0565b600b8190555050565b6060600380546109d990612741565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0590612741565b8015610a525780601f10610a2757610100808354040283529160200191610a52565b820191906000526020600020905b815481529060010190602001808311610a3557829003601f168201915b5050505050905090565b600080610a6761133c565b9050610a74818585611344565b600191505092915050565b610a876112be565b60008251905060005b81811015610b14578260066000868481518110610ab057610aaf612672565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610a90565b50505050565b6000600254905090565b610b2c6112be565b633b9aca0081610b3c91906126d0565b600c8190555050565b600080610b5061133c565b9050610b5d85828561150d565b610b68858585611599565b60019150509392505050565b60606040518060400160405280600481526020017f536e6f7700000000000000000000000000000000000000000000000000000000815250905090565b60006009905090565b610bc26112be565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080610c2861133c565b9050610c49818585610c3a8589611168565b610c449190612772565b611344565b600191505092915050565b610c5c6112be565b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0930837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611344565b5050565b600a60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d706112be565b610d7a6000611947565b565b600d5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db06112be565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610deb9291906127a6565b6020604051808303816000875af1158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e91906127e4565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e656112be565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ec86112be565b80600a60156101000a81548160ff02191690831515021790555050565b606060048054610ef490612741565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2090612741565b8015610f6d5780601f10610f4257610100808354040283529160200191610f6d565b820191906000526020600020905b815481529060010190602001808311610f5057829003601f168201915b5050505050905090565b600e5481565b610f856112be565b610fae813373ffffffffffffffffffffffffffffffffffffffff16611a0d90919063ffffffff16565b50565b600080610fbc61133c565b90506000610fca8286611168565b90508381101561100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612883565b60405180910390fd5b61101c8286868403611344565b60019250505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061105961133c565b9050611066818585611599565b600191505092915050565b6110796112be565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61111d6112be565b633b9aca008161112d91906126d0565b600d8190555050565b60066020528060005260406000206000915054906101000a900460ff1681565b61115e6112be565b80600e8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111f76112be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d90612915565b60405180910390fd5b61126f81611947565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60076020528060005260406000206000915054906101000a900460ff1681565b6112c661133c565b73ffffffffffffffffffffffffffffffffffffffff166112e4610e33565b73ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612981565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90612a13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141990612aa5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161150091906122eb565b60405180910390a3505050565b60006115198484611168565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115935781811015611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c90612b11565b60405180910390fd5b6115928484848403611344565b5b50505050565b600081116115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d390612ba3565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116805750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612c0f565b60405180910390fd5b600a60149054906101000a900460ff16806117235750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117775750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561178c57611787838383611b01565b611942565b600d548111156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612c7b565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461187f57600c548161183384610d20565b61183d9190612772565b111561187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612ce7565b60405180910390fd5b5b60006064600e548361189191906126d0565b61189b9190612d36565b9050600a60159054906101000a900460ff1680156119075750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561191557611914611d77565b5b61192b848483856119269190612d67565b611b01565b60008111156119405761193f843083611b01565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4790612de7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611a7690612e38565b60006040518083038185875af1925050503d8060008114611ab3576040519150601f19603f3d011682016040523d82523d6000602084013e611ab8565b606091505b5050905080611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af390612ebf565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790612f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd690612fe3565b60405180910390fd5b611bea838383611e53565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790613075565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5e91906122eb565b60405180910390a3611d71848484611e58565b50505050565b600a60149054906101000a900460ff16611e51576001600a60146101000a81548160ff0219169083151502179055506000611db130610d20565b9050600b548110611e34576000479050611dcc600b54611e5d565b60008147611dda9190612d67565b90506000811115611e3157611e3081600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a0d90919063ffffffff16565b5b50505b506000600a60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff811115611e7a57611e7961209d565b5b604051908082528060200260200182016040528015611ea85781602001602082028036833780820191505090505b5090503081600081518110611ec057611ebf612672565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b91906130aa565b81600181518110611f9f57611f9e612672565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161203d9594939291906131d0565b600060405180830381600087803b15801561205757600080fd5b505af115801561206b573d6000803e3d6000fd5b505050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120d58261208c565b810181811067ffffffffffffffff821117156120f4576120f361209d565b5b80604052505050565b6000612107612073565b905061211382826120cc565b919050565b600067ffffffffffffffff8211156121335761213261209d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061217482612149565b9050919050565b61218481612169565b811461218f57600080fd5b50565b6000813590506121a18161217b565b92915050565b60006121ba6121b584612118565b6120fd565b905080838252602082019050602084028301858111156121dd576121dc612144565b5b835b8181101561220657806121f28882612192565b8452602084019350506020810190506121df565b5050509392505050565b600082601f83011261222557612224612087565b5b81356122358482602086016121a7565b91505092915050565b60008115159050919050565b6122538161223e565b811461225e57600080fd5b50565b6000813590506122708161224a565b92915050565b6000806040838503121561228d5761228c61207d565b5b600083013567ffffffffffffffff8111156122ab576122aa612082565b5b6122b785828601612210565b92505060206122c885828601612261565b9150509250929050565b6000819050919050565b6122e5816122d2565b82525050565b600060208201905061230060008301846122dc565b92915050565b61230f816122d2565b811461231a57600080fd5b50565b60008135905061232c81612306565b92915050565b6000602082840312156123485761234761207d565b5b60006123568482850161231d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561239957808201518184015260208101905061237e565b60008484015250505050565b60006123b08261235f565b6123ba818561236a565b93506123ca81856020860161237b565b6123d38161208c565b840191505092915050565b600060208201905081810360008301526123f881846123a5565b905092915050565b600080604083850312156124175761241661207d565b5b600061242585828601612192565b92505060206124368582860161231d565b9150509250929050565b6124498161223e565b82525050565b60006020820190506124646000830184612440565b92915050565b6000806000606084860312156124835761248261207d565b5b600061249186828701612192565b93505060206124a286828701612192565b92505060406124b38682870161231d565b9150509250925092565b600060ff82169050919050565b6124d3816124bd565b82525050565b60006020820190506124ee60008301846124ca565b92915050565b6000806040838503121561250b5761250a61207d565b5b600061251985828601612192565b925050602061252a85828601612261565b9150509250929050565b6000806040838503121561254b5761254a61207d565b5b600061255985828601612192565b925050602061256a85828601612192565b9150509250929050565b60006020828403121561258a5761258961207d565b5b600061259884828501612192565b91505092915050565b6125aa81612169565b82525050565b60006020820190506125c560008301846125a1565b92915050565b6000602082840312156125e1576125e061207d565b5b60006125ef84828501612261565b91505092915050565b6000819050919050565b600061261d61261861261384612149565b6125f8565b612149565b9050919050565b600061262f82612602565b9050919050565b600061264182612624565b9050919050565b61265181612636565b82525050565b600060208201905061266c6000830184612648565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126db826122d2565b91506126e6836122d2565b92508282026126f4816122d2565b9150828204841483151761270b5761270a6126a1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061275957607f821691505b60208210810361276c5761276b612712565b5b50919050565b600061277d826122d2565b9150612788836122d2565b92508282019050808211156127a05761279f6126a1565b5b92915050565b60006040820190506127bb60008301856125a1565b6127c860208301846122dc565b9392505050565b6000815190506127de8161224a565b92915050565b6000602082840312156127fa576127f961207d565b5b6000612808848285016127cf565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061286d60258361236a565b915061287882612811565b604082019050919050565b6000602082019050818103600083015261289c81612860565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128ff60268361236a565b915061290a826128a3565b604082019050919050565b6000602082019050818103600083015261292e816128f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061296b60208361236a565b915061297682612935565b602082019050919050565b6000602082019050818103600083015261299a8161295e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129fd60248361236a565b9150612a08826129a1565b604082019050919050565b60006020820190508181036000830152612a2c816129f0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8f60228361236a565b9150612a9a82612a33565b604082019050919050565b60006020820190508181036000830152612abe81612a82565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612afb601d8361236a565b9150612b0682612ac5565b602082019050919050565b60006020820190508181036000830152612b2a81612aee565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b8d60298361236a565b9150612b9882612b31565b604082019050919050565b60006020820190508181036000830152612bbc81612b80565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000612bf960138361236a565b9150612c0482612bc3565b602082019050919050565b60006020820190508181036000830152612c2881612bec565b9050919050565b7f4d61782074782072656163686564000000000000000000000000000000000000600082015250565b6000612c65600e8361236a565b9150612c7082612c2f565b602082019050919050565b60006020820190508181036000830152612c9481612c58565b9050919050565b7f4d61782077616c6c657420726561636865640000000000000000000000000000600082015250565b6000612cd160128361236a565b9150612cdc82612c9b565b602082019050919050565b60006020820190508181036000830152612d0081612cc4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d41826122d2565b9150612d4c836122d2565b925082612d5c57612d5b612d07565b5b828204905092915050565b6000612d72826122d2565b9150612d7d836122d2565b9250828203905081811115612d9557612d946126a1565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000612dd1601d8361236a565b9150612ddc82612d9b565b602082019050919050565b60006020820190508181036000830152612e0081612dc4565b9050919050565b600081905092915050565b50565b6000612e22600083612e07565b9150612e2d82612e12565b600082019050919050565b6000612e4382612e15565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000612ea9603a8361236a565b9150612eb482612e4d565b604082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f3b60258361236a565b9150612f4682612edf565b604082019050919050565b60006020820190508181036000830152612f6a81612f2e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fcd60238361236a565b9150612fd882612f71565b604082019050919050565b60006020820190508181036000830152612ffc81612fc0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061305f60268361236a565b915061306a82613003565b604082019050919050565b6000602082019050818103600083015261308e81613052565b9050919050565b6000815190506130a48161217b565b92915050565b6000602082840312156130c0576130bf61207d565b5b60006130ce84828501613095565b91505092915050565b6000819050919050565b60006130fc6130f76130f2846130d7565b6125f8565b6122d2565b9050919050565b61310c816130e1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61314781612169565b82525050565b6000613159838361313e565b60208301905092915050565b6000602082019050919050565b600061317d82613112565b613187818561311d565b93506131928361312e565b8060005b838110156131c35781516131aa888261314d565b97506131b583613165565b925050600181019050613196565b5085935050505092915050565b600060a0820190506131e560008301886122dc565b6131f26020830187613103565b81810360408301526132048186613172565b905061321360608301856125a1565b61322060808301846122dc565b969550505050505056fea26469706673582212207a2554a1f3d4366eba8134b5cd1390c4bb442c43472544a14dc473e28bd80bc564736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

21947:5230:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26411:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22319:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25007:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9314:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11674:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25982:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10443:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25331:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12455:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26710:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23122:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25853:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13125:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25456:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22279:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10614:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2769:103;;;;;;;;;;;;;:::i;:::-;;22434:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22211:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26978:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2128:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26278:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24900:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9533:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22489:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26805:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13866:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22185:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10947:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25692:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25222:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22028:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25129:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11203:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3027:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22157:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22378:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22089:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26411:290;2014:13;:11;:13::i;:::-;26502:12:::1;26517:8;:15;26502:30;;26547:9;26543:151;26566:4;26562:1;:8;26543:151;;;26616:5;26587:13;:26;26601:8;26610:1;26601:11;;;;;;;;:::i;:::-;;;;;;;;26587:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;26664:3;;;;;26543:151;;;;26491:210;26411:290:::0;;:::o;22319:52::-;;;;:::o;25007:113::-;2014:13;:11;:13::i;:::-;25107:5:::1;25098:6;:14;;;;:::i;:::-;25082:13;:30;;;;25007:113:::0;:::o;9314:100::-;9368:13;9401:5;9394:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9314:100;:::o;11674:201::-;11757:4;11774:13;11790:12;:10;:12::i;:::-;11774:28;;11813:32;11822:5;11829:7;11838:6;11813:8;:32::i;:::-;11863:4;11856:11;;;11674:201;;;;:::o;25982:287::-;2014:13;:11;:13::i;:::-;26073:12:::1;26088:8;:15;26073:30;;26118:9;26114:148;26137:4;26133:1;:8;26114:148;;;26183:5;26158:9;:22;26168:8;26177:1;26168:11;;;;;;;;:::i;:::-;;;;;;;;26158:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;26232:3;;;;;26114:148;;;;26062:207;25982:287:::0;;:::o;10443:108::-;10504:7;10531:12;;10524:19;;10443:108;:::o;25331:116::-;2014:13;:11;:13::i;:::-;25434:5:::1;25419:12;:20;;;;:::i;:::-;25407:9;:32;;;;25331:116:::0;:::o;12455:261::-;12552:4;12569:15;12587:12;:10;:12::i;:::-;12569:30;;12610:38;12626:4;12632:7;12641:6;12610:15;:38::i;:::-;12659:27;12669:4;12675:2;12679:6;12659:9;:27::i;:::-;12704:4;12697:11;;;12455:261;;;;;:::o;26710:86::-;26750:13;26775;;;;;;;;;;;;;;;;;;;26710:86;:::o;23122:82::-;23171:5;23195:1;23188:8;;23122:82;:::o;25853:120::-;2014:13;:11;:13::i;:::-;25960:5:::1;25938:9;:19;25948:8;25938:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;25853:120:::0;;:::o;13125:238::-;13213:4;13230:13;13246:12;:10;:12::i;:::-;13230:28;;13269:64;13278:5;13285:7;13322:10;13294:25;13304:5;13311:7;13294:9;:25::i;:::-;:38;;;;:::i;:::-;13269:8;:64::i;:::-;13351:4;13344:11;;;13125:238;;;;:::o;25456:227::-;2014:13;:11;:13::i;:::-;25567:9:::1;25550:6;;:27;;;;;;;;;;;;;;;;;;25595:7;25588:4;;:14;;;;;;;;;;;;;;;;;;25613:62;25630:4;25645:9;25657:17;25613:8;:62::i;:::-;25456:227:::0;;:::o;22279:30::-;;;;;;;;;;;;;:::o;10614:127::-;10688:7;10715:9;:18;10725:7;10715:18;;;;;;;;;;;;;;;;10708:25;;10614:127;;;:::o;2769:103::-;2014:13;:11;:13::i;:::-;2834:30:::1;2861:1;2834:18;:30::i;:::-;2769:103::o:0;22434:45::-;;;;:::o;22211:30::-;;;;;;;;;;;;;:::o;26978:137::-;2014:13;:11;:13::i;:::-;27069:8:::1;27062:25;;;27088:10;27100:6;27062:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26978:137:::0;;:::o;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;26278:124::-;2014:13;:11;:13::i;:::-;26389:5:::1;26363:13;:23;26377:8;26363:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;26278:124:::0;;:::o;24900:98::-;2014:13;:11;:13::i;:::-;24984:6:::1;24970:11;;:20;;;;;;;;;;;;;;;;;;24900:98:::0;:::o;9533:104::-;9589:13;9622:7;9615:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9533:104;:::o;22489:23::-;;;;:::o;26805:164::-;2014:13;:11;:13::i;:::-;26921:40:::1;26951:9;26929:10;26921:29;;;;:40;;;;:::i;:::-;26805:164:::0;:::o;13866:436::-;13959:4;13976:13;13992:12;:10;:12::i;:::-;13976:28;;14015:24;14042:25;14052:5;14059:7;14042:9;:25::i;:::-;14015:52;;14106:15;14086:16;:35;;14078:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14199:60;14208:5;14215:7;14243:15;14224:16;:34;14199:8;:60::i;:::-;14290:4;14283:11;;;;13866:436;;;;:::o;22185:19::-;;;;;;;;;;;;;:::o;10947:193::-;11026:4;11043:13;11059:12;:10;:12::i;:::-;11043:28;;11082;11092:5;11099:2;11103:6;11082:9;:28::i;:::-;11128:4;11121:11;;;10947:193;;;;:::o;25692:152::-;2014:13;:11;:13::i;:::-;25789:9:::1;25771:15;;:27;;;;;;;;;;;;;;;;;;25832:4;25809:9;:20;25819:9;25809:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;25692:152:::0;:::o;25222:100::-;2014:13;:11;:13::i;:::-;25309:5:::1;25298:8;:16;;;;:::i;:::-;25290:5;:24;;;;25222:100:::0;:::o;22028:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;25129:84::-;2014:13;:11;:13::i;:::-;25199:6:::1;25193:3;:12;;;;25129:84:::0;:::o;11203:151::-;11292:7;11319:11;:18;11331:5;11319:18;;;;;;;;;;;;;;;:27;11338:7;11319:27;;;;;;;;;;;;;;;;11312:34;;11203:151;;;;:::o;3027:201::-;2014:13;:11;:13::i;:::-;3136:1:::1;3116:22;;:8;:22;;::::0;3108:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3192:28;3211:8;3192:18;:28::i;:::-;3027:201:::0;:::o;22157:21::-;;;;;;;;;;;;;:::o;22378:49::-;;;;:::o;22089:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;2293:132::-;2368:12;:10;:12::i;:::-;2357:23;;:7;:5;:7::i;:::-;:23;;;2349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:132::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;17859:346::-;17978:1;17961:19;;:5;:19;;;17953:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18059:1;18040:21;;:7;:21;;;18032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18143:6;18113:11;:18;18125:5;18113:18;;;;;;;;;;;;;;;:27;18132:7;18113:27;;;;;;;;;;;;;;;:36;;;;18181:7;18165:32;;18174:5;18165:32;;;18190:6;18165:32;;;;;;:::i;:::-;;;;;;;;17859:346;;;:::o;18496:419::-;18597:24;18624:25;18634:5;18641:7;18624:9;:25::i;:::-;18597:52;;18684:17;18664:16;:37;18660:248;;18746:6;18726:16;:26;;18718:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18830:51;18839:5;18846:7;18874:6;18855:16;:25;18830:8;:51::i;:::-;18660:248;18586:329;18496:419;;;:::o;23213:913::-;23329:1;23320:6;:10;23312:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23396:13;:21;23410:6;23396:21;;;;;;;;;;;;;;;;;;;;;;;;;23395:22;:51;;;;;23422:13;:24;23436:9;23422:24;;;;;;;;;;;;;;;;;;;;;;;;;23421:25;23395:51;23387:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;23488:8;;;;;;;;;;;:29;;;;23500:9;:17;23510:6;23500:17;;;;;;;;;;;;;;;;;;;;;;;;;23488:29;:53;;;;23521:9;:20;23531:9;23521:20;;;;;;;;;;;;;;;;;;;;;;;;;23488:53;23484:148;;;23557:42;23573:6;23581:9;23592:6;23557:15;:42::i;:::-;23614:7;;23484:148;23663:5;;23653:6;:15;;23645:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;23714:4;;;;;;;;;;;23701:17;;:9;:17;;;23698:122;;23776:9;;23766:6;23743:20;23753:9;23743;:20::i;:::-;:29;;;;:::i;:::-;:42;;23735:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;23698:122;23833:14;23865:3;23859;;23850:6;:12;;;;:::i;:::-;:18;;;;:::i;:::-;23833:35;;23886:11;;;;;;;;;;;:29;;;;;23911:4;;;;;;;;;;;23901:14;;:6;:14;;;;23886:29;23882:45;;;23917:10;:8;:10::i;:::-;23882:45;23970:51;23986:6;23994:9;24014:6;24005;:15;;;;:::i;:::-;23970;:51::i;:::-;24044:1;24035:6;:10;24032:87;;;24061:46;24077:6;24093:4;24100:6;24061:15;:46::i;:::-;24032:87;23301:825;23213:913;;;;:::o;3388:191::-;3462:16;3481:6;;;;;;;;;;;3462:25;;3507:8;3498:6;;:17;;;;;;;;;;;;;;;;;;3562:8;3531:40;;3552:8;3531:40;;;;;;;;;;;;3451:128;3388:191;:::o;21621:318::-;21736:6;21711:21;:31;;21703:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21791:12;21809:9;:14;;21831:6;21809:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21790:52;;;21861:7;21853:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;21692:247;21621:318;;:::o;14772:806::-;14885:1;14869:18;;:4;:18;;;14861:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14962:1;14948:16;;:2;:16;;;14940:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15017:38;15038:4;15044:2;15048:6;15017:20;:38::i;:::-;15068:19;15090:9;:15;15100:4;15090:15;;;;;;;;;;;;;;;;15068:37;;15139:6;15124:11;:21;;15116:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15256:6;15242:11;:20;15224:9;:15;15234:4;15224:15;;;;;;;;;;;;;;;:38;;;;15459:6;15442:9;:13;15452:2;15442:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15509:2;15494:26;;15503:4;15494:26;;;15513:6;15494:26;;;;;;:::i;:::-;;;;;;;;15533:37;15553:4;15559:2;15563:6;15533:19;:37::i;:::-;14850:728;14772:806;;;:::o;24135:434::-;22559:8;;;;;;;;;;;22554:104;;22595:4;22584:8;;:15;;;;;;;;;;;;;;;;;;24184:23:::1;24210:24;24228:4;24210:9;:24::i;:::-;24184:50;;24268:13;;24249:15;:32;24245:317;;24298:22;24323:21;24298:46;;24359:31;24376:13;;24359:16;:31::i;:::-;24405:20;24452:14;24428:21;:38;;;;:::i;:::-;24405:61;;24499:1;24484:12;:16;24481:69;;;24502:48;24537:12;24510:15;;;;;;;;;;;24502:34;;;;:48;;;;:::i;:::-;24481:69;24283:279;;24245:317;24173:396;22641:5:::0;22630:8;;:16;;;;;;;;;;;;;;;;;;22554:104;24135:434::o;19515:91::-;;;;:::o;20210:90::-;;;;:::o;24581:307::-;24647:21;24685:1;24671:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24647:40;;24716:4;24698;24703:1;24698:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24742:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24732:4;24737:1;24732:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24769:6;;;;;;;;;;;:57;;;24827:11;24840:1;24843:4;24857;24864:15;24769:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24636:252;24581:307;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:90::-;3280:7;3323:5;3316:13;3309:21;3298:32;;3246:90;;;:::o;3342:116::-;3412:21;3427:5;3412:21;:::i;:::-;3405:5;3402:32;3392:60;;3448:1;3445;3438:12;3392:60;3342:116;:::o;3464:133::-;3507:5;3545:6;3532:20;3523:29;;3561:30;3585:5;3561:30;:::i;:::-;3464:133;;;;:::o;3603:678::-;3693:6;3701;3750:2;3738:9;3729:7;3725:23;3721:32;3718:119;;;3756:79;;:::i;:::-;3718:119;3904:1;3893:9;3889:17;3876:31;3934:18;3926:6;3923:30;3920:117;;;3956:79;;:::i;:::-;3920:117;4061:78;4131:7;4122:6;4111:9;4107:22;4061:78;:::i;:::-;4051:88;;3847:302;4188:2;4214:50;4256:7;4247:6;4236:9;4232:22;4214:50;:::i;:::-;4204:60;;4159:115;3603:678;;;;;:::o;4287:77::-;4324:7;4353:5;4342:16;;4287:77;;;:::o;4370:118::-;4457:24;4475:5;4457:24;:::i;:::-;4452:3;4445:37;4370:118;;:::o;4494:222::-;4587:4;4625:2;4614:9;4610:18;4602:26;;4638:71;4706:1;4695:9;4691:17;4682:6;4638:71;:::i;:::-;4494:222;;;;:::o;4722:122::-;4795:24;4813:5;4795:24;:::i;:::-;4788:5;4785:35;4775:63;;4834:1;4831;4824:12;4775:63;4722:122;:::o;4850:139::-;4896:5;4934:6;4921:20;4912:29;;4950:33;4977:5;4950:33;:::i;:::-;4850:139;;;;:::o;4995:329::-;5054:6;5103:2;5091:9;5082:7;5078:23;5074:32;5071:119;;;5109:79;;:::i;:::-;5071:119;5229:1;5254:53;5299:7;5290:6;5279:9;5275:22;5254:53;:::i;:::-;5244:63;;5200:117;4995:329;;;;:::o;5330:99::-;5382:6;5416:5;5410:12;5400:22;;5330:99;;;:::o;5435:169::-;5519:11;5553:6;5548:3;5541:19;5593:4;5588:3;5584:14;5569:29;;5435:169;;;;:::o;5610:246::-;5691:1;5701:113;5715:6;5712:1;5709:13;5701:113;;;5800:1;5795:3;5791:11;5785:18;5781:1;5776:3;5772:11;5765:39;5737:2;5734:1;5730:10;5725:15;;5701:113;;;5848:1;5839:6;5834:3;5830:16;5823:27;5672:184;5610:246;;;:::o;5862:377::-;5950:3;5978:39;6011:5;5978:39;:::i;:::-;6033:71;6097:6;6092:3;6033:71;:::i;:::-;6026:78;;6113:65;6171:6;6166:3;6159:4;6152:5;6148:16;6113:65;:::i;:::-;6203:29;6225:6;6203:29;:::i;:::-;6198:3;6194:39;6187:46;;5954:285;5862:377;;;;:::o;6245:313::-;6358:4;6396:2;6385:9;6381:18;6373:26;;6445:9;6439:4;6435:20;6431:1;6420:9;6416:17;6409:47;6473:78;6546:4;6537:6;6473:78;:::i;:::-;6465:86;;6245:313;;;;:::o;6564:474::-;6632:6;6640;6689:2;6677:9;6668:7;6664:23;6660:32;6657:119;;;6695:79;;:::i;:::-;6657:119;6815:1;6840:53;6885:7;6876:6;6865:9;6861:22;6840:53;:::i;:::-;6830:63;;6786:117;6942:2;6968:53;7013:7;7004:6;6993:9;6989:22;6968:53;:::i;:::-;6958:63;;6913:118;6564:474;;;;;:::o;7044:109::-;7125:21;7140:5;7125:21;:::i;:::-;7120:3;7113:34;7044:109;;:::o;7159:210::-;7246:4;7284:2;7273:9;7269:18;7261:26;;7297:65;7359:1;7348:9;7344:17;7335:6;7297:65;:::i;:::-;7159:210;;;;:::o;7375:619::-;7452:6;7460;7468;7517:2;7505:9;7496:7;7492:23;7488:32;7485:119;;;7523:79;;:::i;:::-;7485:119;7643:1;7668:53;7713:7;7704:6;7693:9;7689:22;7668:53;:::i;:::-;7658:63;;7614:117;7770:2;7796:53;7841:7;7832:6;7821:9;7817:22;7796:53;:::i;:::-;7786:63;;7741:118;7898:2;7924:53;7969:7;7960:6;7949:9;7945:22;7924:53;:::i;:::-;7914:63;;7869:118;7375:619;;;;;:::o;8000:86::-;8035:7;8075:4;8068:5;8064:16;8053:27;;8000:86;;;:::o;8092:112::-;8175:22;8191:5;8175:22;:::i;:::-;8170:3;8163:35;8092:112;;:::o;8210:214::-;8299:4;8337:2;8326:9;8322:18;8314:26;;8350:67;8414:1;8403:9;8399:17;8390:6;8350:67;:::i;:::-;8210:214;;;;:::o;8430:468::-;8495:6;8503;8552:2;8540:9;8531:7;8527:23;8523:32;8520:119;;;8558:79;;:::i;:::-;8520:119;8678:1;8703:53;8748:7;8739:6;8728:9;8724:22;8703:53;:::i;:::-;8693:63;;8649:117;8805:2;8831:50;8873:7;8864:6;8853:9;8849:22;8831:50;:::i;:::-;8821:60;;8776:115;8430:468;;;;;:::o;8904:474::-;8972:6;8980;9029:2;9017:9;9008:7;9004:23;9000:32;8997:119;;;9035:79;;:::i;:::-;8997:119;9155:1;9180:53;9225:7;9216:6;9205:9;9201:22;9180:53;:::i;:::-;9170:63;;9126:117;9282:2;9308:53;9353:7;9344:6;9333:9;9329:22;9308:53;:::i;:::-;9298:63;;9253:118;8904:474;;;;;:::o;9384:329::-;9443:6;9492:2;9480:9;9471:7;9467:23;9463:32;9460:119;;;9498:79;;:::i;:::-;9460:119;9618:1;9643:53;9688:7;9679:6;9668:9;9664:22;9643:53;:::i;:::-;9633:63;;9589:117;9384:329;;;;:::o;9719:118::-;9806:24;9824:5;9806:24;:::i;:::-;9801:3;9794:37;9719:118;;:::o;9843:222::-;9936:4;9974:2;9963:9;9959:18;9951:26;;9987:71;10055:1;10044:9;10040:17;10031:6;9987:71;:::i;:::-;9843:222;;;;:::o;10071:323::-;10127:6;10176:2;10164:9;10155:7;10151:23;10147:32;10144:119;;;10182:79;;:::i;:::-;10144:119;10302:1;10327:50;10369:7;10360:6;10349:9;10345:22;10327:50;:::i;:::-;10317:60;;10273:114;10071:323;;;;:::o;10400:60::-;10428:3;10449:5;10442:12;;10400:60;;;:::o;10466:142::-;10516:9;10549:53;10567:34;10576:24;10594:5;10576:24;:::i;:::-;10567:34;:::i;:::-;10549:53;:::i;:::-;10536:66;;10466:142;;;:::o;10614:126::-;10664:9;10697:37;10728:5;10697:37;:::i;:::-;10684:50;;10614:126;;;:::o;10746:141::-;10811:9;10844:37;10875:5;10844:37;:::i;:::-;10831:50;;10746:141;;;:::o;10893:161::-;10995:52;11041:5;10995:52;:::i;:::-;10990:3;10983:65;10893:161;;:::o;11060:252::-;11168:4;11206:2;11195:9;11191:18;11183:26;;11219:86;11302:1;11291:9;11287:17;11278:6;11219:86;:::i;:::-;11060:252;;;;:::o;11318:180::-;11366:77;11363:1;11356:88;11463:4;11460:1;11453:15;11487:4;11484:1;11477:15;11504:180;11552:77;11549:1;11542:88;11649:4;11646:1;11639:15;11673:4;11670:1;11663:15;11690:410;11730:7;11753:20;11771:1;11753:20;:::i;:::-;11748:25;;11787:20;11805:1;11787:20;:::i;:::-;11782:25;;11842:1;11839;11835:9;11864:30;11882:11;11864:30;:::i;:::-;11853:41;;12043:1;12034:7;12030:15;12027:1;12024:22;12004:1;11997:9;11977:83;11954:139;;12073:18;;:::i;:::-;11954:139;11738:362;11690:410;;;;:::o;12106:180::-;12154:77;12151:1;12144:88;12251:4;12248:1;12241:15;12275:4;12272:1;12265:15;12292:320;12336:6;12373:1;12367:4;12363:12;12353:22;;12420:1;12414:4;12410:12;12441:18;12431:81;;12497:4;12489:6;12485:17;12475:27;;12431:81;12559:2;12551:6;12548:14;12528:18;12525:38;12522:84;;12578:18;;:::i;:::-;12522:84;12343:269;12292:320;;;:::o;12618:191::-;12658:3;12677:20;12695:1;12677:20;:::i;:::-;12672:25;;12711:20;12729:1;12711:20;:::i;:::-;12706:25;;12754:1;12751;12747:9;12740:16;;12775:3;12772:1;12769:10;12766:36;;;12782:18;;:::i;:::-;12766:36;12618:191;;;;:::o;12815:332::-;12936:4;12974:2;12963:9;12959:18;12951:26;;12987:71;13055:1;13044:9;13040:17;13031:6;12987:71;:::i;:::-;13068:72;13136:2;13125:9;13121:18;13112:6;13068:72;:::i;:::-;12815:332;;;;;:::o;13153:137::-;13207:5;13238:6;13232:13;13223:22;;13254:30;13278:5;13254:30;:::i;:::-;13153:137;;;;:::o;13296:345::-;13363:6;13412:2;13400:9;13391:7;13387:23;13383:32;13380:119;;;13418:79;;:::i;:::-;13380:119;13538:1;13563:61;13616:7;13607:6;13596:9;13592:22;13563:61;:::i;:::-;13553:71;;13509:125;13296:345;;;;:::o;13647:224::-;13787:34;13783:1;13775:6;13771:14;13764:58;13856:7;13851:2;13843:6;13839:15;13832:32;13647:224;:::o;13877:366::-;14019:3;14040:67;14104:2;14099:3;14040:67;:::i;:::-;14033:74;;14116:93;14205:3;14116:93;:::i;:::-;14234:2;14229:3;14225:12;14218:19;;13877:366;;;:::o;14249:419::-;14415:4;14453:2;14442:9;14438:18;14430:26;;14502:9;14496:4;14492:20;14488:1;14477:9;14473:17;14466:47;14530:131;14656:4;14530:131;:::i;:::-;14522:139;;14249:419;;;:::o;14674:225::-;14814:34;14810:1;14802:6;14798:14;14791:58;14883:8;14878:2;14870:6;14866:15;14859:33;14674:225;:::o;14905:366::-;15047:3;15068:67;15132:2;15127:3;15068:67;:::i;:::-;15061:74;;15144:93;15233:3;15144:93;:::i;:::-;15262:2;15257:3;15253:12;15246:19;;14905:366;;;:::o;15277:419::-;15443:4;15481:2;15470:9;15466:18;15458:26;;15530:9;15524:4;15520:20;15516:1;15505:9;15501:17;15494:47;15558:131;15684:4;15558:131;:::i;:::-;15550:139;;15277:419;;;:::o;15702:182::-;15842:34;15838:1;15830:6;15826:14;15819:58;15702:182;:::o;15890:366::-;16032:3;16053:67;16117:2;16112:3;16053:67;:::i;:::-;16046:74;;16129:93;16218:3;16129:93;:::i;:::-;16247:2;16242:3;16238:12;16231:19;;15890:366;;;:::o;16262:419::-;16428:4;16466:2;16455:9;16451:18;16443:26;;16515:9;16509:4;16505:20;16501:1;16490:9;16486:17;16479:47;16543:131;16669:4;16543:131;:::i;:::-;16535:139;;16262:419;;;:::o;16687:223::-;16827:34;16823:1;16815:6;16811:14;16804:58;16896:6;16891:2;16883:6;16879:15;16872:31;16687:223;:::o;16916:366::-;17058:3;17079:67;17143:2;17138:3;17079:67;:::i;:::-;17072:74;;17155:93;17244:3;17155:93;:::i;:::-;17273:2;17268:3;17264:12;17257:19;;16916:366;;;:::o;17288:419::-;17454:4;17492:2;17481:9;17477:18;17469:26;;17541:9;17535:4;17531:20;17527:1;17516:9;17512:17;17505:47;17569:131;17695:4;17569:131;:::i;:::-;17561:139;;17288:419;;;:::o;17713:221::-;17853:34;17849:1;17841:6;17837:14;17830:58;17922:4;17917:2;17909:6;17905:15;17898:29;17713:221;:::o;17940:366::-;18082:3;18103:67;18167:2;18162:3;18103:67;:::i;:::-;18096:74;;18179:93;18268:3;18179:93;:::i;:::-;18297:2;18292:3;18288:12;18281:19;;17940:366;;;:::o;18312:419::-;18478:4;18516:2;18505:9;18501:18;18493:26;;18565:9;18559:4;18555:20;18551:1;18540:9;18536:17;18529:47;18593:131;18719:4;18593:131;:::i;:::-;18585:139;;18312:419;;;:::o;18737:179::-;18877:31;18873:1;18865:6;18861:14;18854:55;18737:179;:::o;18922:366::-;19064:3;19085:67;19149:2;19144:3;19085:67;:::i;:::-;19078:74;;19161:93;19250:3;19161:93;:::i;:::-;19279:2;19274:3;19270:12;19263:19;;18922:366;;;:::o;19294:419::-;19460:4;19498:2;19487:9;19483:18;19475:26;;19547:9;19541:4;19537:20;19533:1;19522:9;19518:17;19511:47;19575:131;19701:4;19575:131;:::i;:::-;19567:139;;19294:419;;;:::o;19719:228::-;19859:34;19855:1;19847:6;19843:14;19836:58;19928:11;19923:2;19915:6;19911:15;19904:36;19719:228;:::o;19953:366::-;20095:3;20116:67;20180:2;20175:3;20116:67;:::i;:::-;20109:74;;20192:93;20281:3;20192:93;:::i;:::-;20310:2;20305:3;20301:12;20294:19;;19953:366;;;:::o;20325:419::-;20491:4;20529:2;20518:9;20514:18;20506:26;;20578:9;20572:4;20568:20;20564:1;20553:9;20549:17;20542:47;20606:131;20732:4;20606:131;:::i;:::-;20598:139;;20325:419;;;:::o;20750:169::-;20890:21;20886:1;20878:6;20874:14;20867:45;20750:169;:::o;20925:366::-;21067:3;21088:67;21152:2;21147:3;21088:67;:::i;:::-;21081:74;;21164:93;21253:3;21164:93;:::i;:::-;21282:2;21277:3;21273:12;21266:19;;20925:366;;;:::o;21297:419::-;21463:4;21501:2;21490:9;21486:18;21478:26;;21550:9;21544:4;21540:20;21536:1;21525:9;21521:17;21514:47;21578:131;21704:4;21578:131;:::i;:::-;21570:139;;21297:419;;;:::o;21722:164::-;21862:16;21858:1;21850:6;21846:14;21839:40;21722:164;:::o;21892:366::-;22034:3;22055:67;22119:2;22114:3;22055:67;:::i;:::-;22048:74;;22131:93;22220:3;22131:93;:::i;:::-;22249:2;22244:3;22240:12;22233:19;;21892:366;;;:::o;22264:419::-;22430:4;22468:2;22457:9;22453:18;22445:26;;22517:9;22511:4;22507:20;22503:1;22492:9;22488:17;22481:47;22545:131;22671:4;22545:131;:::i;:::-;22537:139;;22264:419;;;:::o;22689:168::-;22829:20;22825:1;22817:6;22813:14;22806:44;22689:168;:::o;22863:366::-;23005:3;23026:67;23090:2;23085:3;23026:67;:::i;:::-;23019:74;;23102:93;23191:3;23102:93;:::i;:::-;23220:2;23215:3;23211:12;23204:19;;22863:366;;;:::o;23235:419::-;23401:4;23439:2;23428:9;23424:18;23416:26;;23488:9;23482:4;23478:20;23474:1;23463:9;23459:17;23452:47;23516:131;23642:4;23516:131;:::i;:::-;23508:139;;23235:419;;;:::o;23660:180::-;23708:77;23705:1;23698:88;23805:4;23802:1;23795:15;23829:4;23826:1;23819:15;23846:185;23886:1;23903:20;23921:1;23903:20;:::i;:::-;23898:25;;23937:20;23955:1;23937:20;:::i;:::-;23932:25;;23976:1;23966:35;;23981:18;;:::i;:::-;23966:35;24023:1;24020;24016:9;24011:14;;23846:185;;;;:::o;24037:194::-;24077:4;24097:20;24115:1;24097:20;:::i;:::-;24092:25;;24131:20;24149:1;24131:20;:::i;:::-;24126:25;;24175:1;24172;24168:9;24160:17;;24199:1;24193:4;24190:11;24187:37;;;24204:18;;:::i;:::-;24187:37;24037:194;;;;:::o;24237:179::-;24377:31;24373:1;24365:6;24361:14;24354:55;24237:179;:::o;24422:366::-;24564:3;24585:67;24649:2;24644:3;24585:67;:::i;:::-;24578:74;;24661:93;24750:3;24661:93;:::i;:::-;24779:2;24774:3;24770:12;24763:19;;24422:366;;;:::o;24794:419::-;24960:4;24998:2;24987:9;24983:18;24975:26;;25047:9;25041:4;25037:20;25033:1;25022:9;25018:17;25011:47;25075:131;25201:4;25075:131;:::i;:::-;25067:139;;24794:419;;;:::o;25219:147::-;25320:11;25357:3;25342:18;;25219:147;;;;:::o;25372:114::-;;:::o;25492:398::-;25651:3;25672:83;25753:1;25748:3;25672:83;:::i;:::-;25665:90;;25764:93;25853:3;25764:93;:::i;:::-;25882:1;25877:3;25873:11;25866:18;;25492:398;;;:::o;25896:379::-;26080:3;26102:147;26245:3;26102:147;:::i;:::-;26095:154;;26266:3;26259:10;;25896:379;;;:::o;26281:245::-;26421:34;26417:1;26409:6;26405:14;26398:58;26490:28;26485:2;26477:6;26473:15;26466:53;26281:245;:::o;26532:366::-;26674:3;26695:67;26759:2;26754:3;26695:67;:::i;:::-;26688:74;;26771:93;26860:3;26771:93;:::i;:::-;26889:2;26884:3;26880:12;26873:19;;26532:366;;;:::o;26904:419::-;27070:4;27108:2;27097:9;27093:18;27085:26;;27157:9;27151:4;27147:20;27143:1;27132:9;27128:17;27121:47;27185:131;27311:4;27185:131;:::i;:::-;27177:139;;26904:419;;;:::o;27329:224::-;27469:34;27465:1;27457:6;27453:14;27446:58;27538:7;27533:2;27525:6;27521:15;27514:32;27329:224;:::o;27559:366::-;27701:3;27722:67;27786:2;27781:3;27722:67;:::i;:::-;27715:74;;27798:93;27887:3;27798:93;:::i;:::-;27916:2;27911:3;27907:12;27900:19;;27559:366;;;:::o;27931:419::-;28097:4;28135:2;28124:9;28120:18;28112:26;;28184:9;28178:4;28174:20;28170:1;28159:9;28155:17;28148:47;28212:131;28338:4;28212:131;:::i;:::-;28204:139;;27931:419;;;:::o;28356:222::-;28496:34;28492:1;28484:6;28480:14;28473:58;28565:5;28560:2;28552:6;28548:15;28541:30;28356:222;:::o;28584:366::-;28726:3;28747:67;28811:2;28806:3;28747:67;:::i;:::-;28740:74;;28823:93;28912:3;28823:93;:::i;:::-;28941:2;28936:3;28932:12;28925:19;;28584:366;;;:::o;28956:419::-;29122:4;29160:2;29149:9;29145:18;29137:26;;29209:9;29203:4;29199:20;29195:1;29184:9;29180:17;29173:47;29237:131;29363:4;29237:131;:::i;:::-;29229:139;;28956:419;;;:::o;29381:225::-;29521:34;29517:1;29509:6;29505:14;29498:58;29590:8;29585:2;29577:6;29573:15;29566:33;29381:225;:::o;29612:366::-;29754:3;29775:67;29839:2;29834:3;29775:67;:::i;:::-;29768:74;;29851:93;29940:3;29851:93;:::i;:::-;29969:2;29964:3;29960:12;29953:19;;29612:366;;;:::o;29984:419::-;30150:4;30188:2;30177:9;30173:18;30165:26;;30237:9;30231:4;30227:20;30223:1;30212:9;30208:17;30201:47;30265:131;30391:4;30265:131;:::i;:::-;30257:139;;29984:419;;;:::o;30409:143::-;30466:5;30497:6;30491:13;30482:22;;30513:33;30540:5;30513:33;:::i;:::-;30409:143;;;;:::o;30558:351::-;30628:6;30677:2;30665:9;30656:7;30652:23;30648:32;30645:119;;;30683:79;;:::i;:::-;30645:119;30803:1;30828:64;30884:7;30875:6;30864:9;30860:22;30828:64;:::i;:::-;30818:74;;30774:128;30558:351;;;;:::o;30915:85::-;30960:7;30989:5;30978:16;;30915:85;;;:::o;31006:158::-;31064:9;31097:61;31115:42;31124:32;31150:5;31124:32;:::i;:::-;31115:42;:::i;:::-;31097:61;:::i;:::-;31084:74;;31006:158;;;:::o;31170:147::-;31265:45;31304:5;31265:45;:::i;:::-;31260:3;31253:58;31170:147;;:::o;31323:114::-;31390:6;31424:5;31418:12;31408:22;;31323:114;;;:::o;31443:184::-;31542:11;31576:6;31571:3;31564:19;31616:4;31611:3;31607:14;31592:29;;31443:184;;;;:::o;31633:132::-;31700:4;31723:3;31715:11;;31753:4;31748:3;31744:14;31736:22;;31633:132;;;:::o;31771:108::-;31848:24;31866:5;31848:24;:::i;:::-;31843:3;31836:37;31771:108;;:::o;31885:179::-;31954:10;31975:46;32017:3;32009:6;31975:46;:::i;:::-;32053:4;32048:3;32044:14;32030:28;;31885:179;;;;:::o;32070:113::-;32140:4;32172;32167:3;32163:14;32155:22;;32070:113;;;:::o;32219:732::-;32338:3;32367:54;32415:5;32367:54;:::i;:::-;32437:86;32516:6;32511:3;32437:86;:::i;:::-;32430:93;;32547:56;32597:5;32547:56;:::i;:::-;32626:7;32657:1;32642:284;32667:6;32664:1;32661:13;32642:284;;;32743:6;32737:13;32770:63;32829:3;32814:13;32770:63;:::i;:::-;32763:70;;32856:60;32909:6;32856:60;:::i;:::-;32846:70;;32702:224;32689:1;32686;32682:9;32677:14;;32642:284;;;32646:14;32942:3;32935:10;;32343:608;;;32219:732;;;;:::o;32957:831::-;33220:4;33258:3;33247:9;33243:19;33235:27;;33272:71;33340:1;33329:9;33325:17;33316:6;33272:71;:::i;:::-;33353:80;33429:2;33418:9;33414:18;33405:6;33353:80;:::i;:::-;33480:9;33474:4;33470:20;33465:2;33454:9;33450:18;33443:48;33508:108;33611:4;33602:6;33508:108;:::i;:::-;33500:116;;33626:72;33694:2;33683:9;33679:18;33670:6;33626:72;:::i;:::-;33708:73;33776:3;33765:9;33761:19;33752:6;33708:73;:::i;:::-;32957:831;;;;;;;;:::o

Swarm Source

ipfs://7a2554a1f3d4366eba8134b5cd1390c4bb442c43472544a14dc473e28bd80bc5
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.