ETH Price: $3,416.26 (-2.33%)
Gas: 7 Gwei

Token

Stich (STICH)
 

Overview

Max Total Supply

400,000,000,000,000 STICH

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,357,889,796,999.764016746314813445 STICH

Value
$0.00
0x465e4f97906d1dafcf489be8df8708803151dbfd
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:
Stich

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
    ████████████████████████████████▓█▓█████████████████████████
    ██▓█▓▓██▓╬╬▀█████████▓▓███▓▓▓▓▓▓▓▓▓█████╬╬╬╬╬███████▓▓██████
    █▓█▓▓╬╬▓▓██▓▓╬╬▓▓▓▓███▓█▓╟▓▓▓╬╬╬╬╬╬╬▓██╬╬░ ╠╬╣▓▓╠▓██████▓╬██
    █╣▓╬╬╬╬╬╬╬╣███▓▓╬╚╬╬╬╬╬╬╣▓╬╬╬▒╠╠╠╬╬╬╬╫╬╬╬╬╬╠╣╬╟▓████▓▓▓╬╬╫██
    ██▓╬╬╬╬╬╬╬╬╬╣▓█▓╬╬░╚╚▒░φ╚╚╠╠╚░░░░╚╠╠╬╬╬╩╩╚╚░φ╣██████▓▓╬╬╬╬██
    ███▓╬╬╬╬╬╬╬╬╬╣▓▓▒╬╬▒▄░ΓΓΓ"` ..,╓,;░╙╙╩░░░░φ╬╬███▓▓▓▓▓▓╬╣╬▓██
    ███▓╬╬╬╠╠╠╠╬╬╬╬╣▓▒╬╠╬╩░;φ≥φφ▒▒▒▒▒╬╠▒╬╬▒φ╣╬╣╣▓███▓▓▓▓╬╬╬╬╬███
    ████▓╬▒▒╚╩╠╠╠╠╠╬╣╬╣╩░▄▄▓▓▀▀╙╙╙╙░╠╬╠████▓╬▓█▓█████▓╬╬╬╬╬╬╫▓▓█
    █████▓╠▒░Γ░╙╚╠╠╠╬╬▓█▀▀│¡░░░░φ▒▒▒▒▒▒╠╢╣▓▓████████▓▓▓╬╬╬╬╬╬▓██
    █████▓▓╠╠▒░░▒░φ╝╬╣▓▒ ╟▓▓▓▓▄╙╠╠╠╠╝╠▄▓▓█▓▓▓▓██▓██▓▓▓▓╬╬╬╣▓▓▓▓█
    █████▓╬╬╝╬╬╬╬▒▓█▄▓▓▓▓██████▌,;╓╓ ██████████████╣▀╬╬╣╬╬╣▓▓▓██
    ████▓▓▓╬╬╬╠▒╙╣██▓██████████]▓███▒████████████╣█▌╙╠╠╬╠╩╬╬╬╬██
    ██████▓▓╬╬╠▒▒╣████████████▒▓████▌░█████████████▌│╠╠╠ ░╚╟╬╬╬╣
    ████▓╣▓▓╬╬╠░░╢███████████▒██╬╬╬╬╬╬▒▀██████████▓╬▒░╠╠φφ╠╬╬╣╣█
    ██████▓▓╬╠░#▓╬▓████████╬▓▓╠╬▄▓╬▓▓█▓▓╬▓██████████▄╠╠╬╬╬╬╬╣▓▓█
    █████▓╬▓╬▒▒╟███▓╬▓▓█▓▓██▒▒╠╠╣█▓█▓▓▓▓▓█████▓▓▓█▓╬╬╠╬╣╣▓▓▓▓███
    ██████▓▓╣╬░░╙▓██▓▓████╬╬╠╬╬╣╣▓▓╣╬╬▓▓▓▓▓▓██████▓╬╠╠╣╣▓▓▓█████
    ██████╬╬╬╠▒░░⌠███╬╬╣▓█▓█████████████████▓█▓╢██▒╠╠╠╬▓╬╬╣█████
    █▓▓▓▓╬╬╬╬╬╬▒▒▒╙███▒╠╬▓▓▓▓█▓▀███▓▓███▓███▓╬▓██▒▒▒╠╬╬╠╬╣╬╣████
    ███▓╬▓╬╬╬╬╠╠▒▒░'╚▀█▓╬╬▓██▓▓▓▓▓▓█▓▓▓████▓▓▀▀¡░φ╠▒░░░▒╠╬▓█████
    █████▓╣╬╠╬╠╠╠φ░░░" ╠▓█████████████████████▓▄░░░╠╠▒▒╠╬╬▓█████
    ██╩╬▓▓▓▓╬╬╣╬╠░ ;φ╠╢▓█████████████████████████▓▄╠╬╬╣╬▓▓▓█████
    ██▓▓███▓╣▓▓╬φ╠╠╣╣╣▓▓█▓██████████████████████╣▓╬▒╬╣╣▓▓▓██████
    ██████████▒╣╬╠╬╣▓█████████████████████░╠╠╠╬╣▓▓▓▓▓▓▓▓████████
                        ┏━━━┓┏┓╋╋╋╋┏┓
                        ┃┏━┓┣┛┗┓╋╋╋┃┃
                        ┃┗━━╋┓┏╋┳━━┫┗━┓
                        ┗━━┓┃┃┃┣┫┏━┫┏┓┃
                        ┃┗━┛┃┃┗┫┃┗━┫┃┃┃
                        ┗━━━┛┗━┻┻━━┻┛┗┛

Twitter: https://twitter.com/StitchEther
Website: https://stitchtoken.io/
Telegram: https://t.me/stitchether
*/

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

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 Stich 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 StichMKTAddress;

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

    uint256 public buyTotalFees;
    uint256 public buyStichMKTFee;
    uint256 public buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 public sellStichMKTFee;
    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 UpdatedStichMKTAddress(address indexed newWallet);
    event UpdatedRewardsAddress(address indexed newWallet);
    event MaxTransactionExclusion(address _address, bool excluded);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("Stich", "STICH") {

        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 = 400000000000000 * 1e18;

        maxBuyAmount = 2400000000000 * 1e18;
        maxSellAmount = 2400000000000 * 1e18;
        maxWalletAmount = 2400000000000 * 1e18;
        swapTokensAtAmount = 24000000000 * 1e18; 

        buyStichMKTFee = 0;
        buyLiquidityFee = 0;
        buyTotalFees = buyStichMKTFee + buyLiquidityFee;

        sellStichMKTFee = 0;
        sellLiquidityFee = 0;
        sellTotalFees = sellStichMKTFee + sellLiquidityFee;

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

        StichMKTAddress = address(0x591334bedBa2123715e1E2558eAfD86f19DFe818);

        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 {
        buyStichMKTFee = _treasuryFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyStichMKTFee + buyLiquidityFee;
        require(buyTotalFees <= totalSupply() * 5 / 100);
    }

    function updateSellFees(uint256 _treasuryFee, uint256 _liquidityFee) external onlyOwner {
        sellStichMKTFee = _treasuryFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellStichMKTFee + sellLiquidityFee;
        require(sellTotalFees <= totalSupply() * 5 / 100);
    }

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

    function enableSwap (bool Enable) public onlyOwner {
        tradingActive = Enable;
    }

    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 * sellStichMKTFee / sellTotalFees;
            }
            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount * buyTotalFees / 100;
                tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForTreasury += fees * buyStichMKTFee / 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) external onlyOwner {
        require(!tradingActive, "Cannot re enable trading");
        tradingActive = true;
        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 setStichMKTAddress(address _StichMKTAddress) external onlyOwner {
        require(_StichMKTAddress != address(0), "_StichMKTAddress address cannot be 0");
        StichMKTAddress = payable(_StichMKTAddress);
        emit UpdatedStichMKTAddress(_StichMKTAddress);
    }

   
    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(StichMKTAddress).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":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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedStichMKTAddress","type":"event"},{"inputs":[],"name":"StichMKTAddress","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":"buyStichMKTFee","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":"Enable","type":"bool"}],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"","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":"sellStichMKTFee","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":"_StichMKTAddress","type":"address"}],"name":"setStichMKTAddress","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"}]

60c0604052600b805462ffffff60a01b1916600160a01b1790553480156200002657600080fd5b50604051806040016040528060058152602001640a6e8d2c6d60db1b815250604051806040016040528060058152602001640a6a89286960db1b81525081600390816200007491906200077d565b5060046200008382826200077d565b5050506000620000986200037560201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620033ef833981519152908290a35033737a250d5630b4cf539739df2c5dacb4c659f2488d620000f881600162000379565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000169919062000849565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dd919062000849565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200022b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000251919062000849565b6001600160a01b031660a08190526200026c906001620003dc565b6c1e4ad1785a42b23aff00000000600681905560078190556008556b4d8c55aefb8c05b5c0000000600a556000600d819055600e8190556d13b8b5b5056e16b3be040000000090620002bf90806200087b565b600c55600060108190556011819055620002da90806200087b565b600f55620002ea83600162000379565b620002f730600162000379565b6200030661dead600162000379565b600b80546001600160a01b03191673591334bedba2123715e1e2558eafd86f19dfe8181790556200033983600162000448565b6200034630600162000448565b6200035561dead600162000448565b620003618382620004f6565b6200036c83620005db565b505050620008a3565b3390565b6001600160a01b038216600081815260156020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601660205260409020805460ff19168215151790556200040c828262000379565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620004975760405162461bcd60e51b81526020600482018190526024820152600080516020620033cf83398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200054e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200048e565b80600260008282546200056291906200087b565b90915550506001600160a01b03821660009081526020819052604081208054839290620005919084906200087b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006265760405162461bcd60e51b81526020600482018190526024820152600080516020620033cf83398151915260448201526064016200048e565b6001600160a01b0381166200068d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200048e565b6005546040516001600160a01b03808416921690600080516020620033ef83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200070357607f821691505b6020821081036200072457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200077857600081815260208120601f850160051c81016020861015620007535750805b601f850160051c820191505b8181101562000774578281556001016200075f565b5050505b505050565b81516001600160401b03811115620007995762000799620006d8565b620007b181620007aa8454620006ee565b846200072a565b602080601f831160018114620007e95760008415620007d05750858301515b600019600386901b1c1916600185901b17855562000774565b600085815260208120601f198616915b828110156200081a57888601518255948401946001909101908401620007f9565b5085821015620008395787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200085c57600080fd5b81516001600160a01b03811681146200087457600080fd5b9392505050565b808201808211156200089d57634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a051612ad5620008fa6000396000818161045f01528181610d4d0152610f18015260008181610362015281816123fb015281816124b4015281816124f00152818161256a01526125910152612ad56000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063d257b34f116100c1578063e2f456051161007a578063e2f456051461081d578063f11a24d314610833578063f275f64b14610849578063f2fde38b14610869578063f637434214610889578063f9d0831a1461089f57600080fd5b8063d257b34f14610741578063d2a09c7114610761578063d85ba06314610781578063dc3f0d0f14610797578063dd62ed3e146107b7578063e09cd54b146107fd57600080fd5b8063b62496f511610113578063b62496f514610684578063bbc0c742146106b4578063be3f6f8e146106d5578063c0246668146106eb578063c18bc1951461070b578063cc2ffe7c1461072b57600080fd5b80638da5cb5b146105db57806395d89b41146105f95780639a7a23d61461060e578063a457c2d71461062e578063a9059cbb1461064e578063aa4bde281461066e57600080fd5b80634a62bb65116101fe57806370a08231116101b757806370a0823114610525578063715018a61461055b578063751039fc146105705780637571336a1461058557806388c2d002146105a557806388e765ff146105c557600080fd5b80634a62bb651461048157806366578a16146104a257806366ca9b83146104b857806366d602ae146104d85780636a486a8e146104ee5780636ddd17131461050457600080fd5b80631a8145bb116102505780631a8145bb146103bb57806323b872dd146103d15780632be32b61146103f1578063313ce56714610411578063395093511461042d57806349bd5a5e1461044d57600080fd5b806302dbd8f8146102a357806306fdde03146102c5578063095ea7b3146102f057806310d5de53146103205780631694505e1461035057806318160ddd1461039c57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be36600461266a565b6108bf565b005b3480156102d157600080fd5b506102da61093b565b6040516102e7919061268c565b60405180910390f35b3480156102fc57600080fd5b5061031061030b3660046126ef565b6109cd565b60405190151581526020016102e7565b34801561032c57600080fd5b5061031061033b36600461271b565b60156020526000908152604090205460ff1681565b34801561035c57600080fd5b506103847f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e7565b3480156103a857600080fd5b506002545b6040519081526020016102e7565b3480156103c757600080fd5b506103ad60135481565b3480156103dd57600080fd5b506103106103ec36600461273f565b6109e4565b3480156103fd57600080fd5b506102c361040c366004612780565b610a8e565b34801561041d57600080fd5b50604051601281526020016102e7565b34801561043957600080fd5b506103106104483660046126ef565b610b9b565b34801561045957600080fd5b506103847f000000000000000000000000000000000000000000000000000000000000000081565b34801561048d57600080fd5b50600b5461031090600160a01b900460ff1681565b3480156104ae57600080fd5b506103ad60105481565b3480156104c457600080fd5b506102c36104d336600461266a565b610bd7565b3480156104e457600080fd5b506103ad60075481565b3480156104fa57600080fd5b506103ad600f5481565b34801561051057600080fd5b50600b5461031090600160b01b900460ff1681565b34801561053157600080fd5b506103ad61054036600461271b565b6001600160a01b031660009081526020819052604090205490565b34801561056757600080fd5b506102c3610c46565b34801561057c57600080fd5b506102c3610cba565b34801561059157600080fd5b506102c36105a03660046127a7565b610d1c565b3480156105b157600080fd5b506102c36105c036600461271b565b610e07565b3480156105d157600080fd5b506103ad60065481565b3480156105e757600080fd5b506005546001600160a01b0316610384565b34801561060557600080fd5b506102da610edd565b34801561061a57600080fd5b506102c36106293660046127a7565b610eec565b34801561063a57600080fd5b506103106106493660046126ef565b610fc7565b34801561065a57600080fd5b506103106106693660046126ef565b611060565b34801561067a57600080fd5b506103ad60085481565b34801561069057600080fd5b5061031061069f36600461271b565b60166020526000908152604090205460ff1681565b3480156106c057600080fd5b50600b5461031090600160a81b900460ff1681565b3480156106e157600080fd5b506103ad600d5481565b3480156106f757600080fd5b506102c36107063660046127a7565b61106d565b34801561071757600080fd5b506102c3610726366004612780565b6110f6565b34801561073757600080fd5b506103ad60125481565b34801561074d57600080fd5b506102c361075c366004612780565b6111ff565b34801561076d57600080fd5b506102c361077c3660046127e0565b61134a565b34801561078d57600080fd5b506103ad600c5481565b3480156107a357600080fd5b506102c36107b2366004612780565b611392565b3480156107c357600080fd5b506103ad6107d23660046127fd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080957600080fd5b50600b54610384906001600160a01b031681565b34801561082957600080fd5b506103ad600a5481565b34801561083f57600080fd5b506103ad600e5481565b34801561085557600080fd5b506102c36108643660046127e0565b611499565b34801561087557600080fd5b506102c361088436600461271b565b611572565b34801561089557600080fd5b506103ad60115481565b3480156108ab57600080fd5b506102c36108ba36600461271b565b61165d565b6005546001600160a01b031633146108f25760405162461bcd60e51b81526004016108e99061282b565b60405180910390fd5b601082905560118190556109068183612876565b600f55606461091460025490565b61091f906005612889565b61092991906128a0565b600f54111561093757600080fd5b5050565b60606003805461094a906128c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610976906128c2565b80156109c35780601f10610998576101008083540402835291602001916109c3565b820191906000526020600020905b8154815290600101906020018083116109a657829003601f168201915b5050505050905090565b60006109da3384846117d6565b5060015b92915050565b60006109f18484846118fa565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a765760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108e9565b610a8385338584036117d6565b506001949350505050565b6005546001600160a01b03163314610ab85760405162461bcd60e51b81526004016108e99061282b565b670de0b6b3a76400006103e8610acd60025490565b610ad8906001612889565b610ae291906128a0565b610aec91906128a0565b811015610b4d5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016108e9565b610b5f81670de0b6b3a7640000612889565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109da918590610bd2908690612876565b6117d6565b6005546001600160a01b03163314610c015760405162461bcd60e51b81526004016108e99061282b565b600d829055600e819055610c158183612876565b600c556064610c2360025490565b610c2e906005612889565b610c3891906128a0565b600c54111561093757600080fd5b6005546001600160a01b03163314610c705760405162461bcd60e51b81526004016108e99061282b565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ce45760405162461bcd60e51b81526004016108e99061282b565b600b805460ff60a01b191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610d465760405162461bcd60e51b81526004016108e99061282b565b80610ddc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610ddc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016108e9565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e315760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b038116610e935760405162461bcd60e51b8152602060048201526024808201527f5f53746963684d4b544164647265737320616464726573732063616e6e6f74206044820152630626520360e41b60648201526084016108e9565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f58c11ff224a9fbab8310de773e8b363fc6578761157060e727e6d4aa266718ef90600090a250565b60606004805461094a906128c2565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108e99061282b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610fbd5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108e9565b610937828261201d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e9565b61105633858584036117d6565b5060019392505050565b60006109da3384846118fa565b6005546001600160a01b031633146110975760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111205760405162461bcd60e51b81526004016108e99061282b565b670de0b6b3a76400006103e861113560025490565b611140906003612889565b61114a91906128a0565b61115491906128a0565b8110156111b85760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b60648201526084016108e9565b6111ca81670de0b6b3a7640000612889565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610b90565b6005546001600160a01b031633146112295760405162461bcd60e51b81526004016108e99061282b565b620186a061123660025490565b611241906001612889565b61124b91906128a0565b8110156112b85760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016108e9565b6103e86112c460025490565b6112cf906001612889565b6112d991906128a0565b8111156113455760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b60648201526084016108e9565b600a55565b6005546001600160a01b031633146113745760405162461bcd60e51b81526004016108e99061282b565b600b8054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146113bc5760405162461bcd60e51b81526004016108e99061282b565b670de0b6b3a76400006103e86113d160025490565b6113dc906001612889565b6113e691906128a0565b6113f091906128a0565b8110156114525760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016108e9565b61146481670de0b6b3a7640000612889565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610b90565b6005546001600160a01b031633146114c35760405162461bcd60e51b81526004016108e99061282b565b600b54600160a81b900460ff161561151d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e67000000000000000060448201526064016108e9565b600b805461010160a81b61ffff60a81b199091161790819055604051600160a81b90910460ff16151581527fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe5208990602001610b90565b6005546001600160a01b0316331461159c5760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b0381166116015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e9565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146116875760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b0381166116ce576005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610937573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173b91906128fc565b9050816001600160a01b031663a9059cbb61175e6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156117ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cf9190612915565b5050505b50565b6001600160a01b0383166118385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e9565b6001600160a01b0382166118995760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166119205760405162461bcd60e51b81526004016108e990612932565b6001600160a01b0382166119465760405162461bcd60e51b81526004016108e990612977565b600081116119965760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016108e9565b600b54600160a01b900460ff1615611d69576005546001600160a01b038481169116148015906119d457506005546001600160a01b03838116911614155b80156119e857506001600160a01b03821615155b80156119ff57506001600160a01b03821661dead14155b15611d6957600b54600160a81b900460ff16611aeb576001600160a01b03831660009081526015602052604090205460ff1680611a5457506001600160a01b03821660009081526015602052604090205460ff165b611a995760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e9565b6005546001600160a01b03848116911614611aeb5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81a5cc8195b98589b195960721b60448201526064016108e9565b6001600160a01b03831660009081526016602052604090205460ff168015611b2c57506001600160a01b03821660009081526015602052604090205460ff16155b15611c0857600654811115611b945760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016108e9565b6008546001600160a01b038316600090815260208190526040902054611bba9083612876565b1115611c035760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016108e9565b611d69565b6001600160a01b03821660009081526016602052604090205460ff168015611c4957506001600160a01b03831660009081526015602052604090205460ff16155b15611cb357600754811115611c035760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016108e9565b6001600160a01b03821660009081526015602052604090205460ff16158015611cf557506001600160a01b03831660009081526015602052604090205460ff16155b15611d69576008546001600160a01b038316600090815260208190526040902054611d209083612876565b1115611d695760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016108e9565b30600090815260208190526040902054600a5481108015908190611d965750600b54600160b01b900460ff165b8015611da5575060095460ff16155b8015611dca57506001600160a01b03851660009081526016602052604090205460ff16155b8015611def57506001600160a01b03851660009081526014602052604090205460ff16155b8015611e1457506001600160a01b03841660009081526014602052604090205460ff16155b15611e39576009805460ff19166001179055611e2e612087565b6009805460ff191690555b6001600160a01b03851660009081526014602052604090205460019060ff1680611e7b57506001600160a01b03851660009081526014602052604090205460ff165b15611e84575060005b60008115612009576001600160a01b03861660009081526016602052604090205460ff168015611eb657506000600f54115b15611f3e576064600f5486611ecb9190612889565b611ed591906128a0565b9050600f5460115482611ee89190612889565b611ef291906128a0565b60136000828254611f039190612876565b9091555050600f54601054611f189083612889565b611f2291906128a0565b60126000828254611f339190612876565b90915550611feb9050565b6001600160a01b03871660009081526016602052604090205460ff168015611f6857506000600c54115b15611feb576064600c5486611f7d9190612889565b611f8791906128a0565b9050600c54600e5482611f9a9190612889565b611fa491906128a0565b60136000828254611fb59190612876565b9091555050600c54600d54611fca9083612889565b611fd491906128a0565b60126000828254611fe59190612876565b90915550505b8015611ffc57611ffc8730836121ec565b61200681866129ba565b94505b6120148787876121ec565b50505050505050565b6001600160a01b0382166000908152601660205260409020805460ff191682151517905561204b8282612341565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b30600090815260208190526040812054905060006012546013546120ab9190612876565b90508115806120b8575080155b156120c1575050565b600a80546120ce91612889565b8211156120e557600a80546120e291612889565b91505b600080600283601354866120f99190612889565b61210391906128a0565b61210d91906128a0565b905061212161211c82866129ba565b6123a4565b60135447908190600090612137906002906128a0565b61214190876129ba565b60125461214e9085612889565b61215891906128a0565b905061216481836129ba565b600060138190556012559150831580159061217f5750600082115b1561218e5761218e8483612564565b600b546040516001600160a01b03909116904790600081818185875af1925050503d80600081146121db576040519150601f19603f3d011682016040523d82523d6000602084013e6121e0565b606091505b50505050505050505050565b6001600160a01b0383166122125760405162461bcd60e51b81526004016108e990612932565b6001600160a01b0382166122385760405162461bcd60e51b81526004016108e990612977565b6001600160a01b038316600090815260208190526040902054818110156122b05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e9565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906122e7908490612876565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161233391815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260156020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106123d9576123d96129cd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247b91906129e3565b8160018151811061248e5761248e6129cd565b60200260200101906001600160a01b031690816001600160a01b0316815250506124d9307f0000000000000000000000000000000000000000000000000000000000000000846117d6565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061252e908590600090869030904290600401612a00565b600060405180830381600087803b15801561254857600080fd5b505af115801561255c573d6000803e3d6000fd5b505050505050565b61258f307f0000000000000000000000000000000000000000000000000000000000000000846117d6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806125d66005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561263e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126639190612a71565b5050505050565b6000806040838503121561267d57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156126b95785810183015185820160400152820161269d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117d357600080fd5b6000806040838503121561270257600080fd5b823561270d816126da565b946020939093013593505050565b60006020828403121561272d57600080fd5b8135612738816126da565b9392505050565b60008060006060848603121561275457600080fd5b833561275f816126da565b9250602084013561276f816126da565b929592945050506040919091013590565b60006020828403121561279257600080fd5b5035919050565b80151581146117d357600080fd5b600080604083850312156127ba57600080fd5b82356127c5816126da565b915060208301356127d581612799565b809150509250929050565b6000602082840312156127f257600080fd5b813561273881612799565b6000806040838503121561281057600080fd5b823561281b816126da565b915060208301356127d5816126da565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109de576109de612860565b80820281158282048414176109de576109de612860565b6000826128bd57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806128d657607f821691505b6020821081036128f657634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561290e57600080fd5b5051919050565b60006020828403121561292757600080fd5b815161273881612799565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109de576109de612860565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156129f557600080fd5b8151612738816126da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a505784516001600160a01b031683529383019391830191600101612a2b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612a8657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220217a235c642b5da8bc240c749a605f58e676792fe7a6b95738305b92335e50e064736f6c634300081200334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063d257b34f116100c1578063e2f456051161007a578063e2f456051461081d578063f11a24d314610833578063f275f64b14610849578063f2fde38b14610869578063f637434214610889578063f9d0831a1461089f57600080fd5b8063d257b34f14610741578063d2a09c7114610761578063d85ba06314610781578063dc3f0d0f14610797578063dd62ed3e146107b7578063e09cd54b146107fd57600080fd5b8063b62496f511610113578063b62496f514610684578063bbc0c742146106b4578063be3f6f8e146106d5578063c0246668146106eb578063c18bc1951461070b578063cc2ffe7c1461072b57600080fd5b80638da5cb5b146105db57806395d89b41146105f95780639a7a23d61461060e578063a457c2d71461062e578063a9059cbb1461064e578063aa4bde281461066e57600080fd5b80634a62bb65116101fe57806370a08231116101b757806370a0823114610525578063715018a61461055b578063751039fc146105705780637571336a1461058557806388c2d002146105a557806388e765ff146105c557600080fd5b80634a62bb651461048157806366578a16146104a257806366ca9b83146104b857806366d602ae146104d85780636a486a8e146104ee5780636ddd17131461050457600080fd5b80631a8145bb116102505780631a8145bb146103bb57806323b872dd146103d15780632be32b61146103f1578063313ce56714610411578063395093511461042d57806349bd5a5e1461044d57600080fd5b806302dbd8f8146102a357806306fdde03146102c5578063095ea7b3146102f057806310d5de53146103205780631694505e1461035057806318160ddd1461039c57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be36600461266a565b6108bf565b005b3480156102d157600080fd5b506102da61093b565b6040516102e7919061268c565b60405180910390f35b3480156102fc57600080fd5b5061031061030b3660046126ef565b6109cd565b60405190151581526020016102e7565b34801561032c57600080fd5b5061031061033b36600461271b565b60156020526000908152604090205460ff1681565b34801561035c57600080fd5b506103847f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102e7565b3480156103a857600080fd5b506002545b6040519081526020016102e7565b3480156103c757600080fd5b506103ad60135481565b3480156103dd57600080fd5b506103106103ec36600461273f565b6109e4565b3480156103fd57600080fd5b506102c361040c366004612780565b610a8e565b34801561041d57600080fd5b50604051601281526020016102e7565b34801561043957600080fd5b506103106104483660046126ef565b610b9b565b34801561045957600080fd5b506103847f0000000000000000000000001d9b39568a3bfa0bb51088df2fe994f7ffae660981565b34801561048d57600080fd5b50600b5461031090600160a01b900460ff1681565b3480156104ae57600080fd5b506103ad60105481565b3480156104c457600080fd5b506102c36104d336600461266a565b610bd7565b3480156104e457600080fd5b506103ad60075481565b3480156104fa57600080fd5b506103ad600f5481565b34801561051057600080fd5b50600b5461031090600160b01b900460ff1681565b34801561053157600080fd5b506103ad61054036600461271b565b6001600160a01b031660009081526020819052604090205490565b34801561056757600080fd5b506102c3610c46565b34801561057c57600080fd5b506102c3610cba565b34801561059157600080fd5b506102c36105a03660046127a7565b610d1c565b3480156105b157600080fd5b506102c36105c036600461271b565b610e07565b3480156105d157600080fd5b506103ad60065481565b3480156105e757600080fd5b506005546001600160a01b0316610384565b34801561060557600080fd5b506102da610edd565b34801561061a57600080fd5b506102c36106293660046127a7565b610eec565b34801561063a57600080fd5b506103106106493660046126ef565b610fc7565b34801561065a57600080fd5b506103106106693660046126ef565b611060565b34801561067a57600080fd5b506103ad60085481565b34801561069057600080fd5b5061031061069f36600461271b565b60166020526000908152604090205460ff1681565b3480156106c057600080fd5b50600b5461031090600160a81b900460ff1681565b3480156106e157600080fd5b506103ad600d5481565b3480156106f757600080fd5b506102c36107063660046127a7565b61106d565b34801561071757600080fd5b506102c3610726366004612780565b6110f6565b34801561073757600080fd5b506103ad60125481565b34801561074d57600080fd5b506102c361075c366004612780565b6111ff565b34801561076d57600080fd5b506102c361077c3660046127e0565b61134a565b34801561078d57600080fd5b506103ad600c5481565b3480156107a357600080fd5b506102c36107b2366004612780565b611392565b3480156107c357600080fd5b506103ad6107d23660046127fd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080957600080fd5b50600b54610384906001600160a01b031681565b34801561082957600080fd5b506103ad600a5481565b34801561083f57600080fd5b506103ad600e5481565b34801561085557600080fd5b506102c36108643660046127e0565b611499565b34801561087557600080fd5b506102c361088436600461271b565b611572565b34801561089557600080fd5b506103ad60115481565b3480156108ab57600080fd5b506102c36108ba36600461271b565b61165d565b6005546001600160a01b031633146108f25760405162461bcd60e51b81526004016108e99061282b565b60405180910390fd5b601082905560118190556109068183612876565b600f55606461091460025490565b61091f906005612889565b61092991906128a0565b600f54111561093757600080fd5b5050565b60606003805461094a906128c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610976906128c2565b80156109c35780601f10610998576101008083540402835291602001916109c3565b820191906000526020600020905b8154815290600101906020018083116109a657829003601f168201915b5050505050905090565b60006109da3384846117d6565b5060015b92915050565b60006109f18484846118fa565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a765760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108e9565b610a8385338584036117d6565b506001949350505050565b6005546001600160a01b03163314610ab85760405162461bcd60e51b81526004016108e99061282b565b670de0b6b3a76400006103e8610acd60025490565b610ad8906001612889565b610ae291906128a0565b610aec91906128a0565b811015610b4d5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016108e9565b610b5f81670de0b6b3a7640000612889565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109da918590610bd2908690612876565b6117d6565b6005546001600160a01b03163314610c015760405162461bcd60e51b81526004016108e99061282b565b600d829055600e819055610c158183612876565b600c556064610c2360025490565b610c2e906005612889565b610c3891906128a0565b600c54111561093757600080fd5b6005546001600160a01b03163314610c705760405162461bcd60e51b81526004016108e99061282b565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610ce45760405162461bcd60e51b81526004016108e99061282b565b600b805460ff60a01b191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610d465760405162461bcd60e51b81526004016108e99061282b565b80610ddc577f0000000000000000000000001d9b39568a3bfa0bb51088df2fe994f7ffae66096001600160a01b0316826001600160a01b031603610ddc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016108e9565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e315760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b038116610e935760405162461bcd60e51b8152602060048201526024808201527f5f53746963684d4b544164647265737320616464726573732063616e6e6f74206044820152630626520360e41b60648201526084016108e9565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f58c11ff224a9fbab8310de773e8b363fc6578761157060e727e6d4aa266718ef90600090a250565b60606004805461094a906128c2565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108e99061282b565b7f0000000000000000000000001d9b39568a3bfa0bb51088df2fe994f7ffae66096001600160a01b0316826001600160a01b031603610fbd5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108e9565b610937828261201d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e9565b61105633858584036117d6565b5060019392505050565b60006109da3384846118fa565b6005546001600160a01b031633146110975760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111205760405162461bcd60e51b81526004016108e99061282b565b670de0b6b3a76400006103e861113560025490565b611140906003612889565b61114a91906128a0565b61115491906128a0565b8110156111b85760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b60648201526084016108e9565b6111ca81670de0b6b3a7640000612889565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610b90565b6005546001600160a01b031633146112295760405162461bcd60e51b81526004016108e99061282b565b620186a061123660025490565b611241906001612889565b61124b91906128a0565b8110156112b85760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016108e9565b6103e86112c460025490565b6112cf906001612889565b6112d991906128a0565b8111156113455760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b60648201526084016108e9565b600a55565b6005546001600160a01b031633146113745760405162461bcd60e51b81526004016108e99061282b565b600b8054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146113bc5760405162461bcd60e51b81526004016108e99061282b565b670de0b6b3a76400006103e86113d160025490565b6113dc906001612889565b6113e691906128a0565b6113f091906128a0565b8110156114525760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016108e9565b61146481670de0b6b3a7640000612889565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610b90565b6005546001600160a01b031633146114c35760405162461bcd60e51b81526004016108e99061282b565b600b54600160a81b900460ff161561151d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e67000000000000000060448201526064016108e9565b600b805461010160a81b61ffff60a81b199091161790819055604051600160a81b90910460ff16151581527fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe5208990602001610b90565b6005546001600160a01b0316331461159c5760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b0381166116015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e9565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146116875760405162461bcd60e51b81526004016108e99061282b565b6001600160a01b0381166116ce576005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610937573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173b91906128fc565b9050816001600160a01b031663a9059cbb61175e6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156117ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cf9190612915565b5050505b50565b6001600160a01b0383166118385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e9565b6001600160a01b0382166118995760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166119205760405162461bcd60e51b81526004016108e990612932565b6001600160a01b0382166119465760405162461bcd60e51b81526004016108e990612977565b600081116119965760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016108e9565b600b54600160a01b900460ff1615611d69576005546001600160a01b038481169116148015906119d457506005546001600160a01b03838116911614155b80156119e857506001600160a01b03821615155b80156119ff57506001600160a01b03821661dead14155b15611d6957600b54600160a81b900460ff16611aeb576001600160a01b03831660009081526015602052604090205460ff1680611a5457506001600160a01b03821660009081526015602052604090205460ff165b611a995760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e9565b6005546001600160a01b03848116911614611aeb5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81a5cc8195b98589b195960721b60448201526064016108e9565b6001600160a01b03831660009081526016602052604090205460ff168015611b2c57506001600160a01b03821660009081526015602052604090205460ff16155b15611c0857600654811115611b945760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016108e9565b6008546001600160a01b038316600090815260208190526040902054611bba9083612876565b1115611c035760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016108e9565b611d69565b6001600160a01b03821660009081526016602052604090205460ff168015611c4957506001600160a01b03831660009081526015602052604090205460ff16155b15611cb357600754811115611c035760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016108e9565b6001600160a01b03821660009081526015602052604090205460ff16158015611cf557506001600160a01b03831660009081526015602052604090205460ff16155b15611d69576008546001600160a01b038316600090815260208190526040902054611d209083612876565b1115611d695760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016108e9565b30600090815260208190526040902054600a5481108015908190611d965750600b54600160b01b900460ff165b8015611da5575060095460ff16155b8015611dca57506001600160a01b03851660009081526016602052604090205460ff16155b8015611def57506001600160a01b03851660009081526014602052604090205460ff16155b8015611e1457506001600160a01b03841660009081526014602052604090205460ff16155b15611e39576009805460ff19166001179055611e2e612087565b6009805460ff191690555b6001600160a01b03851660009081526014602052604090205460019060ff1680611e7b57506001600160a01b03851660009081526014602052604090205460ff165b15611e84575060005b60008115612009576001600160a01b03861660009081526016602052604090205460ff168015611eb657506000600f54115b15611f3e576064600f5486611ecb9190612889565b611ed591906128a0565b9050600f5460115482611ee89190612889565b611ef291906128a0565b60136000828254611f039190612876565b9091555050600f54601054611f189083612889565b611f2291906128a0565b60126000828254611f339190612876565b90915550611feb9050565b6001600160a01b03871660009081526016602052604090205460ff168015611f6857506000600c54115b15611feb576064600c5486611f7d9190612889565b611f8791906128a0565b9050600c54600e5482611f9a9190612889565b611fa491906128a0565b60136000828254611fb59190612876565b9091555050600c54600d54611fca9083612889565b611fd491906128a0565b60126000828254611fe59190612876565b90915550505b8015611ffc57611ffc8730836121ec565b61200681866129ba565b94505b6120148787876121ec565b50505050505050565b6001600160a01b0382166000908152601660205260409020805460ff191682151517905561204b8282612341565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b30600090815260208190526040812054905060006012546013546120ab9190612876565b90508115806120b8575080155b156120c1575050565b600a80546120ce91612889565b8211156120e557600a80546120e291612889565b91505b600080600283601354866120f99190612889565b61210391906128a0565b61210d91906128a0565b905061212161211c82866129ba565b6123a4565b60135447908190600090612137906002906128a0565b61214190876129ba565b60125461214e9085612889565b61215891906128a0565b905061216481836129ba565b600060138190556012559150831580159061217f5750600082115b1561218e5761218e8483612564565b600b546040516001600160a01b03909116904790600081818185875af1925050503d80600081146121db576040519150601f19603f3d011682016040523d82523d6000602084013e6121e0565b606091505b50505050505050505050565b6001600160a01b0383166122125760405162461bcd60e51b81526004016108e990612932565b6001600160a01b0382166122385760405162461bcd60e51b81526004016108e990612977565b6001600160a01b038316600090815260208190526040902054818110156122b05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e9565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906122e7908490612876565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161233391815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260156020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106123d9576123d96129cd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247b91906129e3565b8160018151811061248e5761248e6129cd565b60200260200101906001600160a01b031690816001600160a01b0316815250506124d9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846117d6565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061252e908590600090869030904290600401612a00565b600060405180830381600087803b15801561254857600080fd5b505af115801561255c573d6000803e3d6000fd5b505050505050565b61258f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846117d6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230856000806125d66005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561263e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126639190612a71565b5050505050565b6000806040838503121561267d57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156126b95785810183015185820160400152820161269d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117d357600080fd5b6000806040838503121561270257600080fd5b823561270d816126da565b946020939093013593505050565b60006020828403121561272d57600080fd5b8135612738816126da565b9392505050565b60008060006060848603121561275457600080fd5b833561275f816126da565b9250602084013561276f816126da565b929592945050506040919091013590565b60006020828403121561279257600080fd5b5035919050565b80151581146117d357600080fd5b600080604083850312156127ba57600080fd5b82356127c5816126da565b915060208301356127d581612799565b809150509250929050565b6000602082840312156127f257600080fd5b813561273881612799565b6000806040838503121561281057600080fd5b823561281b816126da565b915060208301356127d5816126da565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109de576109de612860565b80820281158282048414176109de576109de612860565b6000826128bd57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806128d657607f821691505b6020821081036128f657634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561290e57600080fd5b5051919050565b60006020828403121561292757600080fd5b815161273881612799565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109de576109de612860565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156129f557600080fd5b8151612738816126da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a505784516001600160a01b031683529383019391830191600101612a2b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612a8657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220217a235c642b5da8bc240c749a605f58e676792fe7a6b95738305b92335e50e064736f6c63430008120033

Deployed Bytecode Sourcemap

11874:13083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17516:301;;;;;;;;;;-1:-1:-1;17516:301:0;;;;;:::i;:::-;;:::i;:::-;;6592:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7506:169;;;;;;;;;;-1:-1:-1;7506:169:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;7506:169:0;1276:187:1;12765:64:0;;;;;;;;;;-1:-1:-1;12765:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12024:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1902:32:1;;;1884:51;;1872:2;1857:18;12024:43:0;1720:221:1;6913:108:0;;;;;;;;;;-1:-1:-1;7001:12:0;;6913:108;;;2092:25:1;;;2080:2;2065:18;6913:108:0;1946:177:1;12610:33:0;;;;;;;;;;;;;;;;7683:480;;;;;;;;;;-1:-1:-1;7683:480:0;;;;;:::i;:::-;;:::i;15286:269::-;;;;;;;;;;-1:-1:-1;15286:269:0;;;;;:::i;:::-;;:::i;6812:93::-;;;;;;;;;;-1:-1:-1;6812:93:0;;6895:2;2916:36:1;;2904:2;2889:18;6812:93:0;2774:184:1;8171:215:0;;;;;;;;;;-1:-1:-1;8171:215:0;;;;;:::i;:::-;;:::i;12074:38::-;;;;;;;;;;;;;;;12230:33;;;;;;;;;;-1:-1:-1;12230:33:0;;;;-1:-1:-1;;;12230:33:0;;;;;;12494:30;;;;;;;;;;;;;;;;17214:294;;;;;;;;;;-1:-1:-1;17214:294:0;;;;;:::i;:::-;;:::i;11950:28::-;;;;;;;;;;;;;;;;12459;;;;;;;;;;;;;;;;12310:31;;;;;;;;;;-1:-1:-1;12310:31:0;;;;-1:-1:-1;;;12310:31:0;;;;;;7029:127;;;;;;;;;;-1:-1:-1;7029:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7130:18:0;7103:7;7130:18;;;;;;;;;;;;7029:127;10633:150;;;;;;;;;;;;;:::i;15889:115::-;;;;;;;;;;;;;:::i;16227:267::-;;;;;;;;;;-1:-1:-1;16227:267:0;;;;;:::i;:::-;;:::i;23128:281::-;;;;;;;;;;-1:-1:-1;23128:281:0;;;;;:::i;:::-;;:::i;11916:27::-;;;;;;;;;;;;;;;;10419:79;;;;;;;;;;-1:-1:-1;10484:6:0;;-1:-1:-1;;;;;10484:6:0;10419:79;;6700:104;;;;;;;;;;;;;:::i;21819:246::-;;;;;;;;;;-1:-1:-1;21819:246:0;;;;;:::i;:::-;;:::i;8394:401::-;;;;;;;;;;-1:-1:-1;8394:401:0;;;;;:::i;:::-;;:::i;7164:175::-;;;;;;;;;;-1:-1:-1;7164:175:0;;;;;:::i;:::-;;:::i;11985:30::-;;;;;;;;;;;;;;;;12987:58;;;;;;;;;;-1:-1:-1;12987:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12270:33;;;;;;;;;;-1:-1:-1;12270:33:0;;;;-1:-1:-1;;;12270:33:0;;;;;;12384:29;;;;;;;;;;;;;;;;17825:182;;;;;;;;;;-1:-1:-1;17825:182:0;;;;;:::i;:::-;;:::i;16502:284::-;;;;;;;;;;-1:-1:-1;16502:284:0;;;;;:::i;:::-;;:::i;12571:32::-;;;;;;;;;;;;;;;;16856:350;;;;;;;;;;-1:-1:-1;16856:350:0;;;;;:::i;:::-;;:::i;18015:92::-;;;;;;;;;;-1:-1:-1;18015:92:0;;;;;:::i;:::-;;:::i;12350:27::-;;;;;;;;;;;;;;;;15563:274;;;;;;;;;;-1:-1:-1;15563:274:0;;;;;:::i;:::-;;:::i;7347:151::-;;;;;;;;;;-1:-1:-1;7347:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;7463:18:0;;;7436:7;7463:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7347:151;12191:30;;;;;;;;;;-1:-1:-1;12191:30:0;;;;-1:-1:-1;;;;;12191:30:0;;;12149:33;;;;;;;;;;;;;;;;12420:30;;;;;;;;;;;;;;;;22367:223;;;;;;;;;;-1:-1:-1;22367:223:0;;;;;:::i;:::-;;:::i;10791:244::-;;;;;;;;;;-1:-1:-1;10791:244:0;;;;;:::i;:::-;;:::i;12531:31::-;;;;;;;;;;;;;;;;24588:360;;;;;;;;;;-1:-1:-1;24588:360:0;;;;;:::i;:::-;;:::i;17516:301::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;;;;;;;;;17615:15:::1;:30:::0;;;17656:16:::1;:32:::0;;;17715:34:::1;17675:13:::0;17633:12;17715:34:::1;:::i;:::-;17699:13;:50:::0;17805:3:::1;17785:13;7001:12:::0;;;6913:108;17785:13:::1;:17;::::0;17801:1:::1;17785:17;:::i;:::-;:23;;;;:::i;:::-;17768:13;;:40;;17760:49;;;::::0;::::1;;17516:301:::0;;:::o;6592:100::-;6646:13;6679:5;6672:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6592:100;:::o;7506:169::-;7589:4;7606:39;5111:10;7629:7;7638:6;7606:8;:39::i;:::-;-1:-1:-1;7663:4:0;7506:169;;;;;:::o;7683:480::-;7823:4;7840:36;7850:6;7858:9;7869:6;7840:9;:36::i;:::-;-1:-1:-1;;;;;7916:19:0;;7889:24;7916:19;;;:11;:19;;;;;;;;5111:10;7916:33;;;;;;;;7968:26;;;;7960:79;;;;-1:-1:-1;;;7960:79:0;;5925:2:1;7960:79:0;;;5907:21:1;5964:2;5944:18;;;5937:30;6003:34;5983:18;;;5976:62;-1:-1:-1;;;6054:18:1;;;6047:38;6102:19;;7960:79:0;5723:404:1;7960:79:0;8067:57;8076:6;5111:10;8117:6;8098:16;:25;8067:8;:57::i;:::-;-1:-1:-1;8151:4:0;;7683:480;-1:-1:-1;;;;7683:480:0:o;15286:269::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;15405:4:::1;15399;15379:13;7001:12:::0;;;6913:108;15379:13:::1;:17;::::0;15395:1:::1;15379:17;:::i;:::-;:24;;;;:::i;:::-;15378:31;;;;:::i;:::-;15368:6;:41;;15360:95;;;::::0;-1:-1:-1;;;15360:95:0;;6334:2:1;15360:95:0::1;::::0;::::1;6316:21:1::0;6373:2;6353:18;;;6346:30;6412:34;6392:18;;;6385:62;-1:-1:-1;;;6463:18:1;;;6456:39;6512:19;;15360:95:0::1;6132:405:1::0;15360:95:0::1;15481:17;:6:::0;15491::::1;15481:17;:::i;:::-;15466:12;:32:::0;;;15514:33:::1;::::0;2092:25:1;;;15514:33:0::1;::::0;2080:2:1;2065:18;15514:33:0::1;;;;;;;;15286:269:::0;:::o;8171:215::-;5111:10;8259:4;8308:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8308:34:0;;;;;;;;;;8259:4;;8276:80;;8299:7;;8308:47;;8345:10;;8308:47;:::i;:::-;8276:8;:80::i;17214:294::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;17312:14:::1;:29:::0;;;17352:15:::1;:31:::0;;;17409:32:::1;17370:13:::0;17329:12;17409:32:::1;:::i;:::-;17394:12;:47:::0;17496:3:::1;17476:13;7001:12:::0;;;6913:108;17476:13:::1;:17;::::0;17492:1:::1;17476:17;:::i;:::-;:23;;;;:::i;:::-;17460:12;;:39;;17452:48;;;::::0;::::1;10633:150:::0;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;10726:6:::1;::::0;10705:40:::1;::::0;10742:1:::1;::::0;-1:-1:-1;;;;;10726:6:0::1;::::0;10705:40:::1;::::0;10742:1;;10705:40:::1;10756:6;:19:::0;;-1:-1:-1;;;;;;10756:19:0::1;::::0;;10633:150::o;15889:115::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;15943:14:::1;:22:::0;;-1:-1:-1;;;;15943:22:0::1;::::0;;15981:15:::1;::::0;::::1;::::0;15960:5:::1;::::0;15981:15:::1;15889:115::o:0;16227:267::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;16323:4:::1;16319:111;;16361:13;-1:-1:-1::0;;;;;16351:23:0::1;:6;-1:-1:-1::0;;;;;16351:23:0::1;::::0;16343:75:::1;;;::::0;-1:-1:-1;;;16343:75:0;;6744:2:1;16343:75:0::1;::::0;::::1;6726:21:1::0;6783:2;6763:18;;;6756:30;6822:34;6802:18;;;6795:62;-1:-1:-1;;;6873:18:1;;;6866:37;6920:19;;16343:75:0::1;6542:403:1::0;16343:75:0::1;-1:-1:-1::0;;;;;16440:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16440:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16227:267::o;23128:281::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23220:30:0;::::1;23212:79;;;::::0;-1:-1:-1;;;23212:79:0;;7152:2:1;23212:79:0::1;::::0;::::1;7134:21:1::0;7191:2;7171:18;;;7164:30;7230:34;7210:18;;;7203:62;-1:-1:-1;;;7281:18:1;;;7274:34;7325:19;;23212:79:0::1;6950:400:1::0;23212:79:0::1;23302:15;:43:::0;;-1:-1:-1;;;;;;23302:43:0::1;-1:-1:-1::0;;;;;23302:43:0;::::1;::::0;;::::1;::::0;;;23361:40:::1;::::0;::::1;::::0;-1:-1:-1;;23361:40:0::1;23128:281:::0;:::o;6700:104::-;6756:13;6789:7;6782:14;;;;;:::i;21819:246::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;21928:13:::1;-1:-1:-1::0;;;;;21920:21:0::1;:4;-1:-1:-1::0;;;;;21920:21:0::1;::::0;21912:91:::1;;;::::0;-1:-1:-1;;;21912:91:0;;7557:2:1;21912:91:0::1;::::0;::::1;7539:21:1::0;7596:2;7576:18;;;7569:30;7635:34;7615:18;;;7608:62;7706:27;7686:18;;;7679:55;7751:19;;21912:91:0::1;7355:421:1::0;21912:91:0::1;22016:41;22045:4;22051:5;22016:28;:41::i;8394:401::-:0;5111:10;8487:4;8531:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8531:34:0;;;;;;;;;;8584:35;;;;8576:85;;;;-1:-1:-1;;;8576:85:0;;7983:2:1;8576:85:0;;;7965:21:1;8022:2;8002:18;;;7995:30;8061:34;8041:18;;;8034:62;-1:-1:-1;;;8112:18:1;;;8105:35;8157:19;;8576:85:0;7781:401:1;8576:85:0;8689:67;5111:10;8712:7;8740:15;8721:16;:34;8689:8;:67::i;:::-;-1:-1:-1;8783:4:0;;8394:401;-1:-1:-1;;;8394:401:0:o;7164:175::-;7250:4;7267:42;5111:10;7291:9;7302:6;7267:9;:42::i;17825:182::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17910:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17910:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17965:34;;1416:41:1;;;17965:34:0::1;::::0;1389:18:1;17965:34:0::1;;;;;;;17825:182:::0;;:::o;16502:284::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;16624:4:::1;16618;16598:13;7001:12:::0;;;6913:108;16598:13:::1;:17;::::0;16614:1:::1;16598:17;:::i;:::-;:24;;;;:::i;:::-;16597:31;;;;:::i;:::-;16587:6;:41;;16579:98;;;::::0;-1:-1:-1;;;16579:98:0;;8389:2:1;16579:98:0::1;::::0;::::1;8371:21:1::0;8428:2;8408:18;;;8401:30;8467:34;8447:18;;;8440:62;-1:-1:-1;;;8518:18:1;;;8511:42;8570:19;;16579:98:0::1;8187:408:1::0;16579:98:0::1;16706:17;:6:::0;16716::::1;16706:17;:::i;:::-;16688:15;:35:::0;;;16739:39:::1;::::0;2092:25:1;;;16739:39:0::1;::::0;2080:2:1;2065:18;16739:39:0::1;1946:177:1::0;16856:350:0;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;16980:6:::1;16960:13;7001:12:::0;;;6913:108;16960:13:::1;:17;::::0;16976:1:::1;16960:17;:::i;:::-;:26;;;;:::i;:::-;16947:9;:39;;16939:105;;;::::0;-1:-1:-1;;;16939:105:0;;8802:2:1;16939:105:0::1;::::0;::::1;8784:21:1::0;8841:2;8821:18;;;8814:30;8880:34;8860:18;;;8853:62;-1:-1:-1;;;8931:18:1;;;8924:51;8992:19;;16939:105:0::1;8600:417:1::0;16939:105:0::1;17096:4;17076:13;7001:12:::0;;;6913:108;17076:13:::1;:17;::::0;17092:1:::1;17076:17;:::i;:::-;:24;;;;:::i;:::-;17063:9;:37;;17055:102;;;::::0;-1:-1:-1;;;17055:102:0;;9224:2:1;17055:102:0::1;::::0;::::1;9206:21:1::0;9263:2;9243:18;;;9236:30;9302:34;9282:18;;;9275:62;-1:-1:-1;;;9353:18:1;;;9346:50;9413:19;;17055:102:0::1;9022:416:1::0;17055:102:0::1;17168:18;:30:::0;16856:350::o;18015:92::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;18077:13:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18077:22:0::1;-1:-1:-1::0;;;;18077:22:0;;::::1;::::0;;;::::1;::::0;;18015:92::o;15563:274::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;15683:4:::1;15677;15657:13;7001:12:::0;;;6913:108;15657:13:::1;:17;::::0;15673:1:::1;15657:17;:::i;:::-;:24;;;;:::i;:::-;15656:31;;;;:::i;:::-;15646:6;:41;;15638:96;;;::::0;-1:-1:-1;;;15638:96:0;;9645:2:1;15638:96:0::1;::::0;::::1;9627:21:1::0;9684:2;9664:18;;;9657:30;9723:34;9703:18;;;9696:62;-1:-1:-1;;;9774:18:1;;;9767:40;9824:19;;15638:96:0::1;9443:406:1::0;15638:96:0::1;15761:17;:6:::0;15771::::1;15761:17;:::i;:::-;15745:13;:33:::0;;;15794:35:::1;::::0;2092:25:1;;;15794:35:0::1;::::0;2080:2:1;2065:18;15794:35:0::1;1946:177:1::0;22367:223:0;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;22435:13:::1;::::0;-1:-1:-1;;;22435:13:0;::::1;;;22434:14;22426:51;;;::::0;-1:-1:-1;;;22426:51:0;;10056:2:1;22426:51:0::1;::::0;::::1;10038:21:1::0;10095:2;10075:18;;;10068:30;10134:26;10114:18;;;10107:54;10178:18;;22426:51:0::1;9854:348:1::0;22426:51:0::1;22488:13;:20:::0;;-1:-1:-1;;;;;;;22519:18:0;;;;;;;;22553:29:::1;::::0;-1:-1:-1;;;22568:13:0;;::::1;22488:20;22568:13;1441:14:1::0;1434:22;1416:41;;22553:29:0::1;::::0;1404:2:1;1389:18;22553:29:0::1;1276:187:1::0;10791:244:0;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10880:22:0;::::1;10872:73;;;::::0;-1:-1:-1;;;10872:73:0;;10409:2:1;10872:73:0::1;::::0;::::1;10391:21:1::0;10448:2;10428:18;;;10421:30;10487:34;10467:18;;;10460:62;-1:-1:-1;;;10538:18:1;;;10531:36;10584:19;;10872:73:0::1;10207:402:1::0;10872:73:0::1;10982:6;::::0;10961:38:::1;::::0;-1:-1:-1;;;;;10961:38:0;;::::1;::::0;10982:6:::1;::::0;10961:38:::1;::::0;10982:6:::1;::::0;10961:38:::1;11010:6;:17:::0;;-1:-1:-1;;;;;;11010:17:0::1;-1:-1:-1::0;;;;;11010:17:0;;;::::1;::::0;;;::::1;::::0;;10791:244::o;24588:360::-;10546:6;;-1:-1:-1;;;;;10546:6:0;5111:10;10546:22;10538:67;;;;-1:-1:-1;;;10538:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24664:22:0;::::1;24660:124;;10484:6:::0;;24703:48:::1;::::0;-1:-1:-1;;;;;10484:6:0;;;;24729:21:::1;24703:48:::0;::::1;;;::::0;::::1;::::0;;;24729:21;10484:6;24703:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;24660:124;24857:35;::::0;-1:-1:-1;;;24857:35:0;;24886:4:::1;24857:35;::::0;::::1;1884:51:1::0;24821:6:0;;24794:17:::1;::::0;-1:-1:-1;;;;;24857:20:0;::::1;::::0;::::1;::::0;1857:18:1;;24857:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24839:53;;24903:10;-1:-1:-1::0;;;;;24903:19:0::1;;24923:7;10484:6:::0;;-1:-1:-1;;;;;10484:6:0;;10419:79;24923:7:::1;24903:37;::::0;-1:-1:-1;;;;;;24903:37:0::1;::::0;;;;;;-1:-1:-1;;;;;10995:32:1;;;24903:37:0::1;::::0;::::1;10977:51:1::0;11044:18;;;11037:34;;;10950:18;;24903:37:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24649:299;;10616:1;24588:360:::0;:::o;9712:380::-;-1:-1:-1;;;;;9848:19:0;;9840:68;;;;-1:-1:-1;;;9840:68:0;;11534:2:1;9840:68:0;;;11516:21:1;11573:2;11553:18;;;11546:30;11612:34;11592:18;;;11585:62;-1:-1:-1;;;11663:18:1;;;11656:34;11707:19;;9840:68:0;11332:400:1;9840:68:0;-1:-1:-1;;;;;9927:21:0;;9919:68;;;;-1:-1:-1;;;9919:68:0;;11939:2:1;9919:68:0;;;11921:21:1;11978:2;11958:18;;;11951:30;12017:34;11997:18;;;11990:62;-1:-1:-1;;;12068:18:1;;;12061:32;12110:19;;9919:68:0;11737:398:1;9919:68:0;-1:-1:-1;;;;;10000:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10052:32;;2092:25:1;;;10052:32:0;;2065:18:1;10052:32:0;;;;;;;9712:380;;;:::o;18115:3097::-;-1:-1:-1;;;;;18215:18:0;;18207:68;;;;-1:-1:-1;;;18207:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18294:16:0;;18286:64;;;;-1:-1:-1;;;18286:64:0;;;;;;;:::i;:::-;18378:1;18369:6;:10;18361:52;;;;-1:-1:-1;;;18361:52:0;;13152:2:1;18361:52:0;;;13134:21:1;13191:2;13171:18;;;13164:30;13230:31;13210:18;;;13203:59;13279:18;;18361:52:0;12950:353:1;18361:52:0;18429:14;;-1:-1:-1;;;18429:14:0;;;;18426:1222;;;10484:6;;-1:-1:-1;;;;;18463:15:0;;;10484:6;;18463:15;;;;:32;;-1:-1:-1;10484:6:0;;-1:-1:-1;;;;;18482:13:0;;;10484:6;;18482:13;;18463:32;:52;;;;-1:-1:-1;;;;;;18499:16:0;;;;18463:52;:77;;;;-1:-1:-1;;;;;;18519:21:0;;18533:6;18519:21;;18463:77;18459:1178;;;18564:13;;-1:-1:-1;;;18564:13:0;;;;18560:241;;-1:-1:-1;;;;;18609:37:0;;;;;;:31;:37;;;;;;;;;:76;;-1:-1:-1;;;;;;18650:35:0;;;;;;:31;:35;;;;;;;;18609:76;18601:111;;;;-1:-1:-1;;;18601:111:0;;13510:2:1;18601:111:0;;;13492:21:1;13549:2;13529:18;;;13522:30;-1:-1:-1;;;13568:18:1;;;13561:52;13630:18;;18601:111:0;13308:346:1;18601:111:0;10484:6;;-1:-1:-1;;;;;18743:15:0;;;10484:6;;18743:15;18735:46;;;;-1:-1:-1;;;18735:46:0;;13861:2:1;18735:46:0;;;13843:21:1;13900:2;13880:18;;;13873:30;-1:-1:-1;;;13919:18:1;;;13912:48;13977:18;;18735:46:0;13659:342:1;18735:46:0;-1:-1:-1;;;;;18853:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;18889:35:0;;;;;;:31;:35;;;;;;;;18888:36;18853:71;18849:773;;;18967:12;;18957:6;:22;;18949:75;;;;-1:-1:-1;;;18949:75:0;;14208:2:1;18949:75:0;;;14190:21:1;14247:2;14227:18;;;14220:30;14286:34;14266:18;;;14259:62;-1:-1:-1;;;14337:18:1;;;14330:38;14385:19;;18949:75:0;14006:404:1;18949:75:0;19081:15;;-1:-1:-1;;;;;7130:18:0;;7103:7;7130:18;;;;;;;;;;;19055:22;;:6;:22;:::i;:::-;:41;;19047:78;;;;-1:-1:-1;;;19047:78:0;;14617:2:1;19047:78:0;;;14599:21:1;14656:2;14636:18;;;14629:30;-1:-1:-1;;;14675:18:1;;;14668:54;14739:18;;19047:78:0;14415:348:1;19047:78:0;18849:773;;;-1:-1:-1;;;;;19201:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19235:37:0;;;;;;:31;:37;;;;;;;;19234:38;19201:71;19197:425;;;19315:13;;19305:6;:23;;19297:78;;;;-1:-1:-1;;;19297:78:0;;14970:2:1;19297:78:0;;;14952:21:1;15009:2;14989:18;;;14982:30;15048:34;15028:18;;;15021:62;-1:-1:-1;;;15099:18:1;;;15092:40;15149:19;;19297:78:0;14768:406:1;19197:425:0;-1:-1:-1;;;;;19423:35:0;;;;;;:31;:35;;;;;;;;19422:36;:78;;;;-1:-1:-1;;;;;;19463:37:0;;;;;;:31;:37;;;;;;;;19462:38;19422:78;19418:204;;;19558:15;;-1:-1:-1;;;;;7130:18:0;;7103:7;7130:18;;;;;;;;;;;19532:22;;:6;:22;:::i;:::-;:41;;19524:78;;;;-1:-1:-1;;;19524:78:0;;14617:2:1;19524:78:0;;;14599:21:1;14656:2;14636:18;;;14629:30;-1:-1:-1;;;14675:18:1;;;14668:54;14739:18;;19524:78:0;14415:348:1;19524:78:0;19709:4;19660:28;7130:18;;;;;;;;;;;19767;;19743:42;;;;;;;19801:22;;-1:-1:-1;19812:11:0;;-1:-1:-1;;;19812:11:0;;;;19801:22;:35;;;;-1:-1:-1;19828:8:0;;;;19827:9;19801:35;:71;;;;-1:-1:-1;;;;;;19841:31:0;;;;;;:25;:31;;;;;;;;19840:32;19801:71;:101;;;;-1:-1:-1;;;;;;19877:25:0;;;;;;:19;:25;;;;;;;;19876:26;19801:101;:129;;;;-1:-1:-1;;;;;;19907:23:0;;;;;;:19;:23;;;;;;;;19906:24;19801:129;19798:232;;;19947:8;:15;;-1:-1:-1;;19947:15:0;19958:4;19947:15;;;19977:10;:8;:10::i;:::-;20002:8;:16;;-1:-1:-1;;20002:16:0;;;19798:232;-1:-1:-1;;;;;20160:25:0;;20042:12;20160:25;;;:19;:25;;;;;;20057:4;;20160:25;;;:52;;-1:-1:-1;;;;;;20189:23:0;;;;;;:19;:23;;;;;;;;20160:52;20157:99;;;-1:-1:-1;20239:5:0;20157:99;20268:12;20362:7;20359:800;;;-1:-1:-1;;;;;20413:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;20462:1;20446:13;;:17;20413:50;20409:603;;;20514:3;20499:13;;20490:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;20483:34;;20584:13;;20565:16;;20558:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;20536:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;20662:13:0;;20644:15;;20637:22;;:4;:22;:::i;:::-;:38;;;;:::i;:::-;20616:17;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;20409:603:0;;-1:-1:-1;20409:603:0;;-1:-1:-1;;;;;20736:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;20786:1;20771:12;;:16;20736:51;20733:279;;;20839:3;20824:12;;20815:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;20808:34;;20908:12;;20890:15;;20883:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;20861:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;20984:12:0;;20967:14;;20960:21;;:4;:21;:::i;:::-;:36;;;;:::i;:::-;20939:17;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;;20733:279:0;21031:8;;21028:89;;21059:42;21075:4;21089;21096;21059:15;:42::i;:::-;21133:14;21143:4;21133:14;;:::i;:::-;;;20359:800;21171:33;21187:4;21193:2;21197:6;21171:15;:33::i;:::-;18194:3018;;;;18115:3097;;;:::o;22073:240::-;-1:-1:-1;;;;;22156:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;22156:39:0;;;;;;;22208;22156:31;:39;22208:26;:39::i;:::-;22265:40;;;;;;-1:-1:-1;;;;;22265:40:0;;;;;;;;22073:240;;:::o;23422:1158::-;23505:4;23461:23;7130:18;;;;;;;;;;;23461:50;;23522:25;23571:17;;23550:18;;:38;;;;:::i;:::-;23522:66;-1:-1:-1;23604:20:0;;;:46;;-1:-1:-1;23628:22:0;;23604:46;23601:60;;;23653:7;;23422:1158::o;23601:60::-;23694:18;;;:23;;;:::i;:::-;23676:15;:41;23673:113;;;23751:18;;;:23;;;:::i;:::-;23733:41;;23673:113;23798:12;23872:23;23957:1;23937:17;23916:18;;23898:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;23872:86;-1:-1:-1;23971:51:0;23988:33;23872:86;23988:15;:33;:::i;:::-;23971:16;:51::i;:::-;24217:18;;24056:21;;;;24035:18;;24217:20;;24236:1;;24217:20;:::i;:::-;24196:42;;:17;:42;:::i;:::-;24175:17;;24162:30;;:10;:30;:::i;:::-;:77;;;;:::i;:::-;24137:102;-1:-1:-1;24252:33:0;24137:102;24252:33;;:::i;:::-;24319:1;24298:18;:22;;;24331:17;:21;24252:33;-1:-1:-1;24368:19:0;;;;;:42;;;24409:1;24391:15;:19;24368:42;24365:119;;;24426:46;24439:15;24456;24426:12;:46::i;:::-;24517:15;;24509:63;;-1:-1:-1;;;;;24517:15:0;;;;24546:21;;24509:63;;;;24546:21;24517:15;24509:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;23422:1158:0:o;8803:602::-;-1:-1:-1;;;;;8943:20:0;;8935:70;;;;-1:-1:-1;;;8935:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9024:23:0;;9016:71;;;;-1:-1:-1;;;9016:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9124:17:0;;9100:21;9124:17;;;;;;;;;;;9160:23;;;;9152:74;;;;-1:-1:-1;;;9152:74:0;;15724:2:1;9152:74:0;;;15706:21:1;15763:2;15743:18;;;15736:30;15802:34;15782:18;;;15775:62;-1:-1:-1;;;15853:18:1;;;15846:36;15899:19;;9152:74:0;15522:402:1;9152:74:0;-1:-1:-1;;;;;9254:17:0;;;:9;:17;;;;;;;;;;;9274:22;;;9254:42;;9314:20;;;;;;;;:30;;9290:6;;9254:9;9314:30;;9290:6;;9314:30;:::i;:::-;;;;;;;;9379:9;-1:-1:-1;;;;;9362:35:0;9371:6;-1:-1:-1;;;;;9362:35:0;;9390:6;9362:35;;;;2092:25:1;;2080:2;2065:18;;1946:177;9362:35:0;;;;;;;;8924:481;8803:602;;;:::o;16012:207::-;-1:-1:-1;;;;;16100:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;16100:52:0;;;;;;;;;;16168:43;;16097:51:1;;;16164:18;;;16157:50;16168:43:0;;16070:18:1;16168:43:0;;;;;;;16012:207;;:::o;21220:591::-;21372:16;;;21386:1;21372:16;;;;;;;;21348:21;;21372:16;;;;;;;;;;-1:-1:-1;21372:16:0;21348:40;;21417:4;21399;21404:1;21399:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21399:23:0;;;-1:-1:-1;;;;;21399:23:0;;;;;21443:15;-1:-1:-1;;;;;21443:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21433:4;21438:1;21433:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;21433:32:0;;;-1:-1:-1;;;;;21433:32:0;;;;;21478:62;21495:4;21510:15;21528:11;21478:8;:62::i;:::-;21579:224;;-1:-1:-1;;;21579:224:0;;-1:-1:-1;;;;;21579:15:0;:66;;;;:224;;21660:11;;21686:1;;21730:4;;21757;;21777:15;;21579:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21275:536;21220:591;:::o;22598:522::-;22746:62;22763:4;22778:15;22796:11;22746:8;:62::i;:::-;22851:15;-1:-1:-1;;;;;22851:31:0;;22890:9;22923:4;22943:11;22969:1;23012;23063:7;10484:6;;-1:-1:-1;;;;;10484:6:0;;10419:79;23063:7;22851:261;;;;;;-1:-1:-1;;;;;;22851:261:0;;;-1:-1:-1;;;;;18082:15:1;;;22851:261:0;;;18064:34:1;18114:18;;;18107:34;;;;18157:18;;;18150:34;;;;18200:18;;;18193:34;18264:15;;;18243:19;;;18236:44;23086:15:0;18296:19:1;;;18289:35;17998:19;;22851:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22598: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:548::-;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;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1468:247::-;1527:6;1580:2;1568:9;1559:7;1555:23;1551:32;1548:52;;;1596:1;1593;1586:12;1548:52;1635:9;1622:23;1654:31;1679:5;1654:31;:::i;:::-;1704:5;1468:247;-1:-1:-1;;;1468:247:1:o;2128:456::-;2205:6;2213;2221;2274:2;2262:9;2253:7;2249:23;2245:32;2242:52;;;2290:1;2287;2280:12;2242:52;2329:9;2316:23;2348:31;2373:5;2348:31;:::i;:::-;2398:5;-1:-1:-1;2455:2:1;2440:18;;2427:32;2468:33;2427:32;2468:33;:::i;:::-;2128:456;;2520:7;;-1:-1:-1;;;2574:2:1;2559:18;;;;2546:32;;2128:456::o;2589:180::-;2648:6;2701:2;2689:9;2680:7;2676:23;2672:32;2669:52;;;2717:1;2714;2707:12;2669:52;-1:-1:-1;2740:23:1;;2589:180;-1:-1:-1;2589:180:1:o;3171:118::-;3257:5;3250:13;3243:21;3236:5;3233:32;3223:60;;3279:1;3276;3269:12;3294:382;3359:6;3367;3420:2;3408:9;3399:7;3395:23;3391:32;3388:52;;;3436:1;3433;3426:12;3388:52;3475:9;3462:23;3494:31;3519:5;3494:31;:::i;:::-;3544:5;-1:-1:-1;3601:2:1;3586:18;;3573:32;3614:30;3573:32;3614:30;:::i;:::-;3663:7;3653:17;;;3294:382;;;;;:::o;3681:241::-;3737:6;3790:2;3778:9;3769:7;3765:23;3761:32;3758:52;;;3806:1;3803;3796:12;3758:52;3845:9;3832:23;3864:28;3886:5;3864:28;:::i;3927:388::-;3995:6;4003;4056:2;4044:9;4035:7;4031:23;4027:32;4024:52;;;4072:1;4069;4062:12;4024:52;4111:9;4098:23;4130:31;4155:5;4130:31;:::i;:::-;4180:5;-1:-1:-1;4237:2:1;4222:18;;4209:32;4250:33;4209:32;4250:33;:::i;4320:356::-;4522:2;4504:21;;;4541:18;;;4534:30;4600:34;4595:2;4580:18;;4573:62;4667:2;4652:18;;4320:356::o;4681:127::-;4742:10;4737:3;4733:20;4730:1;4723:31;4773:4;4770:1;4763:15;4797:4;4794:1;4787:15;4813:125;4878:9;;;4899:10;;;4896:36;;;4912:18;;:::i;4943:168::-;5016:9;;;5047;;5064:15;;;5058:22;;5044:37;5034:71;;5085:18;;:::i;5116:217::-;5156:1;5182;5172:132;;5226:10;5221:3;5217:20;5214:1;5207:31;5261:4;5258:1;5251:15;5289:4;5286:1;5279:15;5172:132;-1:-1:-1;5318:9:1;;5116:217::o;5338:380::-;5417:1;5413:12;;;;5460;;;5481:61;;5535:4;5527:6;5523:17;5513:27;;5481:61;5588:2;5580:6;5577:14;5557:18;5554:38;5551:161;;5634:10;5629:3;5625:20;5622:1;5615:31;5669:4;5666:1;5659:15;5697:4;5694:1;5687:15;5551:161;;5338:380;;;:::o;10614:184::-;10684:6;10737:2;10725:9;10716:7;10712:23;10708:32;10705:52;;;10753:1;10750;10743:12;10705:52;-1:-1:-1;10776:16:1;;10614:184;-1:-1:-1;10614:184:1:o;11082:245::-;11149:6;11202:2;11190:9;11181:7;11177:23;11173:32;11170:52;;;11218:1;11215;11208:12;11170:52;11250:9;11244:16;11269:28;11291:5;11269:28;:::i;12140:401::-;12342:2;12324:21;;;12381:2;12361:18;;;12354:30;12420:34;12415:2;12400:18;;12393:62;-1:-1:-1;;;12486:2:1;12471:18;;12464:35;12531:3;12516:19;;12140:401::o;12546:399::-;12748:2;12730:21;;;12787:2;12767:18;;;12760:30;12826:34;12821:2;12806:18;;12799:62;-1:-1:-1;;;12892:2:1;12877:18;;12870:33;12935:3;12920:19;;12546:399::o;15179:128::-;15246:9;;;15267:11;;;15264:37;;;15281:18;;:::i;16350:127::-;16411:10;16406:3;16402:20;16399:1;16392:31;16442:4;16439:1;16432:15;16466:4;16463:1;16456:15;16482:251;16552:6;16605:2;16593:9;16584:7;16580:23;16576:32;16573:52;;;16621:1;16618;16611:12;16573:52;16653:9;16647:16;16672:31;16697:5;16672:31;:::i;16738:980::-;17000:4;17048:3;17037:9;17033:19;17079:6;17068:9;17061:25;17105:2;17143:6;17138:2;17127:9;17123:18;17116:34;17186:3;17181:2;17170:9;17166:18;17159:31;17210:6;17245;17239:13;17276:6;17268;17261:22;17314:3;17303:9;17299:19;17292:26;;17353:2;17345:6;17341:15;17327:29;;17374:1;17384:195;17398:6;17395:1;17392:13;17384:195;;;17463:13;;-1:-1:-1;;;;;17459:39:1;17447:52;;17554:15;;;;17519:12;;;;17495:1;17413:9;17384:195;;;-1:-1:-1;;;;;;;17635:32:1;;;;17630:2;17615:18;;17608:60;-1:-1:-1;;;17699:3:1;17684:19;17677:35;17596:3;16738:980;-1:-1:-1;;;16738:980:1:o;18335:306::-;18423:6;18431;18439;18492:2;18480:9;18471:7;18467:23;18463:32;18460:52;;;18508:1;18505;18498:12;18460:52;18537:9;18531:16;18521:26;;18587:2;18576:9;18572:18;18566:25;18556:35;;18631:2;18620:9;18616:18;18610:25;18600:35;;18335:306;;;;;:::o

Swarm Source

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