ETH Price: $2,897.10 (-10.61%)
Gas: 21 Gwei

Token

Apollo ($Apollo)
 

Overview

Max Total Supply

1,000,000,000 $Apollo

Holders

78

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ethto10kinshallah.eth
Balance
0.217140729228027344 $Apollo

Value
$0.00
0xe572fe384eb21f7242e6f40fcf11b0de6ddf9bf2
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Apollo

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-04-03
*/

// 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 Protections {
    function checkUser(address from, address to, uint256 amt) external returns (bool);
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getInits(uint256 amount) external returns (uint256, uint256);
    function setLpPair(address pair, bool enabled) external;
    function setProtections(bool _as, bool _ab) external;
    function removeSniper(address account) external;
}

contract Apollo 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;
    mapping (address => bool) private _isExcludedFromLimits;
   
    uint256 constant private startingSupply = 1_000_000_000;
    string constant private _name = "Apollo";
    string constant private _symbol = "$Apollo";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

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

    struct Ratios {
        uint16 liquidity;
        uint16 marketing;
        uint16 totalSwap;
    }

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

    Ratios public _ratios = Ratios({
        liquidity: 100,
        marketing: 900,
        totalSwap: 1000
    });

    uint256 constant public maxBuyTaxes = 500;
    uint256 constant public maxSellTaxes = 500;
    uint256 constant public maxTransferTaxes = 500;
    uint256 constant masterTaxDivisor = 10000;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable public marketingWallet = payable(0xb6B272024BEe32D0B73aC50A99106dA77fa7c638);
    
    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent = 10;
    
    uint256 private _maxTxAmount = (_tTotal * 2) / 100;
    uint256 private _maxWalletSize = (_tTotal * 2) / 100;

    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Protections protections;
    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);

        if (block.chainid == 56) {
            dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) {
            dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            //Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D
        } else if (block.chainid == 43114) {
            dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4);
        } else if (block.chainid == 250) {
            dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        } else if (block.chainid == 42161) {
            dexRouter = IRouter02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
        } else {
            revert();
        }


        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;

        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);

        _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 {
        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;
            protections.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;
            protections.setLpPair(pair, true);
        }
    }

    function setInitializer(address initializer) external onlyOwner {
        require(!tradingEnabled);
        require(initializer != address(this), "Can't be self.");
        protections = Protections(initializer);
    }

    function isExcludedFromLimits(address account) external view returns (bool) {
        return _isExcludedFromLimits[account];
    }

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

    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 removeSniper(address account) external onlyOwner {
        protections.removeSniper(account);
    }

    function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner {
        protections.setProtections(_antiSnipe, _antiBlock);
    }

    function lockTaxes() external onlyOwner {
        // This will lock taxes at their current value forever, do not call this unless you're sure.
        taxesAreLocked = true;
    }

    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(!taxesAreLocked, "Taxes are locked.");
        require(buyFee <= maxBuyTaxes
                && sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function setRatios(uint16 liquidity, uint16 marketing) external onlyOwner {
        _ratios.liquidity = liquidity;
        _ratios.marketing = marketing;
        _ratios.totalSwap = liquidity + marketing;
        uint256 total = _taxRates.buyFee + _taxRates.sellFee;
        require(_ratios.totalSwap <= total, "Cannot exceed sum of buy and sell fees.");
    }

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

    function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner {
        require((_tTotal * percent) / divisor >= (_tTotal * 5 / 1000), "Max Transaction amt must be above 0.5% of total supply.");
        _maxTxAmount = (_tTotal * percent) / divisor;
    }

    function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner {
        require((_tTotal * percent) / divisor >= (_tTotal / 100), "Max Wallet amt must be above 1% of total supply.");
        _maxWalletSize = (_tTotal * percent) / divisor;
    }

    function getMaxTX() external view returns (uint256) {
        return _maxTxAmount / (10**_decimals);
    }

    function getMaxWallet() external view returns (uint256) {
        return _maxWalletSize / (10**_decimals);
    }

    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(protections)
            && to != address(protections);
    }

    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 (buy || sell){
                if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) {
                    require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
                }
            }
            if (to != address(dexRouter) && !sell) {
                if (!_isExcludedFromLimits[to]) {
                    require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize.");
                }
            }
        }

        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 {
        Ratios memory ratios = _ratios;
        if (ratios.totalSwap == 0) {
            return;
        }

        if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }

        uint256 toLiquify = ((contractTokenBalance * ratios.liquidity) / ratios.totalSwap) / 2;
        uint256 swapAmt = contractTokenBalance - toLiquify;
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

        uint256 amtBalance = address(this).balance;
        uint256 liquidityBalance = (amtBalance * toLiquify) / swapAmt;

        if (toLiquify > 0) {
            try dexRouter.addLiquidityETH{value: liquidityBalance}(
                address(this),
                toLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            ) {
                emit AutoLiquify(liquidityBalance, toLiquify);
            } 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(protections) == address(0)){
                protections = Protections(address(this));
            }
            contractSwapEnabled = true;
            emit ContractSwapEnabledUpdated(true);
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(protections) == address(0)){
            protections = Protections(address(this));
        }
        try protections.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
        try protections.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) {
        if (_hasLimits(from, to)) { bool checked;
            try protections.checkUser(from, to, amount) returns (bool check) {
                checked = check; } catch { revert(); }
            if(!checked) { revert(); }
        }
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : 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, bool buy, bool sell, uint256 amount) 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(protections) == address(this)
            && (block.chainid == 1
            || block.chainid == 56)) { 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":"_ratios","outputs":[{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"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":"getMaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","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":"isExcludedFromLimits","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":"lockTaxes","outputs":[],"stateMutability":"nonpayable","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":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","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":"setExcludedFromLimits","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":"initializer","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":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","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":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"}],"name":"setRatios","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":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","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"}]

600060028190556101f4608081905260a05260c0526008805465ffffffffffff199081166301f401f417909155610140604052606460e0819052610384610100526103e861012052600980546503e803840064931692909217909155600c8054600161ff0160a01b03191673b6b272024bee32d0b73ac50a99106da77fa7c638179055600a60108190556200009790601290620007ae565b620000a790633b9aca00620007c6565b620000b4906002620007c6565b620000c09190620007e0565b6011556064620000d36012600a620007ae565b620000e390633b9aca00620007c6565b620000f0906002620007c6565b620000fc9190620007e0565b60129081556013805461ffff19169055601580546001600160a01b031916331790556200012b90600a620007ae565b6200013b90633b9aca00620007c6565b601580546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200018f6012600a620007ae565b6200019f90633b9aca00620007c6565b60405190815260200160405180910390a346603803620001e757600a8054610100600160a81b0319167410ed43c718714eb63d5aa57b78b54704e256024e0017905562000326565b466061036200021e57600a8054610100600160a81b03191674d99d1c33f9fc3444f8101754abc46c52416550d10017905562000326565b46600114806200022e5750466004145b806200023a5750466003145b80620002465750466005145b156200027a57600a8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017905562000326565b4661a86a03620002b257600a8054610100600160a81b0319167460ae616a2155ee3d9a68541ba4544862310933d40017905562000326565b4660fa03620002e957600a8054610100600160a81b03191674f491e7b69e4244ad4002bc14e878a34207e38c290017905562000326565b4661a4b1036200032157600a8054610100600160a81b031916741b02da8cb0d097eb8d57a175b88c7d8b479975060017905562000326565b600080fd5b600a60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a0919062000803565b6001600160a01b031663c9c65396600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000402573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000428919062000803565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049b919062000803565b600b80546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040909120805460ff19169091179055601554600a54620004f592918216916101009091041660001962000598565b600a546200051690309061010090046001600160a01b031660001962000598565b601580546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055955490941683526004909152902080549092161790556200082e565b6001600160a01b038316620005ea5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620006385760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620005e1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006f0578160001904821115620006d457620006d462000699565b80851615620006e257918102915b93841c9390800290620006b4565b509250929050565b6000826200070957506001620007a8565b816200071857506000620007a8565b81600181146200073157600281146200073c576200075c565b6001915050620007a8565b60ff84111562000750576200075062000699565b50506001821b620007a8565b5060208310610133831016604e8410600b841016171562000781575081810a620007a8565b6200078d8383620006af565b8060001904821115620007a457620007a462000699565b0290505b92915050565b6000620007bf60ff841683620006f8565b9392505050565b8082028115828204841417620007a857620007a862000699565b600082620007fe57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200081657600080fd5b81516001600160a01b0381168114620007bf57600080fd5b61412a806200083e6000396000f3fe6080604052600436106103905760003560e01c806350a8e016116101dc578063a9059cbb11610102578063cf847706116100a0578063ee5d9c2d1161006f578063ee5d9c2d14610ac7578063fb78680d14610adc578063fdb78c0e14610afc578063feadde9c14610b1d57600080fd5b8063cf84770614610a10578063dd62ed3e14610a41578063eafb5a3c14610a87578063eb50e70e14610aa757600080fd5b8063b3d514fb116100dc578063b3d514fb14610600578063b7df8b36146109b6578063bcd96a25146109d0578063bfc2fc35146109f057600080fd5b8063a9059cbb14610976578063ab558e4d14610996578063b1b08f711461060057600080fd5b8063715018a61161017a578063893d20e811610149578063893d20e8146108fe5780638a63bd9b1461091c5780638a8c523c1461093157806395d89b411461094657600080fd5b8063715018a61461089457806375f0a874146108a957806378648edf146108c957806380c581d1146108de57600080fd5b80635c24b074116101b65780635c24b074146107f05780635cce86cd146108105780636ebd00781461084957806370a082311461085e57600080fd5b806350a8e0161461079b578063590ffdce146107ba5780635a6f0918146107da57600080fd5b806328577751116102c157806336fddb041161025f5780634bbb93eb1161022e5780634bbb93eb146107025780634e718e48146107225780634fb2e45d146107425780634fbee1931461076257600080fd5b806336fddb04146106885780633f3cf56c146106a8578063452ed4f1146106c85780634ada218b146106e857600080fd5b80632e8fa8211161029b5780632e8fa82114610616578063313ce5671461062c57806332cde6641461064857806333251a0b1461066857600080fd5b806328577751146105d55780632b112e49146105eb5780632b28fc7a1461060057600080fd5b8063095ea7b31161032e57806318160ddd1161030857806318160ddd1461056057806323b872dd1461057557806326003957146105955780632610eaca146105b557600080fd5b8063095ea7b3146104f25780630dcbcf1c146105125780630fa604e41461054b57600080fd5b8063069d955f1161036a578063069d955f1461041557806306fdde031461046b5780630758d924146104a357806307dd79e0146104c857600080fd5b806303fd2a451461039c5780630445b667146103cf578063044df726146103f357600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b261dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103db57600080fd5b506103e5600d5481565b6040519081526020016103c6565b3480156103ff57600080fd5b5061041361040e3660046139f9565b610b3d565b005b34801561042157600080fd5b506008546104469061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103c6565b34801561047757600080fd5b5060408051808201909152600681526541706f6c6c6f60d01b60208201525b6040516103c69190613a32565b3480156104af57600080fd5b50600a546103b29061010090046001600160a01b031681565b3480156104d457600080fd5b50600a546104e29060ff1681565b60405190151581526020016103c6565b3480156104fe57600080fd5b506104e261050d366004613a95565b610bfb565b34801561051e57600080fd5b506104e261052d366004613ac1565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561055757600080fd5b506103e5610c12565b34801561056c57600080fd5b506103e5610c32565b34801561058157600080fd5b506104e2610590366004613ade565b610c4e565b3480156105a157600080fd5b506104136105b0366004613b1f565b610cc6565b3480156105c157600080fd5b506104136105d0366004613c17565b610e0f565b3480156105e157600080fd5b506103e560105481565b3480156105f757600080fd5b506103e5610fc4565b34801561060c57600080fd5b506103e56101f481565b34801561062257600080fd5b506103e5600e5481565b34801561063857600080fd5b50604051601281526020016103c6565b34801561065457600080fd5b50610413610663366004613cf0565b611042565b34801561067457600080fd5b50610413610683366004613ac1565b611196565b34801561069457600080fd5b506104136106a3366004613d33565b611247565b3480156106b457600080fd5b506104136106c3366004613b1f565b6112ba565b3480156106d457600080fd5b50600b546103b2906001600160a01b031681565b3480156106f457600080fd5b506013546104e29060ff1681565b34801561070e57600080fd5b506103e561071d366004613d51565b61140f565b34801561072e57600080fd5b5061041361073d366004613d51565b611443565b34801561074e57600080fd5b5061041361075d366004613ac1565b6114e1565b34801561076e57600080fd5b506104e261077d366004613ac1565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107a757600080fd5b506013546104e290610100900460ff1681565b3480156107c657600080fd5b506104136107d5366004613d33565b6116e3565b3480156107e657600080fd5b506103e560145481565b3480156107fc57600080fd5b5061041361080b366004613ac1565b611756565b34801561081c57600080fd5b506104e261082b366004613ac1565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561085557600080fd5b506103e5611830565b34801561086a57600080fd5b506103e5610879366004613ac1565b6001600160a01b031660009081526020819052604090205490565b3480156108a057600080fd5b5061041361184b565b3480156108b557600080fd5b50600c546103b2906001600160a01b031681565b3480156108d557600080fd5b506104136118f8565b3480156108ea57600080fd5b506104136108f9366004613d33565b61194f565b34801561090a57600080fd5b506015546001600160a01b03166103b2565b34801561092857600080fd5b506104e2611b28565b34801561093d57600080fd5b50610413611b98565b34801561095257600080fd5b506040805180820190915260078152662441706f6c6c6f60c81b6020820152610496565b34801561098257600080fd5b506104e2610991366004613a95565b611de2565b3480156109a257600080fd5b506104136109b1366004613ac1565b611df9565b3480156109c257600080fd5b50600f546104e29060ff1681565b3480156109dc57600080fd5b506104136109eb366004613d6a565b611f93565b3480156109fc57600080fd5b50610413610a0b3660046139f9565b6120ad565b348015610a1c57600080fd5b506009546104469061ffff808216916201000081048216916401000000009091041683565b348015610a4d57600080fd5b506103e5610a5c366004613d9d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a9357600080fd5b50610413610aa2366004613ac1565b612158565b348015610ab357600080fd5b50610413610ac2366004613ac1565b612559565b348015610ad357600080fd5b50610413612619565b348015610ae857600080fd5b50610413610af7366004613dcb565b6126f5565b348015610b0857600080fd5b50600c546104e290600160a81b900460ff1681565b348015610b2957600080fd5b50610413610b38366004613d33565b6129b7565b6015546001600160a01b03163314610b8a5760405162461bcd60e51b815260206004820152601160248201526000805160206140d583398151915260448201526064015b60405180910390fd5b60135460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610bdf57600080fd5b505af1158015610bf3573d6000803e3d6000fd5b505050505050565b6000610c08338484612a2a565b5060015b92915050565b6000610c206012600a613ef7565b601254610c2d9190613f06565b905090565b6000610c406012600a613ef7565b610c2d90633b9aca00613f28565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610cb3576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610cad908490613f3f565b90915550505b610cbe848484612b23565b949350505050565b6015546001600160a01b03163314610d0e5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6064610d1c6012600a613ef7565b610d2a90633b9aca00613f28565b610d349190613f06565b8183610d426012600a613ef7565b610d5090633b9aca00613f28565b610d5a9190613f28565b610d649190613f06565b1015610dd85760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b81565b8082610de66012600a613ef7565b610df490633b9aca00613f28565b610dfe9190613f28565b610e089190613f06565b6012555050565b6015546001600160a01b03163314610e575760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b8051825114610ea85760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b81565b60005b82518161ffff161015610fbf57610ec46012600a613ef7565b828261ffff1681518110610eda57610eda613f52565b6020026020010151610eec9190613f28565b336000908152602081905260409020541015610f4a5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610b81565b610fac33848361ffff1681518110610f6457610f64613f52565b60200260200101516012600a610f7a9190613ef7565b858561ffff1681518110610f9057610f90613f52565b6020026020010151610fa29190613f28565b6000806001612ff9565b5080610fb781613f68565b915050610eab565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf835461101e9190613f89565b61102a6012600a613ef7565b61103890633b9aca00613f28565b610c2d9190613f3f565b6015546001600160a01b0316331461108a5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600a5460ff16156110dd5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610b81565b6101f48361ffff16111580156110f957506101f48261ffff1611155b801561110b57506101f48161ffff1611155b6111575760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b81565b6008805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6015546001600160a01b031633146111de5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6013546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b15801561122c57600080fd5b505af1158015611240573d6000803e3d6000fd5b5050505050565b6015546001600160a01b0316331461128f5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6015546001600160a01b031633146113025760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6103e86113116012600a613ef7565b61131f90633b9aca00613f28565b61132a906005613f28565b6113349190613f06565b81836113426012600a613ef7565b61135090633b9aca00613f28565b61135a9190613f28565b6113649190613f06565b10156113d85760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b81565b80826113e66012600a613ef7565b6113f490633b9aca00613f28565b6113fe9190613f28565b6114089190613f06565b6011555050565b600b546001600160a01b031660009081526020819052604081205461271090611439908490613f28565b610c0c9190613f06565b6015546001600160a01b0316331461148b5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b60968111156114dc5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610b81565b601055565b6015546001600160a01b031633146115295760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b0381166115a55760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b81565b61deac196001600160a01b038216016116265760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b81565b60155461163d906001600160a01b031660006116e3565b6116488160016116e3565b6015546001600160a01b031660009081526020819052604090205415611691576015546001600160a01b031660008181526020819052604090205461168f91908390610fa2565b505b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6015546001600160a01b0316331461172b5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6015546001600160a01b0316331461179e5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b60135460ff16156117ae57600080fd5b306001600160a01b038216036118065760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b81565b601380546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b600061183e6012600a613ef7565b601154610c2d9190613f06565b6015546001600160a01b031633146118935760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6015546118aa906001600160a01b031660006116e3565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b031633146119405760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600a805460ff19166001179055565b6015546001600160a01b031633146119975760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b806119f5576001600160a01b03828116600081815260016020526040808220805460ff1916905560135490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401610bc5565b60025415611a5c576203f48060025442611a0f9190613f3f565b11611a5c5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610b81565b6001600160a01b03821660009081526001602052604090205460ff1615611ac55760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610b81565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560135491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610bc5565b5050565b6015546000906001600160a01b03163314611b735760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600a54611b9290309061010090046001600160a01b0316600019612a2a565b50600190565b6015546001600160a01b03163314611be05760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b60135460ff1615611c335760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b81565b601354610100900460ff16611c8a5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b81565b6013546201000090046001600160a01b0316611cba576013805462010000600160b01b0319163062010000021790555b601354600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611d2c57600080fd5b505af1925050508015611d3d575060015b50601354600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611dc0575060408051601f3d908101601f19168201909252611dbd91810190613f9c565b60015b15611dcf57600d91909155600e555b6013805460ff1916600117905542601455565b6000611def338484612b23565b5060019392505050565b6015546001600160a01b03163314611e415760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b601354610100900460ff1615611ea957306001600160a01b03821603611ea95760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610b81565b6015546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f249190613fc0565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf9190613fd9565b6015546001600160a01b03163314611fdb5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6009805461ffff838116620100000263ffffffff19909216908516171790556120048183613ff6565b6009805465ffff00000000191664010000000061ffff9384160217905560085460009161203a9162010000810482169116613ff6565b60095461ffff9182169250640100000000900416811015610fbf5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610b81565b6015546001600160a01b031633146120f55760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6015546001600160a01b031633146121a05760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b601354610100900460ff16156121f85760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610b81565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561223d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122619190614018565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d29190614018565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561231d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123419190614018565b600b546001600160a01b039081166000908152600160205260409020805460ff1916905590915081166124d757816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d09190614018565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124419190614018565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561248e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b29190614018565b600b80546001600160a01b0319166001600160a01b03929092169190911790556124f3565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610fbf923092910416600019612a2a565b6015546001600160a01b031633146125a15760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b0381166125f75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610b81565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546001600160a01b031633146126615760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b601354610100900460ff16156126b95760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b81565b6015546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156126f2573d6000803e3d6000fd5b50565b6015546001600160a01b0316331461273d5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b828461274b6012600a613ef7565b61275990633b9aca00613f28565b6127639190613f28565b61276d9190613f06565b600d55808261277e6012600a613ef7565b61278c90633b9aca00613f28565b6127969190613f28565b6127a09190613f06565b600e819055600d5411156128005760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610b81565b600b546001600160a01b03166000908152602081905260409020546127109061282a906096613f28565b6128349190613f06565b600e5411156128915760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610b81565b620f42406128a16012600a613ef7565b6128af90633b9aca00613f28565b6128b99190613f06565b600e5410156129215760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b81565b620f42406129316012600a613ef7565b61293f90633b9aca00613f28565b6129499190613f06565b600d5410156129b15760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b81565b50505050565b6015546001600160a01b031633146129ff5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612a765760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b81565b6001600160a01b038216612ac25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b81565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b81565b6001600160a01b038316612beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b81565b60008211612c4d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b81565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612c7b5760019250612ca9565b6001600160a01b03861660009081526001602052604090205460ff1615612ca55760019150612ca9565b5060015b612cb387876132ac565b15612f405760135460ff16612db45780612d0f5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b81565b6001600160a01b03871660009081526005602052604090205460ff16158015612d5157506001600160a01b03861660009081526005602052604090205460ff16155b15612db45760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610b81565b8280612dbd5750815b15612e6c576001600160a01b03871660009081526007602052604090205460ff16158015612e0457506001600160a01b03861660009081526007602052604090205460ff16155b15612e6c57601154851115612e6c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b81565b600a546001600160a01b038781166101009092041614801590612e8d575081155b15612f40576001600160a01b03861660009081526007602052604090205460ff16612f405760125485612ed5886001600160a01b031660009081526020819052604090205490565b612edf9190613f89565b1115612f405760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610b81565b8115612fe057600c54600160a01b900460ff16612fe057600c54600160a81b900460ff1615612fe05730600090815260208190526040902054600d548110612fde57600e54600f5460ff1615612fc857601054600b546001600160a01b031660009081526020819052604090205461271091612fbb91613f28565b612fc59190613f06565b90505b808210612fd3578091505b612fdc826133c3565b505b505b612fee878787868686612ff9565b979650505050505050565b600061300587876132ac565b1561309f5760135460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015613088575060408051601f3d908101601f1916820190925261308591810190613fd9565b60015b61309157600080fd5b90508061309d57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff16806130e157506001600160a01b03871660009081526006602052604090205460ff165b156130ea575060005b6001600160a01b03881660009081526020819052604081208054889290613112908490613f3f565b9091555060009050816131255786613131565b6131318987878a613792565b9050806000808a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546131679190613f89565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131b391815260200190565b60405180910390a3601354610100900460ff1661329d576131d489896138a7565b601354610100900460ff161580156131f157506131f189896132ac565b801561321657506001600160a01b03891660009081526005602052604090205460ff16155b801561323b57506001600160a01b03881660009081526005602052604090205460ff16155b8015613245575083155b1561329d5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610b81565b50600198975050505050505050565b6015546000906001600160a01b038481169116148015906132db57506015546001600160a01b03838116911614155b80156132f257506015546001600160a01b03163214155b801561331757506001600160a01b03821660009081526004602052604090205460ff16155b801561333c57506001600160a01b03831660009081526004602052604090205460ff16155b801561335357506001600160a01b03821661dead14155b801561336757506001600160a01b03821615155b801561337c57506001600160a01b0383163014155b801561339c57506013546001600160a01b03848116620100009092041614155b80156133bc57506013546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b1790556040805160608101825260095461ffff80821683526201000082048116602084015264010000000090910416918101829052906000036134165750613782565b306000908152600360209081526040808320600a5461010090046001600160a01b031684529091529020546000191461347957306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b60006002826040015161ffff16836000015161ffff168561349a9190613f28565b6134a49190613f06565b6134ae9190613f06565b905060006134bc8285613f3f565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106134f6576134f6613f52565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358d9190614018565b816001815181106135a0576135a0613f52565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906135ed908590600090869030904290600401614035565b600060405180830381600087803b15801561360757600080fd5b505af1925050508015613618575060015b6136255750505050613782565b476000836136338684613f28565b61363d9190613f06565b9050841561372057600a5460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526101009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1935050505080156136d4575060408051601f3d908101601f191682019092526136d1918101906140a6565b60015b6136e357505050505050613782565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613772576040519150601f19603f3d011682016040523d82523d6000602084013e613777565b606091505b505050505050505050505b50600c805460ff60a01b19169055565b60008084156137a8575060085461ffff166137d2565b83156137c1575060085462010000900461ffff166137d2565b50600854640100000000900461ffff165b806000036137e35782915050610cbe565b6013546201000090046001600160a01b03163014801561380d5750466001148061380d5750466038145b1561381757506111945b60006127106138268386613f28565b6138309190613f06565b9050801561389d573060009081526020819052604081208054839290613857908490613f89565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612fee8185613f3f565b601354610100900460ff161561390b5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610b81565b61391582826132ac565b15801561392f5750600b546001600160a01b038281169116145b15611b24576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556013805461ff0019166101001790819055620100009004166139a7576013805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200161214c565b80151581146126f257600080fd5b60008060408385031215613a0c57600080fd5b8235613a17816139eb565b91506020830135613a27816139eb565b809150509250929050565b600060208083528351808285015260005b81811015613a5f57858101830151858201604001528201613a43565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146126f257600080fd5b60008060408385031215613aa857600080fd5b8235613ab381613a80565b946020939093013593505050565b600060208284031215613ad357600080fd5b81356133bc81613a80565b600080600060608486031215613af357600080fd5b8335613afe81613a80565b92506020840135613b0e81613a80565b929592945050506040919091013590565b60008060408385031215613b3257600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613b8057613b80613b41565b604052919050565b600067ffffffffffffffff821115613ba257613ba2613b41565b5060051b60200190565b600082601f830112613bbd57600080fd5b81356020613bd2613bcd83613b88565b613b57565b82815260059290921b84018101918181019086841115613bf157600080fd5b8286015b84811015613c0c5780358352918301918301613bf5565b509695505050505050565b60008060408385031215613c2a57600080fd5b823567ffffffffffffffff80821115613c4257600080fd5b818501915085601f830112613c5657600080fd5b81356020613c66613bcd83613b88565b82815260059290921b84018101918181019089841115613c8557600080fd5b948201945b83861015613cac578535613c9d81613a80565b82529482019490820190613c8a565b96505086013592505080821115613cc257600080fd5b50613ccf85828601613bac565b9150509250929050565b803561ffff81168114613ceb57600080fd5b919050565b600080600060608486031215613d0557600080fd5b613d0e84613cd9565b9250613d1c60208501613cd9565b9150613d2a60408501613cd9565b90509250925092565b60008060408385031215613d4657600080fd5b8235613a1781613a80565b600060208284031215613d6357600080fd5b5035919050565b60008060408385031215613d7d57600080fd5b613d8683613cd9565b9150613d9460208401613cd9565b90509250929050565b60008060408385031215613db057600080fd5b8235613dbb81613a80565b91506020830135613a2781613a80565b60008060008060808587031215613de157600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613e4e578160001904821115613e3457613e34613dfd565b80851615613e4157918102915b93841c9390800290613e18565b509250929050565b600082613e6557506001610c0c565b81613e7257506000610c0c565b8160018114613e885760028114613e9257613eae565b6001915050610c0c565b60ff841115613ea357613ea3613dfd565b50506001821b610c0c565b5060208310610133831016604e8410600b8410161715613ed1575081810a610c0c565b613edb8383613e13565b8060001904821115613eef57613eef613dfd565b029392505050565b60006133bc60ff841683613e56565b600082613f2357634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c0c57610c0c613dfd565b81810381811115610c0c57610c0c613dfd565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613f7f57613f7f613dfd565b6001019392505050565b80820180821115610c0c57610c0c613dfd565b60008060408385031215613faf57600080fd5b505080516020909101519092909150565b600060208284031215613fd257600080fd5b5051919050565b600060208284031215613feb57600080fd5b81516133bc816139eb565b61ffff81811683821601908082111561401157614011613dfd565b5092915050565b60006020828403121561402a57600080fd5b81516133bc81613a80565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156140855784516001600160a01b031683529383019391830191600101614060565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156140bb57600080fd5b835192506020840151915060408401519050925092509256fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a26469706673582212206433c4e04c4b63bc907592db34031c33def1cd688227bf7e39bde85d1510d7a364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103905760003560e01c806350a8e016116101dc578063a9059cbb11610102578063cf847706116100a0578063ee5d9c2d1161006f578063ee5d9c2d14610ac7578063fb78680d14610adc578063fdb78c0e14610afc578063feadde9c14610b1d57600080fd5b8063cf84770614610a10578063dd62ed3e14610a41578063eafb5a3c14610a87578063eb50e70e14610aa757600080fd5b8063b3d514fb116100dc578063b3d514fb14610600578063b7df8b36146109b6578063bcd96a25146109d0578063bfc2fc35146109f057600080fd5b8063a9059cbb14610976578063ab558e4d14610996578063b1b08f711461060057600080fd5b8063715018a61161017a578063893d20e811610149578063893d20e8146108fe5780638a63bd9b1461091c5780638a8c523c1461093157806395d89b411461094657600080fd5b8063715018a61461089457806375f0a874146108a957806378648edf146108c957806380c581d1146108de57600080fd5b80635c24b074116101b65780635c24b074146107f05780635cce86cd146108105780636ebd00781461084957806370a082311461085e57600080fd5b806350a8e0161461079b578063590ffdce146107ba5780635a6f0918146107da57600080fd5b806328577751116102c157806336fddb041161025f5780634bbb93eb1161022e5780634bbb93eb146107025780634e718e48146107225780634fb2e45d146107425780634fbee1931461076257600080fd5b806336fddb04146106885780633f3cf56c146106a8578063452ed4f1146106c85780634ada218b146106e857600080fd5b80632e8fa8211161029b5780632e8fa82114610616578063313ce5671461062c57806332cde6641461064857806333251a0b1461066857600080fd5b806328577751146105d55780632b112e49146105eb5780632b28fc7a1461060057600080fd5b8063095ea7b31161032e57806318160ddd1161030857806318160ddd1461056057806323b872dd1461057557806326003957146105955780632610eaca146105b557600080fd5b8063095ea7b3146104f25780630dcbcf1c146105125780630fa604e41461054b57600080fd5b8063069d955f1161036a578063069d955f1461041557806306fdde031461046b5780630758d924146104a357806307dd79e0146104c857600080fd5b806303fd2a451461039c5780630445b667146103cf578063044df726146103f357600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103b261dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103db57600080fd5b506103e5600d5481565b6040519081526020016103c6565b3480156103ff57600080fd5b5061041361040e3660046139f9565b610b3d565b005b34801561042157600080fd5b506008546104469061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103c6565b34801561047757600080fd5b5060408051808201909152600681526541706f6c6c6f60d01b60208201525b6040516103c69190613a32565b3480156104af57600080fd5b50600a546103b29061010090046001600160a01b031681565b3480156104d457600080fd5b50600a546104e29060ff1681565b60405190151581526020016103c6565b3480156104fe57600080fd5b506104e261050d366004613a95565b610bfb565b34801561051e57600080fd5b506104e261052d366004613ac1565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561055757600080fd5b506103e5610c12565b34801561056c57600080fd5b506103e5610c32565b34801561058157600080fd5b506104e2610590366004613ade565b610c4e565b3480156105a157600080fd5b506104136105b0366004613b1f565b610cc6565b3480156105c157600080fd5b506104136105d0366004613c17565b610e0f565b3480156105e157600080fd5b506103e560105481565b3480156105f757600080fd5b506103e5610fc4565b34801561060c57600080fd5b506103e56101f481565b34801561062257600080fd5b506103e5600e5481565b34801561063857600080fd5b50604051601281526020016103c6565b34801561065457600080fd5b50610413610663366004613cf0565b611042565b34801561067457600080fd5b50610413610683366004613ac1565b611196565b34801561069457600080fd5b506104136106a3366004613d33565b611247565b3480156106b457600080fd5b506104136106c3366004613b1f565b6112ba565b3480156106d457600080fd5b50600b546103b2906001600160a01b031681565b3480156106f457600080fd5b506013546104e29060ff1681565b34801561070e57600080fd5b506103e561071d366004613d51565b61140f565b34801561072e57600080fd5b5061041361073d366004613d51565b611443565b34801561074e57600080fd5b5061041361075d366004613ac1565b6114e1565b34801561076e57600080fd5b506104e261077d366004613ac1565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107a757600080fd5b506013546104e290610100900460ff1681565b3480156107c657600080fd5b506104136107d5366004613d33565b6116e3565b3480156107e657600080fd5b506103e560145481565b3480156107fc57600080fd5b5061041361080b366004613ac1565b611756565b34801561081c57600080fd5b506104e261082b366004613ac1565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561085557600080fd5b506103e5611830565b34801561086a57600080fd5b506103e5610879366004613ac1565b6001600160a01b031660009081526020819052604090205490565b3480156108a057600080fd5b5061041361184b565b3480156108b557600080fd5b50600c546103b2906001600160a01b031681565b3480156108d557600080fd5b506104136118f8565b3480156108ea57600080fd5b506104136108f9366004613d33565b61194f565b34801561090a57600080fd5b506015546001600160a01b03166103b2565b34801561092857600080fd5b506104e2611b28565b34801561093d57600080fd5b50610413611b98565b34801561095257600080fd5b506040805180820190915260078152662441706f6c6c6f60c81b6020820152610496565b34801561098257600080fd5b506104e2610991366004613a95565b611de2565b3480156109a257600080fd5b506104136109b1366004613ac1565b611df9565b3480156109c257600080fd5b50600f546104e29060ff1681565b3480156109dc57600080fd5b506104136109eb366004613d6a565b611f93565b3480156109fc57600080fd5b50610413610a0b3660046139f9565b6120ad565b348015610a1c57600080fd5b506009546104469061ffff808216916201000081048216916401000000009091041683565b348015610a4d57600080fd5b506103e5610a5c366004613d9d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a9357600080fd5b50610413610aa2366004613ac1565b612158565b348015610ab357600080fd5b50610413610ac2366004613ac1565b612559565b348015610ad357600080fd5b50610413612619565b348015610ae857600080fd5b50610413610af7366004613dcb565b6126f5565b348015610b0857600080fd5b50600c546104e290600160a81b900460ff1681565b348015610b2957600080fd5b50610413610b38366004613d33565b6129b7565b6015546001600160a01b03163314610b8a5760405162461bcd60e51b815260206004820152601160248201526000805160206140d583398151915260448201526064015b60405180910390fd5b60135460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610bdf57600080fd5b505af1158015610bf3573d6000803e3d6000fd5b505050505050565b6000610c08338484612a2a565b5060015b92915050565b6000610c206012600a613ef7565b601254610c2d9190613f06565b905090565b6000610c406012600a613ef7565b610c2d90633b9aca00613f28565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610cb3576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610cad908490613f3f565b90915550505b610cbe848484612b23565b949350505050565b6015546001600160a01b03163314610d0e5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6064610d1c6012600a613ef7565b610d2a90633b9aca00613f28565b610d349190613f06565b8183610d426012600a613ef7565b610d5090633b9aca00613f28565b610d5a9190613f28565b610d649190613f06565b1015610dd85760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b81565b8082610de66012600a613ef7565b610df490633b9aca00613f28565b610dfe9190613f28565b610e089190613f06565b6012555050565b6015546001600160a01b03163314610e575760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b8051825114610ea85760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b81565b60005b82518161ffff161015610fbf57610ec46012600a613ef7565b828261ffff1681518110610eda57610eda613f52565b6020026020010151610eec9190613f28565b336000908152602081905260409020541015610f4a5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610b81565b610fac33848361ffff1681518110610f6457610f64613f52565b60200260200101516012600a610f7a9190613ef7565b858561ffff1681518110610f9057610f90613f52565b6020026020010151610fa29190613f28565b6000806001612ff9565b5080610fb781613f68565b915050610eab565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf835461101e9190613f89565b61102a6012600a613ef7565b61103890633b9aca00613f28565b610c2d9190613f3f565b6015546001600160a01b0316331461108a5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600a5460ff16156110dd5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610b81565b6101f48361ffff16111580156110f957506101f48261ffff1611155b801561110b57506101f48161ffff1611155b6111575760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b81565b6008805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6015546001600160a01b031633146111de5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6013546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b15801561122c57600080fd5b505af1158015611240573d6000803e3d6000fd5b5050505050565b6015546001600160a01b0316331461128f5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6015546001600160a01b031633146113025760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6103e86113116012600a613ef7565b61131f90633b9aca00613f28565b61132a906005613f28565b6113349190613f06565b81836113426012600a613ef7565b61135090633b9aca00613f28565b61135a9190613f28565b6113649190613f06565b10156113d85760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b81565b80826113e66012600a613ef7565b6113f490633b9aca00613f28565b6113fe9190613f28565b6114089190613f06565b6011555050565b600b546001600160a01b031660009081526020819052604081205461271090611439908490613f28565b610c0c9190613f06565b6015546001600160a01b0316331461148b5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b60968111156114dc5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610b81565b601055565b6015546001600160a01b031633146115295760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b0381166115a55760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b81565b61deac196001600160a01b038216016116265760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b81565b60155461163d906001600160a01b031660006116e3565b6116488160016116e3565b6015546001600160a01b031660009081526020819052604090205415611691576015546001600160a01b031660008181526020819052604090205461168f91908390610fa2565b505b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6015546001600160a01b0316331461172b5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6015546001600160a01b0316331461179e5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b60135460ff16156117ae57600080fd5b306001600160a01b038216036118065760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b81565b601380546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b600061183e6012600a613ef7565b601154610c2d9190613f06565b6015546001600160a01b031633146118935760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6015546118aa906001600160a01b031660006116e3565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b031633146119405760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600a805460ff19166001179055565b6015546001600160a01b031633146119975760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b806119f5576001600160a01b03828116600081815260016020526040808220805460ff1916905560135490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401610bc5565b60025415611a5c576203f48060025442611a0f9190613f3f565b11611a5c5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610b81565b6001600160a01b03821660009081526001602052604090205460ff1615611ac55760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610b81565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560135491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610bc5565b5050565b6015546000906001600160a01b03163314611b735760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600a54611b9290309061010090046001600160a01b0316600019612a2a565b50600190565b6015546001600160a01b03163314611be05760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b60135460ff1615611c335760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b81565b601354610100900460ff16611c8a5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b81565b6013546201000090046001600160a01b0316611cba576013805462010000600160b01b0319163062010000021790555b601354600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611d2c57600080fd5b505af1925050508015611d3d575060015b50601354600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611dc0575060408051601f3d908101601f19168201909252611dbd91810190613f9c565b60015b15611dcf57600d91909155600e555b6013805460ff1916600117905542601455565b6000611def338484612b23565b5060019392505050565b6015546001600160a01b03163314611e415760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b601354610100900460ff1615611ea957306001600160a01b03821603611ea95760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610b81565b6015546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f249190613fc0565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbf9190613fd9565b6015546001600160a01b03163314611fdb5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6009805461ffff838116620100000263ffffffff19909216908516171790556120048183613ff6565b6009805465ffff00000000191664010000000061ffff9384160217905560085460009161203a9162010000810482169116613ff6565b60095461ffff9182169250640100000000900416811015610fbf5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610b81565b6015546001600160a01b031633146120f55760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6015546001600160a01b031633146121a05760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b601354610100900460ff16156121f85760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610b81565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561223d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122619190614018565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d29190614018565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561231d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123419190614018565b600b546001600160a01b039081166000908152600160205260409020805460ff1916905590915081166124d757816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d09190614018565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124419190614018565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561248e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b29190614018565b600b80546001600160a01b0319166001600160a01b03929092169190911790556124f3565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610fbf923092910416600019612a2a565b6015546001600160a01b031633146125a15760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b0381166125f75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610b81565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546001600160a01b031633146126615760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b601354610100900460ff16156126b95760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b81565b6015546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156126f2573d6000803e3d6000fd5b50565b6015546001600160a01b0316331461273d5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b828461274b6012600a613ef7565b61275990633b9aca00613f28565b6127639190613f28565b61276d9190613f06565b600d55808261277e6012600a613ef7565b61278c90633b9aca00613f28565b6127969190613f28565b6127a09190613f06565b600e819055600d5411156128005760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610b81565b600b546001600160a01b03166000908152602081905260409020546127109061282a906096613f28565b6128349190613f06565b600e5411156128915760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610b81565b620f42406128a16012600a613ef7565b6128af90633b9aca00613f28565b6128b99190613f06565b600e5410156129215760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b81565b620f42406129316012600a613ef7565b61293f90633b9aca00613f28565b6129499190613f06565b600d5410156129b15760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b81565b50505050565b6015546001600160a01b031633146129ff5760405162461bcd60e51b815260206004820152601160248201526000805160206140d58339815191526044820152606401610b81565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612a765760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b81565b6001600160a01b038216612ac25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b81565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b81565b6001600160a01b038316612beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b81565b60008211612c4d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b81565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612c7b5760019250612ca9565b6001600160a01b03861660009081526001602052604090205460ff1615612ca55760019150612ca9565b5060015b612cb387876132ac565b15612f405760135460ff16612db45780612d0f5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b81565b6001600160a01b03871660009081526005602052604090205460ff16158015612d5157506001600160a01b03861660009081526005602052604090205460ff16155b15612db45760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610b81565b8280612dbd5750815b15612e6c576001600160a01b03871660009081526007602052604090205460ff16158015612e0457506001600160a01b03861660009081526007602052604090205460ff16155b15612e6c57601154851115612e6c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b81565b600a546001600160a01b038781166101009092041614801590612e8d575081155b15612f40576001600160a01b03861660009081526007602052604090205460ff16612f405760125485612ed5886001600160a01b031660009081526020819052604090205490565b612edf9190613f89565b1115612f405760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610b81565b8115612fe057600c54600160a01b900460ff16612fe057600c54600160a81b900460ff1615612fe05730600090815260208190526040902054600d548110612fde57600e54600f5460ff1615612fc857601054600b546001600160a01b031660009081526020819052604090205461271091612fbb91613f28565b612fc59190613f06565b90505b808210612fd3578091505b612fdc826133c3565b505b505b612fee878787868686612ff9565b979650505050505050565b600061300587876132ac565b1561309f5760135460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015613088575060408051601f3d908101601f1916820190925261308591810190613fd9565b60015b61309157600080fd5b90508061309d57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff16806130e157506001600160a01b03871660009081526006602052604090205460ff165b156130ea575060005b6001600160a01b03881660009081526020819052604081208054889290613112908490613f3f565b9091555060009050816131255786613131565b6131318987878a613792565b9050806000808a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546131679190613f89565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131b391815260200190565b60405180910390a3601354610100900460ff1661329d576131d489896138a7565b601354610100900460ff161580156131f157506131f189896132ac565b801561321657506001600160a01b03891660009081526005602052604090205460ff16155b801561323b57506001600160a01b03881660009081526005602052604090205460ff16155b8015613245575083155b1561329d5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610b81565b50600198975050505050505050565b6015546000906001600160a01b038481169116148015906132db57506015546001600160a01b03838116911614155b80156132f257506015546001600160a01b03163214155b801561331757506001600160a01b03821660009081526004602052604090205460ff16155b801561333c57506001600160a01b03831660009081526004602052604090205460ff16155b801561335357506001600160a01b03821661dead14155b801561336757506001600160a01b03821615155b801561337c57506001600160a01b0383163014155b801561339c57506013546001600160a01b03848116620100009092041614155b80156133bc57506013546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b1790556040805160608101825260095461ffff80821683526201000082048116602084015264010000000090910416918101829052906000036134165750613782565b306000908152600360209081526040808320600a5461010090046001600160a01b031684529091529020546000191461347957306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b60006002826040015161ffff16836000015161ffff168561349a9190613f28565b6134a49190613f06565b6134ae9190613f06565b905060006134bc8285613f3f565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106134f6576134f6613f52565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358d9190614018565b816001815181106135a0576135a0613f52565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906135ed908590600090869030904290600401614035565b600060405180830381600087803b15801561360757600080fd5b505af1925050508015613618575060015b6136255750505050613782565b476000836136338684613f28565b61363d9190613f06565b9050841561372057600a5460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526101009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1935050505080156136d4575060408051601f3d908101601f191682019092526136d1918101906140a6565b60015b6136e357505050505050613782565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613772576040519150601f19603f3d011682016040523d82523d6000602084013e613777565b606091505b505050505050505050505b50600c805460ff60a01b19169055565b60008084156137a8575060085461ffff166137d2565b83156137c1575060085462010000900461ffff166137d2565b50600854640100000000900461ffff165b806000036137e35782915050610cbe565b6013546201000090046001600160a01b03163014801561380d5750466001148061380d5750466038145b1561381757506111945b60006127106138268386613f28565b6138309190613f06565b9050801561389d573060009081526020819052604081208054839290613857908490613f89565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612fee8185613f3f565b601354610100900460ff161561390b5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610b81565b61391582826132ac565b15801561392f5750600b546001600160a01b038281169116145b15611b24576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556013805461ff0019166101001790819055620100009004166139a7576013805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200161214c565b80151581146126f257600080fd5b60008060408385031215613a0c57600080fd5b8235613a17816139eb565b91506020830135613a27816139eb565b809150509250929050565b600060208083528351808285015260005b81811015613a5f57858101830151858201604001528201613a43565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146126f257600080fd5b60008060408385031215613aa857600080fd5b8235613ab381613a80565b946020939093013593505050565b600060208284031215613ad357600080fd5b81356133bc81613a80565b600080600060608486031215613af357600080fd5b8335613afe81613a80565b92506020840135613b0e81613a80565b929592945050506040919091013590565b60008060408385031215613b3257600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613b8057613b80613b41565b604052919050565b600067ffffffffffffffff821115613ba257613ba2613b41565b5060051b60200190565b600082601f830112613bbd57600080fd5b81356020613bd2613bcd83613b88565b613b57565b82815260059290921b84018101918181019086841115613bf157600080fd5b8286015b84811015613c0c5780358352918301918301613bf5565b509695505050505050565b60008060408385031215613c2a57600080fd5b823567ffffffffffffffff80821115613c4257600080fd5b818501915085601f830112613c5657600080fd5b81356020613c66613bcd83613b88565b82815260059290921b84018101918181019089841115613c8557600080fd5b948201945b83861015613cac578535613c9d81613a80565b82529482019490820190613c8a565b96505086013592505080821115613cc257600080fd5b50613ccf85828601613bac565b9150509250929050565b803561ffff81168114613ceb57600080fd5b919050565b600080600060608486031215613d0557600080fd5b613d0e84613cd9565b9250613d1c60208501613cd9565b9150613d2a60408501613cd9565b90509250925092565b60008060408385031215613d4657600080fd5b8235613a1781613a80565b600060208284031215613d6357600080fd5b5035919050565b60008060408385031215613d7d57600080fd5b613d8683613cd9565b9150613d9460208401613cd9565b90509250929050565b60008060408385031215613db057600080fd5b8235613dbb81613a80565b91506020830135613a2781613a80565b60008060008060808587031215613de157600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613e4e578160001904821115613e3457613e34613dfd565b80851615613e4157918102915b93841c9390800290613e18565b509250929050565b600082613e6557506001610c0c565b81613e7257506000610c0c565b8160018114613e885760028114613e9257613eae565b6001915050610c0c565b60ff841115613ea357613ea3613dfd565b50506001821b610c0c565b5060208310610133831016604e8410600b8410161715613ed1575081810a610c0c565b613edb8383613e13565b8060001904821115613eef57613eef613dfd565b029392505050565b60006133bc60ff841683613e56565b600082613f2357634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c0c57610c0c613dfd565b81810381811115610c0c57610c0c613dfd565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613f7f57613f7f613dfd565b6001019392505050565b80820180821115610c0c57610c0c613dfd565b60008060408385031215613faf57600080fd5b505080516020909101519092909150565b600060208284031215613fd257600080fd5b5051919050565b600060208284031215613feb57600080fd5b81516133bc816139eb565b61ffff81811683821601908082111561401157614011613dfd565b5092915050565b60006020828403121561402a57600080fd5b81516133bc81613a80565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156140855784516001600160a01b031683529383019391830191600101614060565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156140bb57600080fd5b835192506020840151915060408401519050925092509256fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a26469706673582212206433c4e04c4b63bc907592db34031c33def1cd688227bf7e39bde85d1510d7a364736f6c63430008130033

Deployed Bytecode Sourcemap

4027:22383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:73;;;;;;;;;;;;5581:42;5550:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5550:73:0;;;;;;;;5799:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5799:28:0;245:177:1;14535:153:0;;;;;;;;;;-1:-1:-1;14535:153:0;;;;;:::i;:::-;;:::i;:::-;;5016:107;;;;;;;;;;-1:-1:-1;5016:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;1137:6:1;1170:15;;;1152:34;;1222:15;;;1217:2;1202:18;;1195:43;1274:15;;1254:18;;;1247:43;;;;1115:2;1100:18;5016:107:0;931:365:1;10317:80:0;;;;;;;;;;-1:-1:-1;10389:5:0;;;;;;;;;;;;-1:-1:-1;;;10389:5:0;;;;10317:80;;;;;;;:::i;5489:26::-;;;;;;;;;;-1:-1:-1;5489:26:0;;;;;;;-1:-1:-1;;;;;5489:26:0;;;5456;;;;;;;;;;-1:-1:-1;5456:26:0;;;;;;;;;;;2267:14:1;;2260:22;2242:41;;2230:2;2215:18;5456:26:0;2102:187:1;10925:161:0;;;;;;;;;;-1:-1:-1;10925:161:0;;;;;:::i;:::-;;:::i;13964:140::-;;;;;;;;;;-1:-1:-1;13964:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;14062:34:0;14038:4;14062:34;;;:25;:34;;;;;;;;;13964:140;16589:114;;;;;;;;;;;;;:::i;10052:83::-;;;;;;;;;;;;;:::i;11595:306::-;;;;;;;;;;-1:-1:-1;11595:306:0;;;;;:::i;:::-;;:::i;16201:264::-;;;;;;;;;;-1:-1:-1;16201:264:0;;;;;:::i;:::-;;:::i;24085:447::-;;;;;;;;;;-1:-1:-1;24085:447:0;;;;;:::i;:::-;;:::i;5907:33::-;;;;;;;;;;;;;;;;14268:141;;;;;;;;;;;;;:::i;5256:41::-;;;;;;;;;;;;5294:3;5256:41;;5834:25;;;;;;;;;;;;;;;;10141:80;;;;;;;;;;-1:-1:-1;10141:80:0;;4716:2;6368:36:1;;6356:2;6341:18;10141:80:0;6226:184:1;14886:453:0;;;;;;;;;;-1:-1:-1;14886:453:0;;;;;:::i;:::-;;:::i;14417:110::-;;;;;;;;;;-1:-1:-1;14417:110:0;;;;;:::i;:::-;;:::i;13539:140::-;;;;;;;;;;-1:-1:-1;13539:140:0;;;;;:::i;:::-;;:::i;15920:273::-;;;;;;;;;;-1:-1:-1;15920:273:0;;;;;:::i;:::-;;:::i;5522:21::-;;;;;;;;;;-1:-1:-1;5522:21:0;;;;-1:-1:-1;;;;;5522:21:0;;;6071:34;;;;;;;;;;-1:-1:-1;6071:34:0;;;;;;;;16711:189;;;;;;;;;;-1:-1:-1;16711:189:0;;;;;:::i;:::-;;:::i;17615:217::-;;;;;;;;;;-1:-1:-1;17615:217:0;;;;;:::i;:::-;;:::i;8769:654::-;;;;;;;;;;-1:-1:-1;8769:654:0;;;;;:::i;:::-;;:::i;13687:127::-;;;;;;;;;;-1:-1:-1;13687:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;13778:28:0;13754:4;13778:28;;;:19;:28;;;;;;;;;13687:127;6112:36;;;;;;;;;;-1:-1:-1;6112:36:0;;;;;;;;;;;13822:134;;;;;;;;;;-1:-1:-1;13822:134:0;;;;;:::i;:::-;;:::i;6185:26::-;;;;;;;;;;;;;;;;13169:222;;;;;;;;;;-1:-1:-1;13169:222:0;;;;;:::i;:::-;;:::i;13399:132::-;;;;;;;;;;-1:-1:-1;13399:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;13493:30:0;13469:4;13493:30;;;:21;:30;;;;;;;;;13399:132;16473:108;;;;;;;;;;;;;:::i;10627:117::-;;;;;;;;;;-1:-1:-1;10627:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;10720:16:0;10693:7;10720:16;;;;;;;;;;;;10627:117;9431:225;;;;;;;;;;;;;:::i;5630:92::-;;;;;;;;;;-1:-1:-1;5630:92:0;;;;-1:-1:-1;;;;;5630:92:0;;;14696:182;;;;;;;;;;;;;:::i;12597:564::-;;;;;;;;;;-1:-1:-1;12597:564:0;;;;;:::i;:::-;;:::i;10403:79::-;;;;;;;;;;-1:-1:-1;10473:6:0;;-1:-1:-1;;;;;10473:6:0;10403:79;;11412:175;;;;;;;;;;;;;:::i;22888:695::-;;;;;;;;;;;;;:::i;10227:84::-;;;;;;;;;;-1:-1:-1;10301:7:0;;;;;;;;;;;;-1:-1:-1;;;10301:7:0;;;;10227:84;;10752:165;;;;;;;;;;-1:-1:-1;10752:165:0;;;;;:::i;:::-;;:::i;23781:296::-;;;;;;;;;;-1:-1:-1;23781:296:0;;;;;:::i;:::-;;:::i;5866:34::-;;;;;;;;;;-1:-1:-1;5866:34:0;;;;;;;;15347:366;;;;;;;;;;-1:-1:-1;15347:366:0;;;;;:::i;:::-;;:::i;17840:263::-;;;;;;;;;;-1:-1:-1;17840:263:0;;;;;:::i;:::-;;:::i;5132:115::-;;;;;;;;;;-1:-1:-1;5132:115:0;;;;;;;;;;;;;;;;;;;;;;10488:133;;;;;;;;;;-1:-1:-1;10488:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10590:19:0;;;10572:7;10590:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10488:133;11909:680;;;;;;;;;;-1:-1:-1;11909:680:0;;;;;:::i;:::-;;:::i;15721:191::-;;;;;;;;;;-1:-1:-1;15721:191:0;;;;;:::i;:::-;;:::i;23591:182::-;;;;;;;;;;;;;:::i;16908:699::-;;;;;;;;;;-1:-1:-1;16908:699:0;;;;;:::i;:::-;;:::i;5753:39::-;;;;;;;;;;-1:-1:-1;5753:39:0;;;;-1:-1:-1;;;5753:39:0;;;;;;14112:148;;;;;;;;;;-1:-1:-1;14112:148:0;;;;;:::i;:::-;;:::i;14535:153::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;;;;;;;;;14630:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;14630:50:0;;9568:14:1;;9561:22;14630:50:0::1;::::0;::::1;9543:41:1::0;9627:14;;9620:22;9600:18;;;9593:50;14630:11:0;;;::::1;-1:-1:-1::0;;;;;14630:11:0::1;::::0;:26:::1;::::0;9516:18:1;;14630:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14535:153:::0;;:::o;10925:161::-;11002:4;11019:37;11028:10;11040:7;11049:6;11019:8;:37::i;:::-;-1:-1:-1;11074:4:0;10925:161;;;;;:::o;16589:114::-;16636:7;16681:13;4716:2;16681;:13;:::i;:::-;16663:14;;:32;;;;:::i;:::-;16656:39;;16589:114;:::o;10052:83::-;10107:7;4777:13;4716:2;4777;:13;:::i;:::-;4760:30;;4564:13;4760:30;:::i;11595:306::-;-1:-1:-1;;;;;11716:19:0;;11695:4;11716:19;;;:11;:19;;;;;;;;11736:10;11716:31;;;;;;;;-1:-1:-1;;11716:52:0;11712:126;;-1:-1:-1;;;;;11785:19:0;;;;;;:11;:19;;;;;;;;11805:10;11785:31;;;;;;;:41;;11820:6;;11785:19;:41;;11820:6;;11785:41;:::i;:::-;;;;-1:-1:-1;;11712:126:0;11857:36;11867:6;11875:9;11886:6;11857:9;:36::i;:::-;11850:43;11595:306;-1:-1:-1;;;;11595:306:0:o;16201:264::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;16343:3:::1;4777:13;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;16333:13;;;;:::i;:::-;16321:7:::0;16310;4777:13:::1;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;16300:17;;;;:::i;:::-;16299:29;;;;:::i;:::-;:48;;16291:109;;;::::0;-1:-1:-1;;;16291:109:0;;11899:2:1;16291:109:0::1;::::0;::::1;11881:21:1::0;11938:2;11918:18;;;11911:30;11977:34;11957:18;;;11950:62;12048:18;12028;;;12021:46;12084:19;;16291:109:0::1;11697:412:1::0;16291:109:0::1;16450:7:::0;16439;4777:13:::1;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;16429:17;;;;:::i;:::-;16428:29;;;;:::i;:::-;16411:14;:46:::0;-1:-1:-1;;16201:264:0:o;24085:447::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;24220:7:::1;:14;24201:8;:15;:33;24193:67;;;::::0;-1:-1:-1;;;24193:67:0;;12316:2:1;24193:67:0::1;::::0;::::1;12298:21:1::0;12355:2;12335:18;;;12328:30;12394:23;12374:18;;;12367:51;12435:18;;24193:67:0::1;12114:345:1::0;24193:67:0::1;24276:8;24271:254;24294:8;:15;24290:1;:19;;;24271:254;;;24375:13;4716:2;24375;:13;:::i;:::-;24364:7;24372:1;24364:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;24349:10;10693:7:::0;10720:16;;;;;;;;;;;24339:49:::1;;24331:80;;;::::0;-1:-1:-1;;;24331:80:0;;12798:2:1;24331:80:0::1;::::0;::::1;12780:21:1::0;12837:2;12817:18;;;12810:30;12876:20;12856:18;;;12849:48;12914:18;;24331:80:0::1;12596:342:1::0;24331:80:0::1;24426:87;24443:10;24455:8;24464:1;24455:11;;;;;;;;;;:::i;:::-;;;;;;;4716:2;24479;:13;;;;:::i;:::-;24468:7;24476:1;24468:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;24494:5;24501::::0;24508:4:::1;24426:16;:87::i;:::-;-1:-1:-1::0;24311:3:0;::::1;::::0;::::1;:::i;:::-;;;;24271:254;;;;24085:447:::0;;:::o;14268:141::-;14321:7;10720:16;;;;;;5581:42;10720:16;;;;14360:39;;10720:16;14360:39;:::i;:::-;4777:13;4716:2;4777;:13;:::i;:::-;4760:30;;4564:13;4760:30;:::i;:::-;14349:51;;;;:::i;14886:453::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;14994:14:::1;::::0;::::1;;14993:15;14985:45;;;::::0;-1:-1:-1;;;14985:45:0;;13477:2:1;14985:45:0::1;::::0;::::1;13459:21:1::0;13516:2;13496:18;;;13489:30;13555:19;13535:18;;;13528:47;13592:18;;14985:45:0::1;13275:341:1::0;14985:45:0::1;5294:3;15049:6;:21;;;;:65;;;;;5343:3;15091:7;:23;;;;15049:65;:117;;;;;5396:3;15135:11;:31;;;;15049:117;15041:170;;;::::0;-1:-1:-1;;;15041:170:0;;13823:2:1;15041:170:0::1;::::0;::::1;13805:21:1::0;13862:2;13842:18;;;13835:30;13901:25;13881:18;;;13874:53;13944:18;;15041:170:0::1;13621:347:1::0;15041:170:0::1;15222:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;15258:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;15296:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;14886:453::o;14417:110::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;14486:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;14486:33:0;;-1:-1:-1;;;;;178:55:1;;;14486:33:0::1;::::0;::::1;160:74:1::0;14486:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;14486:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14417:110:::0;:::o;13539:140::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;-1:-1:-1;;;;;13631:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;13631:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13539:140::o;15920:273::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;16065:4:::1;4777:13;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;16051:11;::::0;16061:1:::1;16051:11;:::i;:::-;:18;;;;:::i;:::-;16039:7:::0;16028;4777:13:::1;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;16018:17;;;;:::i;:::-;16017:29;;;;:::i;:::-;:53;;16009:121;;;::::0;-1:-1:-1;;;16009:121:0;;14175:2:1;16009:121:0::1;::::0;::::1;14157:21:1::0;14214:2;14194:18;;;14187:30;14253:34;14233:18;;;14226:62;14324:25;14304:18;;;14297:53;14367:19;;16009:121:0::1;13973:419:1::0;16009:121:0::1;16178:7:::0;16167;4777:13:::1;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;16157:17;;;;:::i;:::-;16156:29;;;;:::i;:::-;16141:12;:44:::0;-1:-1:-1;;15920:273:0:o;16711:189::-;16840:6;;-1:-1:-1;;;;;16840:6:0;16802:7;10720:16;;;;;;;;;;;5442:5;;16830:41;;16850:21;;16830:41;:::i;:::-;16829:62;;;;:::i;17615:217::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;17745:3:::1;17719:22;:29;;17711:64;;;::::0;-1:-1:-1;;;17711:64:0;;14599:2:1;17711:64:0::1;::::0;::::1;14581:21:1::0;14638:2;14618:18;;;14611:30;14677:24;14657:18;;;14650:52;14719:18;;17711:64:0::1;14397:346:1::0;17711:64:0::1;17786:13;:38:::0;17615:217::o;8769:654::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;-1:-1:-1;;;;;8848:22:0;::::1;8840:96;;;::::0;-1:-1:-1;;;8840:96:0;;14950:2:1;8840:96:0::1;::::0;::::1;14932:21:1::0;14989:2;14969:18;;;14962:30;15028:34;15008:18;;;15001:62;15099:31;15079:18;;;15072:59;15148:19;;8840:96:0::1;14748:425:1::0;8840:96:0::1;-1:-1:-1::0;;;;;;;8955:16:0;::::1;::::0;8947:90:::1;;;::::0;-1:-1:-1;;;8947:90:0;;14950:2:1;8947:90:0::1;::::0;::::1;14932:21:1::0;14989:2;14969:18;;;14962:30;15028:34;15008:18;;;15001:62;15099:31;15079:18;;;15072:59;15148:19;;8947:90:0::1;14748:425:1::0;8947:90:0::1;9068:6;::::0;9048:34:::1;::::0;-1:-1:-1;;;;;9068:6:0::1;;9048:19;:34::i;:::-;9093:35;9113:8;9123:4;9093:19;:35::i;:::-;9163:6;::::0;-1:-1:-1;;;;;9163:6:0::1;9173:1;10720:16:::0;;;;;;;;;;;9153:21;9149:127:::1;;9208:6;::::0;-1:-1:-1;;;;;9208:6:0::1;10693:7:::0;10720:16;;;;;;;;;;;9191:73:::1;::::0;9208:6;9216:8;;9226:17:::1;10627:117:::0;9191:73:::1;;9149:127;9315:6;::::0;;-1:-1:-1;;;;;9332:17:0;;::::1;-1:-1:-1::0;;;;;;9332:17:0;::::1;::::0;::::1;::::0;;;9365:40:::1;::::0;9315:6;::::1;::::0;9332:17;9315:6;;9365:40:::1;::::0;9296:16:::1;::::0;9365:40:::1;8829:594;8769:654:::0;:::o;13822:134::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;-1:-1:-1;;;;;13910:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;13910:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13822:134::o;13169:222::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;13253:14:::1;::::0;::::1;;13252:15;13244:24;;;::::0;::::1;;13310:4;-1:-1:-1::0;;;;;13287:28:0;::::1;::::0;13279:55:::1;;;::::0;-1:-1:-1;;;13279:55:0;;15380:2:1;13279:55:0::1;::::0;::::1;15362:21:1::0;15419:2;15399:18;;;15392:30;15458:16;15438:18;;;15431:44;15492:18;;13279:55:0::1;15178:338:1::0;13279:55:0::1;13345:11;:38:::0;;-1:-1:-1;;;;;13345:38:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;13345:38:0;;::::1;::::0;;;::::1;::::0;;13169:222::o;16473:108::-;16516:7;16559:13;4716:2;16559;:13;:::i;:::-;16543:12;;:30;;;;:::i;9431:225::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;9510:6:::1;::::0;9490:34:::1;::::0;-1:-1:-1;;;;;9510:6:0::1;;9490:19;:34::i;:::-;9554:6;::::0;;-1:-1:-1;;;;;;9571:19:0;::::1;::::0;;;9606:42:::1;::::0;-1:-1:-1;;;;;9554:6:0;;::::1;::::0;9535:16:::1;::::0;9554:6;;9606:42:::1;::::0;9535:16;;9606:42:::1;9479:177;9431:225::o:0;14696:182::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;14849:14:::1;:21:::0;;-1:-1:-1;;14849:21:0::1;14866:4;14849:21;::::0;;14696:182::o;12597:564::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;12679:7:::1;12674:480;;-1:-1:-1::0;;;;;12703:13:0;;::::1;12719:5;12703:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;12703:21:0::1;::::0;;12739:11:::1;::::0;:34;;-1:-1:-1;;;12739:34:0;;::::1;::::0;::::1;15689:74:1::0;;;;15779:18;;;15772:50;;;;12739:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15662:18:1;;12739:34:0::1;15521:307:1::0;12674:480:0::1;12810:17;::::0;:22;12806:135:::1;;12899:6;12879:17;;12861:15;:35;;;;:::i;:::-;:44;12853:72;;;::::0;-1:-1:-1;;;12853:72:0;;16035:2:1;12853:72:0::1;::::0;::::1;16017:21:1::0;16074:2;16054:18;;;16047:30;16113:17;16093:18;;;16086:45;16148:18;;12853:72:0::1;15833:339:1::0;12853:72:0::1;-1:-1:-1::0;;;;;12964:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;12963:14;12955:54;;;::::0;-1:-1:-1;;;12955:54:0;;16379:2:1;12955:54:0::1;::::0;::::1;16361:21:1::0;16418:2;16398:18;;;16391:30;16457:29;16437:18;;;16430:57;16504:18;;12955:54:0::1;16177:351:1::0;12955:54:0::1;-1:-1:-1::0;;;;;13024:13:0;;::::1;;::::0;;;13040:4:::1;13024:13;::::0;;;;;;;;:20;;-1:-1:-1;;13024:20:0::1;::::0;::::1;::::0;;13079:15:::1;13059:17;:35:::0;13109:11:::1;::::0;:33;;-1:-1:-1;;;13109:33:0;;::::1;::::0;::::1;15689:74:1::0;;;;15779:18;;;15772:50;13109:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15662:18:1;;13109:33:0::1;15521:307:1::0;12674:480:0::1;12597:564:::0;;:::o;11412:175::-;8623:6;;11478:4;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;11527:9:::1;::::0;11495:62:::1;::::0;11512:4:::1;::::0;11527:9:::1;::::0;::::1;-1:-1:-1::0;;;;;11527:9:0::1;-1:-1:-1::0;;11495:8:0::1;:62::i;:::-;-1:-1:-1::0;11575:4:0::1;11412:175:::0;:::o;22888:695::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;22950:14:::1;::::0;::::1;;22949:15;22941:52;;;::::0;-1:-1:-1;;;22941:52:0;;16735:2:1;22941:52:0::1;::::0;::::1;16717:21:1::0;16774:2;16754:18;;;16747:30;16813:26;16793:18;;;16786:54;16857:18;;22941:52:0::1;16533:348:1::0;22941:52:0::1;23012:16;::::0;::::1;::::0;::::1;;;23004:53;;;::::0;-1:-1:-1;;;23004:53:0;;17088:2:1;23004:53:0::1;::::0;::::1;17070:21:1::0;17127:2;17107:18;;;17100:30;17166:26;17146:18;;;17139:54;17210:18;;23004:53:0::1;16886:348:1::0;23004:53:0::1;23080:11;::::0;;;::::1;-1:-1:-1::0;;;;;23080:11:0::1;23068:106;;23122:11;:40:::0;;-1:-1:-1;;;;;;23122:40:0::1;23156:4;23122:40:::0;::::1;;::::0;;23068:106:::1;23188:11;::::0;23210:6:::1;::::0;23188:87:::1;::::0;-1:-1:-1;;;23188:87:0;;-1:-1:-1;;;;;23210:6:0;;::::1;23188:87;::::0;::::1;17462:74:1::0;17584:10;23225:12:0::1;17572:23:1::0;17552:18;;;17545:51;17644:18;23247:15:0::1;17632:31:1::0;17612:18;;;17605:59;4716:2:0::1;17680:18:1::0;;;17673:45;23188:11:0;;;::::1;;::::0;:21:::1;::::0;17434:19:1;;23188:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;23301:11:0::1;::::0;23332:6:::1;::::0;-1:-1:-1;;;;;23332:6:0;;::::1;10693:7:::0;10720:16;;;;;;;;;;;;;23301:39;;-1:-1:-1;;;23301:39:0;;::::1;::::0;::::1;391:25:1::0;;;;23301:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;23301:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;23301:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;23301:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;23297:207:::0;::::1;;23412:13;:29:::0;;;;23456:10:::1;:27:::0;23297:207:::1;23514:14;:21:::0;;-1:-1:-1;;23514:21:0::1;23531:4;23514:21;::::0;;23560:15:::1;23546:11;:29:::0;22888:695::o;10752:165::-;10830:4;10847:40;10857:10;10869:9;10880:6;10847:9;:40::i;:::-;-1:-1:-1;10905:4:0;;10752:165;-1:-1:-1;;;10752:165:0:o;23781:296::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;23859:16:::1;::::0;::::1;::::0;::::1;;;23855:111;;;23917:4;-1:-1:-1::0;;;;;23900:22:0;::::1;::::0;23892:62:::1;;;::::0;-1:-1:-1;;;23892:62:0;;18181:2:1;23892:62:0::1;::::0;::::1;18163:21:1::0;18220:2;18200:18;;;18193:30;18259:29;18239:18;;;18232:57;18306:18;;23892:62:0::1;17979:351:1::0;23892:62:0::1;24030:6;::::0;24038:30:::1;::::0;-1:-1:-1;;;24038:30:0;;24062:4:::1;24038:30;::::0;::::1;160:74:1::0;23998:5:0;;-1:-1:-1;;;;;24015:14:0;;::::1;::::0;::::1;::::0;24030:6;;;::::1;::::0;24015:14;;24038:15:::1;::::0;133:18:1;;24038:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24015:54;::::0;-1:-1:-1;;;;;;24015:54:0::1;::::0;;;;;;-1:-1:-1;;;;;18716:55:1;;;24015:54:0::1;::::0;::::1;18698:74:1::0;18788:18;;;18781:34;18671:18;;24015:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15347:366::-:0;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;15432:7:::1;:29:::0;;::::1;15472::::0;;::::1;::::0;::::1;-1:-1:-1::0;;15472:29:0;;;15432;;::::1;15472::::0;::::1;::::0;;15532:21:::1;15492:9:::0;15452;15532:21:::1;:::i;:::-;15512:7;:41:::0;;-1:-1:-1;;15512:41:0::1;::::0;::::1;::::0;;::::1;;;::::0;;15599:9:::1;:17:::0;-1:-1:-1;;15580:36:0::1;::::0;15599:17;;::::1;::::0;::::1;::::0;15580:16:::1;:36;:::i;:::-;15635:7;:17:::0;15564:52:::1;::::0;;::::1;::::0;-1:-1:-1;15635:17:0;;::::1;;:26:::0;-1:-1:-1;15635:26:0::1;15627:78;;;::::0;-1:-1:-1;;;15627:78:0;;19451:2:1;15627:78:0::1;::::0;::::1;19433:21:1::0;19490:2;19470:18;;;19463:30;19529:34;19509:18;;;19502:62;-1:-1:-1;;;19580:18:1;;;19573:37;19627:19;;15627:78:0::1;19249:403:1::0;17840:263:0;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;17949:19:::1;:33:::0;;-1:-1:-1;;;;17949:33:0::1;-1:-1:-1::0;;;17949:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;17993:22:::1;:47:::0;;-1:-1:-1;;17993:47:0::1;::::0;::::1;;;::::0;;18056:39:::1;::::0;2242:41:1;;;18056:39:0::1;::::0;2230:2:1;2215:18;18056:39:0::1;;;;;;;;17840:263:::0;;:::o;11909:680::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;11989:16:::1;::::0;::::1;::::0;::::1;;;11988:17;11980:60;;;::::0;-1:-1:-1;;;11980:60:0;;19859:2:1;11980:60:0::1;::::0;::::1;19841:21:1::0;19898:2;19878:18;;;19871:30;19937:32;19917:18;;;19910:60;19987:18;;11980:60:0::1;19657:354:1::0;11980:60:0::1;12051:20;12084:9;12051:43;;12105:16;12135:10;-1:-1:-1::0;;;;;12135:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12124:40:0::1;;12173:4;12180:10;-1:-1:-1::0;;;;;12180:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12124:74;::::0;-1:-1:-1;;;;;;12124:74:0::1;::::0;;;;;;-1:-1:-1;;;;;20525:15:1;;;12124:74:0::1;::::0;::::1;20507:34:1::0;20577:15;;20557:18;;;20550:43;20419:18;;12124:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12217:6;::::0;-1:-1:-1;;;;;12217:6:0;;::::1;12227:5;12209:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;12209:23:0::1;::::0;;12105:93;;-1:-1:-1;12247:22:0;::::1;12243:200;;12306:10;-1:-1:-1::0;;;;;12306:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12295:43:0::1;;12347:4;12354:10;-1:-1:-1::0;;;;;12354:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12295:77;::::0;-1:-1:-1;;;;;;12295:77:0::1;::::0;;;;;;-1:-1:-1;;;;;20525:15:1;;;12295:77:0::1;::::0;::::1;20507:34:1::0;20577:15;;20557:18;;;20550:43;20419:18;;12295:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12286:6;:86:::0;;-1:-1:-1;;;;;;12286:86:0::1;-1:-1:-1::0;;;;;12286:86:0;;;::::1;::::0;;;::::1;::::0;;12243:200:::1;;;12414:6;:17:::0;;-1:-1:-1;;;;;;12414:17:0::1;-1:-1:-1::0;;;;;12414:17:0;::::1;;::::0;;12243:200:::1;12453:9;:22:::0;;-1:-1:-1;;12453:22:0::1;;-1:-1:-1::0;;;;;12453:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12494:6:::1;::::0;;::::1;-1:-1:-1::0;12486:15:0;;;-1:-1:-1;12486:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12486:22:0::1;::::0;;::::1;::::0;;12551:9;;12519:62:::1;::::0;12536:4:::1;::::0;12551:9;::::1;;-1:-1:-1::0;;12519:8:0::1;:62::i;15721:191::-:0;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;-1:-1:-1;;;;;15806:23:0;::::1;15798:59;;;::::0;-1:-1:-1;;;15798:59:0;;20806:2:1;15798:59:0::1;::::0;::::1;20788:21:1::0;20845:2;20825:18;;;20818:30;20884:25;20864:18;;;20857:53;20927:18;;15798:59:0::1;20604:347:1::0;15798:59:0::1;15868:15;:36:::0;;-1:-1:-1;;;;;;15868:36:0::1;-1:-1:-1::0;;;;;15868:36:0;;;::::1;::::0;;;::::1;::::0;;15721:191::o;23591:182::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;23658:16:::1;::::0;::::1;::::0;::::1;;;23657:17;23649:58;;;::::0;-1:-1:-1;;;23649:58:0;;21158:2:1;23649:58:0::1;::::0;::::1;21140:21:1::0;21197:2;21177:18;;;21170:30;21236;21216:18;;;21209:58;21284:18;;23649:58:0::1;20956:352:1::0;23649:58:0::1;23726:6;::::0;23718:47:::1;::::0;-1:-1:-1;;;;;23726:6:0;;::::1;::::0;23743:21:::1;23718:47:::0;::::1;;;::::0;23726:6:::1;23718:47:::0;23726:6;23718:47;23743:21;23726:6;23718:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23591:182::o:0;16908:699::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;17108:16;17088;4777:13:::1;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;17078:26;;;;:::i;:::-;17077:47;;;;:::i;:::-;17061:13;:63:::0;17176:13;17159;4777::::1;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;17149:23;;;;:::i;:::-;17148:41;;;;:::i;:::-;17135:10;:54:::0;;;17208:13:::1;::::0;:27:::1;;17200:73;;;::::0;-1:-1:-1;;;17200:73:0;;21515:2:1;17200:73:0::1;::::0;::::1;21497:21:1::0;21554:2;21534:18;;;21527:30;21593:34;21573:18;;;21566:62;-1:-1:-1;;;21644:18:1;;;21637:31;21685:19;;17200:73:0::1;21313:397:1::0;17200:73:0::1;17317:6;::::0;-1:-1:-1;;;;;17317:6:0::1;10693:7:::0;10720:16;;;;;;;;;;;5442:5:::1;::::0;17307:23:::1;::::0;17327:3:::1;17307:23;:::i;:::-;17306:44;;;;:::i;:::-;17292:10;;:58;;17284:106;;;::::0;-1:-1:-1;;;17284:106:0;;21917:2:1;17284:106:0::1;::::0;::::1;21899:21:1::0;21956:2;21936:18;;;21929:30;21995:34;21975:18;;;21968:62;-1:-1:-1;;;22046:18:1;;;22039:33;22089:19;;17284:106:0::1;21715:399:1::0;17284:106:0::1;17433:9;4777:13;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;17423:19;;;;:::i;:::-;17409:10;;:33;;17401:92;;;::::0;-1:-1:-1;;;17401:92:0;;22321:2:1;17401:92:0::1;::::0;::::1;22303:21:1::0;22360:2;22340:18;;;22333:30;22399:34;22379:18;;;22372:62;-1:-1:-1;;;22450:18:1;;;22443:44;22504:19;;17401:92:0::1;22119:410:1::0;17401:92:0::1;17539:9;4777:13;4716:2;4777;:13;:::i;:::-;4760:30;::::0;4564:13:::1;4760:30;:::i;:::-;17529:19;;;;:::i;:::-;17512:13;;:36;;17504:95;;;::::0;-1:-1:-1;;;17504:95:0;;22321:2:1;17504:95:0::1;::::0;::::1;22303:21:1::0;22360:2;22340:18;;;22333:30;22399:34;22379:18;;;22372:62;-1:-1:-1;;;22450:18:1;;;22443:44;22504:19;;17504:95:0::1;22119:410:1::0;17504:95:0::1;16908:699:::0;;;;:::o;14112:148::-;8623:6;;-1:-1:-1;;;;;8623:6:0;8633:10;8623:20;8615:50;;;;-1:-1:-1;;;8615:50:0;;9237:2:1;8615:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8615:50:0;9035:341:1;8615:50:0;-1:-1:-1;;;;;14208:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;14208:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14112:148::o;11094:310::-;-1:-1:-1;;;;;11189:20:0;;11181:52;;;;-1:-1:-1;;;11181:52:0;;22736:2:1;11181:52:0;;;22718:21:1;22775:2;22755:18;;;22748:30;-1:-1:-1;;;22794:18:1;;;22787:49;22853:18;;11181:52:0;22534:343:1;11181:52:0;-1:-1:-1;;;;;11252:21:0;;11244:53;;;;-1:-1:-1;;;11244:53:0;;22736:2:1;11244:53:0;;;22718:21:1;22775:2;22755:18;;;22748:30;-1:-1:-1;;;22794:18:1;;;22787:49;22853:18;;11244:53:0;22534:343:1;11244:53:0;-1:-1:-1;;;;;11310:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;11363:33;;391:25:1;;;11363:33:0;;364:18:1;11363:33:0;;;;;;;11094:310;;;:::o;18565:2176::-;18644:4;-1:-1:-1;;;;;18669:18:0;;18661:68;;;;-1:-1:-1;;;18661:68:0;;23084:2:1;18661:68:0;;;23066:21:1;23123:2;23103:18;;;23096:30;23162:34;23142:18;;;23135:62;-1:-1:-1;;;23213:18:1;;;23206:35;23258:19;;18661:68:0;22882:401:1;18661:68:0;-1:-1:-1;;;;;18748:16:0;;18740:64;;;;-1:-1:-1;;;18740:64:0;;23490:2:1;18740:64:0;;;23472:21:1;23529:2;23509:18;;;23502:30;23568:34;23548:18;;;23541:62;-1:-1:-1;;;23619:18:1;;;23612:33;23662:19;;18740:64:0;23288:399:1;18740:64:0;18832:1;18823:6;:10;18815:64;;;;-1:-1:-1;;;18815:64:0;;23894:2:1;18815:64:0;;;23876:21:1;23933:2;23913:18;;;23906:30;23972:34;23952:18;;;23945:62;-1:-1:-1;;;24023:18:1;;;24016:39;24072:19;;18815:64:0;23692:405:1;18815:64:0;-1:-1:-1;;;;;18978:13:0;;18890:8;18978:13;;;:7;:13;;;;;;18890:8;;;;18978:13;;18974:162;;;19014:4;19008:10;;18974:162;;;-1:-1:-1;;;;;19040:11:0;;;;;;:7;:11;;;;;;;;19036:100;;;19075:4;19068:11;;19036:100;;;-1:-1:-1;19120:4:0;19036:100;19150:20;19161:4;19167:2;19150:10;:20::i;:::-;19146:874;;;19191:14;;;;19187:319;;19231:5;19226:265;;19261:34;;-1:-1:-1;;;19261:34:0;;24304:2:1;19261:34:0;;;24286:21:1;24343:2;24323:18;;;24316:30;24382:26;24362:18;;;24355:54;24426:18;;19261:34:0;24102:348:1;19226:265:0;-1:-1:-1;;;;;19326:31:0;;;;;;:25;:31;;;;;;;;19325:32;:66;;;;-1:-1:-1;;;;;;19362:29:0;;;;;;:25;:29;;;;;;;;19361:30;19325:66;19321:170;;;19416:55;;-1:-1:-1;;;19416:55:0;;24657:2:1;19416:55:0;;;24639:21:1;24696:2;24676:18;;;24669:30;24735:34;24715:18;;;24708:62;-1:-1:-1;;;24786:18:1;;;24779:43;24839:19;;19416:55:0;24455:409:1;19321:170:0;19524:3;:11;;;;19531:4;19524:11;19520:232;;;-1:-1:-1;;;;;19560:27:0;;;;;;:21;:27;;;;;;;;19559:28;:58;;;;-1:-1:-1;;;;;;19592:25:0;;;;;;:21;:25;;;;;;;;19591:26;19559:58;19555:182;;;19660:12;;19650:6;:22;;19642:75;;;;-1:-1:-1;;;19642:75:0;;25071:2:1;19642:75:0;;;25053:21:1;25110:2;25090:18;;;25083:30;25149:34;25129:18;;;25122:62;-1:-1:-1;;;25200:18:1;;;25193:38;25248:19;;19642:75:0;24869:404:1;19642:75:0;19784:9;;-1:-1:-1;;;;;19770:24:0;;;19784:9;;;;;19770:24;;;;:33;;;19799:4;19798:5;19770:33;19766:243;;;-1:-1:-1;;;;;19829:25:0;;;;;;:21;:25;;;;;;;;19824:170;;19913:14;;19903:6;19887:13;19897:2;-1:-1:-1;;;;;10720:16:0;10693:7;10720:16;;;;;;;;;;;;10627:117;19887:13;:22;;;;:::i;:::-;:40;;19879:95;;;;-1:-1:-1;;;19879:95:0;;25480:2:1;19879:95:0;;;25462:21:1;25519:2;25499:18;;;25492:30;25558:34;25538:18;;;25531:62;-1:-1:-1;;;25609:18:1;;;25602:40;25659:19;;19879:95:0;25278:406:1;19879:95:0;20036:4;20032:632;;;20062:6;;-1:-1:-1;;;20062:6:0;;;;20057:596;;20093:19;;-1:-1:-1;;;20093:19:0;;;;20089:549;;;20186:4;20137:28;10720:16;;;;;;;;;;;20243:13;;20219:37;;20215:404;;20303:10;;20344:22;;;;20340:97;;;20401:13;;20391:6;;-1:-1:-1;;;;;20391:6:0;10693:7;10720:16;;;;;;;;;;;5442:5;;20381:33;;;:::i;:::-;20380:54;;;;:::i;:::-;20370:64;;20340:97;20491:7;20467:20;:31;20463:72;;20525:7;20502:30;;20463:72;20561:34;20574:20;20561:12;:34::i;:::-;20258:361;20215:404;20114:524;20089:549;20681:52;20698:4;20704:2;20708:6;20716:3;20721:4;20727:5;20681:16;:52::i;:::-;20674:59;18565:2176;-1:-1:-1;;;;;;;18565:2176:0:o;24540:1055::-;24659:4;24680:20;24691:4;24697:2;24680:10;:20::i;:::-;24676:228;;;24735:11;;:39;;-1:-1:-1;;;24735:39:0;;-1:-1:-1;;;;;25970:15:1;;;24735:39:0;;;25952:34:1;26022:15;;;26002:18;;;25995:43;26054:18;;;26047:34;;;24704:12:0;;24735:11;;;;;:21;;25864:18:1;;24735:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;24735:39:0;;;;;;;;-1:-1:-1;;24735:39:0;;;;;;;;;;;;:::i;:::-;;;24731:122;;24842:8;;;24731:122;24825:5;-1:-1:-1;24871:7:0;24867:26;;24882:8;;;24867:26;24702:202;24676:228;-1:-1:-1;;;;;24948:25:0;;24914:12;24948:25;;;:19;:25;;;;;;24929:4;;24948:25;;;:52;;-1:-1:-1;;;;;;24977:23:0;;;;;;:19;:23;;;;;;;;24948:52;24944:99;;;-1:-1:-1;25026:5:0;24944:99;-1:-1:-1;;;;;25053:13:0;;:7;:13;;;;;;;;;;:23;;25070:6;;25053:7;:23;;25070:6;;25053:23;:::i;:::-;;;;-1:-1:-1;25087:22:0;;-1:-1:-1;25113:7:0;25112:55;;25161:6;25112:55;;;25124:34;25134:4;25140:3;25145:4;25151:6;25124:9;:34::i;:::-;25087:80;;25193:14;25178:7;:11;25186:2;-1:-1:-1;;;;;25178:11:0;-1:-1:-1;;;;;25178:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;25238:2;-1:-1:-1;;;;;25223:34:0;25232:4;-1:-1:-1;;;;;25223:34:0;;25242:14;25223:34;;;;391:25:1;;379:2;364:18;;245:177;25223:34:0;;;;;;;;25273:16;;;;;;;25268:298;;25306:28;25325:4;25331:2;25306:18;:28::i;:::-;25354:16;;;;;;;25353:17;:41;;;;;25374:20;25385:4;25391:2;25374:10;:20::i;:::-;25353:77;;;;-1:-1:-1;;;;;;25399:31:0;;;;;;:25;:31;;;;;;;;25398:32;25353:77;:111;;;;-1:-1:-1;;;;;;25435:29:0;;;;;;:25;:29;;;;;;;;25434:30;25353:111;:121;;;;;25469:5;25468:6;25353:121;25349:206;;;25495:44;;-1:-1:-1;;;25495:44:0;;26294:2:1;25495:44:0;;;26276:21:1;26333:2;26313:18;;;26306:30;26372:34;26352:18;;;26345:62;-1:-1:-1;;;26423:18:1;;;26416:32;26465:19;;25495:44:0;26092:398:1;25349:206:0;-1:-1:-1;25583:4:0;;24540:1055;-1:-1:-1;;;;;;;;24540:1055:0:o;18111:446::-;18212:6;;18180:4;;-1:-1:-1;;;;;18204:14:0;;;18212:6;;18204:14;;;;:43;;-1:-1:-1;18241:6:0;;-1:-1:-1;;;;;18235:12:0;;;18241:6;;18235:12;;18204:43;:79;;;;-1:-1:-1;18277:6:0;;-1:-1:-1;;;;;18277:6:0;18264:9;:19;;18204:79;:118;;;;-1:-1:-1;;;;;;18301:21:0;;;;;;:17;:21;;;;;;;;18300:22;18204:118;:159;;;;-1:-1:-1;;;;;;18340:23:0;;;;;;:17;:23;;;;;;;;18339:24;18204:159;:186;;;;-1:-1:-1;;;;;;18380:10:0;;5581:42;18380:10;;18204:186;:219;;;;-1:-1:-1;;;;;;18407:16:0;;;;18204:219;:257;;;;-1:-1:-1;;;;;;18440:21:0;;18456:4;18440:21;;18204:257;:302;;;;-1:-1:-1;18494:11:0;;-1:-1:-1;;;;;18478:28:0;;;18494:11;;;;;18478:28;;18204:302;:345;;;;-1:-1:-1;18537:11:0;;-1:-1:-1;;;;;18523:26:0;;;18537:11;;;;;18523:26;;18204:345;18197:352;18111:446;-1:-1:-1;;;18111:446:0:o;20749:1560::-;6376:6;:13;;-1:-1:-1;;;;6376:13:0;-1:-1:-1;;;6376:13:0;;;20832:30:::1;::::0;;::::1;::::0;::::1;::::0;;20855:7:::1;20832:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;;::::0;;;;;;;6376:13;20877:21;20873:60:::1;;20915:7;;;20873:60;20969:4;20949:26;::::0;;;:11:::1;:26;::::0;;;;;;;20984:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;20984:9:0::1;20949:46:::0;;;;;;;;-1:-1:-1;;20949:67:0::1;20945:166;;21053:4;21033:26;::::0;;;:11:::1;:26;::::0;;;;;;;21068:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;21068:9:0::1;21033:46:::0;;;;;;;-1:-1:-1;;21033:66:0;;20945:166:::1;21123:17;21208:1;21188:6;:16;;;21144:60;;21168:6;:16;;;21145:39;;:20;:39;;;;:::i;:::-;21144:60;;;;:::i;:::-;21143:66;;;;:::i;:::-;21123:86:::0;-1:-1:-1;21220:15:0::1;21238:32;21123:86:::0;21238:20;:32:::1;:::i;:::-;21315:16;::::0;;21329:1:::1;21315:16:::0;;;;;::::1;::::0;;21220:50;;-1:-1:-1;21291:21:0::1;::::0;21315:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21315:16:0::1;21291:40;;21360:4;21342;21347:1;21342:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;21342:23:0::1;;;-1:-1:-1::0;;;;;21342:23:0::1;;;::::0;::::1;21386:9;;;;;;;;;-1:-1:-1::0;;;;;21386:9:0::1;-1:-1:-1::0;;;;;21386:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21376:4;21381:1;21376:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21376:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;21419:9:::1;::::0;:186:::1;::::0;-1:-1:-1;;;21419:186:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:186:::1;::::0;21494:7;;21516:1:::1;::::0;21532:4;;21559::::1;::::0;21579:15:::1;::::0;21419:186:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;21415:233;;21630:7;;;;;;21415:233;21681:21;21660:18;21767:7:::0;21741:22:::1;21754:9:::0;21681:21;21741:22:::1;:::i;:::-;21740:34;;;;:::i;:::-;21713:61:::0;-1:-1:-1;21791:13:0;;21787:400:::1;;21825:9;::::0;:222:::1;::::0;-1:-1:-1;;;21825:222:0;;21902:4:::1;21825:222;::::0;::::1;27890:34:1::0;27940:18;;;27933:34;;;21954:1:0::1;27983:18:1::0;;;27976:34;;;28026:18;;;28019:34;5581:42:0::1;28069:19:1::0;;;28062:44;22017:15:0::1;28122:19:1::0;;;28115:35;21825:9:0::1;::::0;;::::1;-1:-1:-1::0;;;;;21825:9:0::1;::::0;:25:::1;::::0;21858:16;;27801:19:1;;21825:222:0::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;21825:222:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;21825:222:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;21821:355;;22154:7;;;;;;;;21821:355;-1:-1:-1::0;;22072:40:0::1;::::0;;28646:25:1;;;28702:2;28687:18;;28680:34;;;22072:40:0::1;::::0;-1:-1:-1;28619:18:1;22072:40:0::1;;;;;;;21821:355;22235:15;::::0;:66:::1;::::0;22199:12:::1;::::0;-1:-1:-1;;;;;22235:15:0::1;::::0;22291:5:::1;::::0;22263:21:::1;::::0;22199:12;22235:66;22199:12;22235:66;22263:21;22235:15;22291:5;22235:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;6400:1:0::1;-1:-1:-1::0;6412:6:0;:14;;-1:-1:-1;;;;6412:14:0;;;20749:1560::o;25603:804::-;25691:7;25711:18;25744:3;25740:205;;;-1:-1:-1;25777:9:0;:16;;;25740:205;;;25815:4;25811:134;;;-1:-1:-1;25849:9:0;:17;;;;;;25811:134;;;-1:-1:-1;25912:9:0;:21;;;;;;25811:134;25959:10;25973:1;25959:15;25955:39;;25985:6;25978:13;;;;;25955:39;26016:11;;;;;-1:-1:-1;;;;;26016:11:0;26040:4;26008:37;:110;;;;;26063:13;26080:1;26063:18;:54;;;;26098:13;26115:2;26098:19;26063:54;26004:138;;;-1:-1:-1;26135:4:0;26004:138;26152:17;5442:5;26172:19;26181:10;26172:6;:19;:::i;:::-;:38;;;;:::i;:::-;26152:58;-1:-1:-1;26225:13:0;;26221:141;;26271:4;26255:7;:22;;;;;;;;;;:35;;26281:9;;26255:7;:35;;26281:9;;26255:35;:::i;:::-;;;;-1:-1:-1;;26310:40:0;;391:25:1;;;26333:4:0;;-1:-1:-1;;;;;26310:40:0;;;;;379:2:1;364:18;26310:40:0;;;;;;;26221:141;26381:18;26390:9;26381:6;:18;:::i;22317:563::-;22400:16;;;;;;;22399:17;22391:65;;;;-1:-1:-1;;;22391:65:0;;29137:2:1;22391:65:0;;;29119:21:1;29176:2;29156:18;;;29149:30;29215:34;29195:18;;;29188:62;-1:-1:-1;;;29266:18:1;;;29259:33;29309:19;;22391:65:0;28935:399:1;22391:65:0;22472:20;22483:4;22489:2;22472:10;:20::i;:::-;22471:21;:37;;;;-1:-1:-1;22502:6:0;;-1:-1:-1;;;;;22496:12:0;;;22502:6;;22496:12;22471:37;22467:406;;;-1:-1:-1;;;;;22525:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;22525:30:0;;;22551:4;22525:30;;;;;;22570:19;:25;;;;;:32;;;;;;;;;;22617:16;:23;;-1:-1:-1;;22617:23:0;22525:30;22617:23;;;;;22667:11;;;;22655:114;;22713:11;:40;;-1:-1:-1;;;;;;22713:40:0;22747:4;22713:40;;;;;22655:114;22783:19;:26;;-1:-1:-1;;;;22783:26:0;-1:-1:-1;;;22783:26:0;;;22829:32;;-1:-1:-1;2242:41:1;;22829:32:0;;2230:2:1;2215:18;22829:32:0;2102:187:1;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;1301:548::-;1413:4;1442:2;1471;1460:9;1453:21;1503:6;1497:13;1546:6;1541:2;1530:9;1526:18;1519:34;1571:1;1581:140;1595:6;1592:1;1589:13;1581:140;;;1690:14;;;1686:23;;1680:30;1656:17;;;1675:2;1652:26;1645:66;1610:10;;1581:140;;;1585:3;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1840:2;1833;1829:7;1824:2;1816:6;1812:15;1808:29;1797:9;1793:45;1789:54;1781:62;;;;1301:548;;;;:::o;2294:154::-;-1:-1:-1;;;;;2373:5:1;2369:54;2362:5;2359:65;2349:93;;2438:1;2435;2428:12;2453:315;2521:6;2529;2582:2;2570:9;2561:7;2557:23;2553:32;2550:52;;;2598:1;2595;2588:12;2550:52;2637:9;2624:23;2656:31;2681:5;2656:31;:::i;:::-;2706:5;2758:2;2743:18;;;;2730:32;;-1:-1:-1;;;2453:315:1:o;2773:247::-;2832:6;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2940:9;2927:23;2959:31;2984:5;2959:31;:::i;3025:456::-;3102:6;3110;3118;3171:2;3159:9;3150:7;3146:23;3142:32;3139:52;;;3187:1;3184;3177:12;3139:52;3226:9;3213:23;3245:31;3270:5;3245:31;:::i;:::-;3295:5;-1:-1:-1;3352:2:1;3337:18;;3324:32;3365:33;3324:32;3365:33;:::i;:::-;3025:456;;3417:7;;-1:-1:-1;;;3471:2:1;3456:18;;;;3443:32;;3025:456::o;3486:248::-;3554:6;3562;3615:2;3603:9;3594:7;3590:23;3586:32;3583:52;;;3631:1;3628;3621:12;3583:52;-1:-1:-1;;3654:23:1;;;3724:2;3709:18;;;3696:32;;-1:-1:-1;3486:248:1:o;3739:127::-;3800:10;3795:3;3791:20;3788:1;3781:31;3831:4;3828:1;3821:15;3855:4;3852:1;3845:15;3871:275;3942:2;3936:9;4007:2;3988:13;;-1:-1:-1;;3984:27:1;3972:40;;4042:18;4027:34;;4063:22;;;4024:62;4021:88;;;4089:18;;:::i;:::-;4125:2;4118:22;3871:275;;-1:-1:-1;3871:275:1:o;4151:183::-;4211:4;4244:18;4236:6;4233:30;4230:56;;;4266:18;;:::i;:::-;-1:-1:-1;4311:1:1;4307:14;4323:4;4303:25;;4151:183::o;4339:662::-;4393:5;4446:3;4439:4;4431:6;4427:17;4423:27;4413:55;;4464:1;4461;4454:12;4413:55;4500:6;4487:20;4526:4;4550:60;4566:43;4606:2;4566:43;:::i;:::-;4550:60;:::i;:::-;4644:15;;;4730:1;4726:10;;;;4714:23;;4710:32;;;4675:12;;;;4754:15;;;4751:35;;;4782:1;4779;4772:12;4751:35;4818:2;4810:6;4806:15;4830:142;4846:6;4841:3;4838:15;4830:142;;;4912:17;;4900:30;;4950:12;;;;4863;;4830:142;;;-1:-1:-1;4990:5:1;4339:662;-1:-1:-1;;;;;;4339:662:1:o;5006:1215::-;5124:6;5132;5185:2;5173:9;5164:7;5160:23;5156:32;5153:52;;;5201:1;5198;5191:12;5153:52;5241:9;5228:23;5270:18;5311:2;5303:6;5300:14;5297:34;;;5327:1;5324;5317:12;5297:34;5365:6;5354:9;5350:22;5340:32;;5410:7;5403:4;5399:2;5395:13;5391:27;5381:55;;5432:1;5429;5422:12;5381:55;5468:2;5455:16;5490:4;5514:60;5530:43;5570:2;5530:43;:::i;5514:60::-;5608:15;;;5690:1;5686:10;;;;5678:19;;5674:28;;;5639:12;;;;5714:19;;;5711:39;;;5746:1;5743;5736:12;5711:39;5770:11;;;;5790:217;5806:6;5801:3;5798:15;5790:217;;;5886:3;5873:17;5903:31;5928:5;5903:31;:::i;:::-;5947:18;;5823:12;;;;5985;;;;5790:217;;;6026:5;-1:-1:-1;;6069:18:1;;6056:32;;-1:-1:-1;;6100:16:1;;;6097:36;;;6129:1;6126;6119:12;6097:36;;6152:63;6207:7;6196:8;6185:9;6181:24;6152:63;:::i;:::-;6142:73;;;5006:1215;;;;;:::o;6415:159::-;6482:20;;6542:6;6531:18;;6521:29;;6511:57;;6564:1;6561;6554:12;6511:57;6415:159;;;:::o;6579:328::-;6653:6;6661;6669;6722:2;6710:9;6701:7;6697:23;6693:32;6690:52;;;6738:1;6735;6728:12;6690:52;6761:28;6779:9;6761:28;:::i;:::-;6751:38;;6808:37;6841:2;6830:9;6826:18;6808:37;:::i;:::-;6798:47;;6864:37;6897:2;6886:9;6882:18;6864:37;:::i;:::-;6854:47;;6579:328;;;;;:::o;6912:382::-;6977:6;6985;7038:2;7026:9;7017:7;7013:23;7009:32;7006:52;;;7054:1;7051;7044:12;7006:52;7093:9;7080:23;7112:31;7137:5;7112:31;:::i;7299:180::-;7358:6;7411:2;7399:9;7390:7;7386:23;7382:32;7379:52;;;7427:1;7424;7417:12;7379:52;-1:-1:-1;7450:23:1;;7299:180;-1:-1:-1;7299:180:1:o;7731:256::-;7797:6;7805;7858:2;7846:9;7837:7;7833:23;7829:32;7826:52;;;7874:1;7871;7864:12;7826:52;7897:28;7915:9;7897:28;:::i;:::-;7887:38;;7944:37;7977:2;7966:9;7962:18;7944:37;:::i;:::-;7934:47;;7731:256;;;;;:::o;7992:388::-;8060:6;8068;8121:2;8109:9;8100:7;8096:23;8092:32;8089:52;;;8137:1;8134;8127:12;8089:52;8176:9;8163:23;8195:31;8220:5;8195:31;:::i;:::-;8245:5;-1:-1:-1;8302:2:1;8287:18;;8274:32;8315:33;8274:32;8315:33;:::i;8645:385::-;8731:6;8739;8747;8755;8808:3;8796:9;8787:7;8783:23;8779:33;8776:53;;;8825:1;8822;8815:12;8776:53;-1:-1:-1;;8848:23:1;;;8918:2;8903:18;;8890:32;;-1:-1:-1;8969:2:1;8954:18;;8941:32;;9020:2;9005:18;8992:32;;-1:-1:-1;8645:385:1;-1:-1:-1;8645:385:1:o;9654:127::-;9715:10;9710:3;9706:20;9703:1;9696:31;9746:4;9743:1;9736:15;9770:4;9767:1;9760:15;9786:422;9875:1;9918:5;9875:1;9932:270;9953:7;9943:8;9940:21;9932:270;;;10012:4;10008:1;10004:6;10000:17;9994:4;9991:27;9988:53;;;10021:18;;:::i;:::-;10071:7;10061:8;10057:22;10054:55;;;10091:16;;;;10054:55;10170:22;;;;10130:15;;;;9932:270;;;9936:3;9786:422;;;;;:::o;10213:806::-;10262:5;10292:8;10282:80;;-1:-1:-1;10333:1:1;10347:5;;10282:80;10381:4;10371:76;;-1:-1:-1;10418:1:1;10432:5;;10371:76;10463:4;10481:1;10476:59;;;;10549:1;10544:130;;;;10456:218;;10476:59;10506:1;10497:10;;10520:5;;;10544:130;10581:3;10571:8;10568:17;10565:43;;;10588:18;;:::i;:::-;-1:-1:-1;;10644:1:1;10630:16;;10659:5;;10456:218;;10758:2;10748:8;10745:16;10739:3;10733:4;10730:13;10726:36;10720:2;10710:8;10707:16;10702:2;10696:4;10693:12;10689:35;10686:77;10683:159;;;-1:-1:-1;10795:19:1;;;10827:5;;10683:159;10874:34;10899:8;10893:4;10874:34;:::i;:::-;10944:6;10940:1;10936:6;10932:19;10923:7;10920:32;10917:58;;;10955:18;;:::i;:::-;10993:20;;10213:806;-1:-1:-1;;;10213:806:1:o;11024:140::-;11082:5;11111:47;11152:4;11142:8;11138:19;11132:4;11111:47;:::i;11169:217::-;11209:1;11235;11225:132;;11279:10;11274:3;11270:20;11267:1;11260:31;11314:4;11311:1;11304:15;11342:4;11339:1;11332:15;11225:132;-1:-1:-1;11371:9:1;;11169:217::o;11391:168::-;11464:9;;;11495;;11512:15;;;11506:22;;11492:37;11482:71;;11533:18;;:::i;11564:128::-;11631:9;;;11652:11;;;11649:37;;;11666:18;;:::i;12464:127::-;12525:10;12520:3;12516:20;12513:1;12506:31;12556:4;12553:1;12546:15;12580:4;12577:1;12570:15;12943:197;12981:3;13009:6;13050:2;13043:5;13039:14;13077:2;13068:7;13065:15;13062:41;;13083:18;;:::i;:::-;13132:1;13119:15;;12943:197;-1:-1:-1;;;12943:197:1:o;13145:125::-;13210:9;;;13231:10;;;13228:36;;;13244:18;;:::i;17729:245::-;17808:6;17816;17869:2;17857:9;17848:7;17844:23;17840:32;17837:52;;;17885:1;17882;17875:12;17837:52;-1:-1:-1;;17908:16:1;;17964:2;17949:18;;;17943:25;17908:16;;17943:25;;-1:-1:-1;17729:245:1:o;18335:184::-;18405:6;18458:2;18446:9;18437:7;18433:23;18429:32;18426:52;;;18474:1;18471;18464:12;18426:52;-1:-1:-1;18497:16:1;;18335:184;-1:-1:-1;18335:184:1:o;18826:245::-;18893:6;18946:2;18934:9;18925:7;18921:23;18917:32;18914:52;;;18962:1;18959;18952:12;18914:52;18994:9;18988:16;19013:28;19035:5;19013:28;:::i;19076:168::-;19143:6;19169:10;;;19181;;;19165:27;;19204:11;;;19201:37;;;19218:18;;:::i;:::-;19201:37;19076:168;;;;:::o;20016:251::-;20086:6;20139:2;20127:9;20118:7;20114:23;20110:32;20107:52;;;20155:1;20152;20145:12;20107:52;20187:9;20181:16;20206:31;20231:5;20206:31;:::i;26495:1026::-;26757:4;26805:3;26794:9;26790:19;26836:6;26825:9;26818:25;26862:2;26900:6;26895:2;26884:9;26880:18;26873:34;26943:3;26938:2;26927:9;26923:18;26916:31;26967:6;27002;26996:13;27033:6;27025;27018:22;27071:3;27060:9;27056:19;27049:26;;27110:2;27102:6;27098:15;27084:29;;27131:1;27141:218;27155:6;27152:1;27149:13;27141:218;;;27220:13;;-1:-1:-1;;;;;27216:62:1;27204:75;;27334:15;;;;27299:12;;;;27177:1;27170:9;27141:218;;;-1:-1:-1;;;;;;;27415:55:1;;;;27410:2;27395:18;;27388:83;-1:-1:-1;;;27502:3:1;27487:19;27480:35;27376:3;26495:1026;-1:-1:-1;;;26495:1026:1:o;28161:306::-;28249:6;28257;28265;28318:2;28306:9;28297:7;28293:23;28289:32;28286:52;;;28334:1;28331;28324:12;28286:52;28363:9;28357:16;28347:26;;28413:2;28402:9;28398:18;28392:25;28382:35;;28457:2;28446:9;28442:18;28436:25;28426:35;;28161:306;;;;;:::o

Swarm Source

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