ETH Price: $2,638.32 (+0.82%)

Token

NCAT (NCAT)
 

Overview

Max Total Supply

10,000,000,000 NCAT

Holders

743

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000001910415028 NCAT

Value
$0.00
0xd02305ecdb7153736630865256353a46b0793865
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:
NCAT

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 1000 runs

Other Settings:
london EvmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 * https://ncatethtoken.fun
 * Telegram: https://t.me/NCATOfficial
 * Twitter: https://twitter.com/NCATEthToken
 * Total Supply: 10 Billion Tokens
 * Initial Max Wallet: 1%
 * Initial Max Tx: 0.5%
 * Set slippage to 3-4% : 1% to LP, 2% tax for Marketing
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.12;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        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 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    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 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");
    unchecked {
        _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");
    unchecked {
        _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");

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

        emit Transfer(sender, recipient, amount);
    }

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
    external
    payable
    returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
}

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

contract NCAT is ERC20, Ownable {

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address public MarketingAddress;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForTreasury;
    uint256 public tokensForLiquidity;

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event EnabledTrading(bool tradingActive);
    event RemovedLimits();
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event UpdatedMaxBuyAmount(uint256 newAmount);
    event UpdatedMaxSellAmount(uint256 newAmount);
    event UpdatedMaxWalletAmount(uint256 newAmount);
    event UpdatedMarketingAddress(address indexed newWallet);
    event UpdatedRewardsAddress(address indexed newWallet);
    event MaxTransactionExclusion(address _address, bool excluded);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("NCAT", "NCAT") {

        address newOwner = msg.sender; 

        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 10000000000 * 1e18;

        maxBuyAmount = totalSupply *  5 / 1000;
        maxSellAmount = totalSupply *  5 / 1000;
        maxWalletAmount = totalSupply * 10 / 1000;
        swapTokensAtAmount = totalSupply * 500 / 100000; 

        buyMarketingFee = 2;
        buyLiquidityFee = 1;
        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        sellMarketingFee = 2;
        sellLiquidityFee = 1;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        MarketingAddress = address(0x488d789771a78213047c056355Ca44e8A90484d3);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%");
        maxBuyAmount = newNum * (10**18);
        emit UpdatedMaxBuyAmount(maxBuyAmount);
    }

    function updateMaxSellAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max sell amount lower than 0.1%");
        maxSellAmount = newNum * (10**18);
        emit UpdatedMaxSellAmount(maxSellAmount);
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit RemovedLimits();
    }

    function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner {
        if(!isEx){
            require(updAds != uniswapV2Pair, "Cannot remove uniswap pair from max txn");
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 3 / 1000)/1e18, "Cannot set max wallet amount lower than 0.3%");
        maxWalletAmount = newNum * (10**18);
        emit UpdatedMaxWalletAmount(maxWalletAmount);
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= totalSupply() * 1 / 1000, "Swap amount cannot be higher than 0.1% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function updateBuyFees(uint256 _treasuryFee, uint256 _liquidityFee) external onlyOwner {
        buyMarketingFee = _treasuryFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee;
    }

    function updateSellFees(uint256 _treasuryFee, uint256 _liquidityFee) external onlyOwner {
        sellMarketingFee = _treasuryFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");

        if(limitsInEffect){
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)){
                if(!tradingActive){
                    require(_isExcludedMaxTransactionAmount[from] || _isExcludedMaxTransactionAmount[to], "Trading is not active.");
                    require(from == owner(), "Trading is enabled");
                }

                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy.");
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell.");
                }
                else if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]){
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = true;
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on Trades, not on wallet transfers

        if(takeFee){
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount * sellTotalFees /100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForTreasury += fees * sellMarketingFee / sellTotalFees;
            }
            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount * buyTotalFees / 100;
                tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForTreasury += fees * buyMarketingFee / buyTotalFees;
            }

            if(fees > 0){
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    // once enabled, can never be turned off
    function enableTrading(bool _status) external onlyOwner {
        require(!tradingActive, "Cannot re enable trading");
        tradingActive = _status;
        swapEnabled = true;
        emit EnabledTrading(tradingActive);
    }

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

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

    function setMarketingAddress(address _MarketingAddress) external onlyOwner {
        require(_MarketingAddress != address(0), "_MarketingAddress address cannot be 0");
        MarketingAddress = payable(_MarketingAddress);
        emit UpdatedMarketingAddress(_MarketingAddress);
    }

   
    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForTreasury;

        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10){
            contractBalance = swapTokensAtAmount * 10;
        }

        bool success;

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;

        swapTokensForEth(contractBalance - liquidityTokens);

        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForTreasury = ethBalance * tokensForTreasury / (totalTokensToSwap - (tokensForLiquidity/2));

        ethForLiquidity -= ethForTreasury;

        tokensForLiquidity = 0;
        tokensForTreasury = 0;

        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success,) = address(MarketingAddress).call{value: address(this).balance}("");
    }

    function claimStuckTokens(address _token) external onlyOwner {
        if (_token == address(0x0)) {
            payable(owner()).transfer(address(this).balance);
            return;
        }
        IERC20 erc20token = IERC20(_token);
        uint256 balance = erc20token.balanceOf(address(this));
        erc20token.transfer(owner(), balance);
    }
    
}

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":false,"internalType":"bool","name":"tradingActive","type":"bool"}],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedMarketingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedRewardsAddress","type":"event"},{"inputs":[],"name":"MarketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_MarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTreasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b805462ffffff60a01b1916600160a01b1790553480156200002657600080fd5b506040805180820182526004808252631390d05560e21b602080840182815285518087019096529285528401528151919291620000669160039162000723565b5080516200007c90600490602084019062000723565b505050600062000091620003c060201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062003819833981519152908290a35033737a250d5630b4cf539739df2c5dacb4c659f2488d620000f1816001620003c4565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001629190620007c9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d69190620007c9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024a9190620007c9565b6001600160a01b031660a08190526200026590600162000427565b6b204fce5e3e250261100000006103e86200028282600562000811565b6200028e919062000833565b6006556103e8620002a182600562000811565b620002ad919062000833565b6007556103e8620002c082600a62000811565b620002cc919062000833565b600855620186a0620002e1826101f462000811565b620002ed919062000833565b600a556002600d8190556001600e819055620003099162000856565b600c556002601081905560016011819055620003259162000856565b600f5562000335836001620003c4565b62000342306001620003c4565b6200035161dead6001620003c4565b600b80546001600160a01b03191673488d789771a78213047c056355ca44e8a90484d31790556200038483600162000493565b6200039130600162000493565b620003a061dead600162000493565b620003ac838262000541565b620003b78362000626565b505050620008ae565b3390565b6001600160a01b038216600081815260156020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601660205260409020805460ff1916821515179055620004578282620003c4565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620004e25760405162461bcd60e51b81526020600482018190526024820152600080516020620037f983398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005995760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004d9565b8060026000828254620005ad919062000856565b90915550506001600160a01b03821660009081526020819052604081208054839290620005dc90849062000856565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006715760405162461bcd60e51b81526020600482018190526024820152600080516020620037f98339815191526044820152606401620004d9565b6001600160a01b038116620006d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004d9565b6005546040516001600160a01b038084169216906000805160206200381983398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b828054620007319062000871565b90600052602060002090601f016020900481019282620007555760008555620007a0565b82601f106200077057805160ff1916838001178555620007a0565b82800160010185558215620007a0579182015b82811115620007a057825182559160200191906001019062000783565b50620007ae929150620007b2565b5090565b5b80821115620007ae5760008155600101620007b3565b600060208284031215620007dc57600080fd5b81516001600160a01b0381168114620007f457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200082e576200082e620007fb565b500290565b6000826200085157634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200086c576200086c620007fb565b500190565b600181811c908216806200088657607f821691505b60208210811415620008a857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051612ef462000905600039600081816104f401528181610e4a015261108f0152600081816103d70152818161286d015281816129260152818161297b015281816129f50152612a1c0152612ef46000f3fe60806040526004361061030c5760003560e01c806388e765ff1161019a578063c18bc195116100e1578063e2f456051161008a578063f2fde38b11610064578063f2fde38b146108be578063f6374342146108de578063f9d0831a146108f457600080fd5b8063e2f4560514610872578063f11a24d314610888578063f275f64b1461089e57600080fd5b8063d85ba063116100bb578063d85ba063146107f6578063dc3f0d0f1461080c578063dd62ed3e1461082c57600080fd5b8063c18bc195146107a0578063cc2ffe7c146107c0578063d257b34f146107d657600080fd5b8063a457c2d711610143578063b62496f51161011d578063b62496f51461072f578063bbc0c7421461075f578063c02466681461078057600080fd5b8063a457c2d7146106d9578063a9059cbb146106f9578063aa4bde281461071957600080fd5b80639213691311610174578063921369131461068e57806395d89b41146106a45780639a7a23d6146106b957600080fd5b806388e765ff1461063a5780638da5cb5b14610650578063906e9dd01461066e57600080fd5b8063395093511161025e5780636ddd171311610207578063751039fc116101e1578063751039fc146105ef5780637571336a146106045780637bce5a041461062457600080fd5b80636ddd17131461058357806370a08231146105a4578063715018a6146105da57600080fd5b806366ca9b831161023857806366ca9b831461053757806366d602ae146105575780636a486a8e1461056d57600080fd5b806339509351146104c257806349bd5a5e146104e25780634a62bb651461051657600080fd5b806318160ddd116102c05780632be32b611161029a5780632be32b6114610466578063313ce567146104865780633936e8b9146104a257600080fd5b806318160ddd146104115780631a8145bb1461043057806323b872dd1461044657600080fd5b8063095ea7b3116102f1578063095ea7b31461036557806310d5de53146103955780631694505e146103c557600080fd5b806302dbd8f81461031857806306fdde031461033a57600080fd5b3661031357005b600080fd5b34801561032457600080fd5b50610338610333366004612b0d565b610914565b005b34801561034657600080fd5b5061034f61097c565b60405161035c9190612b2f565b60405180910390f35b34801561037157600080fd5b50610385610380366004612b99565b610a0e565b604051901515815260200161035c565b3480156103a157600080fd5b506103856103b0366004612bc5565b60156020526000908152604090205460ff1681565b3480156103d157600080fd5b506103f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161035c565b34801561041d57600080fd5b506002545b60405190815260200161035c565b34801561043c57600080fd5b5061042260135481565b34801561045257600080fd5b50610385610461366004612be9565b610a24565b34801561047257600080fd5b50610338610481366004612c2a565b610ae3565b34801561049257600080fd5b506040516012815260200161035c565b3480156104ae57600080fd5b50600b546103f9906001600160a01b031681565b3480156104ce57600080fd5b506103856104dd366004612b99565b610c22565b3480156104ee57600080fd5b506103f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561052257600080fd5b50600b5461038590600160a01b900460ff1681565b34801561054357600080fd5b50610338610552366004612b0d565b610c5e565b34801561056357600080fd5b5061042260075481565b34801561057957600080fd5b50610422600f5481565b34801561058f57600080fd5b50600b5461038590600160b01b900460ff1681565b3480156105b057600080fd5b506104226105bf366004612bc5565b6001600160a01b031660009081526020819052604090205490565b3480156105e657600080fd5b50610338610cc1565b3480156105fb57600080fd5b50610338610d60565b34801561061057600080fd5b5061033861061f366004612c51565b610dfb565b34801561063057600080fd5b50610422600d5481565b34801561064657600080fd5b5061042260065481565b34801561065c57600080fd5b506005546001600160a01b03166103f9565b34801561067a57600080fd5b50610338610689366004612bc5565b610f1b565b34801561069a57600080fd5b5061042260105481565b3480156106b057600080fd5b5061034f611036565b3480156106c557600080fd5b506103386106d4366004612c51565b611045565b3480156106e557600080fd5b506103856106f4366004612b99565b611143565b34801561070557600080fd5b50610385610714366004612b99565b6111f4565b34801561072557600080fd5b5061042260085481565b34801561073b57600080fd5b5061038561074a366004612bc5565b60166020526000908152604090205460ff1681565b34801561076b57600080fd5b50600b5461038590600160a81b900460ff1681565b34801561078c57600080fd5b5061033861079b366004612c51565b611201565b3480156107ac57600080fd5b506103386107bb366004612c2a565b6112a8565b3480156107cc57600080fd5b5061042260125481565b3480156107e257600080fd5b506103386107f1366004612c2a565b6113e0565b34801561080257600080fd5b50610422600c5481565b34801561081857600080fd5b50610338610827366004612c2a565b61155a565b34801561083857600080fd5b50610422610847366004612c8a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561087e57600080fd5b50610422600a5481565b34801561089457600080fd5b50610422600e5481565b3480156108aa57600080fd5b506103386108b9366004612cb8565b611692565b3480156108ca57600080fd5b506103386108d9366004612bc5565b6117d0565b3480156108ea57600080fd5b5061042260115481565b34801561090057600080fd5b5061033861090f366004612bc5565b6118fd565b6005546001600160a01b031633146109615760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f83398151915260448201526064015b60405180910390fd5b601082905560118190556109758183612ceb565b600f555050565b60606003805461098b90612d03565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612d03565b8015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b5050505050905090565b6000610a1b338484611ac5565b50600192915050565b6000610a31848484611c1d565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610acb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610958565b610ad88533858403611ac5565b506001949350505050565b6005546001600160a01b03163314610b2b5760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b670de0b6b3a76400006103e8610b4060025490565b610b4b906001612d3e565b610b559190612d5d565b610b5f9190612d5d565b811015610bd45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060448201527f7468616e20302e312500000000000000000000000000000000000000000000006064820152608401610958565b610be681670de0b6b3a7640000612d3e565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a1b918590610c59908690612ceb565b611ac5565b6005546001600160a01b03163314610ca65760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b600d829055600e819055610cba8183612ceb565b600c555050565b6005546001600160a01b03163314610d095760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805473ffffffffffffffffffffffffffffffffffffffff19169055565b6005546001600160a01b03163314610da85760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b600b80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610e435760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b80610ef0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610ef05760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201527f6d61782074786e000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f635760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b038116610fdf5760405162461bcd60e51b815260206004820152602560248201527f5f4d61726b6574696e674164647265737320616464726573732063616e6e6f7460448201527f20626520300000000000000000000000000000000000000000000000000000006064820152608401610958565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a990600090a250565b60606004805461098b90612d03565b6005546001600160a01b0316331461108d5760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156111355760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610958565b61113f82826123fe565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610958565b6111ea3385858403611ac5565b5060019392505050565b6000610a1b338484611c1d565b6005546001600160a01b031633146112495760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112f05760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b670de0b6b3a76400006103e861130560025490565b611310906003612d3e565b61131a9190612d5d565b6113249190612d5d565b8110156113995760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201527f6572207468616e20302e332500000000000000000000000000000000000000006064820152608401610958565b6113ab81670de0b6b3a7640000612d3e565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610c17565b6005546001600160a01b031633146114285760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b620186a061143560025490565b611440906001612d3e565b61144a9190612d5d565b8110156114bf5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e00000000000000000000006064820152608401610958565b6103e86114cb60025490565b6114d6906001612d3e565b6114e09190612d5d565b8111156115555760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20302e312520746f74616c20737570706c792e0000000000000000000000006064820152608401610958565b600a55565b6005546001600160a01b031633146115a25760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b670de0b6b3a76400006103e86115b760025490565b6115c2906001612d3e565b6115cc9190612d5d565b6115d69190612d5d565b81101561164b5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260448201527f207468616e20302e3125000000000000000000000000000000000000000000006064820152608401610958565b61165d81670de0b6b3a7640000612d3e565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610c17565b6005546001600160a01b031633146116da5760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b600b54600160a81b900460ff16156117345760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610958565b600b80547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff831515600160a81b908102919091167fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff90921691909117600160b01b1791829055604051910460ff16151581527fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe5208990602001610c17565b6005546001600160a01b031633146118185760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b0381166118945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610958565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6005546001600160a01b031633146119455760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b03811661198c576005546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561113f573d6000803e3d6000fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156119ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a129190612d7f565b9050816001600160a01b031663a9059cbb611a356005546001600160a01b031690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190612d98565b5050505b50565b6001600160a01b038316611b405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b038216611bbc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611c815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610958565b6001600160a01b038216611ce35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610958565b60008111611d335760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610958565b600b54600160a01b900460ff161561214a576005546001600160a01b03848116911614801590611d7157506005546001600160a01b03838116911614155b8015611d8557506001600160a01b03821615155b8015611d9c57506001600160a01b03821661dead14155b1561214a57600b54600160a81b900460ff16611e9a576001600160a01b03831660009081526015602052604090205460ff1680611df157506001600160a01b03821660009081526015602052604090205460ff165b611e3d5760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e000000000000000000006044820152606401610958565b6005546001600160a01b03848116911614611e9a5760405162461bcd60e51b815260206004820152601260248201527f54726164696e6720697320656e61626c656400000000000000000000000000006044820152606401610958565b6001600160a01b03831660009081526016602052604090205460ff168015611edb57506001600160a01b03821660009081526015602052604090205460ff16155b15611fd157600654811115611f585760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178206275792e0000000000000000000000000000000000000000000000006064820152608401610958565b6008546001600160a01b038316600090815260208190526040902054611f7e9083612ceb565b1115611fcc5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610958565b61214a565b6001600160a01b03821660009081526016602052604090205460ff16801561201257506001600160a01b03831660009081526015602052604090205460ff16155b1561208f57600754811115611fcc5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61782073656c6c2e000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b03821660009081526015602052604090205460ff161580156120d157506001600160a01b03831660009081526015602052604090205460ff16155b1561214a576008546001600160a01b0383166000908152602081905260409020546120fc9083612ceb565b111561214a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610958565b30600090815260208190526040902054600a54811080159081906121775750600b54600160b01b900460ff165b8015612186575060095460ff16155b80156121ab57506001600160a01b03851660009081526016602052604090205460ff16155b80156121d057506001600160a01b03851660009081526014602052604090205460ff16155b80156121f557506001600160a01b03841660009081526014602052604090205460ff16155b1561221a576009805460ff1916600117905561220f612468565b6009805460ff191690555b6001600160a01b03851660009081526014602052604090205460019060ff168061225c57506001600160a01b03851660009081526014602052604090205460ff165b15612265575060005b600081156123ea576001600160a01b03861660009081526016602052604090205460ff16801561229757506000600f54115b1561231f576064600f54866122ac9190612d3e565b6122b69190612d5d565b9050600f54601154826122c99190612d3e565b6122d39190612d5d565b601360008282546122e49190612ceb565b9091555050600f546010546122f99083612d3e565b6123039190612d5d565b601260008282546123149190612ceb565b909155506123cc9050565b6001600160a01b03871660009081526016602052604090205460ff16801561234957506000600c54115b156123cc576064600c548661235e9190612d3e565b6123689190612d5d565b9050600c54600e548261237b9190612d3e565b6123859190612d5d565b601360008282546123969190612ceb565b9091555050600c54600d546123ab9083612d3e565b6123b59190612d5d565b601260008282546123c69190612ceb565b90915550505b80156123dd576123dd8730836125cd565b6123e78186612db5565b94505b6123f58787876125cd565b50505050505050565b6001600160a01b0382166000908152601660205260409020805460ff191682151517905561242c82826127b3565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060125460135461248c9190612ceb565b9050811580612499575080155b156124a2575050565b600a80546124af91612d3e565b8211156124c657600a80546124c391612d3e565b91505b600080600283601354866124da9190612d3e565b6124e49190612d5d565b6124ee9190612d5d565b90506125026124fd8286612db5565b612816565b6013544790819060009061251890600290612d5d565b6125229087612db5565b60125461252f9085612d3e565b6125399190612d5d565b90506125458183612db5565b60006013819055601255915083158015906125605750600082115b1561256f5761256f84836129ef565b600b546040516001600160a01b03909116904790600081818185875af1925050503d80600081146125bc576040519150601f19603f3d011682016040523d82523d6000602084013e6125c1565b606091505b50505050505050505050565b6001600160a01b0383166126315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610958565b6001600160a01b0382166126935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610958565b6001600160a01b038316600090815260208190526040902054818110156127225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612759908490612ceb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127a591815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260156020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061284b5761284b612dcc565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ed9190612de2565b8160018151811061290057612900612dcc565b60200260200101906001600160a01b031690816001600160a01b03168152505061294b307f000000000000000000000000000000000000000000000000000000000000000084611ac5565b6040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906129b9908590600090869030904290600401612dff565b600060405180830381600087803b1580156129d357600080fd5b505af11580156129e7573d6000803e3d6000fd5b505050505050565b612a1a307f000000000000000000000000000000000000000000000000000000000000000084611ac5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823085600080612a616005546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612ae1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b069190612e70565b5050505050565b60008060408385031215612b2057600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612b5c57858101830151858201604001528201612b40565b81811115612b6e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611ac257600080fd5b60008060408385031215612bac57600080fd5b8235612bb781612b84565b946020939093013593505050565b600060208284031215612bd757600080fd5b8135612be281612b84565b9392505050565b600080600060608486031215612bfe57600080fd5b8335612c0981612b84565b92506020840135612c1981612b84565b929592945050506040919091013590565b600060208284031215612c3c57600080fd5b5035919050565b8015158114611ac257600080fd5b60008060408385031215612c6457600080fd5b8235612c6f81612b84565b91506020830135612c7f81612c43565b809150509250929050565b60008060408385031215612c9d57600080fd5b8235612ca881612b84565b91506020830135612c7f81612b84565b600060208284031215612cca57600080fd5b8135612be281612c43565b634e487b7160e01b600052601160045260246000fd5b60008219821115612cfe57612cfe612cd5565b500190565b600181811c90821680612d1757607f821691505b60208210811415612d3857634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615612d5857612d58612cd5565b500290565b600082612d7a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612d9157600080fd5b5051919050565b600060208284031215612daa57600080fd5b8151612be281612c43565b600082821015612dc757612dc7612cd5565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612df457600080fd5b8151612be281612b84565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e4f5784516001600160a01b031683529383019391830191600101612e2a565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e8557600080fd5b835192506020840151915060408401519050925092509256fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220487867ccc6d27324d33ebeef5748a9ed044be2a24d3943d251e2c8e8debc082964736f6c634300080c00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x60806040526004361061030c5760003560e01c806388e765ff1161019a578063c18bc195116100e1578063e2f456051161008a578063f2fde38b11610064578063f2fde38b146108be578063f6374342146108de578063f9d0831a146108f457600080fd5b8063e2f4560514610872578063f11a24d314610888578063f275f64b1461089e57600080fd5b8063d85ba063116100bb578063d85ba063146107f6578063dc3f0d0f1461080c578063dd62ed3e1461082c57600080fd5b8063c18bc195146107a0578063cc2ffe7c146107c0578063d257b34f146107d657600080fd5b8063a457c2d711610143578063b62496f51161011d578063b62496f51461072f578063bbc0c7421461075f578063c02466681461078057600080fd5b8063a457c2d7146106d9578063a9059cbb146106f9578063aa4bde281461071957600080fd5b80639213691311610174578063921369131461068e57806395d89b41146106a45780639a7a23d6146106b957600080fd5b806388e765ff1461063a5780638da5cb5b14610650578063906e9dd01461066e57600080fd5b8063395093511161025e5780636ddd171311610207578063751039fc116101e1578063751039fc146105ef5780637571336a146106045780637bce5a041461062457600080fd5b80636ddd17131461058357806370a08231146105a4578063715018a6146105da57600080fd5b806366ca9b831161023857806366ca9b831461053757806366d602ae146105575780636a486a8e1461056d57600080fd5b806339509351146104c257806349bd5a5e146104e25780634a62bb651461051657600080fd5b806318160ddd116102c05780632be32b611161029a5780632be32b6114610466578063313ce567146104865780633936e8b9146104a257600080fd5b806318160ddd146104115780631a8145bb1461043057806323b872dd1461044657600080fd5b8063095ea7b3116102f1578063095ea7b31461036557806310d5de53146103955780631694505e146103c557600080fd5b806302dbd8f81461031857806306fdde031461033a57600080fd5b3661031357005b600080fd5b34801561032457600080fd5b50610338610333366004612b0d565b610914565b005b34801561034657600080fd5b5061034f61097c565b60405161035c9190612b2f565b60405180910390f35b34801561037157600080fd5b50610385610380366004612b99565b610a0e565b604051901515815260200161035c565b3480156103a157600080fd5b506103856103b0366004612bc5565b60156020526000908152604090205460ff1681565b3480156103d157600080fd5b506103f97f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161035c565b34801561041d57600080fd5b506002545b60405190815260200161035c565b34801561043c57600080fd5b5061042260135481565b34801561045257600080fd5b50610385610461366004612be9565b610a24565b34801561047257600080fd5b50610338610481366004612c2a565b610ae3565b34801561049257600080fd5b506040516012815260200161035c565b3480156104ae57600080fd5b50600b546103f9906001600160a01b031681565b3480156104ce57600080fd5b506103856104dd366004612b99565b610c22565b3480156104ee57600080fd5b506103f97f000000000000000000000000109f39cf194252a251ab89572228fef89d0d8fb881565b34801561052257600080fd5b50600b5461038590600160a01b900460ff1681565b34801561054357600080fd5b50610338610552366004612b0d565b610c5e565b34801561056357600080fd5b5061042260075481565b34801561057957600080fd5b50610422600f5481565b34801561058f57600080fd5b50600b5461038590600160b01b900460ff1681565b3480156105b057600080fd5b506104226105bf366004612bc5565b6001600160a01b031660009081526020819052604090205490565b3480156105e657600080fd5b50610338610cc1565b3480156105fb57600080fd5b50610338610d60565b34801561061057600080fd5b5061033861061f366004612c51565b610dfb565b34801561063057600080fd5b50610422600d5481565b34801561064657600080fd5b5061042260065481565b34801561065c57600080fd5b506005546001600160a01b03166103f9565b34801561067a57600080fd5b50610338610689366004612bc5565b610f1b565b34801561069a57600080fd5b5061042260105481565b3480156106b057600080fd5b5061034f611036565b3480156106c557600080fd5b506103386106d4366004612c51565b611045565b3480156106e557600080fd5b506103856106f4366004612b99565b611143565b34801561070557600080fd5b50610385610714366004612b99565b6111f4565b34801561072557600080fd5b5061042260085481565b34801561073b57600080fd5b5061038561074a366004612bc5565b60166020526000908152604090205460ff1681565b34801561076b57600080fd5b50600b5461038590600160a81b900460ff1681565b34801561078c57600080fd5b5061033861079b366004612c51565b611201565b3480156107ac57600080fd5b506103386107bb366004612c2a565b6112a8565b3480156107cc57600080fd5b5061042260125481565b3480156107e257600080fd5b506103386107f1366004612c2a565b6113e0565b34801561080257600080fd5b50610422600c5481565b34801561081857600080fd5b50610338610827366004612c2a565b61155a565b34801561083857600080fd5b50610422610847366004612c8a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561087e57600080fd5b50610422600a5481565b34801561089457600080fd5b50610422600e5481565b3480156108aa57600080fd5b506103386108b9366004612cb8565b611692565b3480156108ca57600080fd5b506103386108d9366004612bc5565b6117d0565b3480156108ea57600080fd5b5061042260115481565b34801561090057600080fd5b5061033861090f366004612bc5565b6118fd565b6005546001600160a01b031633146109615760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f83398151915260448201526064015b60405180910390fd5b601082905560118190556109758183612ceb565b600f555050565b60606003805461098b90612d03565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612d03565b8015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b5050505050905090565b6000610a1b338484611ac5565b50600192915050565b6000610a31848484611c1d565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610acb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610958565b610ad88533858403611ac5565b506001949350505050565b6005546001600160a01b03163314610b2b5760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b670de0b6b3a76400006103e8610b4060025490565b610b4b906001612d3e565b610b559190612d5d565b610b5f9190612d5d565b811015610bd45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060448201527f7468616e20302e312500000000000000000000000000000000000000000000006064820152608401610958565b610be681670de0b6b3a7640000612d3e565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a1b918590610c59908690612ceb565b611ac5565b6005546001600160a01b03163314610ca65760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b600d829055600e819055610cba8183612ceb565b600c555050565b6005546001600160a01b03163314610d095760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805473ffffffffffffffffffffffffffffffffffffffff19169055565b6005546001600160a01b03163314610da85760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b600b80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610e435760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b80610ef0577f000000000000000000000000109f39cf194252a251ab89572228fef89d0d8fb86001600160a01b0316826001600160a01b03161415610ef05760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201527f6d61782074786e000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f635760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b038116610fdf5760405162461bcd60e51b815260206004820152602560248201527f5f4d61726b6574696e674164647265737320616464726573732063616e6e6f7460448201527f20626520300000000000000000000000000000000000000000000000000000006064820152608401610958565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a990600090a250565b60606004805461098b90612d03565b6005546001600160a01b0316331461108d5760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b7f000000000000000000000000109f39cf194252a251ab89572228fef89d0d8fb86001600160a01b0316826001600160a01b031614156111355760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610958565b61113f82826123fe565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610958565b6111ea3385858403611ac5565b5060019392505050565b6000610a1b338484611c1d565b6005546001600160a01b031633146112495760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112f05760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b670de0b6b3a76400006103e861130560025490565b611310906003612d3e565b61131a9190612d5d565b6113249190612d5d565b8110156113995760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201527f6572207468616e20302e332500000000000000000000000000000000000000006064820152608401610958565b6113ab81670de0b6b3a7640000612d3e565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610c17565b6005546001600160a01b031633146114285760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b620186a061143560025490565b611440906001612d3e565b61144a9190612d5d565b8110156114bf5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e00000000000000000000006064820152608401610958565b6103e86114cb60025490565b6114d6906001612d3e565b6114e09190612d5d565b8111156115555760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20302e312520746f74616c20737570706c792e0000000000000000000000006064820152608401610958565b600a55565b6005546001600160a01b031633146115a25760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b670de0b6b3a76400006103e86115b760025490565b6115c2906001612d3e565b6115cc9190612d5d565b6115d69190612d5d565b81101561164b5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260448201527f207468616e20302e3125000000000000000000000000000000000000000000006064820152608401610958565b61165d81670de0b6b3a7640000612d3e565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610c17565b6005546001600160a01b031633146116da5760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b600b54600160a81b900460ff16156117345760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610958565b600b80547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff831515600160a81b908102919091167fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff90921691909117600160b01b1791829055604051910460ff16151581527fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe5208990602001610c17565b6005546001600160a01b031633146118185760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b0381166118945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610958565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6005546001600160a01b031633146119455760405162461bcd60e51b81526020600482018190526024820152600080516020612e9f8339815191526044820152606401610958565b6001600160a01b03811661198c576005546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561113f573d6000803e3d6000fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156119ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a129190612d7f565b9050816001600160a01b031663a9059cbb611a356005546001600160a01b031690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190612d98565b5050505b50565b6001600160a01b038316611b405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b038216611bbc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611c815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610958565b6001600160a01b038216611ce35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610958565b60008111611d335760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610958565b600b54600160a01b900460ff161561214a576005546001600160a01b03848116911614801590611d7157506005546001600160a01b03838116911614155b8015611d8557506001600160a01b03821615155b8015611d9c57506001600160a01b03821661dead14155b1561214a57600b54600160a81b900460ff16611e9a576001600160a01b03831660009081526015602052604090205460ff1680611df157506001600160a01b03821660009081526015602052604090205460ff165b611e3d5760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e000000000000000000006044820152606401610958565b6005546001600160a01b03848116911614611e9a5760405162461bcd60e51b815260206004820152601260248201527f54726164696e6720697320656e61626c656400000000000000000000000000006044820152606401610958565b6001600160a01b03831660009081526016602052604090205460ff168015611edb57506001600160a01b03821660009081526015602052604090205460ff16155b15611fd157600654811115611f585760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178206275792e0000000000000000000000000000000000000000000000006064820152608401610958565b6008546001600160a01b038316600090815260208190526040902054611f7e9083612ceb565b1115611fcc5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610958565b61214a565b6001600160a01b03821660009081526016602052604090205460ff16801561201257506001600160a01b03831660009081526015602052604090205460ff16155b1561208f57600754811115611fcc5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61782073656c6c2e000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b03821660009081526015602052604090205460ff161580156120d157506001600160a01b03831660009081526015602052604090205460ff16155b1561214a576008546001600160a01b0383166000908152602081905260409020546120fc9083612ceb565b111561214a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610958565b30600090815260208190526040902054600a54811080159081906121775750600b54600160b01b900460ff165b8015612186575060095460ff16155b80156121ab57506001600160a01b03851660009081526016602052604090205460ff16155b80156121d057506001600160a01b03851660009081526014602052604090205460ff16155b80156121f557506001600160a01b03841660009081526014602052604090205460ff16155b1561221a576009805460ff1916600117905561220f612468565b6009805460ff191690555b6001600160a01b03851660009081526014602052604090205460019060ff168061225c57506001600160a01b03851660009081526014602052604090205460ff165b15612265575060005b600081156123ea576001600160a01b03861660009081526016602052604090205460ff16801561229757506000600f54115b1561231f576064600f54866122ac9190612d3e565b6122b69190612d5d565b9050600f54601154826122c99190612d3e565b6122d39190612d5d565b601360008282546122e49190612ceb565b9091555050600f546010546122f99083612d3e565b6123039190612d5d565b601260008282546123149190612ceb565b909155506123cc9050565b6001600160a01b03871660009081526016602052604090205460ff16801561234957506000600c54115b156123cc576064600c548661235e9190612d3e565b6123689190612d5d565b9050600c54600e548261237b9190612d3e565b6123859190612d5d565b601360008282546123969190612ceb565b9091555050600c54600d546123ab9083612d3e565b6123b59190612d5d565b601260008282546123c69190612ceb565b90915550505b80156123dd576123dd8730836125cd565b6123e78186612db5565b94505b6123f58787876125cd565b50505050505050565b6001600160a01b0382166000908152601660205260409020805460ff191682151517905561242c82826127b3565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060125460135461248c9190612ceb565b9050811580612499575080155b156124a2575050565b600a80546124af91612d3e565b8211156124c657600a80546124c391612d3e565b91505b600080600283601354866124da9190612d3e565b6124e49190612d5d565b6124ee9190612d5d565b90506125026124fd8286612db5565b612816565b6013544790819060009061251890600290612d5d565b6125229087612db5565b60125461252f9085612d3e565b6125399190612d5d565b90506125458183612db5565b60006013819055601255915083158015906125605750600082115b1561256f5761256f84836129ef565b600b546040516001600160a01b03909116904790600081818185875af1925050503d80600081146125bc576040519150601f19603f3d011682016040523d82523d6000602084013e6125c1565b606091505b50505050505050505050565b6001600160a01b0383166126315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610958565b6001600160a01b0382166126935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610958565b6001600160a01b038316600090815260208190526040902054818110156127225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610958565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612759908490612ceb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127a591815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260156020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061284b5761284b612dcc565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ed9190612de2565b8160018151811061290057612900612dcc565b60200260200101906001600160a01b031690816001600160a01b03168152505061294b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ac5565b6040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906129b9908590600090869030904290600401612dff565b600060405180830381600087803b1580156129d357600080fd5b505af11580156129e7573d6000803e3d6000fd5b505050505050565b612a1a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ac5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719823085600080612a616005546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612ae1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b069190612e70565b5050505050565b60008060408385031215612b2057600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612b5c57858101830151858201604001528201612b40565b81811115612b6e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611ac257600080fd5b60008060408385031215612bac57600080fd5b8235612bb781612b84565b946020939093013593505050565b600060208284031215612bd757600080fd5b8135612be281612b84565b9392505050565b600080600060608486031215612bfe57600080fd5b8335612c0981612b84565b92506020840135612c1981612b84565b929592945050506040919091013590565b600060208284031215612c3c57600080fd5b5035919050565b8015158114611ac257600080fd5b60008060408385031215612c6457600080fd5b8235612c6f81612b84565b91506020830135612c7f81612c43565b809150509250929050565b60008060408385031215612c9d57600080fd5b8235612ca881612b84565b91506020830135612c7f81612b84565b600060208284031215612cca57600080fd5b8135612be281612c43565b634e487b7160e01b600052601160045260246000fd5b60008219821115612cfe57612cfe612cd5565b500190565b600181811c90821680612d1757607f821691505b60208210811415612d3857634e487b7160e01b600052602260045260246000fd5b50919050565b6000816000190483118215151615612d5857612d58612cd5565b500290565b600082612d7a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612d9157600080fd5b5051919050565b600060208284031215612daa57600080fd5b8151612be281612c43565b600082821015612dc757612dc7612cd5565b500390565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612df457600080fd5b8151612be281612b84565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e4f5784516001600160a01b031683529383019391830191600101612e2a565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e8557600080fd5b835192506020840151915060408401519050925092509256fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220487867ccc6d27324d33ebeef5748a9ed044be2a24d3943d251e2c8e8debc082964736f6c634300080c0033

Deployed Bytecode Sourcemap

7208:12909:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12812:243;;;;;;;;;;-1:-1:-1;12812:243:0;;;;;:::i;:::-;;:::i;:::-;;1926:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2840:169;;;;;;;;;;-1:-1:-1;2840:169:0;;;;;:::i;:::-;;:::i;:::-;;;1513:14:1;;1506:22;1488:41;;1476:2;1461:18;2840:169:0;1348:187:1;8101:64:0;;;;;;;;;;-1:-1:-1;8101:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7357:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1974:55:1;;;1956:74;;1944:2;1929:18;7357:43:0;1792:244:1;2247:108:0;;;;;;;;;;-1:-1:-1;2335:12:0;;2247:108;;;2187:25:1;;;2175:2;2160:18;2247:108:0;2041:177:1;7946:33:0;;;;;;;;;;;;;;;;3017:480;;;;;;;;;;-1:-1:-1;3017:480:0;;;;;:::i;:::-;;:::i;10639:269::-;;;;;;;;;;-1:-1:-1;10639:269:0;;;;;:::i;:::-;;:::i;2146:93::-;;;;;;;;;;-1:-1:-1;2146:93:0;;2229:2;3011:36:1;;2999:2;2984:18;2146:93:0;2869:184:1;7524:31:0;;;;;;;;;;-1:-1:-1;7524:31:0;;;;-1:-1:-1;;;;;7524:31:0;;;3505:215;;;;;;;;;;-1:-1:-1;3505:215:0;;;;;:::i;:::-;;:::i;7407:38::-;;;;;;;;;;;;;;;7564:33;;;;;;;;;;-1:-1:-1;7564:33:0;;;;-1:-1:-1;;;7564:33:0;;;;;;12567:237;;;;;;;;;;-1:-1:-1;12567:237:0;;;;;:::i;:::-;;:::i;7283:28::-;;;;;;;;;;;;;;;;7794;;;;;;;;;;;;;;;;7644:31;;;;;;;;;;-1:-1:-1;7644:31:0;;;;-1:-1:-1;;;7644:31:0;;;;;;2363:127;;;;;;;;;;-1:-1:-1;2363:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2464:18:0;2437:7;2464:18;;;;;;;;;;;;2363:127;5967:150;;;;;;;;;;;;;:::i;11242:115::-;;;;;;;;;;;;;:::i;11580:267::-;;;;;;;;;;-1:-1:-1;11580:267:0;;;;;:::i;:::-;;:::i;7718:30::-;;;;;;;;;;;;;;;;7249:27;;;;;;;;;;;;;;;;5753:79;;;;;;;;;;-1:-1:-1;5818:6:0;;-1:-1:-1;;;;;5818:6:0;5753:79;;18279:289;;;;;;;;;;-1:-1:-1;18279:289:0;;;;;:::i;:::-;;:::i;7829:31::-;;;;;;;;;;;;;;;;2034:104;;;;;;;;;;;;;:::i;16959:246::-;;;;;;;;;;-1:-1:-1;16959:246:0;;;;;:::i;:::-;;:::i;3728:401::-;;;;;;;;;;-1:-1:-1;3728:401:0;;;;;:::i;:::-;;:::i;2498:175::-;;;;;;;;;;-1:-1:-1;2498:175:0;;;;;:::i;:::-;;:::i;7318:30::-;;;;;;;;;;;;;;;;8323:58;;;;;;;;;;-1:-1:-1;8323:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7604:33;;;;;;;;;;-1:-1:-1;7604:33:0;;;;-1:-1:-1;;;7604:33:0;;;;;;13063:182;;;;;;;;;;-1:-1:-1;13063:182:0;;;;;:::i;:::-;;:::i;11855:284::-;;;;;;;;;;-1:-1:-1;11855:284:0;;;;;:::i;:::-;;:::i;7907:32::-;;;;;;;;;;;;;;;;12209:350;;;;;;;;;;-1:-1:-1;12209:350:0;;;;;:::i;:::-;;:::i;7684:27::-;;;;;;;;;;;;;;;;10916:274;;;;;;;;;;-1:-1:-1;10916:274:0;;;;;:::i;:::-;;:::i;2681:151::-;;;;;;;;;;-1:-1:-1;2681:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2797:18:0;;;2770:7;2797:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2681:151;7482:33;;;;;;;;;;;;;;;;7755:30;;;;;;;;;;;;;;;;17507:234;;;;;;;;;;-1:-1:-1;17507:234:0;;;;;:::i;:::-;;:::i;6125:244::-;;;;;;;;;;-1:-1:-1;6125:244:0;;;;;:::i;:::-;;:::i;7867:31::-;;;;;;;;;;;;;;;;19748:360;;;;;;;;;;-1:-1:-1;19748:360:0;;;;;:::i;:::-;;:::i;12812:243::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;;;;;;;;;12911:16:::1;:31:::0;;;12953:16:::1;:32:::0;;;13012:35:::1;12972:13:::0;12930:12;13012:35:::1;:::i;:::-;12996:13;:51:::0;-1:-1:-1;;12812:243:0:o;1926:100::-;1980:13;2013:5;2006:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1926:100;:::o;2840:169::-;2923:4;2940:39;445:10;2963:7;2972:6;2940:8;:39::i;:::-;-1:-1:-1;2997:4:0;2840:169;;;;:::o;3017:480::-;3157:4;3174:36;3184:6;3192:9;3203:6;3174:9;:36::i;:::-;-1:-1:-1;;;;;3250:19:0;;3223:24;3250:19;;;:11;:19;;;;;;;;445:10;3250:33;;;;;;;;3302:26;;;;3294:79;;;;-1:-1:-1;;;3294:79:0;;5765:2:1;3294:79:0;;;5747:21:1;5804:2;5784:18;;;5777:30;5843:34;5823:18;;;5816:62;5914:10;5894:18;;;5887:38;5942:19;;3294:79:0;5563:404:1;3294:79:0;3401:57;3410:6;445:10;3451:6;3432:16;:25;3401:8;:57::i;:::-;-1:-1:-1;3485:4:0;;3017:480;-1:-1:-1;;;;3017:480:0:o;10639:269::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;10758:4:::1;10752;10732:13;2335:12:::0;;;2247:108;10732:13:::1;:17;::::0;10748:1:::1;10732:17;:::i;:::-;:24;;;;:::i;:::-;10731:31;;;;:::i;:::-;10721:6;:41;;10713:95;;;::::0;-1:-1:-1;;;10713:95:0;;6626:2:1;10713:95:0::1;::::0;::::1;6608:21:1::0;6665:2;6645:18;;;6638:30;6704:34;6684:18;;;6677:62;6775:11;6755:18;;;6748:39;6804:19;;10713:95:0::1;6424:405:1::0;10713:95:0::1;10834:17;:6:::0;10844::::1;10834:17;:::i;:::-;10819:12;:32:::0;;;10867:33:::1;::::0;2187:25:1;;;10867:33:0::1;::::0;2175:2:1;2160:18;10867:33:0::1;;;;;;;;10639:269:::0;:::o;3505:215::-;445:10;3593:4;3642:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3642:34:0;;;;;;;;;;3593:4;;3610:80;;3633:7;;3642:47;;3679:10;;3642:47;:::i;:::-;3610:8;:80::i;12567:237::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;12665:15:::1;:30:::0;;;12706:15:::1;:31:::0;;;12763:33:::1;12724:13:::0;12683:12;12763:33:::1;:::i;:::-;12748:12;:48:::0;-1:-1:-1;;12567:237:0:o;5967:150::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;6060:6:::1;::::0;6039:40:::1;::::0;6076:1:::1;::::0;-1:-1:-1;;;;;6060:6:0::1;::::0;6039:40:::1;::::0;6076:1;;6039:40:::1;6090:6;:19:::0;;-1:-1:-1;;6090:19:0::1;::::0;;5967:150::o;11242:115::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;11296:14:::1;:22:::0;;;::::1;::::0;;11334:15:::1;::::0;::::1;::::0;11313:5:::1;::::0;11334:15:::1;11242:115::o:0;11580:267::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;11676:4:::1;11672:111;;11714:13;-1:-1:-1::0;;;;;11704:23:0::1;:6;-1:-1:-1::0;;;;;11704:23:0::1;;;11696:75;;;::::0;-1:-1:-1;;;11696:75:0;;7036:2:1;11696:75:0::1;::::0;::::1;7018:21:1::0;7075:2;7055:18;;;7048:30;7114:34;7094:18;;;7087:62;7185:9;7165:18;;;7158:37;7212:19;;11696:75:0::1;6834:403:1::0;11696:75:0::1;-1:-1:-1::0;;;;;11793:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;11793:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11580:267::o;18279:289::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;-1:-1:-1;;;;;18373:31:0;::::1;18365:81;;;::::0;-1:-1:-1;;;18365:81:0;;7444:2:1;18365:81:0::1;::::0;::::1;7426:21:1::0;7483:2;7463:18;;;7456:30;7522:34;7502:18;;;7495:62;7593:7;7573:18;;;7566:35;7618:19;;18365:81:0::1;7242:401:1::0;18365:81:0::1;18457:16;:45:::0;;-1:-1:-1;;18457:45:0::1;-1:-1:-1::0;;;;;18457:45:0;::::1;::::0;;::::1;::::0;;;18518:42:::1;::::0;::::1;::::0;-1:-1:-1;;18518:42:0::1;18279:289:::0;:::o;2034:104::-;2090:13;2123:7;2116:14;;;;;:::i;16959:246::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;17068:13:::1;-1:-1:-1::0;;;;;17060:21:0::1;:4;-1:-1:-1::0;;;;;17060:21:0::1;;;17052:91;;;::::0;-1:-1:-1;;;17052:91:0;;7850:2:1;17052:91:0::1;::::0;::::1;7832:21:1::0;7889:2;7869:18;;;7862:30;7928:34;7908:18;;;7901:62;7999:27;7979:18;;;7972:55;8044:19;;17052:91:0::1;7648:421:1::0;17052:91:0::1;17156:41;17185:4;17191:5;17156:28;:41::i;:::-;16959:246:::0;;:::o;3728:401::-;445:10;3821:4;3865:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3865:34:0;;;;;;;;;;3918:35;;;;3910:85;;;;-1:-1:-1;;;3910:85:0;;8276:2:1;3910:85:0;;;8258:21:1;8315:2;8295:18;;;8288:30;8354:34;8334:18;;;8327:62;8425:7;8405:18;;;8398:35;8450:19;;3910:85:0;8074:401:1;3910:85:0;4023:67;445:10;4046:7;4074:15;4055:16;:34;4023:8;:67::i;:::-;-1:-1:-1;4117:4:0;;3728:401;-1:-1:-1;;;3728:401:0:o;2498:175::-;2584:4;2601:42;445:10;2625:9;2636:6;2601:9;:42::i;13063:182::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;-1:-1:-1;;;;;13148:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;13148:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13203:34;;1488:41:1;;;13203:34:0::1;::::0;1461:18:1;13203:34:0::1;;;;;;;13063:182:::0;;:::o;11855:284::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;11977:4:::1;11971;11951:13;2335:12:::0;;;2247:108;11951:13:::1;:17;::::0;11967:1:::1;11951:17;:::i;:::-;:24;;;;:::i;:::-;11950:31;;;;:::i;:::-;11940:6;:41;;11932:98;;;::::0;-1:-1:-1;;;11932:98:0;;8682:2:1;11932:98:0::1;::::0;::::1;8664:21:1::0;8721:2;8701:18;;;8694:30;8760:34;8740:18;;;8733:62;8831:14;8811:18;;;8804:42;8863:19;;11932:98:0::1;8480:408:1::0;11932:98:0::1;12059:17;:6:::0;12069::::1;12059:17;:::i;:::-;12041:15;:35:::0;;;12092:39:::1;::::0;2187:25:1;;;12092:39:0::1;::::0;2175:2:1;2160:18;12092:39:0::1;2041:177:1::0;12209:350:0;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;12333:6:::1;12313:13;2335:12:::0;;;2247:108;12313:13:::1;:17;::::0;12329:1:::1;12313:17;:::i;:::-;:26;;;;:::i;:::-;12300:9;:39;;12292:105;;;::::0;-1:-1:-1;;;12292:105:0;;9095:2:1;12292:105:0::1;::::0;::::1;9077:21:1::0;9134:2;9114:18;;;9107:30;9173:34;9153:18;;;9146:62;9244:23;9224:18;;;9217:51;9285:19;;12292:105:0::1;8893:417:1::0;12292:105:0::1;12449:4;12429:13;2335:12:::0;;;2247:108;12429:13:::1;:17;::::0;12445:1:::1;12429:17;:::i;:::-;:24;;;;:::i;:::-;12416:9;:37;;12408:102;;;::::0;-1:-1:-1;;;12408:102:0;;9517:2:1;12408:102:0::1;::::0;::::1;9499:21:1::0;9556:2;9536:18;;;9529:30;9595:34;9575:18;;;9568:62;9666:22;9646:18;;;9639:50;9706:19;;12408:102:0::1;9315:416:1::0;12408:102:0::1;12521:18;:30:::0;12209:350::o;10916:274::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;11036:4:::1;11030;11010:13;2335:12:::0;;;2247:108;11010:13:::1;:17;::::0;11026:1:::1;11010:17;:::i;:::-;:24;;;;:::i;:::-;11009:31;;;;:::i;:::-;10999:6;:41;;10991:96;;;::::0;-1:-1:-1;;;10991:96:0;;9938:2:1;10991:96:0::1;::::0;::::1;9920:21:1::0;9977:2;9957:18;;;9950:30;10016:34;9996:18;;;9989:62;10087:12;10067:18;;;10060:40;10117:19;;10991:96:0::1;9736:406:1::0;10991:96:0::1;11114:17;:6:::0;11124::::1;11114:17;:::i;:::-;11098:13;:33:::0;;;11147:35:::1;::::0;2187:25:1;;;11147:35:0::1;::::0;2175:2:1;2160:18;11147:35:0::1;2041:177:1::0;17507:234:0;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;17583:13:::1;::::0;-1:-1:-1;;;17583:13:0;::::1;;;17582:14;17574:51;;;::::0;-1:-1:-1;;;17574:51:0;;10349:2:1;17574:51:0::1;::::0;::::1;10331:21:1::0;10388:2;10368:18;;;10361:30;10427:26;10407:18;;;10400:54;10471:18;;17574:51:0::1;10147:348:1::0;17574:51:0::1;17636:13;:23:::0;;17670:18;17636:23;::::1;;-1:-1:-1::0;;;17636:23:0;;::::1;17670:18:::0;;;;;;;;;;;;-1:-1:-1;;;17670:18:0::1;::::0;;;;17704:29:::1;::::0;17719:13;::::1;17636:23;17719:13;1513:14:1::0;1506:22;1488:41;;17704:29:0::1;::::0;1476:2:1;1461:18;17704:29:0::1;1348:187:1::0;6125:244:0;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;-1:-1:-1;;;;;6214:22:0;::::1;6206:73;;;::::0;-1:-1:-1;;;6206:73:0;;10702:2:1;6206:73:0::1;::::0;::::1;10684:21:1::0;10741:2;10721:18;;;10714:30;10780:34;10760:18;;;10753:62;10851:8;10831:18;;;10824:36;10877:19;;6206:73:0::1;10500:402:1::0;6206:73:0::1;6316:6;::::0;6295:38:::1;::::0;-1:-1:-1;;;;;6295:38:0;;::::1;::::0;6316:6:::1;::::0;6295:38:::1;::::0;6316:6:::1;::::0;6295:38:::1;6344:6;:17:::0;;-1:-1:-1;;6344:17:0::1;-1:-1:-1::0;;;;;6344:17:0;;;::::1;::::0;;;::::1;::::0;;6125:244::o;19748:360::-;5880:6;;-1:-1:-1;;;;;5880:6:0;445:10;5880:22;5872:67;;;;-1:-1:-1;;;5872:67:0;;4640:2:1;5872:67:0;;;4622:21:1;;;4659:18;;;4652:30;-1:-1:-1;;;;;;;;;;;4698:18:1;;;4691:62;4770:18;;5872:67:0;4438:356:1;5872:67:0;-1:-1:-1;;;;;19824:22:0;::::1;19820:124;;5818:6:::0;;19863:48:::1;::::0;-1:-1:-1;;;;;5818:6:0;;;;19889:21:::1;19863:48:::0;::::1;;;::::0;::::1;::::0;;;19889:21;5818:6;19863:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;19820:124;20017:35;::::0;;;;20046:4:::1;20017:35;::::0;::::1;1956:74:1::0;19981:6:0;;19954:17:::1;::::0;-1:-1:-1;;;;;20017:20:0;::::1;::::0;::::1;::::0;1929:18:1;;20017:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19999:53;;20063:10;-1:-1:-1::0;;;;;20063:19:0::1;;20083:7;5818:6:::0;;-1:-1:-1;;;;;5818:6:0;;5753:79;20083:7:::1;20063:37;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;11288:55:1;;;20063:37:0::1;::::0;::::1;11270:74:1::0;11360:18;;;11353:34;;;11243:18;;20063:37:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19809:299;;5950:1;19748:360:::0;:::o;5046:380::-;-1:-1:-1;;;;;5182:19:0;;5174:68;;;;-1:-1:-1;;;5174:68:0;;11850:2:1;5174:68:0;;;11832:21:1;11889:2;11869:18;;;11862:30;11928:34;11908:18;;;11901:62;11999:6;11979:18;;;11972:34;12023:19;;5174:68:0;11648:400:1;5174:68:0;-1:-1:-1;;;;;5261:21:0;;5253:68;;;;-1:-1:-1;;;5253:68:0;;12255:2:1;5253:68:0;;;12237:21:1;12294:2;12274:18;;;12267:30;12333:34;12313:18;;;12306:62;12404:4;12384:18;;;12377:32;12426:19;;5253:68:0;12053:398:1;5253:68:0;-1:-1:-1;;;;;5334:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5386:32;;2187:25:1;;;5386:32:0;;2160:18:1;5386:32:0;;;;;;;5046:380;;;:::o;13253:3099::-;-1:-1:-1;;;;;13353:18:0;;13345:68;;;;-1:-1:-1;;;13345:68:0;;12658:2:1;13345:68:0;;;12640:21:1;12697:2;12677:18;;;12670:30;12736:34;12716:18;;;12709:62;-1:-1:-1;;;12787:18:1;;;12780:35;12832:19;;13345:68:0;12456:401:1;13345:68:0;-1:-1:-1;;;;;13432:16:0;;13424:64;;;;-1:-1:-1;;;13424:64:0;;13064:2:1;13424:64:0;;;13046:21:1;13103:2;13083:18;;;13076:30;13142:34;13122:18;;;13115:62;-1:-1:-1;;;13193:18:1;;;13186:33;13236:19;;13424:64:0;12862:399:1;13424:64:0;13516:1;13507:6;:10;13499:52;;;;-1:-1:-1;;;13499:52:0;;13468:2:1;13499:52:0;;;13450:21:1;13507:2;13487:18;;;13480:30;13546:31;13526:18;;;13519:59;13595:18;;13499:52:0;13266:353:1;13499:52:0;13567:14;;-1:-1:-1;;;13567:14:0;;;;13564:1222;;;5818:6;;-1:-1:-1;;;;;13601:15:0;;;5818:6;;13601:15;;;;:32;;-1:-1:-1;5818:6:0;;-1:-1:-1;;;;;13620:13:0;;;5818:6;;13620:13;;13601:32;:52;;;;-1:-1:-1;;;;;;13637:16:0;;;;13601:52;:77;;;;-1:-1:-1;;;;;;13657:21:0;;13671:6;13657:21;;13601:77;13597:1178;;;13702:13;;-1:-1:-1;;;13702:13:0;;;;13698:241;;-1:-1:-1;;;;;13747:37:0;;;;;;:31;:37;;;;;;;;;:76;;-1:-1:-1;;;;;;13788:35:0;;;;;;:31;:35;;;;;;;;13747:76;13739:111;;;;-1:-1:-1;;;13739:111:0;;13826:2:1;13739:111:0;;;13808:21:1;13865:2;13845:18;;;13838:30;13904:24;13884:18;;;13877:52;13946:18;;13739:111:0;13624:346:1;13739:111:0;5818:6;;-1:-1:-1;;;;;13881:15:0;;;5818:6;;13881:15;13873:46;;;;-1:-1:-1;;;13873:46:0;;14177:2:1;13873:46:0;;;14159:21:1;14216:2;14196:18;;;14189:30;14255:20;14235:18;;;14228:48;14293:18;;13873:46:0;13975:342:1;13873:46:0;-1:-1:-1;;;;;13991:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;14027:35:0;;;;;;:31;:35;;;;;;;;14026:36;13991:71;13987:773;;;14105:12;;14095:6;:22;;14087:75;;;;-1:-1:-1;;;14087:75:0;;14524:2:1;14087:75:0;;;14506:21:1;14563:2;14543:18;;;14536:30;14602:34;14582:18;;;14575:62;14673:10;14653:18;;;14646:38;14701:19;;14087:75:0;14322:404:1;14087:75:0;14219:15;;-1:-1:-1;;;;;2464:18:0;;2437:7;2464:18;;;;;;;;;;;14193:22;;:6;:22;:::i;:::-;:41;;14185:78;;;;-1:-1:-1;;;14185:78:0;;14933:2:1;14185:78:0;;;14915:21:1;14972:2;14952:18;;;14945:30;15011:26;14991:18;;;14984:54;15055:18;;14185:78:0;14731:348:1;14185:78:0;13987:773;;;-1:-1:-1;;;;;14339:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;14373:37:0;;;;;;:31;:37;;;;;;;;14372:38;14339:71;14335:425;;;14453:13;;14443:6;:23;;14435:78;;;;-1:-1:-1;;;14435:78:0;;15286:2:1;14435:78:0;;;15268:21:1;15325:2;15305:18;;;15298:30;15364:34;15344:18;;;15337:62;15435:12;15415:18;;;15408:40;15465:19;;14435:78:0;15084:406:1;14335:425:0;-1:-1:-1;;;;;14561:35:0;;;;;;:31;:35;;;;;;;;14560:36;:78;;;;-1:-1:-1;;;;;;14601:37:0;;;;;;:31;:37;;;;;;;;14600:38;14560:78;14556:204;;;14696:15;;-1:-1:-1;;;;;2464:18:0;;2437:7;2464:18;;;;;;;;;;;14670:22;;:6;:22;:::i;:::-;:41;;14662:78;;;;-1:-1:-1;;;14662:78:0;;14933:2:1;14662:78:0;;;14915:21:1;14972:2;14952:18;;;14945:30;15011:26;14991:18;;;14984:54;15055:18;;14662:78:0;14731:348:1;14662:78:0;14847:4;14798:28;2464:18;;;;;;;;;;;14905;;14881:42;;;;;;;14939:22;;-1:-1:-1;14950:11:0;;-1:-1:-1;;;14950:11:0;;;;14939:22;:35;;;;-1:-1:-1;14966:8:0;;;;14965:9;14939:35;:71;;;;-1:-1:-1;;;;;;14979:31:0;;;;;;:25;:31;;;;;;;;14978:32;14939:71;:101;;;;-1:-1:-1;;;;;;15015:25:0;;;;;;:19;:25;;;;;;;;15014:26;14939:101;:129;;;;-1:-1:-1;;;;;;15045:23:0;;;;;;:19;:23;;;;;;;;15044:24;14939:129;14936:232;;;15085:8;:15;;-1:-1:-1;;15085:15:0;15096:4;15085:15;;;15115:10;:8;:10::i;:::-;15140:8;:16;;-1:-1:-1;;15140:16:0;;;14936:232;-1:-1:-1;;;;;15298:25:0;;15180:12;15298:25;;;:19;:25;;;;;;15195:4;;15298:25;;;:52;;-1:-1:-1;;;;;;15327:23:0;;;;;;:19;:23;;;;;;;;15298:52;15295:99;;;-1:-1:-1;15377:5:0;15295:99;15406:12;15500:7;15497:802;;;-1:-1:-1;;;;;15551:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;15600:1;15584:13;;:17;15551:50;15547:605;;;15652:3;15637:13;;15628:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;15621:34;;15722:13;;15703:16;;15696:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;15674:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;15801:13:0;;15782:16;;15775:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;15754:17;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;15547:605:0;;-1:-1:-1;15547:605:0;;-1:-1:-1;;;;;15875:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;15925:1;15910:12;;:16;15875:51;15872:280;;;15978:3;15963:12;;15954:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;15947:34;;16047:12;;16029:15;;16022:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;16000:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;16124:12:0;;16106:15;;16099:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;16078:17;;:58;;;;;;;:::i;:::-;;;;-1:-1:-1;;15872:280:0;16171:8;;16168:89;;16199:42;16215:4;16229;16236;16199:15;:42::i;:::-;16273:14;16283:4;16273:14;;:::i;:::-;;;15497:802;16311:33;16327:4;16333:2;16337:6;16311:15;:33::i;:::-;13332:3020;;;;13253:3099;;;:::o;17213:240::-;-1:-1:-1;;;;;17296:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;17296:39:0;;;;;;;17348;17296:31;:39;17348:26;:39::i;:::-;17405:40;;;;;;-1:-1:-1;;;;;17405:40:0;;;;;;;;17213:240;;:::o;18581:1159::-;18664:4;18620:23;2464:18;;;;;;;;;;;18620:50;;18681:25;18730:17;;18709:18;;:38;;;;:::i;:::-;18681:66;-1:-1:-1;18763:20:0;;;:46;;-1:-1:-1;18787:22:0;;18763:46;18760:60;;;18812:7;;18581:1159::o;18760:60::-;18853:18;;;:23;;;:::i;:::-;18835:15;:41;18832:113;;;18910:18;;;:23;;;:::i;:::-;18892:41;;18832:113;18957:12;19031:23;19116:1;19096:17;19075:18;;19057:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;19031:86;-1:-1:-1;19130:51:0;19147:33;19031:86;19147:15;:33;:::i;:::-;19130:16;:51::i;:::-;19376:18;;19215:21;;;;19194:18;;19376:20;;19395:1;;19376:20;:::i;:::-;19355:42;;:17;:42;:::i;:::-;19334:17;;19321:30;;:10;:30;:::i;:::-;:77;;;;:::i;:::-;19296:102;-1:-1:-1;19411:33:0;19296:102;19411:33;;:::i;:::-;19478:1;19457:18;:22;;;19490:17;:21;19411:33;-1:-1:-1;19527:19:0;;;;;:42;;;19568:1;19550:15;:19;19527:42;19524:119;;;19585:46;19598:15;19615;19585:12;:46::i;:::-;19676:16;;19668:64;;-1:-1:-1;;;;;19676:16:0;;;;19706:21;;19668:64;;;;19706:21;19676:16;19668:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;18581:1159:0:o;4137:602::-;-1:-1:-1;;;;;4277:20:0;;4269:70;;;;-1:-1:-1;;;4269:70:0;;12658:2:1;4269:70:0;;;12640:21:1;12697:2;12677:18;;;12670:30;12736:34;12716:18;;;12709:62;-1:-1:-1;;;12787:18:1;;;12780:35;12832:19;;4269:70:0;12456:401:1;4269:70:0;-1:-1:-1;;;;;4358:23:0;;4350:71;;;;-1:-1:-1;;;4350:71:0;;13064:2:1;4350:71:0;;;13046:21:1;13103:2;13083:18;;;13076:30;13142:34;13122:18;;;13115:62;-1:-1:-1;;;13193:18:1;;;13186:33;13236:19;;4350:71:0;12862:399:1;4350:71:0;-1:-1:-1;;;;;4458:17:0;;4434:21;4458:17;;;;;;;;;;;4494:23;;;;4486:74;;;;-1:-1:-1;;;4486:74:0;;16037:2:1;4486:74:0;;;16019:21:1;16076:2;16056:18;;;16049:30;16115:34;16095:18;;;16088:62;16186:8;16166:18;;;16159:36;16212:19;;4486:74:0;15835:402:1;4486:74:0;-1:-1:-1;;;;;4588:17:0;;;:9;:17;;;;;;;;;;;4608:22;;;4588:42;;4648:20;;;;;;;;:30;;4624:6;;4588:9;4648:30;;4624:6;;4648:30;:::i;:::-;;;;;;;;4713:9;-1:-1:-1;;;;;4696:35:0;4705:6;-1:-1:-1;;;;;4696:35:0;;4724:6;4696:35;;;;2187:25:1;;2175:2;2160:18;;2041:177;4696:35:0;;;;;;;;4258:481;4137:602;;;:::o;11365:207::-;-1:-1:-1;;;;;11453:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;11453:52:0;;;;;;;;;;11521:43;;16410:74:1;;;16500:18;;;16493:50;11521:43:0;;16383:18:1;11521:43:0;;;;;;;11365:207;;:::o;16360:591::-;16512:16;;;16526:1;16512:16;;;;;;;;16488:21;;16512:16;;;;;;;;;;-1:-1:-1;16512:16:0;16488:40;;16557:4;16539;16544:1;16539:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16539:23:0;;;-1:-1:-1;;;;;16539:23:0;;;;;16583:15;-1:-1:-1;;;;;16583:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16573:4;16578:1;16573:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16573:32:0;;;-1:-1:-1;;;;;16573:32:0;;;;;16618:62;16635:4;16650:15;16668:11;16618:8;:62::i;:::-;16719:224;;;;;-1:-1:-1;;;;;16719:15:0;:66;;;;:224;;16800:11;;16826:1;;16870:4;;16897;;16917:15;;16719:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16415:536;16360:591;:::o;17749:522::-;17897:62;17914:4;17929:15;17947:11;17897:8;:62::i;:::-;18002:15;-1:-1:-1;;;;;18002:31:0;;18041:9;18074:4;18094:11;18120:1;18163;18214:7;5818:6;;-1:-1:-1;;;;;5818:6:0;;5753:79;18214:7;18002:261;;;;;;;;;;-1:-1:-1;;;;;18601:15:1;;;18002:261:0;;;18583:34:1;18633:18;;;18626:34;;;;18676:18;;;18669:34;;;;18719:18;;;18712:34;18783:15;;;18762:19;;;18755:44;18237:15:0;18815:19:1;;;18808:35;18494:19;;18002:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17749:522;;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:597::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;705:6;702:1;699:13;696:91;;;775:1;770:2;761:6;750:9;746:22;742:31;735:42;696:91;-1:-1:-1;848:2:1;827:15;-1:-1:-1;;823:29:1;808:45;;;;855:2;804:54;;267:597;-1:-1:-1;;;267:597:1:o;869:154::-;-1:-1:-1;;;;;948:5:1;944:54;937:5;934:65;924:93;;1013:1;1010;1003:12;1028:315;1096:6;1104;1157:2;1145:9;1136:7;1132:23;1128:32;1125:52;;;1173:1;1170;1163:12;1125:52;1212:9;1199:23;1231:31;1256:5;1231:31;:::i;:::-;1281:5;1333:2;1318:18;;;;1305:32;;-1:-1:-1;;;1028:315:1:o;1540:247::-;1599:6;1652:2;1640:9;1631:7;1627:23;1623:32;1620:52;;;1668:1;1665;1658:12;1620:52;1707:9;1694:23;1726:31;1751:5;1726:31;:::i;:::-;1776:5;1540:247;-1:-1:-1;;;1540:247:1:o;2223:456::-;2300:6;2308;2316;2369:2;2357:9;2348:7;2344:23;2340:32;2337:52;;;2385:1;2382;2375:12;2337:52;2424:9;2411:23;2443:31;2468:5;2443:31;:::i;:::-;2493:5;-1:-1:-1;2550:2:1;2535:18;;2522:32;2563:33;2522:32;2563:33;:::i;:::-;2223:456;;2615:7;;-1:-1:-1;;;2669:2:1;2654:18;;;;2641:32;;2223:456::o;2684:180::-;2743:6;2796:2;2784:9;2775:7;2771:23;2767:32;2764:52;;;2812:1;2809;2802:12;2764:52;-1:-1:-1;2835:23:1;;2684:180;-1:-1:-1;2684:180:1:o;3289:118::-;3375:5;3368:13;3361:21;3354:5;3351:32;3341:60;;3397:1;3394;3387:12;3412:382;3477:6;3485;3538:2;3526:9;3517:7;3513:23;3509:32;3506:52;;;3554:1;3551;3544:12;3506:52;3593:9;3580:23;3612:31;3637:5;3612:31;:::i;:::-;3662:5;-1:-1:-1;3719:2:1;3704:18;;3691:32;3732:30;3691:32;3732:30;:::i;:::-;3781:7;3771:17;;;3412:382;;;;;:::o;3799:388::-;3867:6;3875;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;3983:9;3970:23;4002:31;4027:5;4002:31;:::i;:::-;4052:5;-1:-1:-1;4109:2:1;4094:18;;4081:32;4122:33;4081:32;4122:33;:::i;4192:241::-;4248:6;4301:2;4289:9;4280:7;4276:23;4272:32;4269:52;;;4317:1;4314;4307:12;4269:52;4356:9;4343:23;4375:28;4397:5;4375:28;:::i;4799:184::-;-1:-1:-1;;;4848:1:1;4841:88;4948:4;4945:1;4938:15;4972:4;4969:1;4962:15;4988:128;5028:3;5059:1;5055:6;5052:1;5049:13;5046:39;;;5065:18;;:::i;:::-;-1:-1:-1;5101:9:1;;4988:128::o;5121:437::-;5200:1;5196:12;;;;5243;;;5264:61;;5318:4;5310:6;5306:17;5296:27;;5264:61;5371:2;5363:6;5360:14;5340:18;5337:38;5334:218;;;-1:-1:-1;;;5405:1:1;5398:88;5509:4;5506:1;5499:15;5537:4;5534:1;5527:15;5334:218;;5121:437;;;:::o;5972:168::-;6012:7;6078:1;6074;6070:6;6066:14;6063:1;6060:21;6055:1;6048:9;6041:17;6037:45;6034:71;;;6085:18;;:::i;:::-;-1:-1:-1;6125:9:1;;5972:168::o;6145:274::-;6185:1;6211;6201:189;;-1:-1:-1;;;6243:1:1;6236:88;6347:4;6344:1;6337:15;6375:4;6372:1;6365:15;6201:189;-1:-1:-1;6404:9:1;;6145:274::o;10907:184::-;10977:6;11030:2;11018:9;11009:7;11005:23;11001:32;10998:52;;;11046:1;11043;11036:12;10998:52;-1:-1:-1;11069:16:1;;10907:184;-1:-1:-1;10907:184:1:o;11398:245::-;11465:6;11518:2;11506:9;11497:7;11493:23;11489:32;11486:52;;;11534:1;11531;11524:12;11486:52;11566:9;11560:16;11585:28;11607:5;11585:28;:::i;15495:125::-;15535:4;15563:1;15560;15557:8;15554:34;;;15568:18;;:::i;:::-;-1:-1:-1;15605:9:1;;15495:125::o;16743:184::-;-1:-1:-1;;;16792:1:1;16785:88;16892:4;16889:1;16882:15;16916:4;16913:1;16906:15;16932:251;17002:6;17055:2;17043:9;17034:7;17030:23;17026:32;17023:52;;;17071:1;17068;17061:12;17023:52;17103:9;17097:16;17122:31;17147:5;17122:31;:::i;17188:1026::-;17450:4;17498:3;17487:9;17483:19;17529:6;17518:9;17511:25;17555:2;17593:6;17588:2;17577:9;17573:18;17566:34;17636:3;17631:2;17620:9;17616:18;17609:31;17660:6;17695;17689:13;17726:6;17718;17711:22;17764:3;17753:9;17749:19;17742:26;;17803:2;17795:6;17791:15;17777:29;;17824:1;17834:218;17848:6;17845:1;17842:13;17834:218;;;17913:13;;-1:-1:-1;;;;;17909:62:1;17897:75;;18027:15;;;;17992:12;;;;17870:1;17863:9;17834:218;;;-1:-1:-1;;;;;;;18108:55:1;;;;18103:2;18088:18;;18081:83;-1:-1:-1;;;18195:3:1;18180:19;18173:35;18069:3;17188:1026;-1:-1:-1;;;17188:1026:1:o;18854:306::-;18942:6;18950;18958;19011:2;18999:9;18990:7;18986:23;18982:32;18979:52;;;19027:1;19024;19017:12;18979:52;19056:9;19050:16;19040:26;;19106:2;19095:9;19091:18;19085:25;19075:35;;19150:2;19139:9;19135:18;19129:25;19119:35;;18854:306;;;;;:::o

Swarm Source

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