ETH Price: $2,526.22 (-4.95%)

Token

YUKKY ($YUKKY)
 

Overview

Max Total Supply

1,000,000,000 $YUKKY

Holders

141 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,488,838.353892701412344816 $YUKKY

Value
$0.00
0xa2499f7384a7766f983856c8a62460fdf33de06e
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

$YUKKY is not just any meme coin; it's a tribute to the brilliant mind of Elon Musk and a celebration of the power of online geekiness.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
YUKKY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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 IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface Initializer {
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getConfig() external returns (address, address);
    function getInits(uint256 amount) external returns (uint256, uint256);
    function setLpPair(address pair, bool enabled) external;
}

contract YUKKY is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromFees;
   
    uint256 constant private startingSupply = 1_000_000_000;
    string constant private _name = "YUKKY";
    string constant private _symbol = "$YUKKY";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    Fees public _taxRates = Fees({
        buyFee: 300,
        sellFee: 300,
        transferFee: 0
    });

    uint256 constant masterTaxDivisor = 10000;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable public marketingWallet = payable(0x106245376bCEAbB2C39551Ee6d96A05B3A37c1c1);
    
    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent = 10;
    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Initializer initializer;
    uint256 public launchStamp;

    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);

    modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;

        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        require(tradingEnabled, "Cannot renounce until trading has been enabled.");
        setExcludedFromFees(_owner, false);
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    
    receive() external payable {}
    function totalSupply() external pure override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setNewRouter(address newRouter) external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot change after liquidity.");
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        lpPairs[lpPair] = false;
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        lpPairs[lpPair] = true;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
            initializer.setLpPair(pair, false);
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
            }
            require(!lpPairs[pair], "Pair already added to list.");
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
            initializer.setLpPair(pair, true);
        }
    }

    function setInitializer(address init) public onlyOwner {
        require(!tradingEnabled);
        require(init != address(this), "Can't be self.");
        initializer = Initializer(init);
        try initializer.getConfig() returns (address router, address constructorLP) {
            dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[lpPair] = true; 
            _approve(_owner, address(dexRouter), type(uint256).max);
            _approve(address(this), address(dexRouter), type(uint256).max);
        } catch { revert(); }
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function setWallets(address payable marketing) external onlyOwner {
        require(marketing != address(0), "Cannot be zero address.");
        marketingWallet = payable(marketing);
    }

    function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) {
        return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor);
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        require(swapThreshold <= swapAmount, "Threshold cannot be above amount.");
        require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI.");
        require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
        require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
    }

    function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner {
        require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%.");
        piSwapPercent = priceImpactSwapPercent;
    }

    function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner {
        contractSwapEnabled = swapEnabled;
        piContractSwapsEnabled = priceImpactSwapEnabled;
        emit ContractSwapEnabledUpdated(swapEnabled);
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(initializer)
            && to != address(initializer);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                }
            }
        }

        if (sell) {
            if (!inSwap) {
                if (contractSwapEnabled) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance >= swapThreshold) {
                        uint256 swapAmt = swapAmount;
                        if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
                        if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                        contractSwap(contractTokenBalance);
                    }
                }
            }
        }
        return finalizeTransfer(from, to, amount, buy, sell, other);
    }

    function contractSwap(uint256 contractTokenBalance) internal inSwapFlag {
        if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        bool success;
        (success,) = marketingWallet.call{value: address(this).balance, gas: 55000}("");
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            _liquidityHolders[from] = true;
            _isExcludedFromFees[from] = true;
            _hasLiqBeenAdded = true;
            if (address(initializer) == address(0)){
                initializer = Initializer(address(this));
            }
            contractSwapEnabled = true;
            emit ContractSwapEnabledUpdated(true);
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(initializer) == address(0)){
            initializer = Initializer(address(this));
        }
        try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
        try initializer.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) {
            swapThreshold = initThreshold;
            swapAmount = initSwapAmount;
        } catch {}
        tradingEnabled = true;
        launchStamp = block.timestamp;
    }

    function sweepContingency() external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
        payable(_owner).transfer(address(this).balance);
    }

    function sweepExternalTokens(address token) external onlyOwner {
        if (_hasLiqBeenAdded) {
            require(token != address(this), "Cannot sweep native tokens.");
        }
        IERC20 TOKEN = IERC20(token);
        TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) {
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, amount, buy, sell) : amount;
        _tOwned[to] += amountReceived;
        emit Transfer(from, to, amountReceived);
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }
        return true;
    }

    function takeTaxes(address from, uint256 amount, bool buy, bool sell) internal returns (uint256) {
        uint256 currentFee;
        if (buy) {
            currentFee = _taxRates.buyFee;
        } else if (sell) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }
        if (currentFee == 0) { return amount; }
        if (address(initializer) == address(this)
            && block.chainid != 97) { currentFee = 4500; }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        if (feeAmount > 0) {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }

        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"init","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6000600281905560e060405261012c608081905260a05260c0526007805465ffffffffffff191663012c012c179055600a8054600161ff0160a01b03191673106245376bceabb2c39551ee6d96a05b3a37c1c1178155600e819055600f805461ffff19169055601180546001600160a01b031916331790556200008590601290620002a1565b6200009590633b9aca00620002b9565b601180546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000e96012600a620002a1565b620000f990633b9aca00620002b9565b60405190815260200160405180910390a3601180546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22805482168317905595549094168352600490915290208054909216179055620002d3565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001e3578160001904821115620001c757620001c76200018c565b80851615620001d557918102915b93841c9390800290620001a7565b509250929050565b600082620001fc575060016200029b565b816200020b575060006200029b565b81600181146200022457600281146200022f576200024f565b60019150506200029b565b60ff8411156200024357620002436200018c565b50506001821b6200029b565b5060208310610133831016604e8410600b841016171562000274575081810a6200029b565b620002808383620001a2565b80600019048211156200029757620002976200018c565b0290505b92915050565b6000620002b260ff841683620001eb565b9392505050565b80820281158282048414176200029b576200029b6200018c565b61348380620002e36000396000f3fe6080604052600436106102ab5760003560e01c8063590ffdce11610164578063a9059cbb116100c6578063eafb5a3c1161008a578063fb78680d11610064578063fb78680d14610856578063fdb78c0e14610876578063feadde9c1461089757600080fd5b8063eafb5a3c14610801578063eb50e70e14610821578063ee5d9c2d1461084157600080fd5b8063a9059cbb14610741578063ab558e4d14610761578063b7df8b3614610781578063bfc2fc351461079b578063dd62ed3e146107bb57600080fd5b806375f0a874116101285780638a63bd9b116101025780638a63bd9b146106e85780638a8c523c146106fd57806395d89b411461071257600080fd5b806375f0a8741461068a57806380c581d1146106aa578063893d20e8146106ca57600080fd5b8063590ffdce146105e95780635a6f0918146106095780635c24b0741461061f57806370a082311461063f578063715018a61461067557600080fd5b8063285777511161020d5780634ada218b116101d15780634fb2e45d116101ab5780634fb2e45d146105715780634fbee1931461059157806350a8e016146105ca57600080fd5b80634ada218b146105175780634bbb93eb146105315780634e718e481461055157600080fd5b8063285777511461049a5780632b112e49146104b05780632e8fa821146104c5578063313ce567146104db578063452ed4f1146104f757600080fd5b806307dd79e01161026f57806318160ddd1161024957806318160ddd1461044357806323b872dd146104585780632610eaca1461047857600080fd5b806307dd79e0146103c0578063095ea7b3146103ea5780630dcbcf1c1461040a57600080fd5b806303fd2a45146102b75780630445b667146102ea578063069d955f1461030e57806306fdde03146103645780630758d9241461039b57600080fd5b366102b257005b600080fd5b3480156102c357600080fd5b506102cd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f657600080fd5b50610300600b5481565b6040519081526020016102e1565b34801561031a57600080fd5b5060075461033f9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102e1565b34801561037057600080fd5b5060408051808201909152600581526459554b4b5960d81b60208201525b6040516102e19190612e34565b3480156103a757600080fd5b506008546102cd9061010090046001600160a01b031681565b3480156103cc57600080fd5b506008546103da9060ff1681565b60405190151581526020016102e1565b3480156103f657600080fd5b506103da610405366004612e97565b6108b7565b34801561041657600080fd5b506103da610425366004612ec3565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561044f57600080fd5b506103006108ce565b34801561046457600080fd5b506103da610473366004612ee0565b6108ef565b34801561048457600080fd5b50610498610493366004612ff7565b610967565b005b3480156104a657600080fd5b50610300600e5481565b3480156104bc57600080fd5b50610300610b27565b3480156104d157600080fd5b50610300600c5481565b3480156104e757600080fd5b50604051601281526020016102e1565b34801561050357600080fd5b506009546102cd906001600160a01b031681565b34801561052357600080fd5b50600f546103da9060ff1681565b34801561053d57600080fd5b5061030061054c3660046130b9565b610ba5565b34801561055d57600080fd5b5061049861056c3660046130b9565b610bd9565b34801561057d57600080fd5b5061049861058c366004612ec3565b610c7d565b34801561059d57600080fd5b506103da6105ac366004612ec3565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156105d657600080fd5b50600f546103da90610100900460ff1681565b3480156105f557600080fd5b506104986106043660046130e0565b610e85565b34801561061557600080fd5b5061030060105481565b34801561062b57600080fd5b5061049861063a366004612ec3565b610efe565b34801561064b57600080fd5b5061030061065a366004612ec3565b6001600160a01b031660009081526020819052604090205490565b34801561068157600080fd5b506104986110e2565b34801561069657600080fd5b50600a546102cd906001600160a01b031681565b3480156106b657600080fd5b506104986106c53660046130e0565b61120d565b3480156106d657600080fd5b506011546001600160a01b03166102cd565b3480156106f457600080fd5b506103da61141e565b34801561070957600080fd5b50610498611494565b34801561071e57600080fd5b506040805180820190915260068152652459554b4b5960d01b602082015261038e565b34801561074d57600080fd5b506103da61075c366004612e97565b6116e4565b34801561076d57600080fd5b5061049861077c366004612ec3565b6116fb565b34801561078d57600080fd5b50600d546103da9060ff1681565b3480156107a757600080fd5b506104986107b6366004613119565b61189b565b3480156107c757600080fd5b506103006107d6366004613137565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561080d57600080fd5b5061049861081c366004612ec3565b61194c565b34801561082d57600080fd5b5061049861083c366004612ec3565b611d53565b34801561084d57600080fd5b50610498611e19565b34801561086257600080fd5b50610498610871366004613165565b611ef8565b34801561088257600080fd5b50600a546103da90600160a81b900460ff1681565b3480156108a357600080fd5b506104986108b23660046130e0565b6121c0565b60006108c4338484612239565b5060015b92915050565b60006108dc6012600a613291565b6108ea90633b9aca006132a0565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610954576001600160a01b03841660009081526003602090815260408083203384529091528120805484929061094e9084906132b7565b90915550505b61095f848484612332565b949350505050565b6011546001600160a01b031633146109ba5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b8051825114610a0b5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016109b1565b60005b82518161ffff161015610b2257610a276012600a613291565b828261ffff1681518110610a3d57610a3d6132ca565b6020026020010151610a4f91906132a0565b336000908152602081905260409020541015610aad5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016109b1565b610b0f33848361ffff1681518110610ac757610ac76132ca565b60200260200101516012600a610add9190613291565b858561ffff1681518110610af357610af36132ca565b6020026020010151610b0591906132a0565b600080600161267c565b5080610b1a816132e0565b915050610a0e565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610b819190613301565b610b8d6012600a613291565b610b9b90633b9aca006132a0565b6108ea91906132b7565b6009546001600160a01b031660009081526020819052604081205461271090610bcf9084906132a0565b6108c89190613314565b6011546001600160a01b03163314610c275760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6096811115610c785760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e0000000000000000000060448201526064016109b1565b600e55565b6011546001600160a01b03163314610ccb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b038116610d475760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109b1565b61deac196001600160a01b03821601610dc85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109b1565b601154610ddf906001600160a01b03166000610e85565b610dea816001610e85565b6011546001600160a01b031660009081526020819052604090205415610e33576011546001600160a01b0316600081815260208190526040902054610e3191908390610b05565b505b601180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6011546001600160a01b03163314610ed35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6011546001600160a01b03163314610f4c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f5460ff1615610f5c57600080fd5b306001600160a01b03821603610fb45760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016109b1565b600f805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af192505050801561103a575060408051601f3d908101601f1916820190925261103791810190613336565b60015b61104357600080fd5b6008805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600980546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560115492546110c09383169291900416600019612239565b600854610b2290309061010090046001600160a01b0316600019612239565b50565b6011546001600160a01b031633146111305760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f5460ff166111a85760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016109b1565b6011546111bf906001600160a01b03166000610e85565b601180546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6011546001600160a01b0316331461125b5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b806112eb576001600160a01b03828116600081815260016020526040808220805460ff19169055600f5490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b1580156112cf57600080fd5b505af11580156112e3573d6000803e3d6000fd5b505050505050565b60025415611352576203f4806002544261130591906132b7565b116113525760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e000000000000000000000000000000000060448201526064016109b1565b6001600160a01b03821660009081526001602052604090205460ff16156113bb5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e000000000060448201526064016109b1565b6001600160a01b03828116600081815260016020819052604091829020805460ff19168217905542600255600f5491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d1906044016112b5565b5050565b6011546000906001600160a01b0316331461146f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b60085461148e90309061010090046001600160a01b0316600019612239565b50600190565b6011546001600160a01b031633146114e25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f5460ff16156115355760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016109b1565b600f54610100900460ff1661158c5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016109b1565b600f546201000090046001600160a01b03166115bc57600f805462010000600160b01b0319163062010000021790555b600f54600954604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b15801561162e57600080fd5b505af192505050801561163f575060015b50600f546009546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af19250505080156116c2575060408051601f3d908101601f191682019092526116bf91810190613365565b60015b156116d157600b91909155600c555b600f805460ff1916600117905542601055565b60006116f1338484612332565b5060019392505050565b6011546001600160a01b031633146117495760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f54610100900460ff16156117b157306001600160a01b038216036117b15760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e000000000060448201526064016109b1565b6011546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182c9190613389565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611877573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2291906133a2565b6011546001600160a01b031633146118e95760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600a805460ff60a81b1916600160a81b84151590810291909117909155600d805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6011546001600160a01b0316331461199a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f54610100900460ff16156119f25760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e000060448201526064016109b1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5b91906133bf565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc91906133bf565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3b91906133bf565b6009546001600160a01b039081166000908152600160205260409020805460ff191690559091508116611cd157816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bca91906133bf565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b91906133bf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cac91906133bf565b600980546001600160a01b0319166001600160a01b0392909216919091179055611ced565b600980546001600160a01b0319166001600160a01b0383161790555b6008805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b03858116820292909217835560095482166000908152600160208190526040909120805460ff191690911790559154610b22923092910416600019612239565b6011546001600160a01b03163314611da15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b038116611df75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e00000000000000000060448201526064016109b1565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b03163314611e675760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f54610100900460ff1615611ebf5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016109b1565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110df573d6000803e3d6000fd5b6011546001600160a01b03163314611f465760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b8284611f546012600a613291565b611f6290633b9aca006132a0565b611f6c91906132a0565b611f769190613314565b600b558082611f876012600a613291565b611f9590633b9aca006132a0565b611f9f91906132a0565b611fa99190613314565b600c819055600b5411156120095760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b60648201526084016109b1565b6009546001600160a01b0316600090815260208190526040902054612710906120339060966132a0565b61203d9190613314565b600c54111561209a5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b60648201526084016109b1565b620f42406120aa6012600a613291565b6120b890633b9aca006132a0565b6120c29190613314565b600c54101561212a5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109b1565b620f424061213a6012600a613291565b61214890633b9aca006132a0565b6121529190613314565b600b5410156121ba5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109b1565b50505050565b6011546001600160a01b0316331461220e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166122855760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109b1565b6001600160a01b0382166122d15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109b1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166123985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109b1565b6001600160a01b0383166123fa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109b1565b6000821161245c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109b1565b6001600160a01b0384166000908152600160205260408120548190819060ff161561248a57600192506124b8565b6001600160a01b03861660009081526001602052604090205460ff16156124b457600191506124b8565b5060015b6124c28787612889565b156125c357600f5460ff166125c3578061251e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016109b1565b6001600160a01b03871660009081526005602052604090205460ff1615801561256057506001600160a01b03861660009081526005602052604090205460ff16155b156125c35760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016109b1565b811561266357600a54600160a01b900460ff1661266357600a54600160a81b900460ff16156126635730600090815260208190526040902054600b54811061266157600c54600d5460ff161561264b57600e546009546001600160a01b03166000908152602081905260409020546127109161263e916132a0565b6126489190613314565b90505b808210612656578091505b61265f826129a0565b505b505b61267187878786868661267c565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff16806126be57506001600160a01b03871660009081526006602052604090205460ff165b156126c7575060005b6001600160a01b038816600090815260208190526040812080548892906126ef9084906132b7565b909155506000905081612702578661270e565b61270e89888888612be4565b9050806000808a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546127449190613301565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279091815260200190565b60405180910390a3600f54610100900460ff1661287a576127b18989612cf0565b600f54610100900460ff161580156127ce57506127ce8989612889565b80156127f357506001600160a01b03891660009081526005602052604090205460ff16155b801561281857506001600160a01b03881660009081526005602052604090205460ff16155b8015612822575083155b1561287a5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016109b1565b50600198975050505050505050565b6011546000906001600160a01b038481169116148015906128b857506011546001600160a01b03838116911614155b80156128cf57506011546001600160a01b03163214155b80156128f457506001600160a01b03821660009081526004602052604090205460ff16155b801561291957506001600160a01b03831660009081526004602052604090205460ff16155b801561293057506001600160a01b03821661dead14155b801561294457506001600160a01b03821615155b801561295957506001600160a01b0383163014155b80156129795750600f546001600160a01b03848116620100009092041614155b80156129995750600f546001600160a01b03838116620100009092041614155b9392505050565b600a805460ff60a01b1916600160a01b17905530600090815260036020908152604080832060085461010090046001600160a01b0316845290915290205460001914612a165730600090815260036020908152604080832060085461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a4b57612a4b6132ca565b60200260200101906001600160a01b031690816001600160a01b031681525050600860019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae291906133bf565b81600181518110612af557612af56132ca565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b81526101009091049091169063791ac94790612b429085906000908690309042906004016133dc565b600060405180830381600087803b158015612b5c57600080fd5b505af1925050508015612b6d575060015b612b775750612bd4565b600a546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114612bc9576040519150601f19603f3d011682016040523d82523d6000602084013e612bce565b606091505b50505050505b50600a805460ff60a01b19169055565b6000808315612bfa575060075461ffff16612c24565b8215612c13575060075462010000900461ffff16612c24565b50600754640100000000900461ffff165b80600003612c35578491505061095f565b600f546201000090046001600160a01b031630148015612c56575046606114155b15612c6057506111945b6000612710612c6f83886132a0565b612c799190613314565b90508015612ce6573060009081526020819052604081208054839290612ca0908490613301565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61267181876132b7565b600f54610100900460ff1615612d545760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016109b1565b612d5e8282612889565b158015612d7857506009546001600160a01b038281169116145b1561141a576001600160a01b038083166000908152600460209081526040808320805460ff1990811660019081179092556006909352922080549091169091179055600f805461ff001916610100179081905562010000900416612df057600f805462010000600160b01b0319163062010000021790555b600a805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611940565b600060208083528351808285015260005b81811015612e6157858101830151858201604001528201612e45565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110df57600080fd5b60008060408385031215612eaa57600080fd5b8235612eb581612e82565b946020939093013593505050565b600060208284031215612ed557600080fd5b813561299981612e82565b600080600060608486031215612ef557600080fd5b8335612f0081612e82565b92506020840135612f1081612e82565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612f6057612f60612f21565b604052919050565b600067ffffffffffffffff821115612f8257612f82612f21565b5060051b60200190565b600082601f830112612f9d57600080fd5b81356020612fb2612fad83612f68565b612f37565b82815260059290921b84018101918181019086841115612fd157600080fd5b8286015b84811015612fec5780358352918301918301612fd5565b509695505050505050565b6000806040838503121561300a57600080fd5b823567ffffffffffffffff8082111561302257600080fd5b818501915085601f83011261303657600080fd5b81356020613046612fad83612f68565b82815260059290921b8401810191818101908984111561306557600080fd5b948201945b8386101561308c57853561307d81612e82565b8252948201949082019061306a565b965050860135925050808211156130a257600080fd5b506130af85828601612f8c565b9150509250929050565b6000602082840312156130cb57600080fd5b5035919050565b80151581146110df57600080fd5b600080604083850312156130f357600080fd5b82356130fe81612e82565b9150602083013561310e816130d2565b809150509250929050565b6000806040838503121561312c57600080fd5b82356130fe816130d2565b6000806040838503121561314a57600080fd5b823561315581612e82565b9150602083013561310e81612e82565b6000806000806080858703121561317b57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156131e85781600019048211156131ce576131ce613197565b808516156131db57918102915b93841c93908002906131b2565b509250929050565b6000826131ff575060016108c8565b8161320c575060006108c8565b8160018114613222576002811461322c57613248565b60019150506108c8565b60ff84111561323d5761323d613197565b50506001821b6108c8565b5060208310610133831016604e8410600b841016171561326b575081810a6108c8565b61327583836131ad565b806000190482111561328957613289613197565b029392505050565b600061299960ff8416836131f0565b80820281158282048414176108c8576108c8613197565b818103818111156108c8576108c8613197565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036132f7576132f7613197565b6001019392505050565b808201808211156108c8576108c8613197565b60008261333157634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561334957600080fd5b825161335481612e82565b602084015190925061310e81612e82565b6000806040838503121561337857600080fd5b505080516020909101519092909150565b60006020828403121561339b57600080fd5b5051919050565b6000602082840312156133b457600080fd5b8151612999816130d2565b6000602082840312156133d157600080fd5b815161299981612e82565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561342c5784516001600160a01b031683529383019391830191600101613407565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208956b83eb9222024238e2e8bde678547cbe118bc976997b643b1472bc75ee5c064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102ab5760003560e01c8063590ffdce11610164578063a9059cbb116100c6578063eafb5a3c1161008a578063fb78680d11610064578063fb78680d14610856578063fdb78c0e14610876578063feadde9c1461089757600080fd5b8063eafb5a3c14610801578063eb50e70e14610821578063ee5d9c2d1461084157600080fd5b8063a9059cbb14610741578063ab558e4d14610761578063b7df8b3614610781578063bfc2fc351461079b578063dd62ed3e146107bb57600080fd5b806375f0a874116101285780638a63bd9b116101025780638a63bd9b146106e85780638a8c523c146106fd57806395d89b411461071257600080fd5b806375f0a8741461068a57806380c581d1146106aa578063893d20e8146106ca57600080fd5b8063590ffdce146105e95780635a6f0918146106095780635c24b0741461061f57806370a082311461063f578063715018a61461067557600080fd5b8063285777511161020d5780634ada218b116101d15780634fb2e45d116101ab5780634fb2e45d146105715780634fbee1931461059157806350a8e016146105ca57600080fd5b80634ada218b146105175780634bbb93eb146105315780634e718e481461055157600080fd5b8063285777511461049a5780632b112e49146104b05780632e8fa821146104c5578063313ce567146104db578063452ed4f1146104f757600080fd5b806307dd79e01161026f57806318160ddd1161024957806318160ddd1461044357806323b872dd146104585780632610eaca1461047857600080fd5b806307dd79e0146103c0578063095ea7b3146103ea5780630dcbcf1c1461040a57600080fd5b806303fd2a45146102b75780630445b667146102ea578063069d955f1461030e57806306fdde03146103645780630758d9241461039b57600080fd5b366102b257005b600080fd5b3480156102c357600080fd5b506102cd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f657600080fd5b50610300600b5481565b6040519081526020016102e1565b34801561031a57600080fd5b5060075461033f9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102e1565b34801561037057600080fd5b5060408051808201909152600581526459554b4b5960d81b60208201525b6040516102e19190612e34565b3480156103a757600080fd5b506008546102cd9061010090046001600160a01b031681565b3480156103cc57600080fd5b506008546103da9060ff1681565b60405190151581526020016102e1565b3480156103f657600080fd5b506103da610405366004612e97565b6108b7565b34801561041657600080fd5b506103da610425366004612ec3565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561044f57600080fd5b506103006108ce565b34801561046457600080fd5b506103da610473366004612ee0565b6108ef565b34801561048457600080fd5b50610498610493366004612ff7565b610967565b005b3480156104a657600080fd5b50610300600e5481565b3480156104bc57600080fd5b50610300610b27565b3480156104d157600080fd5b50610300600c5481565b3480156104e757600080fd5b50604051601281526020016102e1565b34801561050357600080fd5b506009546102cd906001600160a01b031681565b34801561052357600080fd5b50600f546103da9060ff1681565b34801561053d57600080fd5b5061030061054c3660046130b9565b610ba5565b34801561055d57600080fd5b5061049861056c3660046130b9565b610bd9565b34801561057d57600080fd5b5061049861058c366004612ec3565b610c7d565b34801561059d57600080fd5b506103da6105ac366004612ec3565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156105d657600080fd5b50600f546103da90610100900460ff1681565b3480156105f557600080fd5b506104986106043660046130e0565b610e85565b34801561061557600080fd5b5061030060105481565b34801561062b57600080fd5b5061049861063a366004612ec3565b610efe565b34801561064b57600080fd5b5061030061065a366004612ec3565b6001600160a01b031660009081526020819052604090205490565b34801561068157600080fd5b506104986110e2565b34801561069657600080fd5b50600a546102cd906001600160a01b031681565b3480156106b657600080fd5b506104986106c53660046130e0565b61120d565b3480156106d657600080fd5b506011546001600160a01b03166102cd565b3480156106f457600080fd5b506103da61141e565b34801561070957600080fd5b50610498611494565b34801561071e57600080fd5b506040805180820190915260068152652459554b4b5960d01b602082015261038e565b34801561074d57600080fd5b506103da61075c366004612e97565b6116e4565b34801561076d57600080fd5b5061049861077c366004612ec3565b6116fb565b34801561078d57600080fd5b50600d546103da9060ff1681565b3480156107a757600080fd5b506104986107b6366004613119565b61189b565b3480156107c757600080fd5b506103006107d6366004613137565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561080d57600080fd5b5061049861081c366004612ec3565b61194c565b34801561082d57600080fd5b5061049861083c366004612ec3565b611d53565b34801561084d57600080fd5b50610498611e19565b34801561086257600080fd5b50610498610871366004613165565b611ef8565b34801561088257600080fd5b50600a546103da90600160a81b900460ff1681565b3480156108a357600080fd5b506104986108b23660046130e0565b6121c0565b60006108c4338484612239565b5060015b92915050565b60006108dc6012600a613291565b6108ea90633b9aca006132a0565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610954576001600160a01b03841660009081526003602090815260408083203384529091528120805484929061094e9084906132b7565b90915550505b61095f848484612332565b949350505050565b6011546001600160a01b031633146109ba5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b8051825114610a0b5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016109b1565b60005b82518161ffff161015610b2257610a276012600a613291565b828261ffff1681518110610a3d57610a3d6132ca565b6020026020010151610a4f91906132a0565b336000908152602081905260409020541015610aad5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016109b1565b610b0f33848361ffff1681518110610ac757610ac76132ca565b60200260200101516012600a610add9190613291565b858561ffff1681518110610af357610af36132ca565b6020026020010151610b0591906132a0565b600080600161267c565b5080610b1a816132e0565b915050610a0e565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610b819190613301565b610b8d6012600a613291565b610b9b90633b9aca006132a0565b6108ea91906132b7565b6009546001600160a01b031660009081526020819052604081205461271090610bcf9084906132a0565b6108c89190613314565b6011546001600160a01b03163314610c275760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6096811115610c785760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e0000000000000000000060448201526064016109b1565b600e55565b6011546001600160a01b03163314610ccb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b038116610d475760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109b1565b61deac196001600160a01b03821601610dc85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109b1565b601154610ddf906001600160a01b03166000610e85565b610dea816001610e85565b6011546001600160a01b031660009081526020819052604090205415610e33576011546001600160a01b0316600081815260208190526040902054610e3191908390610b05565b505b601180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6011546001600160a01b03163314610ed35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6011546001600160a01b03163314610f4c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f5460ff1615610f5c57600080fd5b306001600160a01b03821603610fb45760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016109b1565b600f805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af192505050801561103a575060408051601f3d908101601f1916820190925261103791810190613336565b60015b61104357600080fd5b6008805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600980546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560115492546110c09383169291900416600019612239565b600854610b2290309061010090046001600160a01b0316600019612239565b50565b6011546001600160a01b031633146111305760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f5460ff166111a85760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016109b1565b6011546111bf906001600160a01b03166000610e85565b601180546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6011546001600160a01b0316331461125b5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b806112eb576001600160a01b03828116600081815260016020526040808220805460ff19169055600f5490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b1580156112cf57600080fd5b505af11580156112e3573d6000803e3d6000fd5b505050505050565b60025415611352576203f4806002544261130591906132b7565b116113525760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e000000000000000000000000000000000060448201526064016109b1565b6001600160a01b03821660009081526001602052604090205460ff16156113bb5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e000000000060448201526064016109b1565b6001600160a01b03828116600081815260016020819052604091829020805460ff19168217905542600255600f5491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d1906044016112b5565b5050565b6011546000906001600160a01b0316331461146f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b60085461148e90309061010090046001600160a01b0316600019612239565b50600190565b6011546001600160a01b031633146114e25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f5460ff16156115355760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016109b1565b600f54610100900460ff1661158c5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016109b1565b600f546201000090046001600160a01b03166115bc57600f805462010000600160b01b0319163062010000021790555b600f54600954604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b15801561162e57600080fd5b505af192505050801561163f575060015b50600f546009546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af19250505080156116c2575060408051601f3d908101601f191682019092526116bf91810190613365565b60015b156116d157600b91909155600c555b600f805460ff1916600117905542601055565b60006116f1338484612332565b5060019392505050565b6011546001600160a01b031633146117495760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f54610100900460ff16156117b157306001600160a01b038216036117b15760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e000000000060448201526064016109b1565b6011546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182c9190613389565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611877573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2291906133a2565b6011546001600160a01b031633146118e95760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600a805460ff60a81b1916600160a81b84151590810291909117909155600d805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6011546001600160a01b0316331461199a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f54610100900460ff16156119f25760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e000060448201526064016109b1565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5b91906133bf565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc91906133bf565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3b91906133bf565b6009546001600160a01b039081166000908152600160205260409020805460ff191690559091508116611cd157816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bca91906133bf565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3b91906133bf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cac91906133bf565b600980546001600160a01b0319166001600160a01b0392909216919091179055611ced565b600980546001600160a01b0319166001600160a01b0383161790555b6008805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b03858116820292909217835560095482166000908152600160208190526040909120805460ff191690911790559154610b22923092910416600019612239565b6011546001600160a01b03163314611da15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b038116611df75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e00000000000000000060448201526064016109b1565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b03163314611e675760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b600f54610100900460ff1615611ebf5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016109b1565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110df573d6000803e3d6000fd5b6011546001600160a01b03163314611f465760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b8284611f546012600a613291565b611f6290633b9aca006132a0565b611f6c91906132a0565b611f769190613314565b600b558082611f876012600a613291565b611f9590633b9aca006132a0565b611f9f91906132a0565b611fa99190613314565b600c819055600b5411156120095760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b60648201526084016109b1565b6009546001600160a01b0316600090815260208190526040902054612710906120339060966132a0565b61203d9190613314565b600c54111561209a5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b60648201526084016109b1565b620f42406120aa6012600a613291565b6120b890633b9aca006132a0565b6120c29190613314565b600c54101561212a5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109b1565b620f424061213a6012600a613291565b61214890633b9aca006132a0565b6121529190613314565b600b5410156121ba5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109b1565b50505050565b6011546001600160a01b0316331461220e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016109b1565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166122855760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109b1565b6001600160a01b0382166122d15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109b1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166123985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109b1565b6001600160a01b0383166123fa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109b1565b6000821161245c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109b1565b6001600160a01b0384166000908152600160205260408120548190819060ff161561248a57600192506124b8565b6001600160a01b03861660009081526001602052604090205460ff16156124b457600191506124b8565b5060015b6124c28787612889565b156125c357600f5460ff166125c3578061251e5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016109b1565b6001600160a01b03871660009081526005602052604090205460ff1615801561256057506001600160a01b03861660009081526005602052604090205460ff16155b156125c35760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016109b1565b811561266357600a54600160a01b900460ff1661266357600a54600160a81b900460ff16156126635730600090815260208190526040902054600b54811061266157600c54600d5460ff161561264b57600e546009546001600160a01b03166000908152602081905260409020546127109161263e916132a0565b6126489190613314565b90505b808210612656578091505b61265f826129a0565b505b505b61267187878786868661267c565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff16806126be57506001600160a01b03871660009081526006602052604090205460ff165b156126c7575060005b6001600160a01b038816600090815260208190526040812080548892906126ef9084906132b7565b909155506000905081612702578661270e565b61270e89888888612be4565b9050806000808a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546127449190613301565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279091815260200190565b60405180910390a3600f54610100900460ff1661287a576127b18989612cf0565b600f54610100900460ff161580156127ce57506127ce8989612889565b80156127f357506001600160a01b03891660009081526005602052604090205460ff16155b801561281857506001600160a01b03881660009081526005602052604090205460ff16155b8015612822575083155b1561287a5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016109b1565b50600198975050505050505050565b6011546000906001600160a01b038481169116148015906128b857506011546001600160a01b03838116911614155b80156128cf57506011546001600160a01b03163214155b80156128f457506001600160a01b03821660009081526004602052604090205460ff16155b801561291957506001600160a01b03831660009081526004602052604090205460ff16155b801561293057506001600160a01b03821661dead14155b801561294457506001600160a01b03821615155b801561295957506001600160a01b0383163014155b80156129795750600f546001600160a01b03848116620100009092041614155b80156129995750600f546001600160a01b03838116620100009092041614155b9392505050565b600a805460ff60a01b1916600160a01b17905530600090815260036020908152604080832060085461010090046001600160a01b0316845290915290205460001914612a165730600090815260036020908152604080832060085461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a4b57612a4b6132ca565b60200260200101906001600160a01b031690816001600160a01b031681525050600860019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae291906133bf565b81600181518110612af557612af56132ca565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b81526101009091049091169063791ac94790612b429085906000908690309042906004016133dc565b600060405180830381600087803b158015612b5c57600080fd5b505af1925050508015612b6d575060015b612b775750612bd4565b600a546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114612bc9576040519150601f19603f3d011682016040523d82523d6000602084013e612bce565b606091505b50505050505b50600a805460ff60a01b19169055565b6000808315612bfa575060075461ffff16612c24565b8215612c13575060075462010000900461ffff16612c24565b50600754640100000000900461ffff165b80600003612c35578491505061095f565b600f546201000090046001600160a01b031630148015612c56575046606114155b15612c6057506111945b6000612710612c6f83886132a0565b612c799190613314565b90508015612ce6573060009081526020819052604081208054839290612ca0908490613301565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61267181876132b7565b600f54610100900460ff1615612d545760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016109b1565b612d5e8282612889565b158015612d7857506009546001600160a01b038281169116145b1561141a576001600160a01b038083166000908152600460209081526040808320805460ff1990811660019081179092556006909352922080549091169091179055600f805461ff001916610100179081905562010000900416612df057600f805462010000600160b01b0319163062010000021790555b600a805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611940565b600060208083528351808285015260005b81811015612e6157858101830151858201604001528201612e45565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110df57600080fd5b60008060408385031215612eaa57600080fd5b8235612eb581612e82565b946020939093013593505050565b600060208284031215612ed557600080fd5b813561299981612e82565b600080600060608486031215612ef557600080fd5b8335612f0081612e82565b92506020840135612f1081612e82565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612f6057612f60612f21565b604052919050565b600067ffffffffffffffff821115612f8257612f82612f21565b5060051b60200190565b600082601f830112612f9d57600080fd5b81356020612fb2612fad83612f68565b612f37565b82815260059290921b84018101918181019086841115612fd157600080fd5b8286015b84811015612fec5780358352918301918301612fd5565b509695505050505050565b6000806040838503121561300a57600080fd5b823567ffffffffffffffff8082111561302257600080fd5b818501915085601f83011261303657600080fd5b81356020613046612fad83612f68565b82815260059290921b8401810191818101908984111561306557600080fd5b948201945b8386101561308c57853561307d81612e82565b8252948201949082019061306a565b965050860135925050808211156130a257600080fd5b506130af85828601612f8c565b9150509250929050565b6000602082840312156130cb57600080fd5b5035919050565b80151581146110df57600080fd5b600080604083850312156130f357600080fd5b82356130fe81612e82565b9150602083013561310e816130d2565b809150509250929050565b6000806040838503121561312c57600080fd5b82356130fe816130d2565b6000806040838503121561314a57600080fd5b823561315581612e82565b9150602083013561310e81612e82565b6000806000806080858703121561317b57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156131e85781600019048211156131ce576131ce613197565b808516156131db57918102915b93841c93908002906131b2565b509250929050565b6000826131ff575060016108c8565b8161320c575060006108c8565b8160018114613222576002811461322c57613248565b60019150506108c8565b60ff84111561323d5761323d613197565b50506001821b6108c8565b5060208310610133831016604e8410600b841016171561326b575081810a6108c8565b61327583836131ad565b806000190482111561328957613289613197565b029392505050565b600061299960ff8416836131f0565b80820281158282048414176108c8576108c8613197565b818103818111156108c8576108c8613197565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036132f7576132f7613197565b6001019392505050565b808201808211156108c8576108c8613197565b60008261333157634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561334957600080fd5b825161335481612e82565b602084015190925061310e81612e82565b6000806040838503121561337857600080fd5b505080516020909101519092909150565b60006020828403121561339b57600080fd5b5051919050565b6000602082840312156133b457600080fd5b8151612999816130d2565b6000602082840312156133d157600080fd5b815161299981612e82565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561342c5784516001600160a01b031683529383019391830191600101613407565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208956b83eb9222024238e2e8bde678547cbe118bc976997b643b1472bc75ee5c064736f6c63430008130033

Deployed Bytecode Sourcemap

3889:17068:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4962:73;;;;;;;;;;;;4993:42;4962:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;4962:73:0;;;;;;;;5211:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5211:28:0;245:177:1;4702:107:0;;;;;;;;;;-1:-1:-1;4702:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;633:6:1;666:15;;;648:34;;718:15;;;713:2;698:18;;691:43;770:15;;750:18;;;743:43;;;;611:2;596:18;4702:107:0;427:365:1;8489:80:0;;;;;;;;;;-1:-1:-1;8561:5:0;;;;;;;;;;;;-1:-1:-1;;;8561:5:0;;;;8489:80;;;;;;;:::i;4901:26::-;;;;;;;;;;-1:-1:-1;4901:26:0;;;;;;;-1:-1:-1;;;;;4901:26:0;;;4868;;;;;;;;;;-1:-1:-1;4868:26:0;;;;;;;;;;;1763:14:1;;1756:22;1738:41;;1726:2;1711:18;4868:26:0;1598:187:1;9097:161:0;;;;;;;;;;-1:-1:-1;9097:161:0;;;;;:::i;:::-;;:::i;12183:140::-;;;;;;;;;;-1:-1:-1;12183:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;12281:34:0;12257:4;12281:34;;;:25;:34;;;;;;;;;12183:140;8224:83;;;;;;;;;;;;;:::i;9767:306::-;;;;;;;;;;-1:-1:-1;9767:306:0;;;;;:::i;:::-;;:::i;18907:447::-;;;;;;;;;;-1:-1:-1;18907:447:0;;;;;:::i;:::-;;:::i;:::-;;5319:33;;;;;;;;;;;;;;;;12487:141;;;;;;;;;;;;;:::i;5246:25::-;;;;;;;;;;;;;;;;8313:80;;;;;;;;;;-1:-1:-1;8313:80:0;;4513:2;5611:36:1;;5599:2;5584:18;8313:80:0;5469:184:1;4934:21:0;;;;;;;;;;-1:-1:-1;4934:21:0;;;;-1:-1:-1;;;;;4934:21:0;;;5359:34;;;;;;;;;;-1:-1:-1;5359:34:0;;;;;;;;12835:189;;;;;;;;;;-1:-1:-1;12835:189:0;;;;;:::i;:::-;;:::i;13739:217::-;;;;;;;;;;-1:-1:-1;13739:217:0;;;;;:::i;:::-;;:::i;6856:654::-;;;;;;;;;;-1:-1:-1;6856:654:0;;;;;:::i;:::-;;:::i;11906:127::-;;;;;;;;;;-1:-1:-1;11906:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11997:28:0;11973:4;11997:28;;;:19;:28;;;;;;;;;11906:127;5400:36;;;;;;;;;;-1:-1:-1;5400:36:0;;;;;;;;;;;12041:134;;;;;;;;;;-1:-1:-1;12041:134:0;;;;;:::i;:::-;;:::i;5473:26::-;;;;;;;;;;;;;;;;11341:557;;;;;;;;;;-1:-1:-1;11341:557:0;;;;;:::i;:::-;;:::i;8799:117::-;;;;;;;;;;-1:-1:-1;8799:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8892:16:0;8865:7;8892:16;;;;;;;;;;;;8799:117;7518:310;;;;;;;;;;;;;:::i;5042:92::-;;;;;;;;;;-1:-1:-1;5042:92:0;;;;-1:-1:-1;;;;;5042:92:0;;;10769:564;;;;;;;;;;-1:-1:-1;10769:564:0;;;;;:::i;:::-;;:::i;8575:79::-;;;;;;;;;;-1:-1:-1;8645:6:0;;-1:-1:-1;;;;;8645:6:0;8575:79;;9584:175;;;;;;;;;;;;;:::i;17710:695::-;;;;;;;;;;;;;:::i;8399:84::-;;;;;;;;;;-1:-1:-1;8473:7:0;;;;;;;;;;;;-1:-1:-1;;;8473:7:0;;;;8399:84;;8924:165;;;;;;;;;;-1:-1:-1;8924:165:0;;;;;:::i;:::-;;:::i;18603:296::-;;;;;;;;;;-1:-1:-1;18603:296:0;;;;;:::i;:::-;;:::i;5278:34::-;;;;;;;;;;-1:-1:-1;5278:34:0;;;;;;;;13964:263;;;;;;;;;;-1:-1:-1;13964:263:0;;;;;:::i;:::-;;:::i;8660:133::-;;;;;;;;;;-1:-1:-1;8660:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8762:19:0;;;8744:7;8762:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8660:133;10081:680;;;;;;;;;;-1:-1:-1;10081:680:0;;;;;:::i;:::-;;:::i;12636:191::-;;;;;;;;;;-1:-1:-1;12636:191:0;;;;;:::i;:::-;;:::i;18413:182::-;;;;;;;;;;;;;:::i;13032:699::-;;;;;;;;;;-1:-1:-1;13032:699:0;;;;;:::i;:::-;;:::i;5165:39::-;;;;;;;;;;-1:-1:-1;5165:39:0;;;;-1:-1:-1;;;5165:39:0;;;;;;12331:148;;;;;;;;;;-1:-1:-1;12331:148:0;;;;;:::i;:::-;;:::i;9097:161::-;9174:4;9191:37;9200:10;9212:7;9221:6;9191:8;:37::i;:::-;-1:-1:-1;9246:4:0;9097:161;;;;;:::o;8224:83::-;8279:7;4574:13;4513:2;4574;:13;:::i;:::-;4557:30;;4363:13;4557:30;:::i;:::-;8290:14;;8224:83;:::o;9767:306::-;-1:-1:-1;;;;;9888:19:0;;9867:4;9888:19;;;:11;:19;;;;;;;;9908:10;9888:31;;;;;;;;-1:-1:-1;;9888:52:0;9884:126;;-1:-1:-1;;;;;9957:19:0;;;;;;:11;:19;;;;;;;;9977:10;9957:31;;;;;;;:41;;9992:6;;9957:19;:41;;9992:6;;9957:41;:::i;:::-;;;;-1:-1:-1;;9884:126:0;10029:36;10039:6;10047:9;10058:6;10029:9;:36::i;:::-;10022:43;9767:306;-1:-1:-1;;;;9767:306:0:o;18907:447::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;;;;;;;;;19042:7:::1;:14;19023:8;:15;:33;19015:67;;;::::0;-1:-1:-1;;;19015:67:0;;10393:2:1;19015:67:0::1;::::0;::::1;10375:21:1::0;10432:2;10412:18;;;10405:30;10471:23;10451:18;;;10444:51;10512:18;;19015:67:0::1;10191:345:1::0;19015:67:0::1;19098:8;19093:254;19116:8;:15;19112:1;:19;;;19093:254;;;19197:13;4513:2;19197;:13;:::i;:::-;19186:7;19194:1;19186:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;19171:10;8865:7:::0;8892:16;;;;;;;;;;;19161:49:::1;;19153:80;;;::::0;-1:-1:-1;;;19153:80:0;;10875:2:1;19153:80:0::1;::::0;::::1;10857:21:1::0;10914:2;10894:18;;;10887:30;10953:20;10933:18;;;10926:48;10991:18;;19153:80:0::1;10673:342:1::0;19153:80:0::1;19248:87;19265:10;19277:8;19286:1;19277:11;;;;;;;;;;:::i;:::-;;;;;;;4513:2;19301;:13;;;;:::i;:::-;19290:7;19298:1;19290:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;19316:5;19323::::0;19330:4:::1;19248:16;:87::i;:::-;-1:-1:-1::0;19133:3:0;::::1;::::0;::::1;:::i;:::-;;;;19093:254;;;;18907:447:::0;;:::o;12487:141::-;12540:7;8892:16;;;;;;4993:42;8892:16;;;;12579:39;;8892:16;12579:39;:::i;:::-;4574:13;4513:2;4574;:13;:::i;:::-;4557:30;;4363:13;4557:30;:::i;:::-;12568:51;;;;:::i;12835:189::-;12964:6;;-1:-1:-1;;;;;12964:6:0;12926:7;8892:16;;;;;;;;;;;4854:5;;12954:41;;12974:21;;12954:41;:::i;:::-;12953:62;;;;:::i;13739:217::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;13869:3:::1;13843:22;:29;;13835:64;;;::::0;-1:-1:-1;;;13835:64:0;;11776:2:1;13835:64:0::1;::::0;::::1;11758:21:1::0;11815:2;11795:18;;;11788:30;11854:24;11834:18;;;11827:52;11896:18;;13835:64:0::1;11574:346:1::0;13835:64:0::1;13910:13;:38:::0;13739:217::o;6856:654::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;-1:-1:-1;;;;;6935:22:0;::::1;6927:96;;;::::0;-1:-1:-1;;;6927:96:0;;12127:2:1;6927:96:0::1;::::0;::::1;12109:21:1::0;12166:2;12146:18;;;12139:30;12205:34;12185:18;;;12178:62;12276:31;12256:18;;;12249:59;12325:19;;6927:96:0::1;11925:425:1::0;6927:96:0::1;-1:-1:-1::0;;;;;;;7042:16:0;::::1;::::0;7034:90:::1;;;::::0;-1:-1:-1;;;7034:90:0;;12127:2:1;7034:90:0::1;::::0;::::1;12109:21:1::0;12166:2;12146:18;;;12139:30;12205:34;12185:18;;;12178:62;12276:31;12256:18;;;12249:59;12325:19;;7034:90:0::1;11925:425:1::0;7034:90:0::1;7155:6;::::0;7135:34:::1;::::0;-1:-1:-1;;;;;7155:6:0::1;;7135:19;:34::i;:::-;7180:35;7200:8;7210:4;7180:19;:35::i;:::-;7250:6;::::0;-1:-1:-1;;;;;7250:6:0::1;7260:1;8892:16:::0;;;;;;;;;;;7240:21;7236:127:::1;;7295:6;::::0;-1:-1:-1;;;;;7295:6:0::1;8865:7:::0;8892:16;;;;;;;;;;;7278:73:::1;::::0;7295:6;7303:8;;7313:17:::1;8799:117:::0;7278:73:::1;;7236:127;7402:6;::::0;;-1:-1:-1;;;;;7419:17:0;;::::1;-1:-1:-1::0;;;;;;7419:17:0;::::1;::::0;::::1;::::0;;;7452:40:::1;::::0;7402:6;::::1;::::0;7419:17;7402:6;;7452:40:::1;::::0;7383:16:::1;::::0;7452:40:::1;6916:594;6856:654:::0;:::o;12041:134::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;-1:-1:-1;;;;;12129:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;12129:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12041:134::o;11341:557::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;11416:14:::1;::::0;::::1;;11415:15;11407:24;;;::::0;::::1;;11466:4;-1:-1:-1::0;;;;;11450:21:0;::::1;::::0;11442:48:::1;;;::::0;-1:-1:-1;;;11442:48:0;;12557:2:1;11442:48:0::1;::::0;::::1;12539:21:1::0;12596:2;12576:18;;;12569:30;12635:16;12615:18;;;12608:44;12669:18;;11442:48:0::1;12355:338:1::0;11442:48:0::1;11501:11;:31:::0;;-1:-1:-1;;;;;;11501:31:0::1;::::0;-1:-1:-1;;;;;11501:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;11547:23:::1;::::0;;-1:-1:-1;;;11547:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;11547:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;11547:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;11547:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;11543:348;;11880:8;::::0;::::1;11543:348;11634:9;:29:::0;;-1:-1:-1;;11634:29:0::1;;-1:-1:-1::0;;;;;11634:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;11665:6:::1;:22:::0;;-1:-1:-1;;;;;;11665:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11689:15:0;;;-1:-1:-1;11689:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;11689:22:0::1;::::0;;::::1;::::0;;11736:6:::1;::::0;11752:9;;11727:55:::1;::::0;11736:6;::::1;::::0;11752:9;;::::1;;-1:-1:-1::0;;11727:8:0::1;:55::i;:::-;11829:9;::::0;11797:62:::1;::::0;11814:4:::1;::::0;11829:9:::1;::::0;::::1;-1:-1:-1::0;;;;;11829:9:0::1;-1:-1:-1::0;;11797:8:0::1;:62::i;11543:348::-;11341:557:::0;:::o;7518:310::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;7585:14:::1;::::0;::::1;;7577:74;;;::::0;-1:-1:-1;;;7577:74:0;;13290:2:1;7577:74:0::1;::::0;::::1;13272:21:1::0;13329:2;13309:18;;;13302:30;13368:34;13348:18;;;13341:62;13439:17;13419:18;;;13412:45;13474:19;;7577:74:0::1;13088:411:1::0;7577:74:0::1;7682:6;::::0;7662:34:::1;::::0;-1:-1:-1;;;;;7682:6:0::1;;7662:19;:34::i;:::-;7726:6;::::0;;-1:-1:-1;;;;;;7743:19:0;::::1;::::0;;;7778:42:::1;::::0;-1:-1:-1;;;;;7726:6:0;;::::1;::::0;7707:16:::1;::::0;7726:6;;7778:42:::1;::::0;7707:16;;7778:42:::1;7566:262;7518:310::o:0;10769:564::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;10851:7:::1;10846:480;;-1:-1:-1::0;;;;;10875:13:0;;::::1;10891:5;10875:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;10875:21:0::1;::::0;;10911:11:::1;::::0;:34;;-1:-1:-1;;;10911:34:0;;::::1;::::0;::::1;13672:74:1::0;;;;13762:18;;;13755:50;;;;10911:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;13645:18:1;;10911:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10769:564:::0;;:::o;10846:480::-:1;10982:17;::::0;:22;10978:135:::1;;11071:6;11051:17;;11033:15;:35;;;;:::i;:::-;:44;11025:72;;;::::0;-1:-1:-1;;;11025:72:0;;14018:2:1;11025:72:0::1;::::0;::::1;14000:21:1::0;14057:2;14037:18;;;14030:30;14096:17;14076:18;;;14069:45;14131:18;;11025:72:0::1;13816:339:1::0;11025:72:0::1;-1:-1:-1::0;;;;;11136:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;11135:14;11127:54;;;::::0;-1:-1:-1;;;11127:54:0;;14362:2:1;11127:54:0::1;::::0;::::1;14344:21:1::0;14401:2;14381:18;;;14374:30;14440:29;14420:18;;;14413:57;14487:18;;11127:54:0::1;14160:351:1::0;11127:54:0::1;-1:-1:-1::0;;;;;11196:13:0;;::::1;;::::0;;;11212:4:::1;11196:13;::::0;;;;;;;;:20;;-1:-1:-1;;11196:20:0::1;::::0;::::1;::::0;;11251:15:::1;11231:17;:35:::0;11281:11:::1;::::0;:33;;-1:-1:-1;;;11281:33:0;;::::1;::::0;::::1;13672:74:1::0;;;;13762:18;;;13755:50;11281:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;13645:18:1;;11281:33:0::1;13504:307:1::0;10846:480:0::1;10769:564:::0;;:::o;9584:175::-;6710:6;;9650:4;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;9699:9:::1;::::0;9667:62:::1;::::0;9684:4:::1;::::0;9699:9:::1;::::0;::::1;-1:-1:-1::0;;;;;9699:9:0::1;-1:-1:-1::0;;9667:8:0::1;:62::i;:::-;-1:-1:-1::0;9747:4:0::1;9584:175:::0;:::o;17710:695::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;17772:14:::1;::::0;::::1;;17771:15;17763:52;;;::::0;-1:-1:-1;;;17763:52:0;;14718:2:1;17763:52:0::1;::::0;::::1;14700:21:1::0;14757:2;14737:18;;;14730:30;14796:26;14776:18;;;14769:54;14840:18;;17763:52:0::1;14516:348:1::0;17763:52:0::1;17834:16;::::0;::::1;::::0;::::1;;;17826:53;;;::::0;-1:-1:-1;;;17826:53:0;;15071:2:1;17826:53:0::1;::::0;::::1;15053:21:1::0;15110:2;15090:18;;;15083:30;15149:26;15129:18;;;15122:54;15193:18;;17826:53:0::1;14869:348:1::0;17826:53:0::1;17902:11;::::0;;;::::1;-1:-1:-1::0;;;;;17902:11:0::1;17890:106;;17944:11;:40:::0;;-1:-1:-1;;;;;;17944:40:0::1;17978:4;17944:40:::0;::::1;;::::0;;17890:106:::1;18010:11;::::0;18032:6:::1;::::0;18010:87:::1;::::0;-1:-1:-1;;;18010:87:0;;-1:-1:-1;;;;;18032:6:0;;::::1;18010:87;::::0;::::1;15445:74:1::0;15567:10;18047:12:0::1;15555:23:1::0;15535:18;;;15528:51;15627:18;18069:15:0::1;15615:31:1::0;15595:18;;;15588:59;4513:2:0::1;15663:18:1::0;;;15656:45;18010:11:0;;;::::1;;::::0;:21:::1;::::0;15417:19:1;;18010:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;18123:11:0::1;::::0;18154:6:::1;::::0;-1:-1:-1;;;;;18154:6:0;;::::1;8865:7:::0;8892:16;;;;;;;;;;;;;18123:39;;-1:-1:-1;;;18123:39:0;;::::1;::::0;::::1;391:25:1::0;;;;18123:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;18123:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;18123:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;18123:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;18119:207:::0;::::1;;18234:13;:29:::0;;;;18278:10:::1;:27:::0;18119:207:::1;18336:14;:21:::0;;-1:-1:-1;;18336:21:0::1;18353:4;18336:21;::::0;;18382:15:::1;18368:11;:29:::0;17710:695::o;8924:165::-;9002:4;9019:40;9029:10;9041:9;9052:6;9019:9;:40::i;:::-;-1:-1:-1;9077:4:0;;8924:165;-1:-1:-1;;;8924:165:0:o;18603:296::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;18681:16:::1;::::0;::::1;::::0;::::1;;;18677:111;;;18739:4;-1:-1:-1::0;;;;;18722:22:0;::::1;::::0;18714:62:::1;;;::::0;-1:-1:-1;;;18714:62:0;;16164:2:1;18714:62:0::1;::::0;::::1;16146:21:1::0;16203:2;16183:18;;;16176:30;16242:29;16222:18;;;16215:57;16289:18;;18714:62:0::1;15962:351:1::0;18714:62:0::1;18852:6;::::0;18860:30:::1;::::0;-1:-1:-1;;;18860:30:0;;18884:4:::1;18860:30;::::0;::::1;160:74:1::0;18820:5:0;;-1:-1:-1;;;;;18837:14:0;;::::1;::::0;::::1;::::0;18852:6;;;::::1;::::0;18837:14;;18860:15:::1;::::0;133:18:1;;18860:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18837:54;::::0;-1:-1:-1;;;;;;18837:54:0::1;::::0;;;;;;-1:-1:-1;;;;;16699:55:1;;;18837:54:0::1;::::0;::::1;16681:74:1::0;16771:18;;;16764:34;16654:18;;18837:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13964:263::-:0;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;14073:19:::1;:33:::0;;-1:-1:-1;;;;14073:33:0::1;-1:-1:-1::0;;;14073:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;14117:22:::1;:47:::0;;-1:-1:-1;;14117:47:0::1;::::0;::::1;;;::::0;;14180:39:::1;::::0;1738:41:1;;;14180:39:0::1;::::0;1726:2:1;1711:18;14180:39:0::1;;;;;;;;13964:263:::0;;:::o;10081:680::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;10161:16:::1;::::0;::::1;::::0;::::1;;;10160:17;10152:60;;;::::0;-1:-1:-1;;;10152:60:0;;17261:2:1;10152:60:0::1;::::0;::::1;17243:21:1::0;17300:2;17280:18;;;17273:30;17339:32;17319:18;;;17312:60;17389:18;;10152:60:0::1;17059:354:1::0;10152:60:0::1;10223:20;10256:9;10223:43;;10277:16;10307:10;-1:-1:-1::0;;;;;10307:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10296:40:0::1;;10345:4;10352:10;-1:-1:-1::0;;;;;10352:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10296:74;::::0;-1:-1:-1;;;;;;10296:74:0::1;::::0;;;;;;-1:-1:-1;;;;;17927:15:1;;;10296:74:0::1;::::0;::::1;17909:34:1::0;17979:15;;17959:18;;;17952:43;17821:18;;10296:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10389:6;::::0;-1:-1:-1;;;;;10389:6:0;;::::1;10399:5;10381:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;10381:23:0::1;::::0;;10277:93;;-1:-1:-1;10419:22:0;::::1;10415:200;;10478:10;-1:-1:-1::0;;;;;10478:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10467:43:0::1;;10519:4;10526:10;-1:-1:-1::0;;;;;10526:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10467:77;::::0;-1:-1:-1;;;;;;10467:77:0::1;::::0;;;;;;-1:-1:-1;;;;;17927:15:1;;;10467:77:0::1;::::0;::::1;17909:34:1::0;17979:15;;17959:18;;;17952:43;17821:18;;10467:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10458:6;:86:::0;;-1:-1:-1;;;;;;10458:86:0::1;-1:-1:-1::0;;;;;10458:86:0;;;::::1;::::0;;;::::1;::::0;;10415:200:::1;;;10586:6;:17:::0;;-1:-1:-1;;;;;;10586:17:0::1;-1:-1:-1::0;;;;;10586:17:0;::::1;;::::0;;10415:200:::1;10625:9;:22:::0;;-1:-1:-1;;10625:22:0::1;;-1:-1:-1::0;;;;;10625:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;10666:6:::1;::::0;;::::1;-1:-1:-1::0;10658:15:0;;;-1:-1:-1;10658:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;10658:22:0::1;::::0;;::::1;::::0;;10723:9;;10691:62:::1;::::0;10708:4:::1;::::0;10723:9;::::1;;-1:-1:-1::0;;10691:8:0::1;:62::i;12636:191::-:0;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;-1:-1:-1;;;;;12721:23:0;::::1;12713:59;;;::::0;-1:-1:-1;;;12713:59:0;;18208:2:1;12713:59:0::1;::::0;::::1;18190:21:1::0;18247:2;18227:18;;;18220:30;18286:25;18266:18;;;18259:53;18329:18;;12713:59:0::1;18006:347:1::0;12713:59:0::1;12783:15;:36:::0;;-1:-1:-1;;;;;;12783:36:0::1;-1:-1:-1::0;;;;;12783:36:0;;;::::1;::::0;;;::::1;::::0;;12636:191::o;18413:182::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;18480:16:::1;::::0;::::1;::::0;::::1;;;18479:17;18471:58;;;::::0;-1:-1:-1;;;18471:58:0;;18560:2:1;18471:58:0::1;::::0;::::1;18542:21:1::0;18599:2;18579:18;;;18572:30;18638;18618:18;;;18611:58;18686:18;;18471:58:0::1;18358:352:1::0;18471:58:0::1;18548:6;::::0;18540:47:::1;::::0;-1:-1:-1;;;;;18548:6:0;;::::1;::::0;18565:21:::1;18540:47:::0;::::1;;;::::0;18548:6:::1;18540:47:::0;18548:6;18540:47;18565:21;18548:6;18540:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;13032:699:::0;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;13232:16;13212;4574:13:::1;4513:2;4574;:13;:::i;:::-;4557:30;::::0;4363:13:::1;4557:30;:::i;:::-;13202:26;;;;:::i;:::-;13201:47;;;;:::i;:::-;13185:13;:63:::0;13300:13;13283;4574::::1;4513:2;4574;:13;:::i;:::-;4557:30;::::0;4363:13:::1;4557:30;:::i;:::-;13273:23;;;;:::i;:::-;13272:41;;;;:::i;:::-;13259:10;:54:::0;;;13332:13:::1;::::0;:27:::1;;13324:73;;;::::0;-1:-1:-1;;;13324:73:0;;18917:2:1;13324:73:0::1;::::0;::::1;18899:21:1::0;18956:2;18936:18;;;18929:30;18995:34;18975:18;;;18968:62;-1:-1:-1;;;19046:18:1;;;19039:31;19087:19;;13324:73:0::1;18715:397:1::0;13324:73:0::1;13441:6;::::0;-1:-1:-1;;;;;13441:6:0::1;8865:7:::0;8892:16;;;;;;;;;;;4854:5:::1;::::0;13431:23:::1;::::0;13451:3:::1;13431:23;:::i;:::-;13430:44;;;;:::i;:::-;13416:10;;:58;;13408:106;;;::::0;-1:-1:-1;;;13408:106:0;;19319:2:1;13408:106:0::1;::::0;::::1;19301:21:1::0;19358:2;19338:18;;;19331:30;19397:34;19377:18;;;19370:62;-1:-1:-1;;;19448:18:1;;;19441:33;19491:19;;13408:106:0::1;19117:399:1::0;13408:106:0::1;13557:9;4574:13;4513:2;4574;:13;:::i;:::-;4557:30;::::0;4363:13:::1;4557:30;:::i;:::-;13547:19;;;;:::i;:::-;13533:10;;:33;;13525:92;;;::::0;-1:-1:-1;;;13525:92:0;;19723:2:1;13525:92:0::1;::::0;::::1;19705:21:1::0;19762:2;19742:18;;;19735:30;19801:34;19781:18;;;19774:62;-1:-1:-1;;;19852:18:1;;;19845:44;19906:19;;13525:92:0::1;19521:410:1::0;13525:92:0::1;13663:9;4574:13;4513:2;4574;:13;:::i;:::-;4557:30;::::0;4363:13:::1;4557:30;:::i;:::-;13653:19;;;;:::i;:::-;13636:13;;:36;;13628:95;;;::::0;-1:-1:-1;;;13628:95:0;;19723:2:1;13628:95:0::1;::::0;::::1;19705:21:1::0;19762:2;19742:18;;;19735:30;19801:34;19781:18;;;19774:62;-1:-1:-1;;;19852:18:1;;;19845:44;19906:19;;13628:95:0::1;19521:410:1::0;13628:95:0::1;13032:699:::0;;;;:::o;12331:148::-;6710:6;;-1:-1:-1;;;;;6710:6:0;6720:10;6710:20;6702:50;;;;-1:-1:-1;;;6702:50:0;;10047:2:1;6702:50:0;;;10029:21:1;10086:2;10066:18;;;10059:30;-1:-1:-1;;;10105:18:1;;;10098:47;10162:18;;6702:50:0;9845:341:1;6702:50:0;-1:-1:-1;;;;;12427:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;12427:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12331:148::o;9266:310::-;-1:-1:-1;;;;;9361:20:0;;9353:52;;;;-1:-1:-1;;;9353:52:0;;20138:2:1;9353:52:0;;;20120:21:1;20177:2;20157:18;;;20150:30;-1:-1:-1;;;20196:18:1;;;20189:49;20255:18;;9353:52:0;19936:343:1;9353:52:0;-1:-1:-1;;;;;9424:21:0;;9416:53;;;;-1:-1:-1;;;9416:53:0;;20138:2:1;9416:53:0;;;20120:21:1;20177:2;20157:18;;;20150:30;-1:-1:-1;;;20196:18:1;;;20189:49;20255:18;;9416:53:0;19936:343:1;9416:53:0;-1:-1:-1;;;;;9482:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9535:33;;391:25:1;;;9535:33:0;;364:18:1;9535:33:0;;;;;;;9266:310;;;:::o;14689:1673::-;14768:4;-1:-1:-1;;;;;14793:18:0;;14785:68;;;;-1:-1:-1;;;14785:68:0;;20486:2:1;14785:68:0;;;20468:21:1;20525:2;20505:18;;;20498:30;20564:34;20544:18;;;20537:62;-1:-1:-1;;;20615:18:1;;;20608:35;20660:19;;14785:68:0;20284:401:1;14785:68:0;-1:-1:-1;;;;;14872:16:0;;14864:64;;;;-1:-1:-1;;;14864:64:0;;20892:2:1;14864:64:0;;;20874:21:1;20931:2;20911:18;;;20904:30;20970:34;20950:18;;;20943:62;-1:-1:-1;;;21021:18:1;;;21014:33;21064:19;;14864:64:0;20690:399:1;14864:64:0;14956:1;14947:6;:10;14939:64;;;;-1:-1:-1;;;14939:64:0;;21296:2:1;14939:64:0;;;21278:21:1;21335:2;21315:18;;;21308:30;21374:34;21354:18;;;21347:62;-1:-1:-1;;;21425:18:1;;;21418:39;21474:19;;14939:64:0;21094:405:1;14939:64:0;-1:-1:-1;;;;;15102:13:0;;15014:8;15102:13;;;:7;:13;;;;;;15014:8;;;;15102:13;;15098:162;;;15138:4;15132:10;;15098:162;;;-1:-1:-1;;;;;15164:11:0;;;;;;:7;:11;;;;;;;;15160:100;;;15199:4;15192:11;;15160:100;;;-1:-1:-1;15244:4:0;15160:100;15274:20;15285:4;15291:2;15274:10;:20::i;:::-;15270:371;;;15315:14;;;;15311:319;;15355:5;15350:265;;15385:34;;-1:-1:-1;;;15385:34:0;;21706:2:1;15385:34:0;;;21688:21:1;21745:2;21725:18;;;21718:30;21784:26;21764:18;;;21757:54;21828:18;;15385:34:0;21504:348:1;15350:265:0;-1:-1:-1;;;;;15450:31:0;;;;;;:25;:31;;;;;;;;15449:32;:66;;;;-1:-1:-1;;;;;;15486:29:0;;;;;;:25;:29;;;;;;;;15485:30;15449:66;15445:170;;;15540:55;;-1:-1:-1;;;15540:55:0;;22059:2:1;15540:55:0;;;22041:21:1;22098:2;22078:18;;;22071:30;22137:34;22117:18;;;22110:62;-1:-1:-1;;;22188:18:1;;;22181:43;22241:19;;15540:55:0;21857:409:1;15445:170:0;15657:4;15653:632;;;15683:6;;-1:-1:-1;;;15683:6:0;;;;15678:596;;15714:19;;-1:-1:-1;;;15714:19:0;;;;15710:549;;;15807:4;15758:28;8892:16;;;;;;;;;;;15864:13;;15840:37;;15836:404;;15924:10;;15965:22;;;;15961:97;;;16022:13;;16012:6;;-1:-1:-1;;;;;16012:6:0;8865:7;8892:16;;;;;;;;;;;4854:5;;16002:33;;;:::i;:::-;16001:54;;;;:::i;:::-;15991:64;;15961:97;16112:7;16088:20;:31;16084:72;;16146:7;16123:30;;16084:72;16182:34;16195:20;16182:12;:34::i;:::-;15879:361;15836:404;15735:524;15710:549;16302:52;16319:4;16325:2;16329:6;16337:3;16342:4;16348:5;16302:16;:52::i;:::-;16295:59;14689:1673;-1:-1:-1;;;;;;;14689:1673:0:o;19362:817::-;-1:-1:-1;;;;;19532:25:0;;19481:4;19532:25;;;:19;:25;;;;;;19513:4;;19532:25;;;:52;;-1:-1:-1;;;;;;19561:23:0;;;;;;:19;:23;;;;;;;;19532:52;19528:99;;;-1:-1:-1;19610:5:0;19528:99;-1:-1:-1;;;;;19637:13:0;;:7;:13;;;;;;;;;;:23;;19654:6;;19637:7;:23;;19654:6;;19637:23;:::i;:::-;;;;-1:-1:-1;19671:22:0;;-1:-1:-1;19697:7:0;19696:55;;19745:6;19696:55;;;19708:34;19718:4;19724:6;19732:3;19737:4;19708:9;:34::i;:::-;19671:80;;19777:14;19762:7;:11;19770:2;-1:-1:-1;;;;;19762:11:0;-1:-1:-1;;;;;19762:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;19822:2;-1:-1:-1;;;;;19807:34:0;19816:4;-1:-1:-1;;;;;19807:34:0;;19826:14;19807:34;;;;391:25:1;;379:2;364:18;;245:177;19807:34:0;;;;;;;;19857:16;;;;;;;19852:298;;19890:28;19909:4;19915:2;19890:18;:28::i;:::-;19938:16;;;;;;;19937:17;:41;;;;;19958:20;19969:4;19975:2;19958:10;:20::i;:::-;19937:77;;;;-1:-1:-1;;;;;;19983:31:0;;;;;;:25;:31;;;;;;;;19982:32;19937:77;:111;;;;-1:-1:-1;;;;;;20019:29:0;;;;;;:25;:29;;;;;;;;20018:30;19937:111;:121;;;;;20053:5;20052:6;19937:121;19933:206;;;20079:44;;-1:-1:-1;;;20079:44:0;;22473:2:1;20079:44:0;;;22455:21:1;22512:2;22492:18;;;22485:30;22551:34;22531:18;;;22524:62;-1:-1:-1;;;22602:18:1;;;22595:32;22644:19;;20079:44:0;22271:398:1;19933:206:0;-1:-1:-1;20167:4:0;;19362:817;-1:-1:-1;;;;;;;;19362:817:0:o;14235:446::-;14336:6;;14304:4;;-1:-1:-1;;;;;14328:14:0;;;14336:6;;14328:14;;;;:43;;-1:-1:-1;14365:6:0;;-1:-1:-1;;;;;14359:12:0;;;14365:6;;14359:12;;14328:43;:79;;;;-1:-1:-1;14401:6:0;;-1:-1:-1;;;;;14401:6:0;14388:9;:19;;14328:79;:118;;;;-1:-1:-1;;;;;;14425:21:0;;;;;;:17;:21;;;;;;;;14424:22;14328:118;:159;;;;-1:-1:-1;;;;;;14464:23:0;;;;;;:17;:23;;;;;;;;14463:24;14328:159;:186;;;;-1:-1:-1;;;;;;14504:10:0;;4993:42;14504:10;;14328:186;:219;;;;-1:-1:-1;;;;;;14531:16:0;;;;14328:219;:257;;;;-1:-1:-1;;;;;;14564:21:0;;14580:4;14564:21;;14328:257;:302;;;;-1:-1:-1;14618:11:0;;-1:-1:-1;;;;;14602:28:0;;;14618:11;;;;;14602:28;;14328:302;:345;;;;-1:-1:-1;14661:11:0;;-1:-1:-1;;;;;14647:26:0;;;14661:11;;;;;14647:26;;14328:345;14321:352;14235:446;-1:-1:-1;;;14235:446:0:o;16370:761::-;5664:6;:13;;-1:-1:-1;;;;5664:13:0;-1:-1:-1;;;5664:13:0;;;16477:4:::1;5664:13:::0;16457:26;;;:11:::1;:26;::::0;;;;;;;16492:9:::1;::::0;5664:13;16492:9;::::1;-1:-1:-1::0;;;;;16492:9:0::1;16457:46:::0;;;;;;;;-1:-1:-1;;16457:67:0::1;16453:166;;16561:4;16541:26;::::0;;;:11:::1;:26;::::0;;;;;;;16576:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;16576:9:0::1;16541:46:::0;;;;;;;-1:-1:-1;;16541:66:0;;16453:166:::1;16663:16;::::0;;16677:1:::1;16663:16:::0;;;;;::::1;::::0;;16639:21:::1;::::0;16663:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16663:16:0::1;16639:40;;16708:4;16690;16695:1;16690:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;16690:23:0::1;;;-1:-1:-1::0;;;;;16690:23:0::1;;;::::0;::::1;16734:9;;;;;;;;;-1:-1:-1::0;;;;;16734:9:0::1;-1:-1:-1::0;;;;;16734:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16724:4;16729:1;16724:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16724:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;16767:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;16767:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;16842:20;;16877:1:::1;::::0;16893:4;;16920::::1;::::0;16940:15:::1;::::0;16767:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;16763:246;;16991:7;;;16763:246;17057:15;::::0;:66:::1;::::0;17021:12:::1;::::0;-1:-1:-1;;;;;17057:15:0::1;::::0;17113:5:::1;::::0;17085:21:::1;::::0;17021:12;17057:66;17021:12;17057:66;17085:21;17057:15;17113:5;17057:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;5688:1:0::1;-1:-1:-1::0;5700:6:0;:14;;-1:-1:-1;;;;5700:14:0;;;16370:761::o;20187:767::-;20275:7;20295:18;20328:3;20324:205;;;-1:-1:-1;20361:9:0;:16;;;20324:205;;;20399:4;20395:134;;;-1:-1:-1;20433:9:0;:17;;;;;;20395:134;;;-1:-1:-1;20496:9:0;:21;;;;;;20395:134;20543:10;20557:1;20543:15;20539:39;;20569:6;20562:13;;;;;20539:39;20600:11;;;;;-1:-1:-1;;;;;20600:11:0;20624:4;20592:37;:73;;;;;20646:13;20663:2;20646:19;;20592:73;20588:101;;;-1:-1:-1;20682:4:0;20588:101;20699:17;4854:5;20719:19;20728:10;20719:6;:19;:::i;:::-;:38;;;;:::i;:::-;20699:58;-1:-1:-1;20772:13:0;;20768:141;;20818:4;20802:7;:22;;;;;;;;;;:35;;20828:9;;20802:7;:35;;20828:9;;20802:35;:::i;:::-;;;;-1:-1:-1;;20857:40:0;;391:25:1;;;20880:4:0;;-1:-1:-1;;;;;20857:40:0;;;;;379:2:1;364:18;20857:40:0;;;;;;;20768:141;20928:18;20937:9;20928:6;:18;:::i;17139:563::-;17222:16;;;;;;;17221:17;17213:65;;;;-1:-1:-1;;;17213:65:0;;24117:2:1;17213:65:0;;;24099:21:1;24156:2;24136:18;;;24129:30;24195:34;24175:18;;;24168:62;-1:-1:-1;;;24246:18:1;;;24239:33;24289:19;;17213:65:0;23915:399:1;17213:65:0;17294:20;17305:4;17311:2;17294:10;:20::i;:::-;17293:21;:37;;;;-1:-1:-1;17324:6:0;;-1:-1:-1;;;;;17318:12:0;;;17324:6;;17318:12;17293:37;17289:406;;;-1:-1:-1;;;;;17347:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;17347:30:0;;;17373:4;17347:30;;;;;;17392:19;:25;;;;;:32;;;;;;;;;;17439:16;:23;;-1:-1:-1;;17439:23:0;17347:30;17439:23;;;;;17489:11;;;;17477:114;;17535:11;:40;;-1:-1:-1;;;;;;17535:40:0;17569:4;17535:40;;;;;17477:114;17605:19;:26;;-1:-1:-1;;;;17605:26:0;-1:-1:-1;;;17605:26:0;;;17651:32;;-1:-1:-1;1738:41:1;;17651:32:0;;1726:2:1;1711:18;17651:32:0;1598:187:1;797:548;909:4;938:2;967;956:9;949:21;999:6;993:13;1042:6;1037:2;1026:9;1022:18;1015:34;1067:1;1077:140;1091:6;1088:1;1085:13;1077:140;;;1186:14;;;1182:23;;1176:30;1152:17;;;1171:2;1148:26;1141:66;1106:10;;1077:140;;;1081:3;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1336:2;1329;1325:7;1320:2;1312:6;1308:15;1304:29;1293:9;1289:45;1285:54;1277:62;;;;797:548;;;;:::o;1790:154::-;-1:-1:-1;;;;;1869:5:1;1865:54;1858:5;1855:65;1845:93;;1934:1;1931;1924:12;1949:315;2017:6;2025;2078:2;2066:9;2057:7;2053:23;2049:32;2046:52;;;2094:1;2091;2084:12;2046:52;2133:9;2120:23;2152:31;2177:5;2152:31;:::i;:::-;2202:5;2254:2;2239:18;;;;2226:32;;-1:-1:-1;;;1949:315:1:o;2269:247::-;2328:6;2381:2;2369:9;2360:7;2356:23;2352:32;2349:52;;;2397:1;2394;2387:12;2349:52;2436:9;2423:23;2455:31;2480:5;2455:31;:::i;2521:456::-;2598:6;2606;2614;2667:2;2655:9;2646:7;2642:23;2638:32;2635:52;;;2683:1;2680;2673:12;2635:52;2722:9;2709:23;2741:31;2766:5;2741:31;:::i;:::-;2791:5;-1:-1:-1;2848:2:1;2833:18;;2820:32;2861:33;2820:32;2861:33;:::i;:::-;2521:456;;2913:7;;-1:-1:-1;;;2967:2:1;2952:18;;;;2939:32;;2521:456::o;2982:127::-;3043:10;3038:3;3034:20;3031:1;3024:31;3074:4;3071:1;3064:15;3098:4;3095:1;3088:15;3114:275;3185:2;3179:9;3250:2;3231:13;;-1:-1:-1;;3227:27:1;3215:40;;3285:18;3270:34;;3306:22;;;3267:62;3264:88;;;3332:18;;:::i;:::-;3368:2;3361:22;3114:275;;-1:-1:-1;3114:275:1:o;3394:183::-;3454:4;3487:18;3479:6;3476:30;3473:56;;;3509:18;;:::i;:::-;-1:-1:-1;3554:1:1;3550:14;3566:4;3546:25;;3394:183::o;3582:662::-;3636:5;3689:3;3682:4;3674:6;3670:17;3666:27;3656:55;;3707:1;3704;3697:12;3656:55;3743:6;3730:20;3769:4;3793:60;3809:43;3849:2;3809:43;:::i;:::-;3793:60;:::i;:::-;3887:15;;;3973:1;3969:10;;;;3957:23;;3953:32;;;3918:12;;;;3997:15;;;3994:35;;;4025:1;4022;4015:12;3994:35;4061:2;4053:6;4049:15;4073:142;4089:6;4084:3;4081:15;4073:142;;;4155:17;;4143:30;;4193:12;;;;4106;;4073:142;;;-1:-1:-1;4233:5:1;3582:662;-1:-1:-1;;;;;;3582:662:1:o;4249:1215::-;4367:6;4375;4428:2;4416:9;4407:7;4403:23;4399:32;4396:52;;;4444:1;4441;4434:12;4396:52;4484:9;4471:23;4513:18;4554:2;4546:6;4543:14;4540:34;;;4570:1;4567;4560:12;4540:34;4608:6;4597:9;4593:22;4583:32;;4653:7;4646:4;4642:2;4638:13;4634:27;4624:55;;4675:1;4672;4665:12;4624:55;4711:2;4698:16;4733:4;4757:60;4773:43;4813:2;4773:43;:::i;4757:60::-;4851:15;;;4933:1;4929:10;;;;4921:19;;4917:28;;;4882:12;;;;4957:19;;;4954:39;;;4989:1;4986;4979:12;4954:39;5013:11;;;;5033:217;5049:6;5044:3;5041:15;5033:217;;;5129:3;5116:17;5146:31;5171:5;5146:31;:::i;:::-;5190:18;;5066:12;;;;5228;;;;5033:217;;;5269:5;-1:-1:-1;;5312:18:1;;5299:32;;-1:-1:-1;;5343:16:1;;;5340:36;;;5372:1;5369;5362:12;5340:36;;5395:63;5450:7;5439:8;5428:9;5424:24;5395:63;:::i;:::-;5385:73;;;4249:1215;;;;;:::o;5658:180::-;5717:6;5770:2;5758:9;5749:7;5745:23;5741:32;5738:52;;;5786:1;5783;5776:12;5738:52;-1:-1:-1;5809:23:1;;5658:180;-1:-1:-1;5658:180:1:o;5843:118::-;5929:5;5922:13;5915:21;5908:5;5905:32;5895:60;;5951:1;5948;5941:12;5966:382;6031:6;6039;6092:2;6080:9;6071:7;6067:23;6063:32;6060:52;;;6108:1;6105;6098:12;6060:52;6147:9;6134:23;6166:31;6191:5;6166:31;:::i;:::-;6216:5;-1:-1:-1;6273:2:1;6258:18;;6245:32;6286:30;6245:32;6286:30;:::i;:::-;6335:7;6325:17;;;5966:382;;;;;:::o;6600:376::-;6662:6;6670;6723:2;6711:9;6702:7;6698:23;6694:32;6691:52;;;6739:1;6736;6729:12;6691:52;6778:9;6765:23;6797:28;6819:5;6797:28;:::i;6981:388::-;7049:6;7057;7110:2;7098:9;7089:7;7085:23;7081:32;7078:52;;;7126:1;7123;7116:12;7078:52;7165:9;7152:23;7184:31;7209:5;7184:31;:::i;:::-;7234:5;-1:-1:-1;7291:2:1;7276:18;;7263:32;7304:33;7263:32;7304:33;:::i;7634:385::-;7720:6;7728;7736;7744;7797:3;7785:9;7776:7;7772:23;7768:33;7765:53;;;7814:1;7811;7804:12;7765:53;-1:-1:-1;;7837:23:1;;;7907:2;7892:18;;7879:32;;-1:-1:-1;7958:2:1;7943:18;;7930:32;;8009:2;7994:18;7981:32;;-1:-1:-1;7634:385:1;-1:-1:-1;7634:385:1:o;8024:127::-;8085:10;8080:3;8076:20;8073:1;8066:31;8116:4;8113:1;8106:15;8140:4;8137:1;8130:15;8156:422;8245:1;8288:5;8245:1;8302:270;8323:7;8313:8;8310:21;8302:270;;;8382:4;8378:1;8374:6;8370:17;8364:4;8361:27;8358:53;;;8391:18;;:::i;:::-;8441:7;8431:8;8427:22;8424:55;;;8461:16;;;;8424:55;8540:22;;;;8500:15;;;;8302:270;;;8306:3;8156:422;;;;;:::o;8583:806::-;8632:5;8662:8;8652:80;;-1:-1:-1;8703:1:1;8717:5;;8652:80;8751:4;8741:76;;-1:-1:-1;8788:1:1;8802:5;;8741:76;8833:4;8851:1;8846:59;;;;8919:1;8914:130;;;;8826:218;;8846:59;8876:1;8867:10;;8890:5;;;8914:130;8951:3;8941:8;8938:17;8935:43;;;8958:18;;:::i;:::-;-1:-1:-1;;9014:1:1;9000:16;;9029:5;;8826:218;;9128:2;9118:8;9115:16;9109:3;9103:4;9100:13;9096:36;9090:2;9080:8;9077:16;9072:2;9066:4;9063:12;9059:35;9056:77;9053:159;;;-1:-1:-1;9165:19:1;;;9197:5;;9053:159;9244:34;9269:8;9263:4;9244:34;:::i;:::-;9314:6;9310:1;9306:6;9302:19;9293:7;9290:32;9287:58;;;9325:18;;:::i;:::-;9363:20;;8583:806;-1:-1:-1;;;8583:806:1:o;9394:140::-;9452:5;9481:47;9522:4;9512:8;9508:19;9502:4;9481:47;:::i;9539:168::-;9612:9;;;9643;;9660:15;;;9654:22;;9640:37;9630:71;;9681:18;;:::i;9712:128::-;9779:9;;;9800:11;;;9797:37;;;9814:18;;:::i;10541:127::-;10602:10;10597:3;10593:20;10590:1;10583:31;10633:4;10630:1;10623:15;10657:4;10654:1;10647:15;11020:197;11058:3;11086:6;11127:2;11120:5;11116:14;11154:2;11145:7;11142:15;11139:41;;11160:18;;:::i;:::-;11209:1;11196:15;;11020:197;-1:-1:-1;;;11020:197:1:o;11222:125::-;11287:9;;;11308:10;;;11305:36;;;11321:18;;:::i;11352:217::-;11392:1;11418;11408:132;;11462:10;11457:3;11453:20;11450:1;11443:31;11497:4;11494:1;11487:15;11525:4;11522:1;11515:15;11408:132;-1:-1:-1;11554:9:1;;11352:217::o;12698:385::-;12777:6;12785;12838:2;12826:9;12817:7;12813:23;12809:32;12806:52;;;12854:1;12851;12844:12;12806:52;12886:9;12880:16;12905:31;12930:5;12905:31;:::i;:::-;13005:2;12990:18;;12984:25;12955:5;;-1:-1:-1;13018:33:1;12984:25;13018:33;:::i;15712:245::-;15791:6;15799;15852:2;15840:9;15831:7;15827:23;15823:32;15820:52;;;15868:1;15865;15858:12;15820:52;-1:-1:-1;;15891:16:1;;15947:2;15932:18;;;15926:25;15891:16;;15926:25;;-1:-1:-1;15712:245:1:o;16318:184::-;16388:6;16441:2;16429:9;16420:7;16416:23;16412:32;16409:52;;;16457:1;16454;16447:12;16409:52;-1:-1:-1;16480:16:1;;16318:184;-1:-1:-1;16318:184:1:o;16809:245::-;16876:6;16929:2;16917:9;16908:7;16904:23;16900:32;16897:52;;;16945:1;16942;16935:12;16897:52;16977:9;16971:16;16996:28;17018:5;16996:28;:::i;17418:251::-;17488:6;17541:2;17529:9;17520:7;17516:23;17512:32;17509:52;;;17557:1;17554;17547:12;17509:52;17589:9;17583:16;17608:31;17633:5;17608:31;:::i;22674:1026::-;22936:4;22984:3;22973:9;22969:19;23015:6;23004:9;22997:25;23041:2;23079:6;23074:2;23063:9;23059:18;23052:34;23122:3;23117:2;23106:9;23102:18;23095:31;23146:6;23181;23175:13;23212:6;23204;23197:22;23250:3;23239:9;23235:19;23228:26;;23289:2;23281:6;23277:15;23263:29;;23310:1;23320:218;23334:6;23331:1;23328:13;23320:218;;;23399:13;;-1:-1:-1;;;;;23395:62:1;23383:75;;23513:15;;;;23478:12;;;;23356:1;23349:9;23320:218;;;-1:-1:-1;;;;;;;23594:55:1;;;;23589:2;23574:18;;23567:83;-1:-1:-1;;;23681:3:1;23666:19;23659:35;23555:3;22674:1026;-1:-1:-1;;;22674:1026:1:o

Swarm Source

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