ETH Price: $3,352.76 (-2.81%)
Gas: 3 Gwei

Token

KokaiShin (KokaiShin)
 

Overview

Max Total Supply

1,000,000,000 KokaiShin

Holders

104

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
102,813.120524969 KokaiShin

Value
$0.00
0x9fbfa8a3d31cc36dacd6432c26723d78f446f4ab
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:
KokaiShin

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-08
*/

// Website: https://KokaiShin.com/
// Twitter: https://twitter.com/KokaiShin
// Telegram: https://t.me/KokaiShin
// Reddit: https://www.reddit.com/r/KokaiShin


// SPDX-License-Identifier: MIT
                     
pragma solidity ^0.8.17; 

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract KokaiShin is Context, IERC20, Ownable {

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isBot;

    address[] private _excluded;
    
    bool public swapEnabled;
    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 1000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    
    uint256 public swapTokensAtAmount = 3000000 * 10**_decimals;
    uint256 public maxTxAmount = 30000000 * 10**_decimals;

    bool private _isTradingState = true;
    
    // Anti Dump //
    mapping (address => uint256) public _lastTrade;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 47 seconds;

    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public marketingAddress = 0x5403618DFa035235bb335f1639A722226b1E53D1;
    address public buybackAddress = 0x5403618DFa035235bb335f1639A722226b1E53D1;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;  //uniswap v2

    string private constant _name = "KokaiShin";
    string private constant _symbol = "KokaiShin";


    struct Taxes {
      uint256 rfi;
      uint256 burn;
      uint256 liquidity;
      uint256 buyback;
      uint256 marketing;   
    }

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

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 burn;
        uint256 liquidity;
        uint256 buyback;
        uint256 marketing;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rRfi;
        uint256 rBurn;
        uint256 rLiquidity;
        uint256 rBuyback;
        uint256 rMarketing;
        uint256 tTransferAmount;
        uint256 tRfi;
        uint256 tBurn;
        uint256 tLiquidity;
        uint256 tBuyback;
        uint256 tMarketing;
    }

    event FeesChanged();
    event UpdatedRouter(address oldRouter, address newRouter);

    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor () {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        excludeFromReward(pair);
        excludeFromReward(deadAddress);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[buybackAddress]=true;
        _isExcludedFromFee[marketingAddress]=true;
        _isExcludedFromFee[deadAddress] = true;

        _isTradingState = true;
        swapEnabled = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        require(_isTradingState == true, "Trading is currently disabled.");
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function tradingEnabled() public view returns (bool) {
        return _isTradingState;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/currentRate;
    }

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }


    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setTaxes(uint256 _rfi, uint256 _buyback, uint256 _marketing, uint256 _liquidity, uint256 _burn) public onlyOwner {
        taxes.rfi = _rfi;
        taxes.buyback = _buyback;
        taxes.marketing = _marketing;
        taxes.liquidity = _liquidity;
        taxes.burn = _burn;
        emit FeesChanged();
    }


    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tLiquidity;
        }
        _rOwned[address(this)] +=rLiquidity;
    }

    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing +=tMarketing;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tMarketing;
        }
        _rOwned[address(this)] +=rMarketing;
    }

    function _takeBuyback(uint256 rBuyback, uint256 tBuyback) private {
        totFeesPaid.buyback +=tBuyback;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tBuyback;
        }
        _rOwned[address(this)] +=rBuyback;
    }

    function _takeBurn(uint256 rBurn, uint256 tBurn) private{
        totFeesPaid.burn +=tBurn;

        if(_isExcluded[deadAddress])
        {
            _tOwned[deadAddress]+=tBurn;
        }
        _rOwned[deadAddress] +=rBurn;
    }

    function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rBuyback, to_return.rMarketing, to_return.rLiquidity, to_return.rBurn) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        
        s.tRfi = tAmount*taxes.rfi/100;
        s.tBuyback = tAmount*taxes.buyback/100;
        s.tMarketing = tAmount*taxes.marketing/100;
        s.tLiquidity = tAmount*taxes.liquidity/100;
        s.tBurn = tAmount*taxes.burn/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tBuyback-s.tMarketing-s.tLiquidity-s.tBurn;
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rBuyback, uint256 rMarketing, uint256 rLiquidity, uint256 rBurn) {
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0,0,0,0);
        }

        rRfi = s.tRfi*currentRate;
        rBuyback = s.tBuyback*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rBurn = s.rBurn*currentRate;
        rTransferAmount =  rAmount-rRfi-rBuyback-rMarketing-rLiquidity-rBurn;
        return (rAmount, rTransferAmount, rRfi, rBuyback, rMarketing, rLiquidity, rBurn);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-_rOwned[_excluded[i]];
            tSupply = tSupply-_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }


    function _transfer(address from, address to, uint256 amount) private {
        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");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        require(!_isBot[from] && !_isBot[to], "You are a bot");
        

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping){
            require(amount <= maxTxAmount ,"Amount is exceeding maxTxAmount");

            if(from != pair && coolDownEnabled){
                uint256 timePassed = block.timestamp - _lastTrade[from];
                require(timePassed > coolDownTime, "You must wait coolDownTime");
                _lastTrade[from] = block.timestamp;
            }
            if(to != pair && coolDownEnabled){
                uint256 timePassed2 = block.timestamp - _lastTrade[to];
                require(timePassed2 > coolDownTime, "You must wait coolDownTime");
                _lastTrade[to] = block.timestamp;
            }
        }
        
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            swapAndLiquify(swapTokensAtAmount);
        }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }


    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        
        _reflectRfi(s.rRfi, s.tRfi);
        _takeLiquidity(s.rLiquidity,s.tLiquidity);
        _takeMarketing(s.rMarketing, s.tMarketing);
        _takeBuyback(s.rBuyback, s.tBuyback);
        _takeBurn(s.rBurn, s.tBurn);

        emit Transfer(sender, deadAddress, s.tBurn);
        emit Transfer(sender, recipient, s.tTransferAmount);
        emit Transfer(sender, address(this), s.tLiquidity + s.tBuyback + s.tMarketing);
        
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
       // Split the contract balance into halves
        uint256 denominator = (taxes.liquidity + taxes.buyback + taxes.marketing ) * 2;
        uint256 tokensToAddLiquidityWith = tokens * taxes.liquidity / denominator;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForETH(toSwap);

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

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

        uint256 buybackAmt = unitBalance * 2 * taxes.buyback;
        if(buybackAmt > 0){
            payable(buybackAddress).transfer(buybackAmt);
        }

        uint256 marketingAmt = unitBalance * 2 * taxes.marketing;
        if(marketingAmt > 0){
            payable(marketingAddress).transfer(marketingAmt);
        }

    }

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

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

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

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

    function updatebuybackWallet(address newWallet) external onlyOwner{
        require(buybackAddress != newWallet ,'Wallet already set');
        buybackAddress = newWallet;
        _isExcludedFromFee[buybackAddress];
    }

    function updatemarketingWallet(address newWallet) external onlyOwner{
        require(marketingAddress != newWallet ,'Wallet already set');
        marketingAddress = newWallet;
        _isExcludedFromFee[marketingAddress];
    }

    function updatMaxTxAmt(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10 **_decimals;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10 **_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }

    function updateCoolDownSettings(bool _enabled, uint256 _timeInSeconds) external onlyOwner{
        coolDownEnabled = _enabled;
        coolDownTime = _timeInSeconds * 1 seconds;
    }

    function setAntibot(address account, bool state) external onlyOwner{
        require(_isBot[account] != state, 'Value already set');
        _isBot[account] = state;
    }
    
    function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
        }
    }
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    function isBot(address account) public view returns(bool){
        return _isBot[account];
    }
    

    //Use this in case ETH are sent to the contract by mistake
    function rescueETH(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake)
    // Owner cannot transfer out cakecoin from this smart contract
    function rescueAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    function setTradingState(bool _state) external onlyOwner{
        _isTradingState = _state;
    }

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesChanged","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_lastTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_buyback","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setTradingState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxTxAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_timeInSeconds","type":"uint256"}],"name":"updateCoolDownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatebuybackWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatemarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620009ce565b6200002290633b9aca00620009df565b600a819055620000359060001962000a0f565b620000439060001962000a26565b600b55620000546009600a620009ce565b6200006390622dc6c0620009df565b600c55620000746009600a620009ce565b62000084906301c9c380620009df565b600d55600e805460ff1990811660019081179092556010805490911682179055602f601155601280546001600160a01b0319908116735403618dfa035235bb335f1639a722226b1e53d190811790925560138054821690921790915560148054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556040805160a0810182526000808252602082018190529181018390526060810182905260036080909101819052601582905560168290556017929092556018556019553480156200014f57600080fd5b506200015b3362000480565b6014546040805163c45a015560e01b815290516001600160a01b0390921691600091839163c45a0155916004808201926020929091908290030181865afa158015620001ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d1919062000a3c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000245919062000a3c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000293573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b9919062000a3c565b600880546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600980549183166001600160a01b0319909216821790559091506200030790620004d0565b6200031461dead620004d0565b600b54600160006200032e6000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620003686200065e60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556013548216845282842080548616821790556012549091168352908220805484168217905561dead9091527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd8054831682179055600e805483168217905560088054909216179055620004286000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200047091815260200190565b60405180910390a3505062000ab0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005305760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156200059b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000527565b6001600160a01b03811660009081526001602052604090205415620005f8576001600160a01b038116600090815260016020526040902054620005de906200066d565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b54821115620006d65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000527565b6000620006e2620006f7565b9050620006f0818462000a67565b9392505050565b60008080620007056200071d565b909250905062000716818362000a67565b9250505090565b600b54600a546000918291825b600754811015620008855782600160006007848154811062000750576200075062000a7e565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620007bf575081600260006007848154811062000798576200079862000a7e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15620007d657600b54600a54945094505050509091565b6001600060078381548110620007f057620007f062000a7e565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000821908462000a26565b925060026000600783815481106200083d576200083d62000a7e565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200086e908362000a26565b9150806200087c8162000a94565b9150506200072a565b50600a54600b5462000898919062000a67565b821015620008b057600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000910578160001904821115620008f457620008f4620008b9565b808516156200090257918102915b93841c9390800290620008d4565b509250929050565b6000826200092957506001620009c8565b816200093857506000620009c8565b81600181146200095157600281146200095c576200097c565b6001915050620009c8565b60ff841115620009705762000970620008b9565b50506001821b620009c8565b5060208310610133831016604e8410600b8410161715620009a1575081810a620009c8565b620009ad8383620008cf565b8060001904821115620009c457620009c4620008b9565b0290505b92915050565b6000620006f060ff84168362000918565b8082028115828204841417620009c857620009c8620008b9565b634e487b7160e01b600052601260045260246000fd5b60008262000a215762000a21620009f9565b500690565b81810381811115620009c857620009c8620008b9565b60006020828403121562000a4f57600080fd5b81516001600160a01b0381168114620006f057600080fd5b60008262000a795762000a79620009f9565b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820162000aa95762000aa9620008b9565b5060010190565b6130f38062000ac06000396000f3fe6080604052600436106102cd5760003560e01c80638c0b5e2211610175578063bff78169116100dc578063e116554511610095578063ee36e3591161006f578063ee36e35914610930578063f2fde38b1461094a578063f887ea401461096a578063f965aa1d1461099057600080fd5b8063e1165545146108da578063e2f45605146108fa578063ea2f0b371461091057600080fd5b8063bff78169146107fe578063cc2fbd661461081e578063d257b34f1461083e578063d2ce0db21461085e578063d5ccb8ee14610874578063dd62ed3e1461089457600080fd5b8063a457c2d71161012e578063a457c2d714610731578063a5ece94114610751578063a87859f614610771578063a8aa1b311461079e578063a9059cbb146107be578063b31470a4146107de57600080fd5b80638c0b5e22146106965780638da5cb5b146106ac578063924de9b7146106ca57806395d89b41146102d95780639ba5e4d5146106ea5780639e252f001461071157600080fd5b806340b28c2f116102345780635fcefa42116101ed578063715018a6116101c7578063715018a6146105d9578063728f8eea146105ee57806388f820201461063d5780638c0ae3df1461067657600080fd5b80635fcefa421461057f5780636ddd17131461059f57806370a08231146105b957600080fd5b806340b28c2f146104ae578063437823ec146104ce5780634549b039146104ee5780634ada218b1461050e57806352390c02146105265780635342acb41461054657600080fd5b80632d838119116102865780632d838119146103d9578063313ce567146103f95780633685d4191461041557806339509351146104355780633bbac579146104555780633c2a46a21461048e57600080fd5b806306fdde03146102d9578063095ea7b31461031a5780630d65df9b1461034a57806318160ddd1461036c57806323b872dd1461038b57806327c8f835146103ab57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b50604080518082018252600981526825b7b5b0b4a9b434b760b91b602082015290516103119190612ae4565b60405180910390f35b34801561032657600080fd5b5061033a610335366004612b57565b6109b0565b6040519015158152602001610311565b34801561035657600080fd5b5061036a610365366004612b83565b6109c7565b005b34801561037857600080fd5b50600a545b604051908152602001610311565b34801561039757600080fd5b5061033a6103a6366004612b83565b610a73565b3480156103b757600080fd5b506103c161dead81565b6040516001600160a01b039091168152602001610311565b3480156103e557600080fd5b5061037d6103f4366004612bc4565b610b24565b34801561040557600080fd5b5060405160098152602001610311565b34801561042157600080fd5b5061036a610430366004612bdd565b610ba8565b34801561044157600080fd5b5061033a610450366004612b57565b610d5e565b34801561046157600080fd5b5061033a610470366004612bdd565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561049a57600080fd5b5061036a6104a9366004612bdd565b610d95565b3480156104ba57600080fd5b5061036a6104c9366004612bfa565b610e3a565b3480156104da57600080fd5b5061036a6104e9366004612bdd565b610e9e565b3480156104fa57600080fd5b5061037d610509366004612c4c565b610eec565b34801561051a57600080fd5b50600e5460ff1661033a565b34801561053257600080fd5b5061036a610541366004612bdd565b610f76565b34801561055257600080fd5b5061033a610561366004612bdd565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058b57600080fd5b5061036a61059a366004612c71565b6110c9565b3480156105ab57600080fd5b5060085461033a9060ff1681565b3480156105c557600080fd5b5061037d6105d4366004612bdd565b61113c565b3480156105e557600080fd5b5061036a61119b565b3480156105fa57600080fd5b50601554601654601754601854601954610615949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610311565b34801561064957600080fd5b5061033a610658366004612bdd565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068257600080fd5b5061036a610691366004612cac565b6111d1565b3480156106a257600080fd5b5061037d600d5481565b3480156106b857600080fd5b506000546001600160a01b03166103c1565b3480156106d657600080fd5b5061036a6106e5366004612cca565b61121b565b3480156106f657600080fd5b50601a54601b54601c54601d54601e54610615949392919085565b34801561071d57600080fd5b5061036a61072c366004612bc4565b611258565b34801561073d57600080fd5b5061033a61074c366004612b57565b6112ff565b34801561075d57600080fd5b506012546103c1906001600160a01b031681565b34801561077d57600080fd5b5061037d61078c366004612bdd565b600f6020526000908152604090205481565b3480156107aa57600080fd5b506009546103c1906001600160a01b031681565b3480156107ca57600080fd5b5061033a6107d9366004612b57565b61139a565b3480156107ea57600080fd5b5061036a6107f9366004612cfd565b6113ff565b34801561080a57600080fd5b5061036a610819366004612bdd565b611495565b34801561082a57600080fd5b506013546103c1906001600160a01b031681565b34801561084a57600080fd5b5061036a610859366004612bc4565b61153a565b34801561086a57600080fd5b5061037d60115481565b34801561088057600080fd5b5061036a61088f366004612cca565b611580565b3480156108a057600080fd5b5061037d6108af366004612bfa565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108e657600080fd5b5061036a6108f5366004612dd4565b6115bd565b34801561090657600080fd5b5061037d600c5481565b34801561091c57600080fd5b5061036a61092b366004612bdd565b611676565b34801561093c57600080fd5b5060105461033a9060ff1681565b34801561095657600080fd5b5061036a610965366004612bdd565b6116c1565b34801561097657600080fd5b506008546103c1906201000090046001600160a01b031681565b34801561099c57600080fd5b5061036a6109ab366004612bc4565b61175c565b60006109bd3384846117a2565b5060015b92915050565b6000546001600160a01b031633146109fa5760405162461bcd60e51b81526004016109f190612e02565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190612e37565b50505050565b6000610a808484846118c6565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610b055760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109f1565b610b198533610b148685612e6a565b6117a2565b506001949350505050565b6000600b54821115610b8b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109f1565b6000610b95611df4565b9050610ba18184612e7d565b9392505050565b6000546001600160a01b03163314610bd25760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03811660009081526005602052604090205460ff16610c3a5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016109f1565b60005b600754811015610d5a57816001600160a01b031660078281548110610c6457610c64612e9f565b6000918252602090912001546001600160a01b031603610d485760078054610c8e90600190612e6a565b81548110610c9e57610c9e612e9f565b600091825260209091200154600780546001600160a01b039092169183908110610cca57610cca612e9f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610d2257610d22612eb5565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d5281612ecb565b915050610c3d565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109bd918590610b14908690612ee4565b6000546001600160a01b03163314610dbf5760405162461bcd60e51b81526004016109f190612e02565b6013546001600160a01b03808316911603610e115760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b60448201526064016109f1565b601380546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b03163314610e645760405162461bcd60e51b81526004016109f190612e02565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610ec85760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a54831115610f405760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109f1565b81610f5c576000610f52846001611e17565b5191506109c19050565b6000610f69846001611e17565b6020015191506109c19050565b6000546001600160a01b03163314610fa05760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03811660009081526005602052604090205460ff16156110095760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109f1565b6001600160a01b03811660009081526001602052604090205415611063576001600160a01b03811660009081526001602052604090205461104990610b24565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146110f35760405162461bcd60e51b81526004016109f190612e02565b601585905560188490556019839055601782905560168190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6001600160a01b03811660009081526005602052604081205460ff161561117957506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109c190610b24565b6000546001600160a01b031633146111c55760405162461bcd60e51b81526004016109f190612e02565b6111cf6000611e64565b565b6000546001600160a01b031633146111fb5760405162461bcd60e51b81526004016109f190612e02565b6010805460ff1916831515179055611214816001612ef7565b6011555050565b6000546001600160a01b031633146112455760405162461bcd60e51b81526004016109f190612e02565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146112825760405162461bcd60e51b81526004016109f190612e02565b804710156112d25760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016109f1565b604051339082156108fc029083906000818181858888f19350505050158015610d5a573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113815760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109f1565b6113903385610b148685612e6a565b5060019392505050565b600e5460009060ff1615156001146113f45760405162461bcd60e51b815260206004820152601e60248201527f54726164696e672069732063757272656e746c792064697361626c65642e000060448201526064016109f1565b6109bd3384846118c6565b6000546001600160a01b031633146114295760405162461bcd60e51b81526004016109f190612e02565b60005b825181101561149057816006600085848151811061144c5761144c612e9f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061148881612ecb565b91505061142c565b505050565b6000546001600160a01b031633146114bf5760405162461bcd60e51b81526004016109f190612e02565b6012546001600160a01b038083169116036115115760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b60448201526064016109f1565b601280546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146115645760405162461bcd60e51b81526004016109f190612e02565b6115706009600a612ff2565b61157a9082612ef7565b600c5550565b6000546001600160a01b031633146115aa5760405162461bcd60e51b81526004016109f190612e02565b600e805460ff1916911515919091179055565b6000546001600160a01b031633146115e75760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03821660009081526006602052604090205481151560ff90911615150361164b5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016109f1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116a05760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146116eb5760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b0381166117505760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109f1565b61175981611e64565b50565b6000546001600160a01b031633146117865760405162461bcd60e51b81526004016109f190612e02565b6117926009600a612ff2565b61179c9082612ef7565b600d5550565b6001600160a01b0383166118045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f1565b6001600160a01b0382166118655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661192a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f1565b6001600160a01b03821661198c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f1565b600081116119ee5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109f1565b6119f78361113c565b811115611a605760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016109f1565b6001600160a01b03831660009081526006602052604090205460ff16158015611aa257506001600160a01b03821660009081526006602052604090205460ff16155b611ade5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016109f1565b6001600160a01b03831660009081526004602052604090205460ff16158015611b2057506001600160a01b03821660009081526004602052604090205460ff16155b8015611b345750600854610100900460ff16155b15611cfb57600d54811115611b8b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e740060448201526064016109f1565b6009546001600160a01b03848116911614801590611bab575060105460ff165b15611c43576001600160a01b0383166000908152600f6020526040812054611bd39042612e6a565b90506011548111611c265760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d6500000000000060448201526064016109f1565b506001600160a01b0383166000908152600f602052604090204290555b6009546001600160a01b03838116911614801590611c63575060105460ff165b15611cfb576001600160a01b0382166000908152600f6020526040812054611c8b9042612e6a565b90506011548111611cde5760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d6500000000000060448201526064016109f1565b506001600160a01b0382166000908152600f602052604090204290555b6000600c54611d093061113c565b6008549111159150610100900460ff16158015611d28575060085460ff165b8015611d315750805b8015611d4b57506009546001600160a01b03858116911614155b8015611d7057506001600160a01b03841660009081526004602052604090205460ff16155b8015611d9557506001600160a01b03831660009081526004602052604090205460ff16155b15611da557611da5600c54611eb4565b6001600160a01b038416600090815260046020526040902054610a6d9085908590859060ff1680611dee57506001600160a01b03871660009081526004602052604090205460ff165b1561204b565b6000806000611e0161230d565b9092509050611e108183612e7d565b9250505090565b611e1f612a7c565b611e298383612490565b9050611e3e818484611e39611df4565b6125a0565b6060880152608087015260c086015260a085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560195460185460175460009291611ed991612ee4565b611ee39190612ee4565b611eee906002612ef7565b905060008160156002015484611f049190612ef7565b611f0e9190612e7d565b90506000611f1c8285612e6a565b905047611f2882612675565b6000611f348247612e6a565b601754909150600090611f479087612e6a565b611f519083612e7d565b601754909150600090611f649083612ef7565b90508015611f7657611f7686826127f4565b601854600090611f87846002612ef7565b611f919190612ef7565b90508015611fd5576013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fd3573d6000803e3d6000fd5b505b601954600090611fe6856002612ef7565b611ff09190612ef7565b90508015612034576012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612032573d6000803e3d6000fd5b505b50506008805461ff00191690555050505050505050565b60006120578383611e17565b6001600160a01b03861660009081526005602052604090205490915060ff16156120b9576001600160a01b03851660009081526002602052604090205461209f908490612e6a565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff161561211c5760e08101516001600160a01b0385166000908152600260205260409020546121029190612ee4565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546121419190612e6a565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546121789190612ee4565b6001600160a01b03851660009081526001602052604090819020919091558101516101008201516121a991906128d6565b6121bc816080015182610140015161290b565b6121cf8160c00151826101800151612981565b6121e28160a00151826101600151612996565b6121f581606001518261012001516129ab565b61dead6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610120015160405161224191815260200190565b60405180910390a3836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e0015160405161229291815260200190565b60405180910390a3306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361018001518461016001518561014001516122eb9190612ee4565b6122f59190612ee4565b60405190815260200160405180910390a35050505050565b600b54600a546000918291825b60075481101561245f5782600160006007848154811061233c5761233c612e9f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806123a7575081600260006007848154811061238057612380612e9f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156123bd57600b54600a54945094505050509091565b60016000600783815481106123d4576123d4612e9f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546124039084612e6a565b9250600260006007838154811061241c5761241c612e9f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461244b9083612e6a565b91508061245781612ecb565b91505061231a565b50600a54600b546124709190612e7d565b82101561248757600b54600a549350935050509091565b90939092509050565b612498612a7c565b816124a95760e081018390526109c1565b6015546064906124b99085612ef7565b6124c39190612e7d565b6101008201526018546064906124d99085612ef7565b6124e39190612e7d565b6101608201526019546064906124f99085612ef7565b6125039190612e7d565b6101808201526017546064906125199085612ef7565b6125239190612e7d565b6101408201526016546064906125399085612ef7565b6125439190612e7d565b610120820181905261014082015161018083015161016084015161010085015161256d9088612e6a565b6125779190612e6a565b6125819190612e6a565b61258b9190612e6a565b6125959190612e6a565b60e082015292915050565b60008080808080806125b2888b612ef7565b9650886125d057508594506000935083925082915081905080612667565b878b61010001516125e19190612ef7565b9450878b61016001516125f49190612ef7565b9350878b61018001516126079190612ef7565b9250878b610140015161261a9190612ef7565b9150878b6060015161262c9190612ef7565b90508082848661263c898c612e6a565b6126469190612e6a565b6126509190612e6a565b61265a9190612e6a565b6126649190612e6a565b95505b949950949992975094509450565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126aa576126aa612e9f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127419190613001565b8160018151811061275457612754612e9f565b6001600160a01b03928316602091820292909201015260085461278091309162010000900416846117a2565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac947906127be90859060009086903090429060040161301e565b600060405180830381600087803b1580156127d857600080fd5b505af11580156127ec573d6000803e3d6000fd5b505050505050565b6008546128129030906201000090046001600160a01b0316846117a2565b6008546001600160a01b03620100009091041663f305d7198230856000806128426000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156128aa573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128cf919061308f565b5050505050565b81600b60008282546128e89190612e6a565b9091555050601a8054829190600090612902908490612ee4565b90915550505050565b80601a60020160008282546129209190612ee4565b90915550503060009081526005602052604090205460ff161561296257306000908152600260205260408120805483929061295c908490612ee4565b90915550505b3060009081526001602052604081208054849290612902908490612ee4565b80601a60040160008282546129209190612ee4565b80601a60030160008282546129209190612ee4565b80601a60010160008282546129c09190612ee4565b909155505061dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460ff1615612a3e5761dead600090815260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc8054839290612a38908490612ee4565b90915550505b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054849290612902908490612ee4565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612b1157858101830151858201604001528201612af5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461175957600080fd5b8035612b5281612b32565b919050565b60008060408385031215612b6a57600080fd5b8235612b7581612b32565b946020939093013593505050565b600080600060608486031215612b9857600080fd5b8335612ba381612b32565b92506020840135612bb381612b32565b929592945050506040919091013590565b600060208284031215612bd657600080fd5b5035919050565b600060208284031215612bef57600080fd5b8135610ba181612b32565b60008060408385031215612c0d57600080fd5b8235612c1881612b32565b91506020830135612c2881612b32565b809150509250929050565b801515811461175957600080fd5b8035612b5281612c33565b60008060408385031215612c5f57600080fd5b823591506020830135612c2881612c33565b600080600080600060a08688031215612c8957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612cbf57600080fd5b8235612b7581612c33565b600060208284031215612cdc57600080fd5b8135610ba181612c33565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612d1057600080fd5b823567ffffffffffffffff80821115612d2857600080fd5b818501915085601f830112612d3c57600080fd5b8135602082821115612d5057612d50612ce7565b8160051b604051601f19603f83011681018181108682111715612d7557612d75612ce7565b604052928352818301935084810182019289841115612d9357600080fd5b948201945b83861015612db857612da986612b47565b85529482019493820193612d98565b9650612dc79050878201612c41565b9450505050509250929050565b60008060408385031215612de757600080fd5b8235612df281612b32565b91506020830135612c2881612c33565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612e4957600080fd5b8151610ba181612c33565b634e487b7160e01b600052601160045260246000fd5b818103818111156109c1576109c1612e54565b600082612e9a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201612edd57612edd612e54565b5060010190565b808201808211156109c1576109c1612e54565b80820281158282048414176109c1576109c1612e54565b600181815b80851115612f49578160001904821115612f2f57612f2f612e54565b80851615612f3c57918102915b93841c9390800290612f13565b509250929050565b600082612f60575060016109c1565b81612f6d575060006109c1565b8160018114612f835760028114612f8d57612fa9565b60019150506109c1565b60ff841115612f9e57612f9e612e54565b50506001821b6109c1565b5060208310610133831016604e8410600b8410161715612fcc575081810a6109c1565b612fd68383612f0e565b8060001904821115612fea57612fea612e54565b029392505050565b6000610ba160ff841683612f51565b60006020828403121561301357600080fd5b8151610ba181612b32565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561306e5784516001600160a01b031683529383019391830191600101613049565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156130a457600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122000b68fa56cda29b34c1d7909bada36143962124a88d7e6d33174bba5decd04a064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c80638c0b5e2211610175578063bff78169116100dc578063e116554511610095578063ee36e3591161006f578063ee36e35914610930578063f2fde38b1461094a578063f887ea401461096a578063f965aa1d1461099057600080fd5b8063e1165545146108da578063e2f45605146108fa578063ea2f0b371461091057600080fd5b8063bff78169146107fe578063cc2fbd661461081e578063d257b34f1461083e578063d2ce0db21461085e578063d5ccb8ee14610874578063dd62ed3e1461089457600080fd5b8063a457c2d71161012e578063a457c2d714610731578063a5ece94114610751578063a87859f614610771578063a8aa1b311461079e578063a9059cbb146107be578063b31470a4146107de57600080fd5b80638c0b5e22146106965780638da5cb5b146106ac578063924de9b7146106ca57806395d89b41146102d95780639ba5e4d5146106ea5780639e252f001461071157600080fd5b806340b28c2f116102345780635fcefa42116101ed578063715018a6116101c7578063715018a6146105d9578063728f8eea146105ee57806388f820201461063d5780638c0ae3df1461067657600080fd5b80635fcefa421461057f5780636ddd17131461059f57806370a08231146105b957600080fd5b806340b28c2f146104ae578063437823ec146104ce5780634549b039146104ee5780634ada218b1461050e57806352390c02146105265780635342acb41461054657600080fd5b80632d838119116102865780632d838119146103d9578063313ce567146103f95780633685d4191461041557806339509351146104355780633bbac579146104555780633c2a46a21461048e57600080fd5b806306fdde03146102d9578063095ea7b31461031a5780630d65df9b1461034a57806318160ddd1461036c57806323b872dd1461038b57806327c8f835146103ab57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b50604080518082018252600981526825b7b5b0b4a9b434b760b91b602082015290516103119190612ae4565b60405180910390f35b34801561032657600080fd5b5061033a610335366004612b57565b6109b0565b6040519015158152602001610311565b34801561035657600080fd5b5061036a610365366004612b83565b6109c7565b005b34801561037857600080fd5b50600a545b604051908152602001610311565b34801561039757600080fd5b5061033a6103a6366004612b83565b610a73565b3480156103b757600080fd5b506103c161dead81565b6040516001600160a01b039091168152602001610311565b3480156103e557600080fd5b5061037d6103f4366004612bc4565b610b24565b34801561040557600080fd5b5060405160098152602001610311565b34801561042157600080fd5b5061036a610430366004612bdd565b610ba8565b34801561044157600080fd5b5061033a610450366004612b57565b610d5e565b34801561046157600080fd5b5061033a610470366004612bdd565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561049a57600080fd5b5061036a6104a9366004612bdd565b610d95565b3480156104ba57600080fd5b5061036a6104c9366004612bfa565b610e3a565b3480156104da57600080fd5b5061036a6104e9366004612bdd565b610e9e565b3480156104fa57600080fd5b5061037d610509366004612c4c565b610eec565b34801561051a57600080fd5b50600e5460ff1661033a565b34801561053257600080fd5b5061036a610541366004612bdd565b610f76565b34801561055257600080fd5b5061033a610561366004612bdd565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058b57600080fd5b5061036a61059a366004612c71565b6110c9565b3480156105ab57600080fd5b5060085461033a9060ff1681565b3480156105c557600080fd5b5061037d6105d4366004612bdd565b61113c565b3480156105e557600080fd5b5061036a61119b565b3480156105fa57600080fd5b50601554601654601754601854601954610615949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610311565b34801561064957600080fd5b5061033a610658366004612bdd565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068257600080fd5b5061036a610691366004612cac565b6111d1565b3480156106a257600080fd5b5061037d600d5481565b3480156106b857600080fd5b506000546001600160a01b03166103c1565b3480156106d657600080fd5b5061036a6106e5366004612cca565b61121b565b3480156106f657600080fd5b50601a54601b54601c54601d54601e54610615949392919085565b34801561071d57600080fd5b5061036a61072c366004612bc4565b611258565b34801561073d57600080fd5b5061033a61074c366004612b57565b6112ff565b34801561075d57600080fd5b506012546103c1906001600160a01b031681565b34801561077d57600080fd5b5061037d61078c366004612bdd565b600f6020526000908152604090205481565b3480156107aa57600080fd5b506009546103c1906001600160a01b031681565b3480156107ca57600080fd5b5061033a6107d9366004612b57565b61139a565b3480156107ea57600080fd5b5061036a6107f9366004612cfd565b6113ff565b34801561080a57600080fd5b5061036a610819366004612bdd565b611495565b34801561082a57600080fd5b506013546103c1906001600160a01b031681565b34801561084a57600080fd5b5061036a610859366004612bc4565b61153a565b34801561086a57600080fd5b5061037d60115481565b34801561088057600080fd5b5061036a61088f366004612cca565b611580565b3480156108a057600080fd5b5061037d6108af366004612bfa565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108e657600080fd5b5061036a6108f5366004612dd4565b6115bd565b34801561090657600080fd5b5061037d600c5481565b34801561091c57600080fd5b5061036a61092b366004612bdd565b611676565b34801561093c57600080fd5b5060105461033a9060ff1681565b34801561095657600080fd5b5061036a610965366004612bdd565b6116c1565b34801561097657600080fd5b506008546103c1906201000090046001600160a01b031681565b34801561099c57600080fd5b5061036a6109ab366004612bc4565b61175c565b60006109bd3384846117a2565b5060015b92915050565b6000546001600160a01b031633146109fa5760405162461bcd60e51b81526004016109f190612e02565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190612e37565b50505050565b6000610a808484846118c6565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610b055760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109f1565b610b198533610b148685612e6a565b6117a2565b506001949350505050565b6000600b54821115610b8b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109f1565b6000610b95611df4565b9050610ba18184612e7d565b9392505050565b6000546001600160a01b03163314610bd25760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03811660009081526005602052604090205460ff16610c3a5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016109f1565b60005b600754811015610d5a57816001600160a01b031660078281548110610c6457610c64612e9f565b6000918252602090912001546001600160a01b031603610d485760078054610c8e90600190612e6a565b81548110610c9e57610c9e612e9f565b600091825260209091200154600780546001600160a01b039092169183908110610cca57610cca612e9f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610d2257610d22612eb5565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d5281612ecb565b915050610c3d565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109bd918590610b14908690612ee4565b6000546001600160a01b03163314610dbf5760405162461bcd60e51b81526004016109f190612e02565b6013546001600160a01b03808316911603610e115760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b60448201526064016109f1565b601380546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b03163314610e645760405162461bcd60e51b81526004016109f190612e02565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610ec85760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a54831115610f405760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109f1565b81610f5c576000610f52846001611e17565b5191506109c19050565b6000610f69846001611e17565b6020015191506109c19050565b6000546001600160a01b03163314610fa05760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03811660009081526005602052604090205460ff16156110095760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109f1565b6001600160a01b03811660009081526001602052604090205415611063576001600160a01b03811660009081526001602052604090205461104990610b24565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146110f35760405162461bcd60e51b81526004016109f190612e02565b601585905560188490556019839055601782905560168190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6001600160a01b03811660009081526005602052604081205460ff161561117957506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109c190610b24565b6000546001600160a01b031633146111c55760405162461bcd60e51b81526004016109f190612e02565b6111cf6000611e64565b565b6000546001600160a01b031633146111fb5760405162461bcd60e51b81526004016109f190612e02565b6010805460ff1916831515179055611214816001612ef7565b6011555050565b6000546001600160a01b031633146112455760405162461bcd60e51b81526004016109f190612e02565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146112825760405162461bcd60e51b81526004016109f190612e02565b804710156112d25760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016109f1565b604051339082156108fc029083906000818181858888f19350505050158015610d5a573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113815760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109f1565b6113903385610b148685612e6a565b5060019392505050565b600e5460009060ff1615156001146113f45760405162461bcd60e51b815260206004820152601e60248201527f54726164696e672069732063757272656e746c792064697361626c65642e000060448201526064016109f1565b6109bd3384846118c6565b6000546001600160a01b031633146114295760405162461bcd60e51b81526004016109f190612e02565b60005b825181101561149057816006600085848151811061144c5761144c612e9f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061148881612ecb565b91505061142c565b505050565b6000546001600160a01b031633146114bf5760405162461bcd60e51b81526004016109f190612e02565b6012546001600160a01b038083169116036115115760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b60448201526064016109f1565b601280546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146115645760405162461bcd60e51b81526004016109f190612e02565b6115706009600a612ff2565b61157a9082612ef7565b600c5550565b6000546001600160a01b031633146115aa5760405162461bcd60e51b81526004016109f190612e02565b600e805460ff1916911515919091179055565b6000546001600160a01b031633146115e75760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03821660009081526006602052604090205481151560ff90911615150361164b5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016109f1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116a05760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146116eb5760405162461bcd60e51b81526004016109f190612e02565b6001600160a01b0381166117505760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109f1565b61175981611e64565b50565b6000546001600160a01b031633146117865760405162461bcd60e51b81526004016109f190612e02565b6117926009600a612ff2565b61179c9082612ef7565b600d5550565b6001600160a01b0383166118045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f1565b6001600160a01b0382166118655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f1565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661192a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f1565b6001600160a01b03821661198c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f1565b600081116119ee5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109f1565b6119f78361113c565b811115611a605760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016109f1565b6001600160a01b03831660009081526006602052604090205460ff16158015611aa257506001600160a01b03821660009081526006602052604090205460ff16155b611ade5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016109f1565b6001600160a01b03831660009081526004602052604090205460ff16158015611b2057506001600160a01b03821660009081526004602052604090205460ff16155b8015611b345750600854610100900460ff16155b15611cfb57600d54811115611b8b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e740060448201526064016109f1565b6009546001600160a01b03848116911614801590611bab575060105460ff165b15611c43576001600160a01b0383166000908152600f6020526040812054611bd39042612e6a565b90506011548111611c265760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d6500000000000060448201526064016109f1565b506001600160a01b0383166000908152600f602052604090204290555b6009546001600160a01b03838116911614801590611c63575060105460ff165b15611cfb576001600160a01b0382166000908152600f6020526040812054611c8b9042612e6a565b90506011548111611cde5760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d6500000000000060448201526064016109f1565b506001600160a01b0382166000908152600f602052604090204290555b6000600c54611d093061113c565b6008549111159150610100900460ff16158015611d28575060085460ff165b8015611d315750805b8015611d4b57506009546001600160a01b03858116911614155b8015611d7057506001600160a01b03841660009081526004602052604090205460ff16155b8015611d9557506001600160a01b03831660009081526004602052604090205460ff16155b15611da557611da5600c54611eb4565b6001600160a01b038416600090815260046020526040902054610a6d9085908590859060ff1680611dee57506001600160a01b03871660009081526004602052604090205460ff165b1561204b565b6000806000611e0161230d565b9092509050611e108183612e7d565b9250505090565b611e1f612a7c565b611e298383612490565b9050611e3e818484611e39611df4565b6125a0565b6060880152608087015260c086015260a085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560195460185460175460009291611ed991612ee4565b611ee39190612ee4565b611eee906002612ef7565b905060008160156002015484611f049190612ef7565b611f0e9190612e7d565b90506000611f1c8285612e6a565b905047611f2882612675565b6000611f348247612e6a565b601754909150600090611f479087612e6a565b611f519083612e7d565b601754909150600090611f649083612ef7565b90508015611f7657611f7686826127f4565b601854600090611f87846002612ef7565b611f919190612ef7565b90508015611fd5576013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fd3573d6000803e3d6000fd5b505b601954600090611fe6856002612ef7565b611ff09190612ef7565b90508015612034576012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612032573d6000803e3d6000fd5b505b50506008805461ff00191690555050505050505050565b60006120578383611e17565b6001600160a01b03861660009081526005602052604090205490915060ff16156120b9576001600160a01b03851660009081526002602052604090205461209f908490612e6a565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff161561211c5760e08101516001600160a01b0385166000908152600260205260409020546121029190612ee4565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546121419190612e6a565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546121789190612ee4565b6001600160a01b03851660009081526001602052604090819020919091558101516101008201516121a991906128d6565b6121bc816080015182610140015161290b565b6121cf8160c00151826101800151612981565b6121e28160a00151826101600151612996565b6121f581606001518261012001516129ab565b61dead6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610120015160405161224191815260200190565b60405180910390a3836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e0015160405161229291815260200190565b60405180910390a3306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361018001518461016001518561014001516122eb9190612ee4565b6122f59190612ee4565b60405190815260200160405180910390a35050505050565b600b54600a546000918291825b60075481101561245f5782600160006007848154811061233c5761233c612e9f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806123a7575081600260006007848154811061238057612380612e9f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156123bd57600b54600a54945094505050509091565b60016000600783815481106123d4576123d4612e9f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546124039084612e6a565b9250600260006007838154811061241c5761241c612e9f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461244b9083612e6a565b91508061245781612ecb565b91505061231a565b50600a54600b546124709190612e7d565b82101561248757600b54600a549350935050509091565b90939092509050565b612498612a7c565b816124a95760e081018390526109c1565b6015546064906124b99085612ef7565b6124c39190612e7d565b6101008201526018546064906124d99085612ef7565b6124e39190612e7d565b6101608201526019546064906124f99085612ef7565b6125039190612e7d565b6101808201526017546064906125199085612ef7565b6125239190612e7d565b6101408201526016546064906125399085612ef7565b6125439190612e7d565b610120820181905261014082015161018083015161016084015161010085015161256d9088612e6a565b6125779190612e6a565b6125819190612e6a565b61258b9190612e6a565b6125959190612e6a565b60e082015292915050565b60008080808080806125b2888b612ef7565b9650886125d057508594506000935083925082915081905080612667565b878b61010001516125e19190612ef7565b9450878b61016001516125f49190612ef7565b9350878b61018001516126079190612ef7565b9250878b610140015161261a9190612ef7565b9150878b6060015161262c9190612ef7565b90508082848661263c898c612e6a565b6126469190612e6a565b6126509190612e6a565b61265a9190612e6a565b6126649190612e6a565b95505b949950949992975094509450565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106126aa576126aa612e9f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127419190613001565b8160018151811061275457612754612e9f565b6001600160a01b03928316602091820292909201015260085461278091309162010000900416846117a2565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac947906127be90859060009086903090429060040161301e565b600060405180830381600087803b1580156127d857600080fd5b505af11580156127ec573d6000803e3d6000fd5b505050505050565b6008546128129030906201000090046001600160a01b0316846117a2565b6008546001600160a01b03620100009091041663f305d7198230856000806128426000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156128aa573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128cf919061308f565b5050505050565b81600b60008282546128e89190612e6a565b9091555050601a8054829190600090612902908490612ee4565b90915550505050565b80601a60020160008282546129209190612ee4565b90915550503060009081526005602052604090205460ff161561296257306000908152600260205260408120805483929061295c908490612ee4565b90915550505b3060009081526001602052604081208054849290612902908490612ee4565b80601a60040160008282546129209190612ee4565b80601a60030160008282546129209190612ee4565b80601a60010160008282546129c09190612ee4565b909155505061dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460ff1615612a3e5761dead600090815260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc8054839290612a38908490612ee4565b90915550505b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054849290612902908490612ee4565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612b1157858101830151858201604001528201612af5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461175957600080fd5b8035612b5281612b32565b919050565b60008060408385031215612b6a57600080fd5b8235612b7581612b32565b946020939093013593505050565b600080600060608486031215612b9857600080fd5b8335612ba381612b32565b92506020840135612bb381612b32565b929592945050506040919091013590565b600060208284031215612bd657600080fd5b5035919050565b600060208284031215612bef57600080fd5b8135610ba181612b32565b60008060408385031215612c0d57600080fd5b8235612c1881612b32565b91506020830135612c2881612b32565b809150509250929050565b801515811461175957600080fd5b8035612b5281612c33565b60008060408385031215612c5f57600080fd5b823591506020830135612c2881612c33565b600080600080600060a08688031215612c8957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612cbf57600080fd5b8235612b7581612c33565b600060208284031215612cdc57600080fd5b8135610ba181612c33565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612d1057600080fd5b823567ffffffffffffffff80821115612d2857600080fd5b818501915085601f830112612d3c57600080fd5b8135602082821115612d5057612d50612ce7565b8160051b604051601f19603f83011681018181108682111715612d7557612d75612ce7565b604052928352818301935084810182019289841115612d9357600080fd5b948201945b83861015612db857612da986612b47565b85529482019493820193612d98565b9650612dc79050878201612c41565b9450505050509250929050565b60008060408385031215612de757600080fd5b8235612df281612b32565b91506020830135612c2881612c33565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612e4957600080fd5b8151610ba181612c33565b634e487b7160e01b600052601160045260246000fd5b818103818111156109c1576109c1612e54565b600082612e9a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201612edd57612edd612e54565b5060010190565b808201808211156109c1576109c1612e54565b80820281158282048414176109c1576109c1612e54565b600181815b80851115612f49578160001904821115612f2f57612f2f612e54565b80851615612f3c57918102915b93841c9390800290612f13565b509250929050565b600082612f60575060016109c1565b81612f6d575060006109c1565b8160018114612f835760028114612f8d57612fa9565b60019150506109c1565b60ff841115612f9e57612f9e612e54565b50506001821b6109c1565b5060208310610133831016604e8410600b8410161715612fcc575081810a6109c1565b612fd68383612f0e565b8060001904821115612fea57612fea612e54565b029392505050565b6000610ba160ff841683612f51565b60006020828403121561301357600080fd5b8151610ba181612b32565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561306e5784516001600160a01b031683529383019391830191600101613049565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156130a457600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122000b68fa56cda29b34c1d7909bada36143962124a88d7e6d33174bba5decd04a064736f6c63430008110033

Deployed Bytecode Sourcemap

3039:19435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6336:83;;;;;;;;;;-1:-1:-1;6406:5:0;;;;;;;;;;;-1:-1:-1;;;6406:5:0;;;;6336:83;;;;6406:5;6336:83;:::i;:::-;;;;;;;;7423:161;;;;;;;;;;-1:-1:-1;7423:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7423:161:0;1162:187:1;22168:154:0;;;;;;;;;;-1:-1:-1;22168:154:0;;;;;:::i;:::-;;:::i;:::-;;6609:95;;;;;;;;;;-1:-1:-1;6689:7:0;;6609:95;;;1961:25:1;;;1949:2;1934:18;6609:95:0;1815:177:1;7592:422:0;;;;;;;;;;-1:-1:-1;7592:422:0;;;;;:::i;:::-;;:::i;4146:80::-;;;;;;;;;;;;4184:42;4146:80;;;;;-1:-1:-1;;;;;2161:32:1;;;2143:51;;2131:2;2116:18;4146:80:0;1997:203:1;9222:248:0;;;;;;;;;;-1:-1:-1;9222:248:0;;;;;:::i;:::-;;:::i;6518:83::-;;;;;;;;;;-1:-1:-1;6518:83:0;;3624:1;2532:36:1;;2520:2;2505:18;6518:83:0;2390:184:1;9819:475:0;;;;;;;;;;-1:-1:-1;9819:475:0;;;;;:::i;:::-;;:::i;8022:215::-;;;;;;;;;;-1:-1:-1;8022:215:0;;;;;:::i;:::-;;:::i;21619:98::-;;;;;;;;;;-1:-1:-1;21619:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;21694:15:0;21671:4;21694:15;;;:6;:15;;;;;;;;;21619:98;20024:225;;;;;;;;;;-1:-1:-1;20024:225:0;;;;;:::i;:::-;;:::i;21453:154::-;;;;;;;;;;-1:-1:-1;21453:154:0;;;;;:::i;:::-;;:::i;10304:111::-;;;;;;;;;;-1:-1:-1;10304:111:0;;;;;:::i;:::-;;:::i;8758:456::-;;;;;;;;;;-1:-1:-1;8758:456:0;;;;;:::i;:::-;;:::i;7321:94::-;;;;;;;;;;-1:-1:-1;7392:15:0;;;;7321:94;;9478:333;;;;;;;;;;-1:-1:-1;9478:333:0;;;;;:::i;:::-;;:::i;10541:123::-;;;;;;;;;;-1:-1:-1;10541:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10629:27:0;10605:4;10629:27;;;:18;:27;;;;;;;;;10541:123;10672:328;;;;;;;;;;-1:-1:-1;10672:328:0;;;;;:::i;:::-;;:::i;3473:23::-;;;;;;;;;;-1:-1:-1;3473:23:0;;;;;;;;6712:198;;;;;;;;;;-1:-1:-1;6712:198:0;;;;;:::i;:::-;;:::i;1816:94::-;;;;;;;;;;;;;:::i;4751:37::-;;;;;;;;;;-1:-1:-1;4751:37:0;;;;;;;;;;;;;;;;;;;;;;4512:25:1;;;4568:2;4553:18;;4546:34;;;;4596:18;;;4589:34;;;;4654:2;4639:18;;4632:34;4697:3;4682:19;;4675:35;4499:3;4484:19;4751:37:0;4253:463:1;8630:120:0;;;;;;;;;;-1:-1:-1;8630:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;8722:20:0;8698:4;8722:20;;;:11;:20;;;;;;;;;8630:120;20867:186;;;;;;;;;;-1:-1:-1;20867:186:0;;;;;:::i;:::-;;:::i;3872:53::-;;;;;;;;;;;;;;;;1593:87;;;;;;;;;;-1:-1:-1;1639:7:0;1666:6;-1:-1:-1;;;;;1666:6:0;1593:87;;20758:101;;;;;;;;;;-1:-1:-1;20758:101:0;;;;;:::i;:::-;;:::i;4962:36::-;;;;;;;;;;-1:-1:-1;4962:36:0;;;;;;;;;;;;;;;;;;21795:196;;;;;;;;;;-1:-1:-1;21795:196:0;;;;;:::i;:::-;;:::i;8245:377::-;;;;;;;;;;-1:-1:-1;8245:377:0;;;;;:::i;:::-;;:::i;4233:76::-;;;;;;;;;;-1:-1:-1;4233:76:0;;;;-1:-1:-1;;;;;4233:76:0;;;4003:46;;;;;;;;;;-1:-1:-1;4003:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;3561:19;;;;;;;;;;-1:-1:-1;3561:19:0;;;;-1:-1:-1;;;;;3561:19:0;;;6918:244;;;;;;;;;;-1:-1:-1;6918:244:0;;;;;:::i;:::-;;:::i;21247:194::-;;;;;;;;;;-1:-1:-1;21247:194:0;;;;;:::i;:::-;;:::i;20257:233::-;;;;;;;;;;-1:-1:-1;20257:233:0;;;;;:::i;:::-;;:::i;4316:74::-;;;;;;;;;;-1:-1:-1;4316:74:0;;;;-1:-1:-1;;;;;4316:74:0;;;20619:131;;;;;;;;;;-1:-1:-1;20619:131:0;;;;;:::i;:::-;;:::i;4097:40::-;;;;;;;;;;;;;;;;22330:99;;;;;;;;;;-1:-1:-1;22330:99:0;;;;;:::i;:::-;;:::i;7170:143::-;;;;;;;;;;-1:-1:-1;7170:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7278:18:0;;;7251:7;7278:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7170:143;21061:174;;;;;;;;;;-1:-1:-1;21061:174:0;;;;;:::i;:::-;;:::i;3806:59::-;;;;;;;;;;;;;;;;10423:110;;;;;;;;;;-1:-1:-1;10423:110:0;;;;;:::i;:::-;;:::i;4056:34::-;;;;;;;;;;-1:-1:-1;4056:34:0;;;;;;;;1918:192;;;;;;;;;;-1:-1:-1;1918:192:0;;;;;:::i;:::-;;:::i;3533:21::-;;;;;;;;;;-1:-1:-1;3533:21:0;;;;;;;-1:-1:-1;;;;;3533:21:0;;;20498:113;;;;;;;;;;-1:-1:-1;20498:113:0;;;;;:::i;:::-;;:::i;7423:161::-;7498:4;7515:39;1094:10;7538:7;7547:6;7515:8;:39::i;:::-;-1:-1:-1;7572:4:0;7423:161;;;;;:::o;22168:154::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;;;;;;;;;22273:41:::1;::::0;-1:-1:-1;;;22273:41:0;;-1:-1:-1;;;;;7772:32:1;;;22273:41:0::1;::::0;::::1;7754:51:1::0;7821:18;;;7814:34;;;22273:27:0;::::1;::::0;::::1;::::0;7727:18:1;;22273:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22168:154:::0;;;:::o;7592:422::-;7698:4;7715:36;7725:6;7733:9;7744:6;7715:9;:36::i;:::-;-1:-1:-1;;;;;7791:19:0;;7764:24;7791:19;;;:11;:19;;;;;;;;1094:10;7791:33;;;;;;;;7843:26;;;;7835:79;;;;-1:-1:-1;;;7835:79:0;;8311:2:1;7835:79:0;;;8293:21:1;8350:2;8330:18;;;8323:30;8389:34;8369:18;;;8362:62;-1:-1:-1;;;8440:18:1;;;8433:38;8488:19;;7835:79:0;8109:404:1;7835:79:0;7925:57;7934:6;1094:10;7956:25;7975:6;7956:16;:25;:::i;:::-;7925:8;:57::i;:::-;-1:-1:-1;8002:4:0;;7592:422;-1:-1:-1;;;;7592:422:0:o;9222:248::-;9288:7;9327;;9316;:18;;9308:73;;;;-1:-1:-1;;;9308:73:0;;8985:2:1;9308:73:0;;;8967:21:1;9024:2;9004:18;;;8997:30;9063:34;9043:18;;;9036:62;-1:-1:-1;;;9114:18:1;;;9107:40;9164:19;;9308:73:0;8783:406:1;9308:73:0;9392:19;9415:10;:8;:10::i;:::-;9392:33;-1:-1:-1;9443:19:0;9392:33;9443:7;:19;:::i;:::-;9436:26;9222:248;-1:-1:-1;;;9222:248:0:o;9819:475::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9901:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9893:56;;;::::0;-1:-1:-1;;;9893:56:0;;9618:2:1;9893:56:0::1;::::0;::::1;9600:21:1::0;9657:2;9637:18;;;9630:30;9696:25;9676:18;;;9669:53;9739:18;;9893:56:0::1;9416:347:1::0;9893:56:0::1;9965:9;9960:327;9984:9;:16:::0;9980:20;::::1;9960:327;;;10042:7;-1:-1:-1::0;;;;;10026:23:0::1;:9;10036:1;10026:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10026:12:0::1;:23:::0;10022:254:::1;;10085:9;10095:16:::0;;:20:::1;::::0;10114:1:::1;::::0;10095:20:::1;:::i;:::-;10085:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10070:9:::1;:12:::0;;-1:-1:-1;;;;;10085:31:0;;::::1;::::0;10080:1;;10070:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;10070:46:0::1;-1:-1:-1::0;;;;;10070:46:0;;::::1;;::::0;;10135:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10174:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10174:28:0::1;::::0;;10221:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10221:15:0;;;;;-1:-1:-1;;;;;;10221:15:0::1;::::0;;;;;9960:327:::1;9819:475:::0;:::o;10022:254::-:1;10002:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9960:327;;;;9819:475:::0;:::o;8022:215::-;1094:10;8110:4;8159:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8159:34:0;;;;;;;;;;8110:4;;8127:80;;8150:7;;8159:47;;8196:10;;8159:47;:::i;20024:225::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;20109:14:::1;::::0;-1:-1:-1;;;;;20109:27:0;;::::1;:14:::0;::::1;:27:::0;20101:58:::1;;;::::0;-1:-1:-1;;;20101:58:0;;10504:2:1;20101:58:0::1;::::0;::::1;10486:21:1::0;10543:2;10523:18;;;10516:30;-1:-1:-1;;;10562:18:1;;;10555:48;10620:18;;20101:58:0::1;10302:342:1::0;20101:58:0::1;20170:14;:26:::0;;-1:-1:-1;;;;;20170:26:0;;::::1;-1:-1:-1::0;;;;;;20170:26:0;;::::1;::::0;::::1;::::0;;:14:::1;20207:34:::0;:18:::1;:34;::::0;20024:225::o;21453:154::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;21547:6:::1;:27:::0;;-1:-1:-1;;;;;;21547:27:0::1;::::0;-1:-1:-1;;;;;21547:27:0;;::::1;;;::::0;;21585:4:::1;:14:::0;;-1:-1:-1;;;;;;21585:14:0::1;::::0;;;::::1;;::::0;;21453:154::o;10304:111::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10373:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;10373:34:0::1;10403:4;10373:34;::::0;;10304:111::o;8758:456::-;8848:7;8887;;8876;:18;;8868:62;;;;-1:-1:-1;;;8868:62:0;;10851:2:1;8868:62:0;;;10833:21:1;10890:2;10870:18;;;10863:30;10929:33;10909:18;;;10902:61;10980:18;;8868:62:0;10649:355:1;8868:62:0;8946:17;8941:266;;8980:28;9011:25;9022:7;9031:4;9011:10;:25::i;:::-;9058:9;;-1:-1:-1;9051:16:0;;-1:-1:-1;9051:16:0;8941:266;9100:28;9131:25;9142:7;9151:4;9131:10;:25::i;:::-;9178:17;;;;-1:-1:-1;9171:24:0;;-1:-1:-1;9171:24:0;9478:333;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9561:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9560:21;9552:61;;;::::0;-1:-1:-1;;;9552:61:0;;11211:2:1;9552:61:0::1;::::0;::::1;11193:21:1::0;11250:2;11230:18;;;11223:30;11289:29;11269:18;;;11262:57;11336:18;;9552:61:0::1;11009:351:1::0;9552:61:0::1;-1:-1:-1::0;;;;;9627:16:0;::::1;9646:1;9627:16:::0;;;:7:::1;:16;::::0;;;;;:20;9624:108:::1;;-1:-1:-1::0;;;;;9703:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9683:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9664:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9624:108:::1;-1:-1:-1::0;;;;;9742:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9742:27:0::1;9765:4;9742:27:::0;;::::1;::::0;;;9780:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9780:23:0::1;::::0;;::::1;::::0;;9478:333::o;10672:328::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;10805:5:::1;:16:::0;;;10832:13;:24;;;10867:15;:28;;;10906:15;:28;;;10945:10;:18;;;10979:13:::1;::::0;::::1;::::0;10805:9:::1;::::0;10979:13:::1;10672:328:::0;;;;;:::o;6712:198::-;-1:-1:-1;;;;;6802:20:0;;6778:7;6802:20;;;:11;:20;;;;;;;;6798:49;;;-1:-1:-1;;;;;;6831:16:0;;;;;:7;:16;;;;;;;6712:198::o;6798:49::-;-1:-1:-1;;;;;6885:16:0;;;;;;:7;:16;;;;;;6865:37;;:19;:37::i;1816:94::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;1881:21:::1;1899:1;1881:9;:21::i;:::-;1816:94::o:0;20867:186::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;20967:15:::1;:26:::0;;-1:-1:-1;;20967:26:0::1;::::0;::::1;;;::::0;;21019::::1;:14:::0;-1:-1:-1;21019:26:0::1;:::i;:::-;21004:12;:41:::0;-1:-1:-1;;20867:186:0:o;20758:101::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;20829:11:::1;:22:::0;;-1:-1:-1;;20829:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20758:101::o;21795:196::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;21895:9:::1;21870:21;:34;;21862:71;;;::::0;-1:-1:-1;;;21862:71:0;;11740:2:1;21862:71:0::1;::::0;::::1;11722:21:1::0;11779:2;11759:18;;;11752:30;11818:26;11798:18;;;11791:54;11862:18;;21862:71:0::1;11538:348:1::0;21862:71:0::1;21944:39;::::0;21952:10:::1;::::0;21944:39;::::1;;;::::0;21973:9;;21944:39:::1;::::0;;;21973:9;21952:10;21944:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;8245:377:::0;1094:10;8338:4;8382:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8382:34:0;;;;;;;;;;8435:35;;;;8427:85;;;;-1:-1:-1;;;8427:85:0;;12093:2:1;8427:85:0;;;12075:21:1;12132:2;12112:18;;;12105:30;12171:34;12151:18;;;12144:62;-1:-1:-1;;;12222:18:1;;;12215:35;12267:19;;8427:85:0;11891:401:1;8427:85:0;8523:67;1094:10;8546:7;8555:34;8574:15;8555:16;:34;:::i;8523:67::-;-1:-1:-1;8610:4:0;;8245:377;-1:-1:-1;;;8245:377:0:o;6918:244::-;7021:15;;6996:4;;7021:15;;:23;;:15;:23;7013:66;;;;-1:-1:-1;;;7013:66:0;;12499:2:1;7013:66:0;;;12481:21:1;12538:2;12518:18;;;12511:30;12577:32;12557:18;;;12550:60;12627:18;;7013:66:0;12297:354:1;7013:66:0;7090:42;1094:10;7114:9;7125:6;7090:9;:42::i;21247:194::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;21340:9:::1;21336:98;21359:8;:15;21355:1;:19;21336:98;;;21417:5;21395:6;:19;21402:8;21411:1;21402:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21395:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21395:19:0;:27;;-1:-1:-1;;21395:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21376:3;::::1;::::0;::::1;:::i;:::-;;;;21336:98;;;;21247:194:::0;;:::o;20257:233::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;20344:16:::1;::::0;-1:-1:-1;;;;;20344:29:0;;::::1;:16:::0;::::1;:29:::0;20336:60:::1;;;::::0;-1:-1:-1;;;20336:60:0;;10504:2:1;20336:60:0::1;::::0;::::1;10486:21:1::0;10543:2;10523:18;;;10516:30;-1:-1:-1;;;10562:18:1;;;10555:48;10620:18;;20336:60:0::1;10302:342:1::0;20336:60:0::1;20407:16;:28:::0;;-1:-1:-1;;;;;20407:28:0;;::::1;-1:-1:-1::0;;;;;;20407:28:0;;::::1;::::0;::::1;::::0;;:16:::1;20446:36:::0;:18:::1;:36;::::0;20257:233::o;20619:131::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;20728:14:::1;3624:1;20728:2;:14;:::i;:::-;20719:23;::::0;:6;:23:::1;:::i;:::-;20698:18;:44:::0;-1:-1:-1;20619:131:0:o;22330:99::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;22397:15:::1;:24:::0;;-1:-1:-1;;22397:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22330:99::o;21061:174::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21147:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;:24;::::1;;:15;::::0;;::::1;:24;;::::0;21139:54:::1;;;::::0;-1:-1:-1;;;21139:54:0;;14241:2:1;21139:54:0::1;::::0;::::1;14223:21:1::0;14280:2;14260:18;;;14253:30;-1:-1:-1;;;14299:18:1;;;14292:47;14356:18;;21139:54:0::1;14039:341:1::0;21139:54:0::1;-1:-1:-1::0;;;;;21204:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;21204:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21061:174::o;10423:110::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10490:27:0::1;10520:5;10490:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;10490:35:0::1;::::0;;10423:110::o;1918:192::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2007:22:0;::::1;1999:73;;;::::0;-1:-1:-1;;;1999:73:0;;14587:2:1;1999:73:0::1;::::0;::::1;14569:21:1::0;14626:2;14606:18;;;14599:30;14665:34;14645:18;;;14638:62;-1:-1:-1;;;14716:18:1;;;14709:36;14762:19;;1999:73:0::1;14385:402:1::0;1999:73:0::1;2083:19;2093:8;2083:9;:19::i;:::-;1918:192:::0;:::o;20498:113::-;1639:7;1666:6;-1:-1:-1;;;;;1666:6:0;1094:10;1728:23;1720:68;;;;-1:-1:-1;;;1720:68:0;;;;;;;:::i;:::-;20589:14:::1;3624:1;20589:2;:14;:::i;:::-;20580:23;::::0;:6;:23:::1;:::i;:::-;20566:11;:37:::0;-1:-1:-1;20498:113:0:o;14739:335::-;-1:-1:-1;;;;;14832:19:0;;14824:68;;;;-1:-1:-1;;;14824:68:0;;14994:2:1;14824:68:0;;;14976:21:1;15033:2;15013:18;;;15006:30;15072:34;15052:18;;;15045:62;-1:-1:-1;;;15123:18:1;;;15116:34;15167:19;;14824:68:0;14792:400:1;14824:68:0;-1:-1:-1;;;;;14911:21:0;;14903:68;;;;-1:-1:-1;;;14903:68:0;;15399:2:1;14903:68:0;;;15381:21:1;15438:2;15418:18;;;15411:30;15477:34;15457:18;;;15450:62;-1:-1:-1;;;15528:18:1;;;15521:32;15570:19;;14903:68:0;15197:398:1;14903:68:0;-1:-1:-1;;;;;14982:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15034:32;;1961:25:1;;;15034:32:0;;1934:18:1;15034:32:0;;;;;;;14739:335;;;:::o;15084:1563::-;-1:-1:-1;;;;;15172:18:0;;15164:68;;;;-1:-1:-1;;;15164:68:0;;15802:2:1;15164:68:0;;;15784:21:1;15841:2;15821:18;;;15814:30;15880:34;15860:18;;;15853:62;-1:-1:-1;;;15931:18:1;;;15924:35;15976:19;;15164:68:0;15600:401:1;15164:68:0;-1:-1:-1;;;;;15251:16:0;;15243:64;;;;-1:-1:-1;;;15243:64:0;;16208:2:1;15243:64:0;;;16190:21:1;16247:2;16227:18;;;16220:30;16286:34;16266:18;;;16259:62;-1:-1:-1;;;16337:18:1;;;16330:33;16380:19;;15243:64:0;16006:399:1;15243:64:0;15335:1;15326:6;:10;15318:64;;;;-1:-1:-1;;;15318:64:0;;16612:2:1;15318:64:0;;;16594:21:1;16651:2;16631:18;;;16624:30;16690:34;16670:18;;;16663:62;-1:-1:-1;;;16741:18:1;;;16734:39;16790:19;;15318:64:0;16410:405:1;15318:64:0;15411:15;15421:4;15411:9;:15::i;:::-;15401:6;:25;;15393:86;;;;-1:-1:-1;;;15393:86:0;;17022:2:1;15393:86:0;;;17004:21:1;17061:2;17041:18;;;17034:30;17100:34;17080:18;;;17073:62;-1:-1:-1;;;17151:18:1;;;17144:47;17208:19;;15393:86:0;16820:413:1;15393:86:0;-1:-1:-1;;;;;15499:12:0;;;;;;:6;:12;;;;;;;;15498:13;:28;;;;-1:-1:-1;;;;;;15516:10:0;;;;;;:6;:10;;;;;;;;15515:11;15498:28;15490:54;;;;-1:-1:-1;;;15490:54:0;;17440:2:1;15490:54:0;;;17422:21:1;17479:2;17459:18;;;17452:30;-1:-1:-1;;;17498:18:1;;;17491:43;17551:18;;15490:54:0;17238:337:1;15490:54:0;-1:-1:-1;;;;;15571:24:0;;;;;;:18;:24;;;;;;;;15570:25;:52;;;;-1:-1:-1;;;;;;15600:22:0;;;;;;:18;:22;;;;;;;;15599:23;15570:52;:65;;;;-1:-1:-1;15627:8:0;;;;;;;15626:9;15570:65;15567:709;;;15669:11;;15659:6;:21;;15651:65;;;;-1:-1:-1;;;15651:65:0;;17782:2:1;15651:65:0;;;17764:21:1;17821:2;17801:18;;;17794:30;17860:33;17840:18;;;17833:61;17911:18;;15651:65:0;17580:355:1;15651:65:0;15744:4;;-1:-1:-1;;;;;15736:12:0;;;15744:4;;15736:12;;;;:31;;-1:-1:-1;15752:15:0;;;;15736:31;15733:261;;;-1:-1:-1;;;;;15826:16:0;;15787:18;15826:16;;;:10;:16;;;;;;15808:34;;:15;:34;:::i;:::-;15787:55;;15882:12;;15869:10;:25;15861:64;;;;-1:-1:-1;;;15861:64:0;;18142:2:1;15861:64:0;;;18124:21:1;18181:2;18161:18;;;18154:30;18220:28;18200:18;;;18193:56;18266:18;;15861:64:0;17940:350:1;15861:64:0;-1:-1:-1;;;;;;15944:16:0;;;;;;:10;:16;;;;;15963:15;15944:34;;15733:261;16017:4;;-1:-1:-1;;;;;16011:10:0;;;16017:4;;16011:10;;;;:29;;-1:-1:-1;16025:15:0;;;;16011:29;16008:257;;;-1:-1:-1;;;;;16100:14:0;;16060:19;16100:14;;;:10;:14;;;;;;16082:32;;:15;:32;:::i;:::-;16060:54;;16155:12;;16141:11;:26;16133:65;;;;-1:-1:-1;;;16133:65:0;;18142:2:1;16133:65:0;;;18124:21:1;18181:2;18161:18;;;18154:30;18220:28;18200:18;;;18193:56;18266:18;;16133:65:0;17940:350:1;16133:65:0;-1:-1:-1;;;;;;16217:14:0;;;;;;:10;:14;;;;;16234:15;16217:32;;16008:257;16296:12;16339:18;;16311:24;16329:4;16311:9;:24::i;:::-;16372:8;;-1:-1:-1;;16311:46:0;;-1:-1:-1;16372:8:0;;;;;16371:9;:24;;;;-1:-1:-1;16384:11:0;;;;16371:24;:35;;;;;16399:7;16371:35;:51;;;;-1:-1:-1;16418:4:0;;-1:-1:-1;;;;;16410:12:0;;;16418:4;;16410:12;;16371:51;:80;;;;-1:-1:-1;;;;;;16427:24:0;;;;;;:18;:24;;;;;;;;16426:25;16371:80;:107;;;;-1:-1:-1;;;;;;16456:22:0;;;;;;:18;:22;;;;;;;;16455:23;16371:107;16368:172;;;16494:34;16509:18;;16494:14;:34::i;:::-;-1:-1:-1;;;;;16587:24:0;;;;;;:18;:24;;;;;;16552:87;;16567:4;;16573:2;;16577:6;;16587:24;;;:50;;-1:-1:-1;;;;;;16615:22:0;;;;;;:18;:22;;;;;;;;16587:50;16585:53;16552:14;:87::i;14025:158::-;14066:7;14087:15;14104;14123:19;:17;:19::i;:::-;14086:56;;-1:-1:-1;14086:56:0;-1:-1:-1;14160:15:0;14086:56;;14160:15;:::i;:::-;14153:22;;;;14025:158;:::o;12253:407::-;12326:36;;:::i;:::-;12387:29;12399:7;12408;12387:11;:29::i;:::-;12375:41;;12573:52;12585:9;12596:7;12605;12614:10;:8;:10::i;:::-;12573:11;:52::i;:::-;12554:15;;;12427:198;12532:20;;;12427:198;12510:20;;;12427:198;12490:18;;;12427:198;12474:14;;;12427:198;12447:25;;;12427:198;;;12253:407;;;;:::o;2118:173::-;2174:16;2193:6;;-1:-1:-1;;;;;2210:17:0;;;-1:-1:-1;;;;;;2210:17:0;;;;;;2243:40;;2193:6;;;;;;;2243:40;;2174:16;2243:40;2163:128;2118:173;:::o;17762:1181::-;5531:8;:15;;-1:-1:-1;;5531:15:0;;;;;17939;;17923:13;;17905:15;;5531;;17939;17905:31:::1;::::0;::::1;:::i;:::-;:49;;;;:::i;:::-;17904:56;::::0;17959:1:::1;17904:56;:::i;:::-;17882:78;;17971:32;18033:11;18015:5;:15;;;18006:6;:24;;;;:::i;:::-;:38;;;;:::i;:::-;17971:73:::0;-1:-1:-1;18055:14:0::1;18072:33;17971:73:::0;18072:6;:33:::1;:::i;:::-;18055:50:::0;-1:-1:-1;18143:21:0::1;18177:24;18055:50:::0;18177:16:::1;:24::i;:::-;18214:20;18237:38;18261:14:::0;18237:21:::1;:38;:::i;:::-;18337:15:::0;;18214:61;;-1:-1:-1;18286:19:0::1;::::0;18323:29:::1;::::0;:11;:29:::1;:::i;:::-;18307:46;::::0;:12;:46:::1;:::i;:::-;18410:15:::0;;18286:67;;-1:-1:-1;18364:29:0::1;::::0;18396::::1;::::0;18286:67;18396:29:::1;:::i;:::-;18364:61:::0;-1:-1:-1;18441:25:0;;18438:158:::1;;18523:61;18536:24;18562:21;18523:12;:61::i;:::-;18647:13:::0;;18608:18:::1;::::0;18629:15:::1;:11:::0;18643:1:::1;18629:15;:::i;:::-;:31;;;;:::i;:::-;18608:52:::0;-1:-1:-1;18674:14:0;;18671:89:::1;;18712:14;::::0;18704:44:::1;::::0;-1:-1:-1;;;;;18712:14:0;;::::1;::::0;18704:44;::::1;;;::::0;18737:10;;18712:14:::1;18704:44:::0;18712:14;18704:44;18737:10;18712:14;18704:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18671:89;18813:15:::0;;18772:20:::1;::::0;18795:15:::1;:11:::0;18809:1:::1;18795:15;:::i;:::-;:33;;;;:::i;:::-;18772:56:::0;-1:-1:-1;18842:16:0;;18839:95:::1;;18882:16;::::0;18874:48:::1;::::0;-1:-1:-1;;;;;18882:16:0;;::::1;::::0;18874:48;::::1;;;::::0;18909:12;;18882:16:::1;18874:48:::0;18882:16;18874:48;18909:12;18882:16;18874:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18839:95;-1:-1:-1::0;;5569:8:0;:16;;-1:-1:-1;;5569:16:0;;;-1:-1:-1;;;;;;;;17762:1181:0:o;16730:1024::-;16841:28;16872;16883:7;16892;16872:10;:28::i;:::-;-1:-1:-1;;;;;16917:19:0;;;;;;:11;:19;;;;;;16841:59;;-1:-1:-1;16917:19:0;;16913:115;;;-1:-1:-1;;;;;16993:15:0;;;;;;:7;:15;;;;;;:23;;17009:7;;16993:23;:::i;:::-;-1:-1:-1;;;;;16975:15:0;;;;;;:7;:15;;;;;:41;16913:115;-1:-1:-1;;;;;17042:22:0;;;;;;:11;:22;;;;;;;;17038:130;;;17139:17;;;;-1:-1:-1;;;;;17120:18:0;;;;;;:7;:18;;;;;;:36;;17139:17;17120:36;:::i;:::-;-1:-1:-1;;;;;17099:18:0;;;;;;:7;:18;;;;;:57;17038:130;17214:9;;-1:-1:-1;;;;;17198:15:0;;17214:9;17198:15;;;:7;:15;;;;;;:25;;17214:9;17198:25;:::i;:::-;-1:-1:-1;;;;;17180:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;17274:17;;;17255:18;;;;;;;;;;:36;;17274:17;17255:36;:::i;:::-;-1:-1:-1;;;;;17234:18:0;;;;;;:7;:18;;;;;;;:57;;;;17324:6;;;17332;;;;17312:27;;17324:6;17312:11;:27::i;:::-;17350:41;17365:1;:12;;;17378:1;:12;;;17350:14;:41::i;:::-;17402:42;17417:1;:12;;;17431:1;:12;;;17402:14;:42::i;:::-;17455:36;17468:1;:10;;;17480:1;:10;;;17455:12;:36::i;:::-;17502:27;17512:1;:7;;;17521:1;:7;;;17502:9;:27::i;:::-;4184:42;-1:-1:-1;;;;;17547:38:0;17556:6;-1:-1:-1;;;;;17547:38:0;;17577:1;:7;;;17547:38;;;;1961:25:1;;1949:2;1934:18;;1815:177;17547:38:0;;;;;;;;17618:9;-1:-1:-1;;;;;17601:46:0;17610:6;-1:-1:-1;;;;;17601:46:0;;17629:1;:17;;;17601:46;;;;1961:25:1;;1949:2;1934:18;;1815:177;17601:46:0;;;;;;;;17688:4;-1:-1:-1;;;;;17663:73:0;17672:6;-1:-1:-1;;;;;17663:73:0;;17723:1;:12;;;17710:1;:10;;;17695:1;:12;;;:25;;;;:::i;:::-;:40;;;;:::i;:::-;17663:73;;1961:25:1;;;1949:2;1934:18;17663:73:0;;;;;;;16828:926;16730:1024;;;;:::o;14191:540::-;14288:7;;14324;;14241;;;;;14342:279;14366:9;:16;14362:20;;14342:279;;;14432:7;14408;:21;14416:9;14426:1;14416:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14416:12:0;14408:21;;;;;;;;;;;;;:31;;:66;;;14467:7;14443;:21;14451:9;14461:1;14451:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14451:12:0;14443:21;;;;;;;;;;;;;:31;14408:66;14404:97;;;14484:7;;14493;;14476:25;;;;;;;14191:540;;:::o;14404:97::-;14534:7;:21;14542:9;14552:1;14542:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14542:12:0;14534:21;;;;;;;;;;;;;14526:29;;:7;:29;:::i;:::-;14516:39;;14588:7;:21;14596:9;14606:1;14596:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14596:12:0;14588:21;;;;;;;;;;;;;14580:29;;:7;:29;:::i;:::-;14570:39;-1:-1:-1;14384:3:0;;;;:::i;:::-;;;;14342:279;;;;14653:7;;14645;;:15;;;;:::i;:::-;14635:7;:25;14631:56;;;14670:7;;14679;;14662:25;;;;;;14191:540;;:::o;14631:56::-;14706:7;;14715;;-1:-1:-1;14191:540:0;-1:-1:-1;14191:540:0:o;12668:568::-;12742:28;;:::i;:::-;12789:7;12785:86;;12811:17;;;:27;;;12851:8;;12785:86;12908:5;:9;12918:3;;12900:17;;:7;:17;:::i;:::-;:21;;;;:::i;:::-;12891:6;;;:30;12953:13;;12967:3;;12945:21;;:7;:21;:::i;:::-;:25;;;;:::i;:::-;12932:10;;;:38;13004:15;;13020:3;;12996:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;12981:12;;;:42;13057:15;;13073:3;;13049:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;13034:12;;;:42;13105:10;;13116:3;;13097:18;;:7;:18;:::i;:::-;:22;;;;:::i;:::-;13087:7;;;:32;;;13189:12;;;;13176;;;;13165:10;;;;13158:6;;;;13150:14;;:7;:14;:::i;:::-;:25;;;;:::i;:::-;:38;;;;:::i;:::-;:51;;;;:::i;:::-;:59;;;;:::i;:::-;13130:17;;;:79;12668:568;;;;:::o;13244:773::-;13369:15;;;;;;;13519:19;13527:11;13519:7;:19;:::i;:::-;13509:29;;13555:7;13551:73;;-1:-1:-1;13584:7:0;;-1:-1:-1;13602:1:0;;-1:-1:-1;13602:1:0;;-1:-1:-1;13602:1:0;;-1:-1:-1;13602:1:0;;-1:-1:-1;13602:1:0;13577:35;;13551:73;13650:11;13643:1;:6;;;:18;;;;:::i;:::-;13636:25;;13694:11;13683:1;:10;;;:22;;;;:::i;:::-;13672:33;;13742:11;13729:1;:12;;;:24;;;;:::i;:::-;13716:37;;13790:11;13777:1;:12;;;:24;;;;:::i;:::-;13764:37;;13828:11;13820:1;:7;;;:19;;;;:::i;:::-;13812:27;-1:-1:-1;13812:27:0;13902:10;13891;13882:8;13869:12;13877:4;13869:7;:12;:::i;:::-;:21;;;;:::i;:::-;:32;;;;:::i;:::-;:43;;;;:::i;:::-;:49;;;;:::i;:::-;13850:68;;13244:773;;;;;;;;;;;;;:::o;19454:562::-;19604:16;;;19618:1;19604:16;;;;;;;;19580:21;;19604:16;;;;;;;;;;-1:-1:-1;19604:16:0;19580:40;;19649:4;19631;19636:1;19631:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19631:23:0;;;-1:-1:-1;;;;;19631:23:0;;;;;19675:6;;;;;;;;;-1:-1:-1;;;;;19675:6:0;-1:-1:-1;;;;;19675:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19665:4;19670:1;19665:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19665:23:0;;;:7;;;;;;;;;:23;19733:6;;19701:53;;19718:4;;19733:6;;;;19742:11;19701:8;:53::i;:::-;19793:6;;:215;;-1:-1:-1;;;19793:215:0;;:6;;;;-1:-1:-1;;;;;19793:6:0;;:57;;:215;;19865:11;;19891:1;;19935:4;;19962;;19982:15;;19793:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19509:507;19454:562;:::o;18951:495::-;19131:6;;19099:53;;19116:4;;19131:6;;;-1:-1:-1;;;;;19131:6:0;19140:11;19099:8;:53::i;:::-;19195:6;;-1:-1:-1;;;;;19195:6:0;;;;;:22;19225:9;19258:4;19278:11;19304:1;;19390:7;1639;1666:6;-1:-1:-1;;;;;1666:6:0;;1593:87;19390:7;19195:243;;;;;;-1:-1:-1;;;;;;19195:243:0;;;-1:-1:-1;;;;;19895:15:1;;;19195:243:0;;;19877:34:1;19927:18;;;19920:34;;;;19970:18;;;19963:34;;;;20013:18;;;20006:34;20077:15;;;20056:19;;;20049:44;19412:15:0;20109:19:1;;;20102:35;19811:19;;19195:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18951:495;;:::o;11010:123::-;11088:4;11078:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;11103:11:0;:22;;11121:4;;11103:11;:15;;:22;;11121:4;;11103:22;:::i;:::-;;;;-1:-1:-1;;;;11010:123:0:o;11141:284::-;11248:10;11224:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;11294:4:0;11274:26;;;;:11;:26;;;;;;;;11271:101;;;11342:4;11326:22;;;;:7;:22;;;;;:34;;11350:10;;11326:22;:34;;11350:10;;11326:34;:::i;:::-;;;;-1:-1:-1;;11271:101:0;11398:4;11382:22;;;;:7;:22;;;;;:35;;11407:10;;11382:22;:35;;11407:10;;11382:35;:::i;11433:284::-;11540:10;11516:11;:21;;;:34;;;;;;;:::i;11725:270::-;11824:8;11802:11;:19;;;:30;;;;;;;:::i;12003:242::-;12089:5;12070:11;:16;;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;4184:42:0;12110:24;;:11;:24;;;;;;12107:92;;;4184:42;12160:20;;;;:7;:20;;;:27;;12182:5;;12160:20;:27;;12182:5;;12160:27;:::i;:::-;;;;-1:-1:-1;;12107:92:0;4184:42;12209:20;;;;:7;:20;;;:28;;12232:5;;12209:20;:28;;12232:5;;12209:28;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:456::-;1431:6;1439;1447;1500:2;1488:9;1479:7;1475:23;1471:32;1468:52;;;1516:1;1513;1506:12;1468:52;1555:9;1542:23;1574:31;1599:5;1574:31;:::i;:::-;1624:5;-1:-1:-1;1681:2:1;1666:18;;1653:32;1694:33;1653:32;1694:33;:::i;:::-;1354:456;;1746:7;;-1:-1:-1;;;1800:2:1;1785:18;;;;1772:32;;1354:456::o;2205:180::-;2264:6;2317:2;2305:9;2296:7;2292:23;2288:32;2285:52;;;2333:1;2330;2323:12;2285:52;-1:-1:-1;2356:23:1;;2205:180;-1:-1:-1;2205:180:1:o;2579:247::-;2638:6;2691:2;2679:9;2670:7;2666:23;2662:32;2659:52;;;2707:1;2704;2697:12;2659:52;2746:9;2733:23;2765:31;2790:5;2765:31;:::i;2831:388::-;2899:6;2907;2960:2;2948:9;2939:7;2935:23;2931:32;2928:52;;;2976:1;2973;2966:12;2928:52;3015:9;3002:23;3034:31;3059:5;3034:31;:::i;:::-;3084:5;-1:-1:-1;3141:2:1;3126:18;;3113:32;3154:33;3113:32;3154:33;:::i;:::-;3206:7;3196:17;;;2831:388;;;;;:::o;3224:118::-;3310:5;3303:13;3296:21;3289:5;3286:32;3276:60;;3332:1;3329;3322:12;3347:128;3412:20;;3441:28;3412:20;3441:28;:::i;3480:309::-;3545:6;3553;3606:2;3594:9;3585:7;3581:23;3577:32;3574:52;;;3622:1;3619;3612:12;3574:52;3658:9;3645:23;3635:33;;3718:2;3707:9;3703:18;3690:32;3731:28;3753:5;3731:28;:::i;3794:454::-;3889:6;3897;3905;3913;3921;3974:3;3962:9;3953:7;3949:23;3945:33;3942:53;;;3991:1;3988;3981:12;3942:53;-1:-1:-1;;4014:23:1;;;4084:2;4069:18;;4056:32;;-1:-1:-1;4135:2:1;4120:18;;4107:32;;4186:2;4171:18;;4158:32;;-1:-1:-1;4237:3:1;4222:19;4209:33;;-1:-1:-1;3794:454:1;-1:-1:-1;3794:454:1:o;4721:309::-;4786:6;4794;4847:2;4835:9;4826:7;4822:23;4818:32;4815:52;;;4863:1;4860;4853:12;4815:52;4902:9;4889:23;4921:28;4943:5;4921:28;:::i;5035:241::-;5091:6;5144:2;5132:9;5123:7;5119:23;5115:32;5112:52;;;5160:1;5157;5150:12;5112:52;5199:9;5186:23;5218:28;5240:5;5218:28;:::i;5281:127::-;5342:10;5337:3;5333:20;5330:1;5323:31;5373:4;5370:1;5363:15;5397:4;5394:1;5387:15;5413:1191;5503:6;5511;5564:2;5552:9;5543:7;5539:23;5535:32;5532:52;;;5580:1;5577;5570:12;5532:52;5620:9;5607:23;5649:18;5690:2;5682:6;5679:14;5676:34;;;5706:1;5703;5696:12;5676:34;5744:6;5733:9;5729:22;5719:32;;5789:7;5782:4;5778:2;5774:13;5770:27;5760:55;;5811:1;5808;5801:12;5760:55;5847:2;5834:16;5869:4;5892:2;5888;5885:10;5882:36;;;5898:18;;:::i;:::-;5944:2;5941:1;5937:10;5976:2;5970:9;6039:2;6035:7;6030:2;6026;6022:11;6018:25;6010:6;6006:38;6094:6;6082:10;6079:22;6074:2;6062:10;6059:18;6056:46;6053:72;;;6105:18;;:::i;:::-;6141:2;6134:22;6191:18;;;6225:15;;;;-1:-1:-1;6267:11:1;;;6263:20;;;6295:19;;;6292:39;;;6327:1;6324;6317:12;6292:39;6351:11;;;;6371:148;6387:6;6382:3;6379:15;6371:148;;;6453:23;6472:3;6453:23;:::i;:::-;6441:36;;6404:12;;;;6497;;;;6371:148;;;6538:6;-1:-1:-1;6563:35:1;;-1:-1:-1;6579:18:1;;;6563:35;:::i;:::-;6553:45;;;;;;5413:1191;;;;;:::o;6609:382::-;6674:6;6682;6735:2;6723:9;6714:7;6710:23;6706:32;6703:52;;;6751:1;6748;6741:12;6703:52;6790:9;6777:23;6809:31;6834:5;6809:31;:::i;:::-;6859:5;-1:-1:-1;6916:2:1;6901:18;;6888:32;6929:30;6888:32;6929:30;:::i;7219:356::-;7421:2;7403:21;;;7440:18;;;7433:30;7499:34;7494:2;7479:18;;7472:62;7566:2;7551:18;;7219:356::o;7859:245::-;7926:6;7979:2;7967:9;7958:7;7954:23;7950:32;7947:52;;;7995:1;7992;7985:12;7947:52;8027:9;8021:16;8046:28;8068:5;8046:28;:::i;8518:127::-;8579:10;8574:3;8570:20;8567:1;8560:31;8610:4;8607:1;8600:15;8634:4;8631:1;8624:15;8650:128;8717:9;;;8738:11;;;8735:37;;;8752:18;;:::i;9194:217::-;9234:1;9260;9250:132;;9304:10;9299:3;9295:20;9292:1;9285:31;9339:4;9336:1;9329:15;9367:4;9364:1;9357:15;9250:132;-1:-1:-1;9396:9:1;;9194:217::o;9768:127::-;9829:10;9824:3;9820:20;9817:1;9810:31;9860:4;9857:1;9850:15;9884:4;9881:1;9874:15;9900:127;9961:10;9956:3;9952:20;9949:1;9942:31;9992:4;9989:1;9982:15;10016:4;10013:1;10006:15;10032:135;10071:3;10092:17;;;10089:43;;10112:18;;:::i;:::-;-1:-1:-1;10159:1:1;10148:13;;10032:135::o;10172:125::-;10237:9;;;10258:10;;;10255:36;;;10271:18;;:::i;11365:168::-;11438:9;;;11469;;11486:15;;;11480:22;;11466:37;11456:71;;11507:18;;:::i;12656:422::-;12745:1;12788:5;12745:1;12802:270;12823:7;12813:8;12810:21;12802:270;;;12882:4;12878:1;12874:6;12870:17;12864:4;12861:27;12858:53;;;12891:18;;:::i;:::-;12941:7;12931:8;12927:22;12924:55;;;12961:16;;;;12924:55;13040:22;;;;13000:15;;;;12802:270;;;12806:3;12656:422;;;;;:::o;13083:806::-;13132:5;13162:8;13152:80;;-1:-1:-1;13203:1:1;13217:5;;13152:80;13251:4;13241:76;;-1:-1:-1;13288:1:1;13302:5;;13241:76;13333:4;13351:1;13346:59;;;;13419:1;13414:130;;;;13326:218;;13346:59;13376:1;13367:10;;13390:5;;;13414:130;13451:3;13441:8;13438:17;13435:43;;;13458:18;;:::i;:::-;-1:-1:-1;;13514:1:1;13500:16;;13529:5;;13326:218;;13628:2;13618:8;13615:16;13609:3;13603:4;13600:13;13596:36;13590:2;13580:8;13577:16;13572:2;13566:4;13563:12;13559:35;13556:77;13553:159;;;-1:-1:-1;13665:19:1;;;13697:5;;13553:159;13744:34;13769:8;13763:4;13744:34;:::i;:::-;13814:6;13810:1;13806:6;13802:19;13793:7;13790:32;13787:58;;;13825:18;;:::i;:::-;13863:20;;13083:806;-1:-1:-1;;;13083:806:1:o;13894:140::-;13952:5;13981:47;14022:4;14012:8;14008:19;14002:4;13981:47;:::i;18295:251::-;18365:6;18418:2;18406:9;18397:7;18393:23;18389:32;18386:52;;;18434:1;18431;18424:12;18386:52;18466:9;18460:16;18485:31;18510:5;18485:31;:::i;18551:980::-;18813:4;18861:3;18850:9;18846:19;18892:6;18881:9;18874:25;18918:2;18956:6;18951:2;18940:9;18936:18;18929:34;18999:3;18994:2;18983:9;18979:18;18972:31;19023:6;19058;19052:13;19089:6;19081;19074:22;19127:3;19116:9;19112:19;19105:26;;19166:2;19158:6;19154:15;19140:29;;19187:1;19197:195;19211:6;19208:1;19205:13;19197:195;;;19276:13;;-1:-1:-1;;;;;19272:39:1;19260:52;;19367:15;;;;19332:12;;;;19308:1;19226:9;19197:195;;;-1:-1:-1;;;;;;;19448:32:1;;;;19443:2;19428:18;;19421:60;-1:-1:-1;;;19512:3:1;19497:19;19490:35;19409:3;18551:980;-1:-1:-1;;;18551:980:1:o;20148:306::-;20236:6;20244;20252;20305:2;20293:9;20284:7;20280:23;20276:32;20273:52;;;20321:1;20318;20311:12;20273:52;20350:9;20344:16;20334:26;;20400:2;20389:9;20385:18;20379:25;20369:35;;20444:2;20433:9;20429:18;20423:25;20413:35;;20148:306;;;;;:::o

Swarm Source

ipfs://00b68fa56cda29b34c1d7909bada36143962124a88d7e6d33174bba5decd04a0
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.