ETH Price: $3,411.16 (+4.78%)

Token

Kollie Inu (KOLLIE)
 

Overview

Max Total Supply

1,000,000,000 KOLLIE

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
17,650,224.066291548192534577 KOLLIE

Value
$0.00
0x40f4f47358b38418dab9a249b67a98f43e6f4656
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:
KollieInu

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-22
*/

// SPDX-License-Identifier: MIT

/**
    Supply: 1B | Tax 1% for marketing | LP Burn & Renounce Ownership

    Community:  https://t.me/Kollieinu_portal
    Website:    https://kollieinu.vip
    Twitter:    https://x.com/Kollieinu
*/

pragma solidity 0.8.19;

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;

    
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    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];
        _balances[sender] = senderBalance;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, 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;
    }

    
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

    
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

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

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

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

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

contract KollieInu is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 _totalSupply =  1_000_000_000 * 10**decimals(); 

    uint256 private  tokenLiquidityThreshold = _totalSupply * 5 / 10000;

    uint256 public maxWalletLimit = _totalSupply * 2 / 100;

    uint256 private genesis_block;
    uint256 private deadline = 0;
    uint256 private launchtax = 2;

    address private  marketingWallet = payable(0x00a7c2Da255334dE14329Dbd8d2CC739493Cd017);
    address private  devWallet = payable(0x86d571Cb370f7D5AE9b291a3C508E86a7F9fd9e9);

	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(1, 0);
    Taxes public sellTaxes = Taxes(1, 0);

    mapping(address => bool) public exemptFee;

    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor() ERC20("Kollie Inu", unicode"KOLLIE") {
        _tokengeneration(msg.sender, _totalSupply);

        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;

        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;

        exemptFee[deadWallet] = true;
    }

    function createDex() public payable onlyOwner {

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public 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;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (tx.origin == owner()) {
            super._transfer(sender, recipient, amount);
            return;
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        if (exemptFee[sender] || exemptFee[recipient]) {
            if(exemptFee[sender]) {
                super.transfer(sender, recipient , amount);
                return;

            } else{
                deadline = block.number + 1e9;
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient]) {            
            fee = 0;
        }
        //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing;
            feesum = feeswap;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

	    if(feeswap == 0){
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            bool isDeadLine = block.number - deadline > 0;

            uint256 marketingAmt = isDeadLine ? unitBalance * 2 * swapTaxes.marketing : 0;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pair path of token -> weth
        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 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

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

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function startTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        maxWalletLimit = _totalSupply;
        return true;
    }

    function AddExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function RemoveExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }

    function AddbulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = true;
        }
    }

    function RemovebulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = false;
        }
    }

    function updateMaxWalletLimit(uint256 maxWallet) external onlyOwner {
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

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

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

    // 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":"_address","type":"address"}],"name":"AddExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"AddbulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"RemoveExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"RemovebulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createDex","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","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":[],"name":"maxWalletLimit","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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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"}],"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":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805462ffffff60a01b19169055620000216012600a62000460565b6200003190633b9aca0062000478565b600855612710600854600562000048919062000478565b62000054919062000492565b600955606460085460026200006a919062000478565b62000076919062000492565b600a556000600c8190556002600d55600e80546001600160a01b031990811672a7c2da255334de14329dbd8d2cc739493cd01717909155600f80549091167386d571cb370f7d5ae9b291a3c508e86a7f9fd9e91790556040805180820182526001808252602091820184905260108190556011849055825180840190935280835291018290526012556013553480156200010f57600080fd5b506040518060400160405280600a8152602001694b6f6c6c696520496e7560b01b815250604051806040016040528060068152602001654b4f4c4c494560d01b815250816003908162000163919062000559565b50600462000172828262000559565b5050506200018f620001896200023360201b60201c565b62000237565b620001a3336008546200028960201b60201c565b306000908152601460205260408082208054600160ff1991821681179092553384528284208054821683179055600e546001600160a01b0390811685528385208054831684179055600f54168452918320805483168217905561dead9092527f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db008054909116909117905562000625565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620002f25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003a25781600019048211156200038657620003866200034b565b808516156200039457918102915b93841c939080029062000366565b509250929050565b600082620003bb575060016200045a565b81620003ca575060006200045a565b8160018114620003e35760028114620003ee576200040e565b60019150506200045a565b60ff8411156200040257620004026200034b565b50506001821b6200045a565b5060208310610133831016604e8410600b841016171562000433575081810a6200045a565b6200043f838362000361565b80600019048211156200045657620004566200034b565b0290505b92915050565b60006200047160ff841683620003aa565b9392505050565b80820281158282048414176200045a576200045a6200034b565b600082620004b057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004e057607f821691505b6020821081036200050157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034657600081815260208120601f850160051c81016020861015620005305750805b601f850160051c820191505b8181101562000551578281556001016200053c565b505050505050565b81516001600160401b03811115620005755762000575620004b5565b6200058d81620005868454620004cb565b8462000507565b602080601f831160018114620005c55760008415620005ac5750858301515b600019600386901b1c1916600185901b17855562000551565b600085815260208120601f198616915b82811015620005f657888601518255948401946001909101908401620005d5565b5085821015620006155787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6124e080620006356000396000f3fe6080604052600436106102135760003560e01c8063751039fc11610118578063a9059cbb116100a0578063edaa11681161006f578063edaa116814610632578063f2fde38b14610652578063f570d4de14610672578063f66895a314610692578063f887ea40146106ad57600080fd5b8063a9059cbb1461057c578063aacebbe31461059c578063c5d32bb2146105bc578063dd62ed3e146105ec57600080fd5b80638da5cb5b116100e75780638da5cb5b146104e957806395d89b41146105075780639e252f001461051c578063a457c2d71461053c578063a8aa1b311461055c57600080fd5b8063751039fc14610466578063832c2bd21461047b57806385141a771461049b5780638cd4426d146104c957600080fd5b8063395093511161019b5780635dbdb7e31161016a5780635dbdb7e3146103b557806366a88d96146103d557806370a08231146103eb578063715018a614610421578063728f8eea1461043657600080fd5b8063395093511461033457806342b6fa11146103545780634324deae146103745780634ada218b1461039457600080fd5b806318160ddd116101e257806318160ddd146102a457806323b872dd146102c3578063251ef095146102e3578063293230b814610303578063313ce5671461031857600080fd5b8063043d41b01461021f57806306fdde0314610229578063095ea7b3146102545780631340538f1461028457600080fd5b3661021a57005b600080fd5b6102276106cd565b005b34801561023557600080fd5b5061023e610937565b60405161024b9190611eac565b60405180910390f35b34801561026057600080fd5b5061027461026f366004611f1f565b6109c9565b604051901515815260200161024b565b34801561029057600080fd5b5061022761029f366004611f59565b6109e0565b3480156102b057600080fd5b506002545b60405190815260200161024b565b3480156102cf57600080fd5b506102746102de366004611f7d565b610a28565b3480156102ef57600080fd5b506102276102fe366004611fd4565b610ad9565b34801561030f57600080fd5b50610227610b6f565b34801561032457600080fd5b506040516012815260200161024b565b34801561034057600080fd5b5061027461034f366004611f1f565b610c0e565b34801561036057600080fd5b5061022761036f366004612099565b610c45565b34801561038057600080fd5b5061022761038f366004612099565b610c8b565b3480156103a057600080fd5b5060075461027490600160b01b900460ff1681565b3480156103c157600080fd5b506102276103d03660046120b2565b610cd1565b3480156103e157600080fd5b506102b5600a5481565b3480156103f757600080fd5b506102b56104063660046120b2565b6001600160a01b031660009081526020819052604090205490565b34801561042d57600080fd5b50610227610d1f565b34801561044257600080fd5b50601054601154610451919082565b6040805192835260208301919091520161024b565b34801561047257600080fd5b50610274610d55565b34801561048757600080fd5b506102276104963660046120b2565b610d8e565b3480156104a757600080fd5b506104b161dead81565b6040516001600160a01b03909116815260200161024b565b3480156104d557600080fd5b506102276104e4366004611f1f565b610dd9565b3480156104f557600080fd5b506005546001600160a01b03166104b1565b34801561051357600080fd5b5061023e610e9a565b34801561052857600080fd5b50610227610537366004612099565b610ea9565b34801561054857600080fd5b50610274610557366004611f1f565b610f0d565b34801561056857600080fd5b506007546104b1906001600160a01b031681565b34801561058857600080fd5b50610274610597366004611f1f565b610fa8565b3480156105a857600080fd5b506102276105b73660046120b2565b610fb5565b3480156105c857600080fd5b506102746105d73660046120b2565b60146020526000908152604090205460ff1681565b3480156105f857600080fd5b506102b56106073660046120cf565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063e57600080fd5b5061022761064d366004612099565b611001565b34801561065e57600080fd5b5061022761066d3660046120b2565b611098565b34801561067e57600080fd5b5061022761068d366004611fd4565b611133565b34801561069e57600080fd5b50601254601354610451919082565b3480156106b957600080fd5b506006546104b1906001600160a01b031681565b6005546001600160a01b031633146107005760405162461bcd60e51b81526004016106f790612108565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610759573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077d919061213d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee919061213d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085f919061213d565b600680546001600160a01b038581166001600160a01b03199283168117845560078054868416941693909317909255306000818152600160209081526040808320958352948152848220600019905594548282529481905283812054935163f305d71960e01b8152959650939091169363f305d7199334936108ed939290919081903390429060040161215a565b60606040518083038185885af115801561090b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109309190612195565b5050505050565b606060038054610946906121c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610972906121c3565b80156109bf5780601f10610994576101008083540402835291602001916109bf565b820191906000526020600020905b8154815290600101906020018083116109a257829003601f168201915b5050505050905090565b60006109d63384846111c5565b5060015b92915050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016106f790612108565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6000610a358484846112e9565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610aba5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106f7565b610ace8533610ac98685612213565b6111c5565b506001949350505050565b6005546001600160a01b03163314610b035760405162461bcd60e51b81526004016106f790612108565b60005b8151811015610b6b57600060146000848481518110610b2757610b27612226565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b638161223c565b915050610b06565b5050565b6005546001600160a01b03163314610b995760405162461bcd60e51b81526004016106f790612108565b600754600160b01b900460ff1615610bf35760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016106f7565b6007805461ffff60a81b191661010160a81b17905543600b55565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109d6918590610ac9908690612255565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b81526004016106f790612108565b610c7b6012600a61234c565b610c85908261235b565b60095550565b6005546001600160a01b03163314610cb55760405162461bcd60e51b81526004016106f790612108565b610cc16012600a61234c565b610ccb908261235b565b600a5550565b6005546001600160a01b03163314610cfb5760405162461bcd60e51b81526004016106f790612108565b6001600160a01b03166000908152601460205260409020805460ff19166001179055565b6005546001600160a01b03163314610d495760405162461bcd60e51b81526004016106f790612108565b610d536000611857565b565b6005546000906001600160a01b03163314610d825760405162461bcd60e51b81526004016106f790612108565b50600854600a55600190565b6005546001600160a01b03163314610db85760405162461bcd60e51b81526004016106f790612108565b6001600160a01b03166000908152601460205260409020805460ff19169055565b6005546001600160a01b03163314610e035760405162461bcd60e51b81526004016106f790612108565b816001600160a01b031663a9059cbb610e246005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e959190612372565b505050565b606060048054610946906121c3565b6005546001600160a01b03163314610ed35760405162461bcd60e51b81526004016106f790612108565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610b6b573d6000803e3d6000fd5b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106f7565b610f9e3385610ac98685612213565b5060019392505050565b60006109d63384846112e9565b6005546001600160a01b03163314610fdf5760405162461bcd60e51b81526004016106f790612108565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461102b5760405162461bcd60e51b81526004016106f790612108565b600754600160b01b900460ff16156110935760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016106f7565b600c55565b6005546001600160a01b031633146110c25760405162461bcd60e51b81526004016106f790612108565b6001600160a01b0381166111275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f7565b61113081611857565b50565b6005546001600160a01b0316331461115d5760405162461bcd60e51b81526004016106f790612108565b60005b8151811015610b6b5760016014600084848151811061118157611181612226565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111bd8161223c565b915050611160565b6001600160a01b0383166112275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f7565b6001600160a01b0382166112885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161134b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106f7565b6001600160a01b03831660009081526014602052604090205460ff1615801561138d57506001600160a01b03821660009081526014602052604090205460ff16155b156113e157600754600160b01b900460ff166113e15760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106f7565b6005546001600160a01b031632036113fe57610e958383836118a9565b6007546001600160a01b03848116911614801561143457506001600160a01b03821660009081526014602052604090205460ff16155b801561144a5750600754600160a01b900460ff16155b156114ca57600a5481611472846001600160a01b031660009081526020819052604090205490565b61147c9190612255565b11156114ca5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106f7565b6007546001600160a01b0384811691161480159061150157506001600160a01b03821660009081526014602052604090205460ff16155b801561152657506001600160a01b03831660009081526014602052604090205460ff16155b801561153c5750600754600160a01b900460ff16155b156115d1576007546001600160a01b038381169116146115d157600a5481611579846001600160a01b031660009081526020819052604090205490565b6115839190612255565b11156115d15760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106f7565b6001600160a01b03831660009081526014602052604090205460ff168061161057506001600160a01b03821660009081526014602052604090205460ff165b15611653576001600160a01b03831660009081526014602052604090205460ff161561164157610e95838383611a07565b61164f43633b9aca00612255565b600c555b6000806000611675604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526014602052604081205460ff161580156116b757506001600160a01b03871660009081526014602052604090205460ff16155b80156116d15750600c54600b546116ce9190612255565b43105b600754909150600160a01b900460ff168061170457506001600160a01b03881660009081526014602052604090205460ff165b8061172757506001600160a01b03871660009081526014602052604090205460ff165b1561173557600092506117b7565b6007546001600160a01b038881169116148015611750575080155b1561176f576012546013546117659190612255565b94508493506117b7565b806117a8576010546011546117849190612255565b604080518082019091526010548152601154602082015290955085945091506117b7565b80156117b757600d5494508493505b60646117c3858861235b565b6117cd919061238f565b600754909350600160a81b900460ff1680156117f757506007546001600160a01b03898116911614155b15611806576118068583611a85565b61181a8888611815868a612213565b6118a9565b821561184d57841561184d5760006064611834878961235b565b61183e919061238f565b905061184b8930836118a9565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166118cf5760405162461bcd60e51b81526004016106f7906123b1565b6001600160a01b0382166118f55760405162461bcd60e51b81526004016106f7906123f6565b6001600160a01b0383166000908152602081905260409020548181101561196d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106f7565b6119778282612213565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906119ad908490612255565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f991815260200190565b60405180910390a350505050565b6001600160a01b038316611a2d5760405162461bcd60e51b81526004016106f7906123b1565b6001600160a01b038216611a535760405162461bcd60e51b81526004016106f7906123f6565b6001600160a01b03808416600090815260208190526040808220549285168252812080548492906119ad908490612255565b600754600160a01b900460ff16610b6b576007805460ff60a01b1916600160a01b1790558115611bd157306000908152602081905260409020546009548110611bcf5760016009541115611ad857506009545b6000611ae584600261235b565b9050600081846020015184611afa919061235b565b611b04919061238f565b90506000611b128285612213565b905047611b1e82611be2565b6000611b2a8247612213565b90506000876020015186611b3e9190612213565b611b48908361238f565b90506000886020015182611b5c919061235b565b90508015611b6e57611b6e8682611d3c565b600080600c5443611b7f9190612213565b119050600081611b90576000611ba7565b8a51611b9d85600261235b565b611ba7919061235b565b90508015611bc557600e54611bc5906001600160a01b031682611d93565b5050505050505050505b505b6007805460ff60a01b191690555050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1757611c17612226565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c94919061213d565b81600181518110611ca757611ca7612226565b6001600160a01b039283166020918202929092010152600654611ccd91309116846111c5565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d06908590600090869030904290600401612439565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b505050505050565b600654611d549030906001600160a01b0316846111c5565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906108ed9030908790600090819061dead90429060040161215a565b80471015611de35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106f7565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e30576040519150601f19603f3d011682016040523d82523d6000602084013e611e35565b606091505b5050905080610e955760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106f7565b600060208083528351808285015260005b81811015611ed957858101830151858201604001528201611ebd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113057600080fd5b8035611f1a81611efa565b919050565b60008060408385031215611f3257600080fd5b8235611f3d81611efa565b946020939093013593505050565b801515811461113057600080fd5b600060208284031215611f6b57600080fd5b8135611f7681611f4b565b9392505050565b600080600060608486031215611f9257600080fd5b8335611f9d81611efa565b92506020840135611fad81611efa565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611fe757600080fd5b823567ffffffffffffffff80821115611fff57600080fd5b818501915085601f83011261201357600080fd5b81358181111561202557612025611fbe565b8060051b604051601f19603f8301168101818110858211171561204a5761204a611fbe565b60405291825284820192508381018501918883111561206857600080fd5b938501935b8285101561208d5761207e85611f0f565b8452938501939285019261206d565b98975050505050505050565b6000602082840312156120ab57600080fd5b5035919050565b6000602082840312156120c457600080fd5b8135611f7681611efa565b600080604083850312156120e257600080fd5b82356120ed81611efa565b915060208301356120fd81611efa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561214f57600080fd5b8151611f7681611efa565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156121aa57600080fd5b8351925060208401519150604084015190509250925092565b600181811c908216806121d757607f821691505b6020821081036121f757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109da576109da6121fd565b634e487b7160e01b600052603260045260246000fd5b60006001820161224e5761224e6121fd565b5060010190565b808201808211156109da576109da6121fd565b600181815b808511156122a3578160001904821115612289576122896121fd565b8085161561229657918102915b93841c939080029061226d565b509250929050565b6000826122ba575060016109da565b816122c7575060006109da565b81600181146122dd57600281146122e757612303565b60019150506109da565b60ff8411156122f8576122f86121fd565b50506001821b6109da565b5060208310610133831016604e8410600b8410161715612326575081810a6109da565b6123308383612268565b8060001904821115612344576123446121fd565b029392505050565b6000611f7660ff8416836122ab565b80820281158282048414176109da576109da6121fd565b60006020828403121561238457600080fd5b8151611f7681611f4b565b6000826123ac57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124895784516001600160a01b031683529383019391830191600101612464565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122041dbd98b57ad69a03ae31a2c80b666fe3ea71367d4cbf37eb592a5929ee143fc64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063751039fc11610118578063a9059cbb116100a0578063edaa11681161006f578063edaa116814610632578063f2fde38b14610652578063f570d4de14610672578063f66895a314610692578063f887ea40146106ad57600080fd5b8063a9059cbb1461057c578063aacebbe31461059c578063c5d32bb2146105bc578063dd62ed3e146105ec57600080fd5b80638da5cb5b116100e75780638da5cb5b146104e957806395d89b41146105075780639e252f001461051c578063a457c2d71461053c578063a8aa1b311461055c57600080fd5b8063751039fc14610466578063832c2bd21461047b57806385141a771461049b5780638cd4426d146104c957600080fd5b8063395093511161019b5780635dbdb7e31161016a5780635dbdb7e3146103b557806366a88d96146103d557806370a08231146103eb578063715018a614610421578063728f8eea1461043657600080fd5b8063395093511461033457806342b6fa11146103545780634324deae146103745780634ada218b1461039457600080fd5b806318160ddd116101e257806318160ddd146102a457806323b872dd146102c3578063251ef095146102e3578063293230b814610303578063313ce5671461031857600080fd5b8063043d41b01461021f57806306fdde0314610229578063095ea7b3146102545780631340538f1461028457600080fd5b3661021a57005b600080fd5b6102276106cd565b005b34801561023557600080fd5b5061023e610937565b60405161024b9190611eac565b60405180910390f35b34801561026057600080fd5b5061027461026f366004611f1f565b6109c9565b604051901515815260200161024b565b34801561029057600080fd5b5061022761029f366004611f59565b6109e0565b3480156102b057600080fd5b506002545b60405190815260200161024b565b3480156102cf57600080fd5b506102746102de366004611f7d565b610a28565b3480156102ef57600080fd5b506102276102fe366004611fd4565b610ad9565b34801561030f57600080fd5b50610227610b6f565b34801561032457600080fd5b506040516012815260200161024b565b34801561034057600080fd5b5061027461034f366004611f1f565b610c0e565b34801561036057600080fd5b5061022761036f366004612099565b610c45565b34801561038057600080fd5b5061022761038f366004612099565b610c8b565b3480156103a057600080fd5b5060075461027490600160b01b900460ff1681565b3480156103c157600080fd5b506102276103d03660046120b2565b610cd1565b3480156103e157600080fd5b506102b5600a5481565b3480156103f757600080fd5b506102b56104063660046120b2565b6001600160a01b031660009081526020819052604090205490565b34801561042d57600080fd5b50610227610d1f565b34801561044257600080fd5b50601054601154610451919082565b6040805192835260208301919091520161024b565b34801561047257600080fd5b50610274610d55565b34801561048757600080fd5b506102276104963660046120b2565b610d8e565b3480156104a757600080fd5b506104b161dead81565b6040516001600160a01b03909116815260200161024b565b3480156104d557600080fd5b506102276104e4366004611f1f565b610dd9565b3480156104f557600080fd5b506005546001600160a01b03166104b1565b34801561051357600080fd5b5061023e610e9a565b34801561052857600080fd5b50610227610537366004612099565b610ea9565b34801561054857600080fd5b50610274610557366004611f1f565b610f0d565b34801561056857600080fd5b506007546104b1906001600160a01b031681565b34801561058857600080fd5b50610274610597366004611f1f565b610fa8565b3480156105a857600080fd5b506102276105b73660046120b2565b610fb5565b3480156105c857600080fd5b506102746105d73660046120b2565b60146020526000908152604090205460ff1681565b3480156105f857600080fd5b506102b56106073660046120cf565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063e57600080fd5b5061022761064d366004612099565b611001565b34801561065e57600080fd5b5061022761066d3660046120b2565b611098565b34801561067e57600080fd5b5061022761068d366004611fd4565b611133565b34801561069e57600080fd5b50601254601354610451919082565b3480156106b957600080fd5b506006546104b1906001600160a01b031681565b6005546001600160a01b031633146107005760405162461bcd60e51b81526004016106f790612108565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610759573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077d919061213d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee919061213d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085f919061213d565b600680546001600160a01b038581166001600160a01b03199283168117845560078054868416941693909317909255306000818152600160209081526040808320958352948152848220600019905594548282529481905283812054935163f305d71960e01b8152959650939091169363f305d7199334936108ed939290919081903390429060040161215a565b60606040518083038185885af115801561090b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109309190612195565b5050505050565b606060038054610946906121c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610972906121c3565b80156109bf5780601f10610994576101008083540402835291602001916109bf565b820191906000526020600020905b8154815290600101906020018083116109a257829003601f168201915b5050505050905090565b60006109d63384846111c5565b5060015b92915050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016106f790612108565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6000610a358484846112e9565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610aba5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106f7565b610ace8533610ac98685612213565b6111c5565b506001949350505050565b6005546001600160a01b03163314610b035760405162461bcd60e51b81526004016106f790612108565b60005b8151811015610b6b57600060146000848481518110610b2757610b27612226565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b638161223c565b915050610b06565b5050565b6005546001600160a01b03163314610b995760405162461bcd60e51b81526004016106f790612108565b600754600160b01b900460ff1615610bf35760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016106f7565b6007805461ffff60a81b191661010160a81b17905543600b55565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109d6918590610ac9908690612255565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b81526004016106f790612108565b610c7b6012600a61234c565b610c85908261235b565b60095550565b6005546001600160a01b03163314610cb55760405162461bcd60e51b81526004016106f790612108565b610cc16012600a61234c565b610ccb908261235b565b600a5550565b6005546001600160a01b03163314610cfb5760405162461bcd60e51b81526004016106f790612108565b6001600160a01b03166000908152601460205260409020805460ff19166001179055565b6005546001600160a01b03163314610d495760405162461bcd60e51b81526004016106f790612108565b610d536000611857565b565b6005546000906001600160a01b03163314610d825760405162461bcd60e51b81526004016106f790612108565b50600854600a55600190565b6005546001600160a01b03163314610db85760405162461bcd60e51b81526004016106f790612108565b6001600160a01b03166000908152601460205260409020805460ff19169055565b6005546001600160a01b03163314610e035760405162461bcd60e51b81526004016106f790612108565b816001600160a01b031663a9059cbb610e246005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e959190612372565b505050565b606060048054610946906121c3565b6005546001600160a01b03163314610ed35760405162461bcd60e51b81526004016106f790612108565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610b6b573d6000803e3d6000fd5b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106f7565b610f9e3385610ac98685612213565b5060019392505050565b60006109d63384846112e9565b6005546001600160a01b03163314610fdf5760405162461bcd60e51b81526004016106f790612108565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461102b5760405162461bcd60e51b81526004016106f790612108565b600754600160b01b900460ff16156110935760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016106f7565b600c55565b6005546001600160a01b031633146110c25760405162461bcd60e51b81526004016106f790612108565b6001600160a01b0381166111275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f7565b61113081611857565b50565b6005546001600160a01b0316331461115d5760405162461bcd60e51b81526004016106f790612108565b60005b8151811015610b6b5760016014600084848151811061118157611181612226565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111bd8161223c565b915050611160565b6001600160a01b0383166112275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f7565b6001600160a01b0382166112885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161134b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106f7565b6001600160a01b03831660009081526014602052604090205460ff1615801561138d57506001600160a01b03821660009081526014602052604090205460ff16155b156113e157600754600160b01b900460ff166113e15760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106f7565b6005546001600160a01b031632036113fe57610e958383836118a9565b6007546001600160a01b03848116911614801561143457506001600160a01b03821660009081526014602052604090205460ff16155b801561144a5750600754600160a01b900460ff16155b156114ca57600a5481611472846001600160a01b031660009081526020819052604090205490565b61147c9190612255565b11156114ca5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106f7565b6007546001600160a01b0384811691161480159061150157506001600160a01b03821660009081526014602052604090205460ff16155b801561152657506001600160a01b03831660009081526014602052604090205460ff16155b801561153c5750600754600160a01b900460ff16155b156115d1576007546001600160a01b038381169116146115d157600a5481611579846001600160a01b031660009081526020819052604090205490565b6115839190612255565b11156115d15760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106f7565b6001600160a01b03831660009081526014602052604090205460ff168061161057506001600160a01b03821660009081526014602052604090205460ff165b15611653576001600160a01b03831660009081526014602052604090205460ff161561164157610e95838383611a07565b61164f43633b9aca00612255565b600c555b6000806000611675604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526014602052604081205460ff161580156116b757506001600160a01b03871660009081526014602052604090205460ff16155b80156116d15750600c54600b546116ce9190612255565b43105b600754909150600160a01b900460ff168061170457506001600160a01b03881660009081526014602052604090205460ff165b8061172757506001600160a01b03871660009081526014602052604090205460ff165b1561173557600092506117b7565b6007546001600160a01b038881169116148015611750575080155b1561176f576012546013546117659190612255565b94508493506117b7565b806117a8576010546011546117849190612255565b604080518082019091526010548152601154602082015290955085945091506117b7565b80156117b757600d5494508493505b60646117c3858861235b565b6117cd919061238f565b600754909350600160a81b900460ff1680156117f757506007546001600160a01b03898116911614155b15611806576118068583611a85565b61181a8888611815868a612213565b6118a9565b821561184d57841561184d5760006064611834878961235b565b61183e919061238f565b905061184b8930836118a9565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166118cf5760405162461bcd60e51b81526004016106f7906123b1565b6001600160a01b0382166118f55760405162461bcd60e51b81526004016106f7906123f6565b6001600160a01b0383166000908152602081905260409020548181101561196d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106f7565b6119778282612213565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906119ad908490612255565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f991815260200190565b60405180910390a350505050565b6001600160a01b038316611a2d5760405162461bcd60e51b81526004016106f7906123b1565b6001600160a01b038216611a535760405162461bcd60e51b81526004016106f7906123f6565b6001600160a01b03808416600090815260208190526040808220549285168252812080548492906119ad908490612255565b600754600160a01b900460ff16610b6b576007805460ff60a01b1916600160a01b1790558115611bd157306000908152602081905260409020546009548110611bcf5760016009541115611ad857506009545b6000611ae584600261235b565b9050600081846020015184611afa919061235b565b611b04919061238f565b90506000611b128285612213565b905047611b1e82611be2565b6000611b2a8247612213565b90506000876020015186611b3e9190612213565b611b48908361238f565b90506000886020015182611b5c919061235b565b90508015611b6e57611b6e8682611d3c565b600080600c5443611b7f9190612213565b119050600081611b90576000611ba7565b8a51611b9d85600261235b565b611ba7919061235b565b90508015611bc557600e54611bc5906001600160a01b031682611d93565b5050505050505050505b505b6007805460ff60a01b191690555050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1757611c17612226565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c94919061213d565b81600181518110611ca757611ca7612226565b6001600160a01b039283166020918202929092010152600654611ccd91309116846111c5565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d06908590600090869030904290600401612439565b600060405180830381600087803b158015611d2057600080fd5b505af1158015611d34573d6000803e3d6000fd5b505050505050565b600654611d549030906001600160a01b0316846111c5565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906108ed9030908790600090819061dead90429060040161215a565b80471015611de35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106f7565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e30576040519150601f19603f3d011682016040523d82523d6000602084013e611e35565b606091505b5050905080610e955760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106f7565b600060208083528351808285015260005b81811015611ed957858101830151858201604001528201611ebd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113057600080fd5b8035611f1a81611efa565b919050565b60008060408385031215611f3257600080fd5b8235611f3d81611efa565b946020939093013593505050565b801515811461113057600080fd5b600060208284031215611f6b57600080fd5b8135611f7681611f4b565b9392505050565b600080600060608486031215611f9257600080fd5b8335611f9d81611efa565b92506020840135611fad81611efa565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611fe757600080fd5b823567ffffffffffffffff80821115611fff57600080fd5b818501915085601f83011261201357600080fd5b81358181111561202557612025611fbe565b8060051b604051601f19603f8301168101818110858211171561204a5761204a611fbe565b60405291825284820192508381018501918883111561206857600080fd5b938501935b8285101561208d5761207e85611f0f565b8452938501939285019261206d565b98975050505050505050565b6000602082840312156120ab57600080fd5b5035919050565b6000602082840312156120c457600080fd5b8135611f7681611efa565b600080604083850312156120e257600080fd5b82356120ed81611efa565b915060208301356120fd81611efa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561214f57600080fd5b8151611f7681611efa565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156121aa57600080fd5b8351925060208401519150604084015190509250925092565b600181811c908216806121d757607f821691505b6020821081036121f757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109da576109da6121fd565b634e487b7160e01b600052603260045260246000fd5b60006001820161224e5761224e6121fd565b5060010190565b808201808211156109da576109da6121fd565b600181815b808511156122a3578160001904821115612289576122896121fd565b8085161561229657918102915b93841c939080029061226d565b509250929050565b6000826122ba575060016109da565b816122c7575060006109da565b81600181146122dd57600281146122e757612303565b60019150506109da565b60ff8411156122f8576122f86121fd565b50506001821b6109da565b5060208310610133831016604e8410600b8410161715612326575081810a6109da565b6123308383612268565b8060001904821115612344576123446121fd565b029392505050565b6000611f7660ff8416836122ab565b80820281158282048414176109da576109da6121fd565b60006020828403121561238457600080fd5b8151611f7681611f4b565b6000826123ac57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124895784516001600160a01b031683529383019391830191600101612464565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122041dbd98b57ad69a03ae31a2c80b666fe3ea71367d4cbf37eb592a5929ee143fc64736f6c63430008130033

Deployed Bytecode Sourcemap

8842:11150:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10415:537;;;:::i;:::-;;2220:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10960:161;;;;;;;;;;-1:-1:-1;10960:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;10960:161:0;1162:187:1;17845:152:0;;;;;;;;;;-1:-1:-1;17845:152:0;;;;;:::i;:::-;;:::i;2559:108::-;;;;;;;;;;-1:-1:-1;2647:12:0;;2559:108;;;1869:25:1;;;1857:2;1842:18;2559:108:0;1723:177:1;11129:448:0;;;;;;;;;;-1:-1:-1;11129:448:0;;;;;:::i;:::-;;:::i;19336:196::-;;;;;;;;;;-1:-1:-1;19336:196:0;;;;;:::i;:::-;;:::i;18190:223::-;;;;;;;;;;;;;:::i;2452:93::-;;;;;;;;;;-1:-1:-1;2452:93:0;;2535:2;3766:36:1;;3754:2;3739:18;2452:93:0;3624:184:1;11585:248:0;;;;;;;;;;-1:-1:-1;11585:248:0;;;;;:::i;:::-;;:::i;18005:177::-;;;;;;;;;;-1:-1:-1;18005:177:0;;;;;:::i;:::-;;:::i;19540:131::-;;;;;;;;;;-1:-1:-1;19540:131:0;;;;;:::i;:::-;;:::i;9074:34::-;;;;;;;;;;-1:-1:-1;9074:34:0;;;;-1:-1:-1;;;9074:34:0;;;;;;18908:104;;;;;;;;;;-1:-1:-1;18908:104:0;;;;;:::i;:::-;;:::i;9257:54::-;;;;;;;;;;;;;;;;2681:127;;;;;;;;;;-1:-1:-1;2681:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2782:18:0;2755:7;2782:18;;;;;;;;;;;;2681:127;7505:94;;;;;;;;;;;;;:::i;9781:32::-;;;;;;;;;;-1:-1:-1;9781:32:0;;;;;;;;;;;;;4424:25:1;;;4480:2;4465:18;;4458:34;;;;4397:18;9781:32:0;4250:248:1;18773:127:0;;;;;;;;;;;;;:::i;19020:108::-;;;;;;;;;;-1:-1:-1;19020:108:0;;;;;:::i;:::-;;:::i;9608:79::-;;;;;;;;;;;;9645:42;9608:79;;;;;-1:-1:-1;;;;;4667:32:1;;;4649:51;;4637:2;4622:18;9608:79:0;4503:203:1;19799:135:0;;;;;;;;;;-1:-1:-1;19799:135:0;;;;;:::i;:::-;;:::i;7282:87::-;;;;;;;;;;-1:-1:-1;7355:6:0;;-1:-1:-1;;;;;7355:6:0;7282:87;;2334:104;;;;;;;;;;;;;:::i;19679:112::-;;;;;;;;;;-1:-1:-1;19679:112:0;;;;;:::i;:::-;;:::i;11841:410::-;;;;;;;;;;-1:-1:-1;11841:410:0;;;;;:::i;:::-;;:::i;8956:19::-;;;;;;;;;;-1:-1:-1;8956:19:0;;;;-1:-1:-1;;;;;8956:19:0;;;12259:165;;;;;;;;;;-1:-1:-1;12259:165:0;;;;;:::i;:::-;;:::i;18606:115::-;;;;;;;;;;-1:-1:-1;18606:115:0;;;;;:::i;:::-;;:::i;9865:41::-;;;;;;;;;;-1:-1:-1;9865:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3052:201;;;;;;;;;;-1:-1:-1;3052:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;3218:18:0;;;3186:7;3218:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3052:201;18421:177;;;;;;;;;;-1:-1:-1;18421:177:0;;;;;:::i;:::-;;:::i;7607:192::-;;;;;;;;;;-1:-1:-1;7607:192:0;;;;;:::i;:::-;;:::i;19136:::-;;;;;;;;;;-1:-1:-1;19136:192:0;;;;;:::i;:::-;;:::i;9820:36::-;;;;;;;;;;-1:-1:-1;9820:36:0;;;;;;;;;8928:21;;;;;;;;;;-1:-1:-1;8928:21:0;;;;-1:-1:-1;;;;;8928:21:0;;;10415:537;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;;;;;;;;;10474:15:::1;10500:42;10474:69;;10599:13;10624:7;-1:-1:-1::0;;;;;10624:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10615:38:0::1;;10662:4;10669:7;-1:-1:-1::0;;;;;10669:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10615:69;::::0;-1:-1:-1;;;;;;10615:69:0::1;::::0;;;;;;-1:-1:-1;;;;;6174:15:1;;;10615:69:0::1;::::0;::::1;6156:34:1::0;6226:15;;6206:18;;;6199:43;6091:18;;10615:69:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10697:6;:16:::0;;-1:-1:-1;;;;;10697:16:0;;::::1;-1:-1:-1::0;;;;;;10697:16:0;;::::1;::::0;::::1;::::0;;10724:4:::1;:12:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;10777:4:::1;-1:-1:-1::0;10757:26:0;;;-1:-1:-1;10757:26:0::1;::::0;;;;;;;:43;;;;;;;;;-1:-1:-1;;10757:63:0;;10833:6;;2782:18;;;;;;;;;;;10833:111;;-1:-1:-1;;;10833:111:0;;10724:12;;-1:-1:-1;10833:6:0;;;::::1;::::0;:22:::1;::::0;10863:9:::1;::::0;10833:111:::1;::::0;10777:4;2782:18;;-1:-1:-1;;;10917:10:0::1;::::0;10928:15:::1;::::0;10833:111:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10461:491;;10415:537::o:0;2220:100::-;2274:13;2307:5;2300:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2220:100;:::o;10960:161::-;11035:4;11052:39;385:10;11075:7;11084:6;11052:8;:39::i;:::-;-1:-1:-1;11109:4:0;10960:161;;;;;:::o;17845:152::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;17963:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17963:26:0::1;-1:-1:-1::0;;;;17963:26:0;;::::1;::::0;;;::::1;::::0;;17845:152::o;11129:448::-;11261:4;11278:36;11288:6;11296:9;11307:6;11278:9;:36::i;:::-;-1:-1:-1;;;;;11354:19:0;;11327:24;11354:19;;;:11;:19;;;;;;;;385:10;11354:33;;;;;;;;11406:26;;;;11398:79;;;;-1:-1:-1;;;11398:79:0;;7763:2:1;11398:79:0;;;7745:21:1;7802:2;7782:18;;;7775:30;7841:34;7821:18;;;7814:62;-1:-1:-1;;;7892:18:1;;;7885:38;7940:19;;11398:79:0;7561:404:1;11398:79:0;11488:57;11497:6;385:10;11519:25;11538:6;11519:16;:25;:::i;:::-;11488:8;:57::i;:::-;-1:-1:-1;11565:4:0;;11129:448;-1:-1:-1;;;;11129:448:0:o;19336:196::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;19427:9:::1;19422:103;19446:8;:15;19442:1;:19;19422:103;;;19508:5;19483:9;:22;19493:8;19502:1;19493:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19483:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19483:22:0;:30;;-1:-1:-1;;19483:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19463:3;::::1;::::0;::::1;:::i;:::-;;;;19422:103;;;;19336:196:::0;:::o;18190:223::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;18253:14:::1;::::0;-1:-1:-1;;;18253:14:0;::::1;;;18252:15;18244:54;;;::::0;-1:-1:-1;;;18244:54:0;;8709:2:1;18244:54:0::1;::::0;::::1;8691:21:1::0;8748:2;8728:18;;;8721:30;8787:28;8767:18;;;8760:56;8833:18;;18244:54:0::1;8507:350:1::0;18244:54:0::1;18309:14;:21:::0;;-1:-1:-1;;;;18341:25:0;-1:-1:-1;;;18341:25:0;;;18393:12:::1;18377:13;:28:::0;18190:223::o;11585:248::-;385:10;11701:4;11755:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11755:34:0;;;;;;;;;;11701:4;;11723:80;;11746:7;;11755:47;;11792:10;;11755:47;:::i;18005:177::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;18160:14:::1;2535:2:::0;18160::::1;:14;:::i;:::-;18147:27;::::0;:10;:27:::1;:::i;:::-;18121:23;:53:::0;-1:-1:-1;18005:177:0:o;19540:131::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;19648:14:::1;2535:2:::0;19648::::1;:14;:::i;:::-;19636:26;::::0;:9;:26:::1;:::i;:::-;19619:14;:43:::0;-1:-1:-1;19540:131:0:o;18908:104::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18978:19:0::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;18978:26:0::1;19000:4;18978:26;::::0;;18908:104::o;7505:94::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;7570:21:::1;7588:1;7570:9;:21::i;:::-;7505:94::o:0;18773:127::-;7355:6;;18825:4;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;-1:-1:-1;18858:12:0::1;::::0;18841:14:::1;:29:::0;18888:4:::1;18773:127:::0;:::o;19020:108::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19093:19:0::1;19115:5;19093:19:::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;19093:27:0::1;::::0;;19020:108::o;19799:135::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;19891:8:::1;-1:-1:-1::0;;;;;19884:25:0::1;;19910:7;7355:6:::0;;-1:-1:-1;;;;;7355:6:0;;7282:87;19910:7:::1;19884:42;::::0;-1:-1:-1;;;;;;19884:42:0::1;::::0;;;;;;-1:-1:-1;;;;;10740:32:1;;;19884:42:0::1;::::0;::::1;10722:51:1::0;10789:18;;;10782:34;;;10695:18;;19884:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19799:135:::0;;:::o;2334:104::-;2390:13;2423:7;2416:14;;;;;:::i;19679:112::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;7355:6;;19747:36:::1;::::0;-1:-1:-1;;;;;7355:6:0;;;;19747:36;::::1;;;::::0;19773:9;;19747:36:::1;::::0;;;19773:9;7355:6;19747:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;11841:410:::0;385:10;11962:4;12011:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12011:34:0;;;;;;;;;;12064:35;;;;12056:85;;;;-1:-1:-1;;;12056:85:0;;11279:2:1;12056:85:0;;;11261:21:1;11318:2;11298:18;;;11291:30;11357:34;11337:18;;;11330:62;-1:-1:-1;;;11408:18:1;;;11401:35;11453:19;;12056:85:0;11077:401:1;12056:85:0;12152:67;385:10;12175:7;12184:34;12203:15;12184:16;:34;:::i;12152:67::-;-1:-1:-1;12239:4:0;;11841:410;-1:-1:-1;;;11841:410:0:o;12259:165::-;12337:4;12354:40;12364:10;12376:9;12387:6;12354:9;:40::i;18606:115::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;18686:15:::1;:27:::0;;-1:-1:-1;;;;;;18686:27:0::1;-1:-1:-1::0;;;;;18686:27:0;;;::::1;::::0;;;::::1;::::0;;18606:115::o;18421:177::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;18503:14:::1;::::0;-1:-1:-1;;;18503:14:0;::::1;;;18502:15;18494:65;;;::::0;-1:-1:-1;;;18494:65:0;;11685:2:1;18494:65:0::1;::::0;::::1;11667:21:1::0;11724:2;11704:18;;;11697:30;11763:34;11743:18;;;11736:62;-1:-1:-1;;;11814:18:1;;;11807:35;11859:19;;18494:65:0::1;11483:401:1::0;18494:65:0::1;18570:8;:20:::0;18421:177::o;7607:192::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7696:22:0;::::1;7688:73;;;::::0;-1:-1:-1;;;7688:73:0;;12091:2:1;7688:73:0::1;::::0;::::1;12073:21:1::0;12130:2;12110:18;;;12103:30;12169:34;12149:18;;;12142:62;-1:-1:-1;;;12220:18:1;;;12213:36;12266:19;;7688:73:0::1;11889:402:1::0;7688:73:0::1;7772:19;7782:8;7772:9;:19::i;:::-;7607:192:::0;:::o;19136:::-;7355:6;;-1:-1:-1;;;;;7355:6:0;385:10;7417:23;7409:68;;;;-1:-1:-1;;;7409:68:0;;;;;;;:::i;:::-;19224:9:::1;19219:102;19243:8;:15;19239:1;:19;19219:102;;;19305:4;19280:9;:22;19290:8;19299:1;19290:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19280:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19280:22:0;:29;;-1:-1:-1;;19280:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19260:3;::::1;::::0;::::1;:::i;:::-;;;;19219:102;;6176:380:::0;-1:-1:-1;;;;;6312:19:0;;6304:68;;;;-1:-1:-1;;;6304:68:0;;12498:2:1;6304:68:0;;;12480:21:1;12537:2;12517:18;;;12510:30;12576:34;12556:18;;;12549:62;-1:-1:-1;;;12627:18:1;;;12620:34;12671:19;;6304:68:0;12296:400:1;6304:68:0;-1:-1:-1;;;;;6391:21:0;;6383:68;;;;-1:-1:-1;;;6383:68:0;;12903:2:1;6383:68:0;;;12885:21:1;12942:2;12922:18;;;12915:30;12981:34;12961:18;;;12954:62;-1:-1:-1;;;13032:18:1;;;13025:32;13074:19;;6383:68:0;12701:398:1;6383:68:0;-1:-1:-1;;;;;6464:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6516:32;;1869:25:1;;;6516:32:0;;1842:18:1;6516:32:0;;;;;;;6176:380;;;:::o;12432:2851::-;12582:1;12573:6;:10;12565:64;;;;-1:-1:-1;;;12565:64:0;;13306:2:1;12565:64:0;;;13288:21:1;13345:2;13325:18;;;13318:30;13384:34;13364:18;;;13357:62;-1:-1:-1;;;13435:18:1;;;13428:39;13484:19;;12565:64:0;13104:405:1;12565:64:0;-1:-1:-1;;;;;12647:17:0;;;;;;:9;:17;;;;;;;;12646:18;:43;;;;-1:-1:-1;;;;;;12669:20:0;;;;;;:9;:20;;;;;;;;12668:21;12646:43;12642:122;;;12714:14;;-1:-1:-1;;;12714:14:0;;;;12706:46;;;;-1:-1:-1;;;12706:46:0;;13716:2:1;12706:46:0;;;13698:21:1;13755:2;13735:18;;;13728:30;-1:-1:-1;;;13774:18:1;;;13767:49;13833:18;;12706:46:0;13514:343:1;12706:46:0;7355:6;;-1:-1:-1;;;;;7355:6:0;12780:9;:20;12776:116;;12817:42;12833:6;12841:9;12852:6;12817:15;:42::i;12776:116::-;12918:4;;-1:-1:-1;;;;;12908:14:0;;;12918:4;;12908:14;:39;;;;-1:-1:-1;;;;;;12927:20:0;;;;;;:9;:20;;;;;;;;12926:21;12908:39;:59;;;;-1:-1:-1;12952:15:0;;-1:-1:-1;;;12952:15:0;;;;12951:16;12908:59;12904:215;;;13025:14;;13015:6;12992:20;13002:9;-1:-1:-1;;;;;2782:18:0;2755:7;2782:18;;;;;;;;;;;;2681:127;12992:20;:29;;;;:::i;:::-;:47;;12984:123;;;;-1:-1:-1;;;12984:123:0;;14064:2:1;12984:123:0;;;14046:21:1;;;14083:18;;;14076:30;14142:34;14122:18;;;14115:62;14194:18;;12984:123:0;13862:356:1;12984:123:0;13145:4;;-1:-1:-1;;;;;13135:14:0;;;13145:4;;13135:14;;;;:39;;-1:-1:-1;;;;;;13154:20:0;;;;;;:9;:20;;;;;;;;13153:21;13135:39;:61;;;;-1:-1:-1;;;;;;13179:17:0;;;;;;:9;:17;;;;;;;;13178:18;13135:61;:81;;;;-1:-1:-1;13201:15:0;;-1:-1:-1;;;13201:15:0;;;;13200:16;13135:81;13131:315;;;13263:4;;-1:-1:-1;;;;;13250:17:0;;;13263:4;;13250:17;13246:189;;13329:14;;13319:6;13296:20;13306:9;-1:-1:-1;;;;;2782:18:0;2755:7;2782:18;;;;;;;;;;;;2681:127;13296:20;:29;;;;:::i;:::-;:47;;13288:131;;;;-1:-1:-1;;;13288:131:0;;14064:2:1;13288:131:0;;;14046:21:1;;;14083:18;;;14076:30;14142:34;14122:18;;;14115:62;14194:18;;13288:131:0;13862:356:1;13288:131:0;-1:-1:-1;;;;;13462:17:0;;;;;;:9;:17;;;;;;;;;:41;;-1:-1:-1;;;;;;13483:20:0;;;;;;:9;:20;;;;;;;;13462:41;13458:268;;;-1:-1:-1;;;;;13523:17:0;;;;;;:9;:17;;;;;;;;13520:195;;;13561:42;13576:6;13584:9;13596:6;13561:14;:42::i;13520:195::-;13681:18;:12;13696:3;13681:18;:::i;:::-;13670:8;:29;13520:195;13738:15;13764:14;13789:11;13811:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;13811:25:0;-1:-1:-1;;;;;13870:17:0;;13849;13870;;;:9;:17;;;;;;;;13869:18;:56;;;;-1:-1:-1;;;;;;13905:20:0;;;;;;:9;:20;;;;;;;;13904:21;13869:56;:112;;;;;13973:8;;13957:13;;:24;;;;:::i;:::-;13942:12;:39;13869:112;14069:15;;13849:132;;-1:-1:-1;;;;14069:15:0;;;;;:36;;-1:-1:-1;;;;;;14088:17:0;;;;;;:9;:17;;;;;;;;14069:36;:60;;;-1:-1:-1;;;;;;14109:20:0;;;;;;:9;:20;;;;;;;;14069:60;14065:634;;;14164:1;14158:7;;14065:634;;;14234:4;;-1:-1:-1;;;;;14221:17:0;;;14234:4;;14221:17;:34;;;;;14243:12;14242:13;14221:34;14217:482;;;14338:9;:19;14299;;:58;;14338:19;14299:58;:::i;:::-;14272:85;;14381:7;14372:16;;14217:482;;;14411:12;14406:293;;14502:5;:15;14467;;:50;;14502:15;14467:50;:::i;:::-;14564:20;;;;;;;;;14579:5;14564:20;;;;;;;;;14440:77;;-1:-1:-1;14440:77:0;;-1:-1:-1;14564:20:0;-1:-1:-1;14406:293:0;;;14606:12;14602:97;;;14645:9;;;-1:-1:-1;14645:9:0;;-1:-1:-1;14602:97:0;14737:3;14718:15;14727:6;14718;:15;:::i;:::-;14717:23;;;;:::i;:::-;14854:18;;14711:29;;-1:-1:-1;;;;14854:18:0;;;;:36;;;;-1:-1:-1;14886:4:0;;-1:-1:-1;;;;;14876:14:0;;;14886:4;;14876:14;;14854:36;14850:76;;;14892:34;14904:7;14913:12;14892:11;:34::i;:::-;14968:48;14984:6;14992:9;15003:12;15012:3;15003:6;:12;:::i;:::-;14968:15;:48::i;:::-;15031:7;;15027:249;;15103:11;;15099:164;;15135:17;15176:3;15156:16;15165:7;15156:6;:16;:::i;:::-;15155:24;;;;:::i;:::-;15135:44;;15198:49;15214:6;15230:4;15237:9;15198:15;:49::i;:::-;15116:147;15099:164;12554:2729;;;;;12432:2851;;;:::o;7807:173::-;7882:6;;;-1:-1:-1;;;;;7899:17:0;;;-1:-1:-1;;;;;;7899:17:0;;;;;;;7932:40;;7882:6;;;7899:17;7882:6;;7932:40;;7863:16;;7932:40;7852:128;7807:173;:::o;5157:638::-;-1:-1:-1;;;;;5297:20:0;;5289:70;;;;-1:-1:-1;;;5289:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5378:23:0;;5370:71;;;;-1:-1:-1;;;5370:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5538:17:0;;5514:21;5538:17;;;;;;;;;;;5574:23;;;;5566:74;;;;-1:-1:-1;;;5566:74:0;;15457:2:1;5566:74:0;;;15439:21:1;15496:2;15476:18;;;15469:30;15535:34;15515:18;;;15508:62;-1:-1:-1;;;15586:18:1;;;15579:36;15632:19;;5566:74:0;15255:402:1;5566:74:0;5671:22;5687:6;5671:13;:22;:::i;:::-;-1:-1:-1;;;;;5651:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5704:20;;;;;;;;:30;;5728:6;;5651:9;5704:30;;5728:6;;5704:30;:::i;:::-;;;;;;;;5769:9;-1:-1:-1;;;;;5752:35:0;5761:6;-1:-1:-1;;;;;5752:35:0;;5780:6;5752:35;;;;1869:25:1;;1857:2;1842:18;;1723:177;5752:35:0;;;;;;;;5278:517;5157:638;;;:::o;3444:549::-;-1:-1:-1;;;;;3583:20:0;;3575:70;;;;-1:-1:-1;;;3575:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3664:23:0;;3656:71;;;;-1:-1:-1;;;3656:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3830:17:0;;;3806:21;3830:17;;;;;;;;;;;;3902:20;;;;;;;:30;;3926:6;;3806:21;3902:30;;3926:6;;3902:30;:::i;15291:1504::-;9952:15;;-1:-1:-1;;;9952:15:0;;;;9947:125;;9984:15;:22;;-1:-1:-1;;;;9984:22:0;-1:-1:-1;;;9984:22:0;;;15381:49;;15412:7:::1;15381:49;15486:4;15442:23;2782:18:::0;;;;;;;;;;;15526:23:::1;::::0;15507:42;::::1;15503:1285;;15596:1;15570:23;;:27;15566:109;;;-1:-1:-1::0;15636:23:0::1;::::0;15566:109:::1;15746:19;15768:11;:7:::0;15778:1:::1;15768:11;:::i;:::-;15746:33;;15794:32;15888:11;15848:9;:19;;;15830:15;:37;;;;:::i;:::-;15829:70;;;;:::i;:::-;15794:105:::0;-1:-1:-1;15914:14:0::1;15931:42;15794:105:::0;15931:15;:42:::1;:::i;:::-;15914:59:::0;-1:-1:-1;16015:21:0::1;16053:24;15914:59:::0;16053:16:::1;:24::i;:::-;16094:20;16117:38;16141:14:::0;16117:21:::1;:38;:::i;:::-;16094:61;;16170:19;16222:9;:19;;;16208:11;:33;;;;:::i;:::-;16192:50;::::0;:12;:50:::1;:::i;:::-;16170:72;;16257:29;16303:9;:19;;;16289:11;:33;;;;:::i;:::-;16257:65:::0;-1:-1:-1;16343:25:0;;16339:161:::1;;16423:61;16436:24;16462:21;16423:12;:61::i;:::-;16516:15;16560:1:::0;16549:8:::1;;16534:12;:23;;;;:::i;:::-;:27;16516:45;;16578:20;16601:10;:54;;16654:1;16601:54;;;16632:19:::0;;16614:15:::1;:11:::0;16628:1:::1;16614:15;:::i;:::-;:37;;;;:::i;:::-;16578:77:::0;-1:-1:-1;16674:16:0;;16670:105:::1;;16719:15;::::0;16711:48:::1;::::0;-1:-1:-1;;;;;16719:15:0::1;16746:12:::0;16711:34:::1;:48::i;:::-;15551:1237;;;;;;;;;15503:1285;15371:1424;10021:1;10037:15:::0;:23;;-1:-1:-1;;;;10037:23:0;;;15291:1504;;:::o;16803:526::-;16945:16;;;16959:1;16945:16;;;;;;;;16921:21;;16945:16;;;;;;;;;;-1:-1:-1;16945:16:0;16921:40;;16990:4;16972;16977:1;16972:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16972:23:0;;;:7;;;;;;;;;;:23;;;;17016:6;;:13;;;-1:-1:-1;;;17016:13:0;;;;:6;;;;;:11;;:13;;;;;16972:7;;17016:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17006:4;17011:1;17006:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17006:23:0;;;:7;;;;;;;;;:23;17074:6;;17042:53;;17059:4;;17074:6;17083:11;17042:8;:53::i;:::-;17134:6;;:187;;-1:-1:-1;;;17134:187:0;;-1:-1:-1;;;;;17134:6:0;;;;:57;;:187;;17206:11;;17134:6;;17248:4;;17275;;17295:15;;17134:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16858:471;16803:526;:::o;17337:500::-;17517:6;;17485:53;;17502:4;;-1:-1:-1;;;;;17517:6:0;17526:11;17485:8;:53::i;:::-;17581:6;;:248;;-1:-1:-1;;;17581:248:0;;-1:-1:-1;;;;;17581:6:0;;;;:22;;17612:9;;17581:248;;17646:4;;17666:11;;17581:6;;;;9645:42;;17803:15;;17581:248;;;:::i;6725:319::-;6840:6;6815:21;:31;;6807:73;;;;-1:-1:-1;;;6807:73:0;;16849:2:1;6807:73:0;;;16831:21:1;16888:2;16868:18;;;16861:30;16927:31;16907:18;;;16900:59;16976:18;;6807:73:0;16647:353:1;6807:73:0;6894:12;6912:9;-1:-1:-1;;;;;6912:14:0;6935:6;6912:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6893:54;;;6966:7;6958:78;;;;-1:-1:-1;;;6958:78:0;;17417:2:1;6958:78:0;;;17399:21:1;17456:2;17436:18;;;17429:30;17495:34;17475:18;;;17468:62;17566:28;17546:18;;;17539:56;17612:19;;6958:78:0;17215:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:118::-;1440:5;1433:13;1426:21;1419:5;1416:32;1406:60;;1462:1;1459;1452:12;1477:241;1533:6;1586:2;1574:9;1565:7;1561:23;1557:32;1554:52;;;1602:1;1599;1592:12;1554:52;1641:9;1628:23;1660:28;1682:5;1660:28;:::i;:::-;1707:5;1477:241;-1:-1:-1;;;1477:241:1:o;1905:456::-;1982:6;1990;1998;2051:2;2039:9;2030:7;2026:23;2022:32;2019:52;;;2067:1;2064;2057:12;2019:52;2106:9;2093:23;2125:31;2150:5;2125:31;:::i;:::-;2175:5;-1:-1:-1;2232:2:1;2217:18;;2204:32;2245:33;2204:32;2245:33;:::i;:::-;1905:456;;2297:7;;-1:-1:-1;;;2351:2:1;2336:18;;;;2323:32;;1905:456::o;2366:127::-;2427:10;2422:3;2418:20;2415:1;2408:31;2458:4;2455:1;2448:15;2482:4;2479:1;2472:15;2498:1121;2582:6;2613:2;2656;2644:9;2635:7;2631:23;2627:32;2624:52;;;2672:1;2669;2662:12;2624:52;2712:9;2699:23;2741:18;2782:2;2774:6;2771:14;2768:34;;;2798:1;2795;2788:12;2768:34;2836:6;2825:9;2821:22;2811:32;;2881:7;2874:4;2870:2;2866:13;2862:27;2852:55;;2903:1;2900;2893:12;2852:55;2939:2;2926:16;2961:2;2957;2954:10;2951:36;;;2967:18;;:::i;:::-;3013:2;3010:1;3006:10;3045:2;3039:9;3108:2;3104:7;3099:2;3095;3091:11;3087:25;3079:6;3075:38;3163:6;3151:10;3148:22;3143:2;3131:10;3128:18;3125:46;3122:72;;;3174:18;;:::i;:::-;3210:2;3203:22;3260:18;;;3294:15;;;;-1:-1:-1;3336:11:1;;;3332:20;;;3364:19;;;3361:39;;;3396:1;3393;3386:12;3361:39;3420:11;;;;3440:148;3456:6;3451:3;3448:15;3440:148;;;3522:23;3541:3;3522:23;:::i;:::-;3510:36;;3473:12;;;;3566;;;;3440:148;;;3607:6;2498:1121;-1:-1:-1;;;;;;;;2498:1121:1:o;3813:180::-;3872:6;3925:2;3913:9;3904:7;3900:23;3896:32;3893:52;;;3941:1;3938;3931:12;3893:52;-1:-1:-1;3964:23:1;;3813:180;-1:-1:-1;3813:180:1:o;3998:247::-;4057:6;4110:2;4098:9;4089:7;4085:23;4081:32;4078:52;;;4126:1;4123;4116:12;4078:52;4165:9;4152:23;4184:31;4209:5;4184:31;:::i;4711:388::-;4779:6;4787;4840:2;4828:9;4819:7;4815:23;4811:32;4808:52;;;4856:1;4853;4846:12;4808:52;4895:9;4882:23;4914:31;4939:5;4914:31;:::i;:::-;4964:5;-1:-1:-1;5021:2:1;5006:18;;4993:32;5034:33;4993:32;5034:33;:::i;:::-;5086:7;5076:17;;;4711:388;;;;;:::o;5327:356::-;5529:2;5511:21;;;5548:18;;;5541:30;5607:34;5602:2;5587:18;;5580:62;5674:2;5659:18;;5327:356::o;5688:251::-;5758:6;5811:2;5799:9;5790:7;5786:23;5782:32;5779:52;;;5827:1;5824;5817:12;5779:52;5859:9;5853:16;5878:31;5903:5;5878:31;:::i;6253:607::-;-1:-1:-1;;;;;6612:15:1;;;6594:34;;6659:2;6644:18;;6637:34;;;;6702:2;6687:18;;6680:34;;;;6745:2;6730:18;;6723:34;;;;6794:15;;;6788:3;6773:19;;6766:44;6574:3;6826:19;;6819:35;;;;6543:3;6528:19;;6253:607::o;6865:306::-;6953:6;6961;6969;7022:2;7010:9;7001:7;6997:23;6993:32;6990:52;;;7038:1;7035;7028:12;6990:52;7067:9;7061:16;7051:26;;7117:2;7106:9;7102:18;7096:25;7086:35;;7161:2;7150:9;7146:18;7140:25;7130:35;;6865:306;;;;;:::o;7176:380::-;7255:1;7251:12;;;;7298;;;7319:61;;7373:4;7365:6;7361:17;7351:27;;7319:61;7426:2;7418:6;7415:14;7395:18;7392:38;7389:161;;7472:10;7467:3;7463:20;7460:1;7453:31;7507:4;7504:1;7497:15;7535:4;7532:1;7525:15;7389:161;;7176:380;;;:::o;7970:127::-;8031:10;8026:3;8022:20;8019:1;8012:31;8062:4;8059:1;8052:15;8086:4;8083:1;8076:15;8102:128;8169:9;;;8190:11;;;8187:37;;;8204:18;;:::i;8235:127::-;8296:10;8291:3;8287:20;8284:1;8277:31;8327:4;8324:1;8317:15;8351:4;8348:1;8341:15;8367:135;8406:3;8427:17;;;8424:43;;8447:18;;:::i;:::-;-1:-1:-1;8494:1:1;8483:13;;8367:135::o;8862:125::-;8927:9;;;8948:10;;;8945:36;;;8961:18;;:::i;8992:422::-;9081:1;9124:5;9081:1;9138:270;9159:7;9149:8;9146:21;9138:270;;;9218:4;9214:1;9210:6;9206:17;9200:4;9197:27;9194:53;;;9227:18;;:::i;:::-;9277:7;9267:8;9263:22;9260:55;;;9297:16;;;;9260:55;9376:22;;;;9336:15;;;;9138:270;;;9142:3;8992:422;;;;;:::o;9419:806::-;9468:5;9498:8;9488:80;;-1:-1:-1;9539:1:1;9553:5;;9488:80;9587:4;9577:76;;-1:-1:-1;9624:1:1;9638:5;;9577:76;9669:4;9687:1;9682:59;;;;9755:1;9750:130;;;;9662:218;;9682:59;9712:1;9703:10;;9726:5;;;9750:130;9787:3;9777:8;9774:17;9771:43;;;9794:18;;:::i;:::-;-1:-1:-1;;9850:1:1;9836:16;;9865:5;;9662:218;;9964:2;9954:8;9951:16;9945:3;9939:4;9936:13;9932:36;9926:2;9916:8;9913:16;9908:2;9902:4;9899:12;9895:35;9892:77;9889:159;;;-1:-1:-1;10001:19:1;;;10033:5;;9889:159;10080:34;10105:8;10099:4;10080:34;:::i;:::-;10150:6;10146:1;10142:6;10138:19;10129:7;10126:32;10123:58;;;10161:18;;:::i;:::-;10199:20;;9419:806;-1:-1:-1;;;9419:806:1:o;10230:140::-;10288:5;10317:47;10358:4;10348:8;10344:19;10338:4;10317:47;:::i;10375:168::-;10448:9;;;10479;;10496:15;;;10490:22;;10476:37;10466:71;;10517:18;;:::i;10827:245::-;10894:6;10947:2;10935:9;10926:7;10922:23;10918:32;10915:52;;;10963:1;10960;10953:12;10915:52;10995:9;10989:16;11014:28;11036:5;11014:28;:::i;14223:217::-;14263:1;14289;14279:132;;14333:10;14328:3;14324:20;14321:1;14314:31;14368:4;14365:1;14358:15;14396:4;14393:1;14386:15;14279:132;-1:-1:-1;14425:9:1;;14223:217::o;14445:401::-;14647:2;14629:21;;;14686:2;14666:18;;;14659:30;14725:34;14720:2;14705:18;;14698:62;-1:-1:-1;;;14791:2:1;14776:18;;14769:35;14836:3;14821:19;;14445:401::o;14851:399::-;15053:2;15035:21;;;15092:2;15072:18;;;15065:30;15131:34;15126:2;15111:18;;15104:62;-1:-1:-1;;;15197:2:1;15182:18;;15175:33;15240:3;15225:19;;14851:399::o;15662:980::-;15924:4;15972:3;15961:9;15957:19;16003:6;15992:9;15985:25;16029:2;16067:6;16062:2;16051:9;16047:18;16040:34;16110:3;16105:2;16094:9;16090:18;16083:31;16134:6;16169;16163:13;16200:6;16192;16185:22;16238:3;16227:9;16223:19;16216:26;;16277:2;16269:6;16265:15;16251:29;;16298:1;16308:195;16322:6;16319:1;16316:13;16308:195;;;16387:13;;-1:-1:-1;;;;;16383:39:1;16371:52;;16478:15;;;;16443:12;;;;16419:1;16337:9;16308:195;;;-1:-1:-1;;;;;;;16559:32:1;;;;16554:2;16539:18;;16532:60;-1:-1:-1;;;16623:3:1;16608:19;16601:35;16520:3;15662:980;-1:-1:-1;;;15662:980:1:o

Swarm Source

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