ETH Price: $3,253.22 (+4.43%)
Gas: 2 Gwei

Token

Ryoshi Inu ($RYINU)
 

Overview

Max Total Supply

1,000,000,000,000,000 $RYINU

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000294897 $RYINU

Value
$0.00
0xecf2d84ed4a9a0a1d2f0ce5b79c2bad6b9f63c1d
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:
RyoshiInu

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-05
*/

/**
 *Submitted for verification at Etherscan.io on 2022-12-11
*/

// SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.8.11;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

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

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

interface InterfaceLP {
    function sync() external;
}

contract RyoshiInu is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "Ryoshi Inu";
    string constant _symbol = "$RYINU";
    uint8 constant _decimals = 9; 

    uint256 _totalSupply = 1 * 10**15 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    bool public blacklistMode = true;
    mapping (address => bool) public isblacklisted;


    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 0;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 3000;
    uint256 transferMultiplier = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 20 / 10000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x969C93c74513eAFFf6a2CBE662920EB1Ac6E564a;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function setMaxTx(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    function setTxLimitAbsolute(uint256 amount) external onlyOwner {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
           }
        
                      
        if(blacklistMode){
            require(!isblacklisted[sender],"blacklisted");    
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner { // to marketing
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

    function clearStuckBalance() external { 
        require(isTxLimitExempt[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function enableTrading() public onlyOwner {
        TradingOpen = true;
    }

        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

   
    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isblacklisted[addresses[i]] = status;
        }
    }
    
    function feeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setBuyTax(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

    function setTaxWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapandLiquify(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTarget(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }




event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"feeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isblacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimitAbsolute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006e8565b620000459066038d7ea4c68000620006f9565b6005556200007f60646200006b6001600554620004b860201b6200124f1790919060201c565b6200054f60201b620012d11790919060201c565b600655620000a560646200006b6001600554620004b860201b6200124f1790919060201c565b600755600a805460ff19166001908117909155600e8190556002600f8190556000601081905560118190556012819055918291620000e4908362000713565b620000f0919062000713565b620000fc919062000713565b62000108919062000713565b601355606460148181556015829055610bb86016556017829055601d819055601e919091556021805461ffff60a01b1916600160a81b17905560055461271091620001549190620006f9565b62000160919062000729565b6022553480156200017057600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025691906200074c565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db91906200074c565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035391906200074c565b602180546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000818152600983526040808220601f54881683528452808220600019905533808352600c8552818320805460ff199081166001908117909255601a80548b1686528486208054831684179055838652600d8852848620805483168417905598548a168552838520805482168317905588548a1685528385208054821683179055601980548b168652848620805483168417905595855283852080549091169091179055601880548716821790558354861673969c93c74513eafff6a2cbe662920eb1ac6e564a17909355855485168317909555601b8054851683179055600354601c80549095169616959095179092556005548285526008825283852081905592519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007c7565b600082600003620004cc5750600062000549565b6000620004da8385620006f9565b905082620004e9858362000729565b14620005465760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059960201b60201c565b60008183620005bd5760405162461bcd60e51b81526004016200053d919062000777565b506000620005cc848662000729565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200062c578160001904821115620006105762000610620005d5565b808516156200061e57918102915b93841c9390800290620005f0565b509250929050565b600082620006455750600162000549565b81620006545750600062000549565b81600181146200066d5760028114620006785762000698565b600191505062000549565b60ff8411156200068c576200068c620005d5565b50506001821b62000549565b5060208310610133831016604e8410600b8410161715620006bd575081810a62000549565b620006c98383620005eb565b8060001904821115620006e057620006e0620005d5565b029392505050565b60006200054660ff84168362000634565b8082028115828204841417620005495762000549620005d5565b80820180821115620005495762000549620005d5565b6000826200074757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200075f57600080fd5b81516001600160a01b03811681146200054657600080fd5b600060208083528351808285015260005b81811015620007a65785810183015185820160400152820162000788565b506000604082860101526040601f19601f8301168501019250505092915050565b61241680620007d76000396000f3fe60806040526004361061026b5760003560e01c806377b54bad11610144578063a9059cbb116100b6578063d51ed1c81161007a578063d51ed1c814610746578063dd62ed3e14610766578063ed6a5965146107ac578063f2fde38b146107dc578063f84ba65d146107fc578063f887ea401461081c57600080fd5b8063a9059cbb146106a6578063b2bdfa7b146106c6578063bc337182146106e6578063be7c81ad14610706578063d405ae8f1461072657600080fd5b8063896648c111610108578063896648c1146105ea5780638a8c523c146106045780638da5cb5b146106195780638e2eee841461063757806395d89b4114610657578063a8aa1b311461068657600080fd5b806377b54bad1461054c57806378109e541461056c5780637d1db4a51461058257806383f9d9fa14610598578063893d20e8146105b857600080fd5b80632b112e49116101dd5780635d0044ca116101a15780635d0044ca146104805780635e562f3b146104a05780636ce46bc3146104c05780636ddd1713146104e057806370a0823114610501578063715018a61461053757600080fd5b80632b112e49146103fa578063313ce5671461040f578063364333f41461042b5780634363c48614610440578063571ac8b01461046057600080fd5b80631161ae391161022f5780631161ae391461034f57806318160ddd1461036f5780631d0f2c99146103845780631da1db5e146103a45780631df4ccfc146103c457806323b872dd146103da57600080fd5b80630445b6671461027757806306fdde03146102a057806308fd3d05146102dc578063095ea7b31461030d578063100882dc1461032d57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60225481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201909152600a81526952796f73686920496e7560b01b60208201525b6040516102979190611edf565b3480156102e857600080fd5b506021546102fd90600160a01b900460ff1681565b6040519015158152602001610297565b34801561031957600080fd5b506102fd610328366004611f49565b61083c565b34801561033957600080fd5b5061034d610348366004611f73565b6108a9565b005b34801561035b57600080fd5b506102fd61036a366004611fb6565b610978565b34801561037b57600080fd5b5060055461028d565b34801561039057600080fd5b5061034d61039f366004611fb6565b61098c565b3480156103b057600080fd5b5061034d6103bf366004611fd8565b6109c1565b3480156103d057600080fd5b5061028d60135481565b3480156103e657600080fd5b506102fd6103f5366004611ff1565b610a3f565b34801561040657600080fd5b5061028d610b01565b34801561041b57600080fd5b5060405160098152602001610297565b34801561043757600080fd5b5061034d610b53565b34801561044c57600080fd5b5061034d61045b36600461203b565b610b9e565b34801561046c57600080fd5b506102fd61047b366004612072565b610bf3565b34801561048c57600080fd5b5061034d61049b366004611fd8565b610c01565b3480156104ac57600080fd5b5061034d6104bb36600461208d565b610c69565b3480156104cc57600080fd5b5061034d6104db3660046120aa565b610ca6565b3480156104ec57600080fd5b506021546102fd90600160a81b900460ff1681565b34801561050d57600080fd5b5061028d61051c366004612072565b6001600160a01b031660009081526008602052604090205490565b34801561054357600080fd5b5061034d610ce1565b34801561055857600080fd5b506102fd610567366004611f49565b610d55565b34801561057857600080fd5b5061028d60075481565b34801561058e57600080fd5b5061028d60065481565b3480156105a457600080fd5b5061034d6105b3366004611fd8565b610e55565b3480156105c457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b3480156105f657600080fd5b50600a546102fd9060ff1681565b34801561061057600080fd5b5061034d610ea0565b34801561062557600080fd5b506000546001600160a01b03166105d2565b34801561064357600080fd5b5061034d6106523660046120d6565b610edf565b34801561066357600080fd5b50604080518082019091526006815265245259494e5560d01b60208201526102cf565b34801561069257600080fd5b506021546105d2906001600160a01b031681565b3480156106b257600080fd5b506102fd6106c1366004611f49565b610f7e565b3480156106d257600080fd5b506000546105d2906001600160a01b031681565b3480156106f257600080fd5b5061034d610701366004611fd8565b610f8b565b34801561071257600080fd5b5061034d61072136600461215c565b610ff4565b34801561073257600080fd5b5061034d6107413660046121c1565b61107d565b34801561075257600080fd5b5061028d610761366004611fd8565b6110c9565b34801561077257600080fd5b5061028d6107813660046121df565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107b857600080fd5b506102fd6107c7366004612072565b600b6020526000908152604090205460ff1681565b3480156107e857600080fd5b5061034d6107f7366004612072565b611110565b34801561080857600080fd5b5061034d61081736600461203b565b6111fa565b34801561082857600080fd5b50601f546105d2906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108979086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108dc5760405162461bcd60e51b81526004016108d390612212565b60405180910390fd5b600e8690556011859055600f8490556010839055601282905561090d82610907858188818c8c611313565b90611313565b601355601481905561092060028261225d565b601354106109705760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016108d3565b505050505050565b600082610984836110c9565b119392505050565b6000546001600160a01b031633146109b65760405162461bcd60e51b81526004016108d390612212565b601d91909155601e55565b6000546001600160a01b031633146109eb5760405162461bcd60e51b81526004016108d390612212565b60195447906001600160a01b03166108fc6064610a08858561227f565b610a12919061225d565b6040518115909202916000818181858888f19350505050158015610a3a573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610aec576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ac7918490611372565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610af78484846113ac565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610b4e906003546001600160a01b0316600090815260086020526040902054610b489060055490611774565b90611774565b905090565b336000908152600d602052604090205460ff16610b6f57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610b9b573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610bc85760405162461bcd60e51b81526004016108d390612212565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006108a38260001961083c565b6000546001600160a01b03163314610c2b5760405162461bcd60e51b81526004016108d390612212565b6103e8600554610c3b919061225d565b6007541015610c4957600080fd5b606481600554610c59919061227f565b610c63919061225d565b60075550565b6000546001600160a01b03163314610c935760405162461bcd60e51b81526004016108d390612212565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610cd05760405162461bcd60e51b81526004016108d390612212565b601591909155601691909155601755565b6000546001600160a01b03163314610d0b5760405162461bcd60e51b81526004016108d390612212565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600d602052604081205460ff16610d7157600080fd5b81600003610de4576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de19190612296565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afa91906122af565b6000546001600160a01b03163314610e7f5760405162461bcd60e51b81526004016108d390612212565b6103e8600554610e8f919061225d565b811015610e9b57600080fd5b600655565b6000546001600160a01b03163314610eca5760405162461bcd60e51b81526004016108d390612212565b6021805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610f095760405162461bcd60e51b81526004016108d390612212565b60005b82811015610f785781600b6000868685818110610f2b57610f2b6122cc565b9050602002016020810190610f409190612072565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f71816122e2565b9050610f0c565b50505050565b6000610afa3384846113ac565b6000546001600160a01b03163314610fb55760405162461bcd60e51b81526004016108d390612212565b6103e8600554610fc5919061225d565b6006541015610fd357600080fd5b6103e881600554610fe4919061227f565b610fee919061225d565b60065550565b6000546001600160a01b0316331461101e5760405162461bcd60e51b81526004016108d390612212565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b031633146110a75760405162461bcd60e51b81526004016108d390612212565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b60006108a36110d6610b01565b6021546001600160a01b031660009081526008602052604090205461110a90611103906002905b9061124f565b859061124f565b906112d1565b6000546001600160a01b0316331461113a5760405162461bcd60e51b81526004016108d390612212565b6001600160a01b03811661119f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112245760405162461bcd60e51b81526004016108d390612212565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b600082600003611261575060006108a3565b600061126d838561227f565b90508261127a858361225d565b14610afa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108d3565b6000610afa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117b6565b60008061132083856122fb565b905083811015610afa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108d3565b600081848411156113965760405162461bcd60e51b81526004016108d39190611edf565b5060006113a3848661230e565b95945050505050565b60235460009060ff16156113cc576113c58484846117e4565b9050610afa565b6001600160a01b03841660009081526001602052604090205460ff1615801561140e57506001600160a01b03831660009081526001602052604090205460ff16155b1561146357602154600160a01b900460ff166114635760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108d3565b600a5460ff16156114c5576001600160a01b0384166000908152600b602052604090205460ff16156114c55760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016108d3565b6001600160a01b03841660009081526001602052604090205460ff161580156114f757506001600160a01b0383163014155b801561151157506003546001600160a01b03848116911614155b801561152b57506021546001600160a01b03848116911614155b80156115455750601c546001600160a01b03848116911614155b801561155f57506019546001600160a01b03848116911614155b801561158457506001600160a01b0383166000908152600d602052604090205460ff16155b15611625576001600160a01b0383166000908152600860205260409020546007546115af84836122fb565b11156116235760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108d3565b505b61162f84836118b8565b611637611925565b156116445761164461197b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611696918490611372565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116e357506001600160a01b0384166000908152600c602052604090205460ff165b6116f7576116f2858486611d62565b6116f9565b825b6001600160a01b03851660009081526008602052604090205490915061171f9082611313565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206123c1833981519152906117619085815260200190565b60405180910390a3506001949350505050565b6000610afa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611372565b600081836117d75760405162461bcd60e51b81526004016108d39190611edf565b5060006113a3848661225d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611835918490611372565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546118649083611313565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206123c1833981519152906118a69086815260200190565b60405180910390a35060019392505050565b600654811115806118e157506001600160a01b0382166000908152600d602052604090205460ff165b6119215760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108d3565b5050565b6021546000906001600160a01b03163314801590611946575060235460ff16155b801561195b5750602154600160a81b900460ff165b8015610b4e57505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e5460009161199a91610978565b6119a657600e546119a9565b60005b905060006119cd600261110a60135461110a8660225461124f90919063ffffffff16565b905060006119e68260225461177490919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611a2057611a206122cc565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a5157611a516122cc565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790611a9b908690600090879030904290600401612321565b600060405180830381600087803b158015611ab557600080fd5b505af1158015611ac9573d6000803e3d6000fd5b505050506000611ae2824761177490919063ffffffff16565b90506000611afd611af48860026112d1565b60135490611774565b90506000611b12600261110a8481878d61124f565b90506000611b2f8361110a600f548761124f90919063ffffffff16565b90506000611b4c8461110a6011548861124f90919063ffffffff16565b90506000611b698561110a6010548961124f90919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611bbb576040519150601f19603f3d011682016040523d82523d6000602084013e611bc0565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611c10576040519150601f19603f3d011682016040523d82523d6000602084013e611c15565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c65576040519150601f19603f3d011682016040523d82523d6000602084013e611c6a565b606091505b5060009250508b159050611d4a57601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611ce8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0d9190612392565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601754602154600091906001600160a01b0390811690841603611d885750601554611da3565b6021546001600160a01b0390811690861603611da357506016545b6000611dd06014546064611db7919061227f565b61110a846110fd6013548a61124f90919063ffffffff16565b90506000611def60135461110a6012548561124f90919063ffffffff16565b90506000611dfd8383611774565b30600090815260086020526040902054909150611e1a9082611313565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e489083611313565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206123c1833981519152910160405180910390a38115611ec957601c546040518381526001600160a01b03918216918a16906000805160206123c18339815191529060200160405180910390a35b611ed38784611774565b98975050505050505050565b600060208083528351808285015260005b81811015611f0c57858101830151858201604001528201611ef0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611f4457600080fd5b919050565b60008060408385031215611f5c57600080fd5b611f6583611f2d565b946020939093013593505050565b60008060008060008060c08789031215611f8c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611fc957600080fd5b50508035926020909101359150565b600060208284031215611fea57600080fd5b5035919050565b60008060006060848603121561200657600080fd5b61200f84611f2d565b925061201d60208501611f2d565b9150604084013590509250925092565b8015158114610b9b57600080fd5b6000806040838503121561204e57600080fd5b61205783611f2d565b915060208301356120678161202d565b809150509250929050565b60006020828403121561208457600080fd5b610afa82611f2d565b60006020828403121561209f57600080fd5b8135610afa8161202d565b6000806000606084860312156120bf57600080fd5b505081359360208301359350604090920135919050565b6000806000604084860312156120eb57600080fd5b833567ffffffffffffffff8082111561210357600080fd5b818601915086601f83011261211757600080fd5b81358181111561212657600080fd5b8760208260051b850101111561213b57600080fd5b602092830195509350508401356121518161202d565b809150509250925092565b600080600080600060a0868803121561217457600080fd5b61217d86611f2d565b945061218b60208701611f2d565b935061219960408701611f2d565b92506121a760608701611f2d565b91506121b560808701611f2d565b90509295509295909350565b600080604083850312156121d457600080fd5b8235611f658161202d565b600080604083850312156121f257600080fd5b6121fb83611f2d565b915061220960208401611f2d565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261227a57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108a3576108a3612247565b6000602082840312156122a857600080fd5b5051919050565b6000602082840312156122c157600080fd5b8151610afa8161202d565b634e487b7160e01b600052603260045260246000fd5b6000600182016122f4576122f4612247565b5060010190565b808201808211156108a3576108a3612247565b818103818111156108a3576108a3612247565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123715784516001600160a01b03168352938301939183019160010161234c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123a757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b221dcdd30551b5dd1c1a18dd8269a8c48abf05b199b5a45c7af7476f2d197ac64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c806377b54bad11610144578063a9059cbb116100b6578063d51ed1c81161007a578063d51ed1c814610746578063dd62ed3e14610766578063ed6a5965146107ac578063f2fde38b146107dc578063f84ba65d146107fc578063f887ea401461081c57600080fd5b8063a9059cbb146106a6578063b2bdfa7b146106c6578063bc337182146106e6578063be7c81ad14610706578063d405ae8f1461072657600080fd5b8063896648c111610108578063896648c1146105ea5780638a8c523c146106045780638da5cb5b146106195780638e2eee841461063757806395d89b4114610657578063a8aa1b311461068657600080fd5b806377b54bad1461054c57806378109e541461056c5780637d1db4a51461058257806383f9d9fa14610598578063893d20e8146105b857600080fd5b80632b112e49116101dd5780635d0044ca116101a15780635d0044ca146104805780635e562f3b146104a05780636ce46bc3146104c05780636ddd1713146104e057806370a0823114610501578063715018a61461053757600080fd5b80632b112e49146103fa578063313ce5671461040f578063364333f41461042b5780634363c48614610440578063571ac8b01461046057600080fd5b80631161ae391161022f5780631161ae391461034f57806318160ddd1461036f5780631d0f2c99146103845780631da1db5e146103a45780631df4ccfc146103c457806323b872dd146103da57600080fd5b80630445b6671461027757806306fdde03146102a057806308fd3d05146102dc578063095ea7b31461030d578063100882dc1461032d57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60225481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201909152600a81526952796f73686920496e7560b01b60208201525b6040516102979190611edf565b3480156102e857600080fd5b506021546102fd90600160a01b900460ff1681565b6040519015158152602001610297565b34801561031957600080fd5b506102fd610328366004611f49565b61083c565b34801561033957600080fd5b5061034d610348366004611f73565b6108a9565b005b34801561035b57600080fd5b506102fd61036a366004611fb6565b610978565b34801561037b57600080fd5b5060055461028d565b34801561039057600080fd5b5061034d61039f366004611fb6565b61098c565b3480156103b057600080fd5b5061034d6103bf366004611fd8565b6109c1565b3480156103d057600080fd5b5061028d60135481565b3480156103e657600080fd5b506102fd6103f5366004611ff1565b610a3f565b34801561040657600080fd5b5061028d610b01565b34801561041b57600080fd5b5060405160098152602001610297565b34801561043757600080fd5b5061034d610b53565b34801561044c57600080fd5b5061034d61045b36600461203b565b610b9e565b34801561046c57600080fd5b506102fd61047b366004612072565b610bf3565b34801561048c57600080fd5b5061034d61049b366004611fd8565b610c01565b3480156104ac57600080fd5b5061034d6104bb36600461208d565b610c69565b3480156104cc57600080fd5b5061034d6104db3660046120aa565b610ca6565b3480156104ec57600080fd5b506021546102fd90600160a81b900460ff1681565b34801561050d57600080fd5b5061028d61051c366004612072565b6001600160a01b031660009081526008602052604090205490565b34801561054357600080fd5b5061034d610ce1565b34801561055857600080fd5b506102fd610567366004611f49565b610d55565b34801561057857600080fd5b5061028d60075481565b34801561058e57600080fd5b5061028d60065481565b3480156105a457600080fd5b5061034d6105b3366004611fd8565b610e55565b3480156105c457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b3480156105f657600080fd5b50600a546102fd9060ff1681565b34801561061057600080fd5b5061034d610ea0565b34801561062557600080fd5b506000546001600160a01b03166105d2565b34801561064357600080fd5b5061034d6106523660046120d6565b610edf565b34801561066357600080fd5b50604080518082019091526006815265245259494e5560d01b60208201526102cf565b34801561069257600080fd5b506021546105d2906001600160a01b031681565b3480156106b257600080fd5b506102fd6106c1366004611f49565b610f7e565b3480156106d257600080fd5b506000546105d2906001600160a01b031681565b3480156106f257600080fd5b5061034d610701366004611fd8565b610f8b565b34801561071257600080fd5b5061034d61072136600461215c565b610ff4565b34801561073257600080fd5b5061034d6107413660046121c1565b61107d565b34801561075257600080fd5b5061028d610761366004611fd8565b6110c9565b34801561077257600080fd5b5061028d6107813660046121df565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107b857600080fd5b506102fd6107c7366004612072565b600b6020526000908152604090205460ff1681565b3480156107e857600080fd5b5061034d6107f7366004612072565b611110565b34801561080857600080fd5b5061034d61081736600461203b565b6111fa565b34801561082857600080fd5b50601f546105d2906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108979086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108dc5760405162461bcd60e51b81526004016108d390612212565b60405180910390fd5b600e8690556011859055600f8490556010839055601282905561090d82610907858188818c8c611313565b90611313565b601355601481905561092060028261225d565b601354106109705760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016108d3565b505050505050565b600082610984836110c9565b119392505050565b6000546001600160a01b031633146109b65760405162461bcd60e51b81526004016108d390612212565b601d91909155601e55565b6000546001600160a01b031633146109eb5760405162461bcd60e51b81526004016108d390612212565b60195447906001600160a01b03166108fc6064610a08858561227f565b610a12919061225d565b6040518115909202916000818181858888f19350505050158015610a3a573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610aec576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ac7918490611372565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610af78484846113ac565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610b4e906003546001600160a01b0316600090815260086020526040902054610b489060055490611774565b90611774565b905090565b336000908152600d602052604090205460ff16610b6f57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610b9b573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610bc85760405162461bcd60e51b81526004016108d390612212565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006108a38260001961083c565b6000546001600160a01b03163314610c2b5760405162461bcd60e51b81526004016108d390612212565b6103e8600554610c3b919061225d565b6007541015610c4957600080fd5b606481600554610c59919061227f565b610c63919061225d565b60075550565b6000546001600160a01b03163314610c935760405162461bcd60e51b81526004016108d390612212565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610cd05760405162461bcd60e51b81526004016108d390612212565b601591909155601691909155601755565b6000546001600160a01b03163314610d0b5760405162461bcd60e51b81526004016108d390612212565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600d602052604081205460ff16610d7157600080fd5b81600003610de4576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de19190612296565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afa91906122af565b6000546001600160a01b03163314610e7f5760405162461bcd60e51b81526004016108d390612212565b6103e8600554610e8f919061225d565b811015610e9b57600080fd5b600655565b6000546001600160a01b03163314610eca5760405162461bcd60e51b81526004016108d390612212565b6021805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610f095760405162461bcd60e51b81526004016108d390612212565b60005b82811015610f785781600b6000868685818110610f2b57610f2b6122cc565b9050602002016020810190610f409190612072565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f71816122e2565b9050610f0c565b50505050565b6000610afa3384846113ac565b6000546001600160a01b03163314610fb55760405162461bcd60e51b81526004016108d390612212565b6103e8600554610fc5919061225d565b6006541015610fd357600080fd5b6103e881600554610fe4919061227f565b610fee919061225d565b60065550565b6000546001600160a01b0316331461101e5760405162461bcd60e51b81526004016108d390612212565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b031633146110a75760405162461bcd60e51b81526004016108d390612212565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b60006108a36110d6610b01565b6021546001600160a01b031660009081526008602052604090205461110a90611103906002905b9061124f565b859061124f565b906112d1565b6000546001600160a01b0316331461113a5760405162461bcd60e51b81526004016108d390612212565b6001600160a01b03811661119f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112245760405162461bcd60e51b81526004016108d390612212565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b600082600003611261575060006108a3565b600061126d838561227f565b90508261127a858361225d565b14610afa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108d3565b6000610afa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117b6565b60008061132083856122fb565b905083811015610afa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108d3565b600081848411156113965760405162461bcd60e51b81526004016108d39190611edf565b5060006113a3848661230e565b95945050505050565b60235460009060ff16156113cc576113c58484846117e4565b9050610afa565b6001600160a01b03841660009081526001602052604090205460ff1615801561140e57506001600160a01b03831660009081526001602052604090205460ff16155b1561146357602154600160a01b900460ff166114635760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108d3565b600a5460ff16156114c5576001600160a01b0384166000908152600b602052604090205460ff16156114c55760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016108d3565b6001600160a01b03841660009081526001602052604090205460ff161580156114f757506001600160a01b0383163014155b801561151157506003546001600160a01b03848116911614155b801561152b57506021546001600160a01b03848116911614155b80156115455750601c546001600160a01b03848116911614155b801561155f57506019546001600160a01b03848116911614155b801561158457506001600160a01b0383166000908152600d602052604090205460ff16155b15611625576001600160a01b0383166000908152600860205260409020546007546115af84836122fb565b11156116235760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108d3565b505b61162f84836118b8565b611637611925565b156116445761164461197b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611696918490611372565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116e357506001600160a01b0384166000908152600c602052604090205460ff165b6116f7576116f2858486611d62565b6116f9565b825b6001600160a01b03851660009081526008602052604090205490915061171f9082611313565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206123c1833981519152906117619085815260200190565b60405180910390a3506001949350505050565b6000610afa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611372565b600081836117d75760405162461bcd60e51b81526004016108d39190611edf565b5060006113a3848661225d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611835918490611372565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546118649083611313565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206123c1833981519152906118a69086815260200190565b60405180910390a35060019392505050565b600654811115806118e157506001600160a01b0382166000908152600d602052604090205460ff165b6119215760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108d3565b5050565b6021546000906001600160a01b03163314801590611946575060235460ff16155b801561195b5750602154600160a81b900460ff165b8015610b4e57505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e5460009161199a91610978565b6119a657600e546119a9565b60005b905060006119cd600261110a60135461110a8660225461124f90919063ffffffff16565b905060006119e68260225461177490919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611a2057611a206122cc565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a5157611a516122cc565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790611a9b908690600090879030904290600401612321565b600060405180830381600087803b158015611ab557600080fd5b505af1158015611ac9573d6000803e3d6000fd5b505050506000611ae2824761177490919063ffffffff16565b90506000611afd611af48860026112d1565b60135490611774565b90506000611b12600261110a8481878d61124f565b90506000611b2f8361110a600f548761124f90919063ffffffff16565b90506000611b4c8461110a6011548861124f90919063ffffffff16565b90506000611b698561110a6010548961124f90919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611bbb576040519150601f19603f3d011682016040523d82523d6000602084013e611bc0565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611c10576040519150601f19603f3d011682016040523d82523d6000602084013e611c15565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c65576040519150601f19603f3d011682016040523d82523d6000602084013e611c6a565b606091505b5060009250508b159050611d4a57601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611ce8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0d9190612392565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601754602154600091906001600160a01b0390811690841603611d885750601554611da3565b6021546001600160a01b0390811690861603611da357506016545b6000611dd06014546064611db7919061227f565b61110a846110fd6013548a61124f90919063ffffffff16565b90506000611def60135461110a6012548561124f90919063ffffffff16565b90506000611dfd8383611774565b30600090815260086020526040902054909150611e1a9082611313565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e489083611313565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206123c1833981519152910160405180910390a38115611ec957601c546040518381526001600160a01b03918216918a16906000805160206123c18339815191529060200160405180910390a35b611ed38784611774565b98975050505050505050565b600060208083528351808285015260005b81811015611f0c57858101830151858201604001528201611ef0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611f4457600080fd5b919050565b60008060408385031215611f5c57600080fd5b611f6583611f2d565b946020939093013593505050565b60008060008060008060c08789031215611f8c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611fc957600080fd5b50508035926020909101359150565b600060208284031215611fea57600080fd5b5035919050565b60008060006060848603121561200657600080fd5b61200f84611f2d565b925061201d60208501611f2d565b9150604084013590509250925092565b8015158114610b9b57600080fd5b6000806040838503121561204e57600080fd5b61205783611f2d565b915060208301356120678161202d565b809150509250929050565b60006020828403121561208457600080fd5b610afa82611f2d565b60006020828403121561209f57600080fd5b8135610afa8161202d565b6000806000606084860312156120bf57600080fd5b505081359360208301359350604090920135919050565b6000806000604084860312156120eb57600080fd5b833567ffffffffffffffff8082111561210357600080fd5b818601915086601f83011261211757600080fd5b81358181111561212657600080fd5b8760208260051b850101111561213b57600080fd5b602092830195509350508401356121518161202d565b809150509250925092565b600080600080600060a0868803121561217457600080fd5b61217d86611f2d565b945061218b60208701611f2d565b935061219960408701611f2d565b92506121a760608701611f2d565b91506121b560808701611f2d565b90509295509295909350565b600080604083850312156121d457600080fd5b8235611f658161202d565b600080604083850312156121f257600080fd5b6121fb83611f2d565b915061220960208401611f2d565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261227a57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108a3576108a3612247565b6000602082840312156122a857600080fd5b5051919050565b6000602082840312156122c157600080fd5b8151610afa8161202d565b634e487b7160e01b600052603260045260246000fd5b6000600182016122f4576122f4612247565b5060010190565b808201808211156108a3576108a3612247565b818103818111156108a3576108a3612247565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123715784516001600160a01b03168352938301939183019160010161234c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123a757600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b221dcdd30551b5dd1c1a18dd8269a8c48abf05b199b5a45c7af7476f2d197ac64736f6c63430008110033

Deployed Bytecode Sourcemap

5052:13882:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6840:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6840:56:0;;;;;;;;8332:80;;;;;;;;;;-1:-1:-1;8404:5:0;;;;;;;;;;;;-1:-1:-1;;;8404:5:0;;;;8332:80;;;;;;;:::i;6759:31::-;;;;;;;;;;-1:-1:-1;6759:31:0;;;;-1:-1:-1;;;6759:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;6759:31:0;749:187:1;8754:216:0;;;;;;;;;;-1:-1:-1;8754:216:0;;;;;:::i;:::-;;:::i;17023:565::-;;;;;;;;;;-1:-1:-1;17023:565:0;;;;;:::i;:::-;;:::i;:::-;;18710:150;;;;;;;;;;-1:-1:-1;18710:150:0;;;;;:::i;:::-;;:::i;8062:88::-;;;;;;;;;;-1:-1:-1;8135:12:0;;8062:88;;18200:173;;;;;;;;;;-1:-1:-1;18200:173:0;;;;;:::i;:::-;;:::i;13521:233::-;;;;;;;;;;-1:-1:-1;13521:233:0;;;;;:::i;:::-;;:::i;6117:89::-;;;;;;;;;;;;;;;;9272:370;;;;;;;;;;-1:-1:-1;9272:370:0;;;;;:::i;:::-;;:::i;18385:142::-;;;;;;;;;;;;;:::i;8156:80::-;;;;;;;;;;-1:-1:-1;8156:80:0;;5397:1;2819:36:1;;2807:2;2792:18;8156:80:0;2677:184:1;13762:158:0;;;;;;;;;;;;;:::i;16766:114::-;;;;;;;;;;-1:-1:-1;16766:114:0;;;;;:::i;:::-;;:::i;8978:122::-;;;;;;;;;;-1:-1:-1;8978:122:0;;;;;:::i;:::-;;:::i;9654:236::-;;;;;;;;;;-1:-1:-1;9654:236:0;;;;;:::i;:::-;;:::i;16432:99::-;;;;;;;;;;-1:-1:-1;16432:99:0;;;;;:::i;:::-;;:::i;14244:214::-;;;;;;;;;;-1:-1:-1;14244:214:0;;;;;:::i;:::-;;:::i;6803:30::-;;;;;;;;;;-1:-1:-1;6803:30:0;;;;-1:-1:-1;;;6803:30:0;;;;;;8502:105;;;;;;;;;;-1:-1:-1;8502:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8586:18:0;8568:7;8586:18;;;:9;:18;;;;;;;8502:105;3109:148;;;;;;;;;;;;;:::i;13928:308::-;;;;;;;;;;-1:-1:-1;13928:308:0;;;;;:::i;:::-;;:::i;5531:61::-;;;;;;;;;;;;;;;;5466:58;;;;;;;;;;;;;;;;10125:158;;;;;;;;;;-1:-1:-1;10125:158:0;;;;;:::i;:::-;;:::i;8418:78::-;;;;;;;;;;-1:-1:-1;8470:7:0;2960:6;-1:-1:-1;;;;;2960:6:0;8418:78;;;-1:-1:-1;;;;;4231:32:1;;;4213:51;;4201:2;4186:18;8418:78:0;4067:203:1;5716:32:0;;;;;;;;;;-1:-1:-1;5716:32:0;;;;;;;;14466:79;;;;;;;;;;;;;:::i;2895:::-;;;;;;;;;;-1:-1:-1;2933:7:0;2960:6;-1:-1:-1;;;;;2960:6:0;2895:79;;16544:210;;;;;;;;;;-1:-1:-1;16544:210:0;;;;;:::i;:::-;;:::i;8242:84::-;;;;;;;;;;-1:-1:-1;8316:7:0;;;;;;;;;;;;-1:-1:-1;;;8316:7:0;;;;8242:84;;6727:19;;;;;;;;;;-1:-1:-1;6727:19:0;;;;-1:-1:-1;;;;;6727:19:0;;;9108:156;;;;;;;;;;-1:-1:-1;9108:156:0;;;;;:::i;:::-;;:::i;2515:21::-;;;;;;;;;;-1:-1:-1;2515:21:0;;;;-1:-1:-1;;;;;2515:21:0;;;9898:219;;;;;;;;;;-1:-1:-1;9898:219:0;;;;;:::i;:::-;;:::i;17596:435::-;;;;;;;;;;-1:-1:-1;17596:435:0;;;;;:::i;:::-;;:::i;18039:153::-;;;;;;;;;;-1:-1:-1;18039:153:0;;;;;:::i;:::-;;:::i;18535:167::-;;;;;;;;;;-1:-1:-1;18535:167:0;;;;;:::i;:::-;;:::i;8613:133::-;;;;;;;;;;-1:-1:-1;8613:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8715:19:0;;;8697:7;8715:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8613:133;5755:46;;;;;;;;;;-1:-1:-1;5755:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3265:244;;;;;;;;;;-1:-1:-1;3265:244:0;;;;;:::i;:::-;;:::i;16888:127::-;;;;;;;;;;-1:-1:-1;16888:127:0;;;;;:::i;:::-;;:::i;6657:24::-;;;;;;;;;;-1:-1:-1;6657:24:0;;;;-1:-1:-1;;;;;6657:24:0;;;8754:216;8858:10;8829:4;8846:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8846:32:0;;;;;;;;;;:41;;;8903:37;8829:4;;8846:32;;8903:37;;;;8881:6;160:25:1;;148:2;133:18;;14:177;8903:37:0;;;;;;;;-1:-1:-1;8958:4:0;8754:216;;;;;:::o;17023:565::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;;;;;;;;;17196:12:::1;:28:::0;;;17235:7:::1;:18:::0;;;17264:12:::1;:28:::0;;;17303:6:::1;:16:::0;;;17330:7:::1;:18:::0;;;17370:73:::1;17340:8:::0;17370:59:::1;17312:7:::0;17370:59;17279:13;17370:59;17211:13;17245:8;17370:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17359:8;:84:::0;17454:14:::1;:32:::0;;;17516:16:::1;17531:1;17471:15:::0;17516:16:::1;:::i;:::-;17505:8;;:27;17497:68;;;::::0;-1:-1:-1;;;17497:68:0;;7241:2:1;17497:68:0::1;::::0;::::1;7223:21:1::0;7280:2;7260:18;;;7253:30;7319;7299:18;;;7292:58;7367:18;;17497:68:0::1;7039:352:1::0;17497:68:0::1;17023:565:::0;;;;;;:::o;18710:150::-;18790:4;18846:6;18814:29;18834:8;18814:19;:29::i;:::-;:38;;18710:150;-1:-1:-1;;;18710:150:0:o;18200:173::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;18288:15:::1;:25:::0;;;;18324:26:::1;:41:::0;18200:173::o;13521:233::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;13680:20:::1;::::0;13640:21:::1;::::0;-1:-1:-1;;;;;13680:20:0::1;13672:74;13742:3;13711:28;13723:16:::0;13640:21;13711:28:::1;:::i;:::-;:34;;;;:::i;:::-;13672:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13593:161;13521:233:::0;:::o;9272:370::-;-1:-1:-1;;;;;9392:19:0;;9372:4;9392:19;;;:11;:19;;;;;;;;9412:10;9392:31;;;;;;;;-1:-1:-1;;9392:52:0;9389:186;;9494:69;;;;;;;;;;;-1:-1:-1;;;9494:69:0;;;;;;;;-1:-1:-1;;;;;9494:19:0;;-1:-1:-1;9494:19:0;;;:11;:19;;;;;9514:10;9494:31;;;;;;;;;;:69;;9530:6;;9494:35;:69::i;:::-;-1:-1:-1;;;;;9460:19:0;;;;;;:11;:19;;;;;;;;9480:10;9460:31;;;;;;;:103;9389:186;9594:40;9608:6;9616:9;9627:6;9594:13;:40::i;:::-;9587:47;;9272:370;;;;;;:::o;18385:142::-;18513:4;;-1:-1:-1;;;;;18513:4:0;18438:7;8586:18;;;:9;:18;;;;;;18465:54;;18492:4;;-1:-1:-1;;;;;18492:4:0;8568:7;8586:18;;;:9;:18;;;;;;18465:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18458:61;;18385:142;:::o;13762:158::-;13836:10;13820:27;;;;:15;:27;;;;;;;;13812:36;;;;;;13859:51;;13867:10;;13888:21;13859:51;;;;;;;;;13888:21;13867:10;13859:51;;;;;;;;;;;;;;;;;;;;;13762:158::o;16766:114::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16844:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16844:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16766:114::o;8978:122::-;9033:4;9057:35;9065:7;-1:-1:-1;;9057:7:0;:35::i;9654:236::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;9773:4:::1;9758:12;;:19;;;;:::i;:::-;9739:15;;:38;;9731:47;;;::::0;::::1;;9861:3;9842:14;9827:12;;:29;;;;:::i;:::-;9826:38;;;;:::i;:::-;9808:15;:56:::0;-1:-1:-1;9654:236:0:o;16432:99::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;16500:13:::1;:23:::0;;-1:-1:-1;;16500:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16432:99::o;14244:214::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;14343:14:::1;:22:::0;;;;14376:13:::1;:20:::0;;;;14407:18:::1;:27:::0;14244:214::o;3109:148::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;3216:1:::1;3200:6:::0;;3179:40:::1;::::0;-1:-1:-1;;;;;3200:6:0;;::::1;::::0;3179:40:::1;::::0;3216:1;;3179:40:::1;3247:1;3230:19:::0;;-1:-1:-1;;;;;;3230:19:0::1;::::0;;3109:148::o;13928:308::-;14048:10;14007:4;14032:27;;;:15;:27;;;;;;;;14024:36;;;;;;14071:6;14081:1;14071:11;14068:95;;14107:44;;-1:-1:-1;;;14107:44:0;;14145:4;14107:44;;;4213:51:1;-1:-1:-1;;;;;14107:29:0;;;;;4186:18:1;;14107:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14098:53;;14068:95;14180:48;;-1:-1:-1;;;14180:48:0;;14209:10;14180:48;;;7932:51:1;7999:18;;;7992:34;;;-1:-1:-1;;;;;14180:28:0;;;;;7905:18:1;;14180:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10125:158::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;10232:4:::1;10217:12;;:19;;;;:::i;:::-;10207:6;:29;;10199:38;;;::::0;::::1;;10248:12;:21:::0;10125:158::o;14466:79::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;14519:11:::1;:18:::0;;-1:-1:-1;;;;14519:18:0::1;-1:-1:-1::0;;;14519:18:0::1;::::0;;14466:79::o;16544:210::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;16646:9:::1;16641:106;16657:20:::0;;::::1;16641:106;;;16729:6;16699:13;:27;16713:9;;16723:1;16713:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16699:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16699:27:0;:36;;-1:-1:-1;;16699:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16679:3:::1;::::0;::::1;:::i;:::-;;;16641:106;;;;16544:210:::0;;;:::o;9108:156::-;9188:4;9212:44;9226:10;9238:9;9249:6;9212:13;:44::i;9898:219::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;10008:4:::1;9993:12;;:19;;;;:::i;:::-;9977:12;;:35;;9969:44;;;::::0;::::1;;10105:4;10088:12;10073;;:27;;;;:::i;:::-;10072:37;;;;:::i;:::-;10057:12;:52:::0;-1:-1:-1;9898:219:0:o;17596:435::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;17789:21:::1;:46:::0;;-1:-1:-1;;;;;;17789:46:0;;::::1;-1:-1:-1::0;;;;;17789:46:0;;::::1;;::::0;;;17846:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17901:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17944:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17989:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17596:435::o;18039:153::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;18128:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18128:22:0::1;-1:-1:-1::0;;;;18128:22:0;;::::1;::::0;;;::::1;::::0;;;18161:13:::1;:23:::0;18039:153::o;18535:167::-;18603:7;18630:64;18671:22;:20;:22::i;:::-;18653:4;;-1:-1:-1;;;;;18653:4:0;8568:7;8586:18;;;:9;:18;;;;;;18630:36;;18643:22;;18663:1;;18643:15;:19;;:22::i;:::-;18630:8;;:12;:36::i;:::-;:40;;:64::i;3265:244::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3354:22:0;::::1;3346:73;;;::::0;-1:-1:-1;;;3346:73:0;;8761:2:1;3346:73:0::1;::::0;::::1;8743:21:1::0;8800:2;8780:18;;;8773:30;8839:34;8819:18;;;8812:62;-1:-1:-1;;;8890:18:1;;;8883:36;8936:19;;3346:73:0::1;8559:402:1::0;3346:73:0::1;3456:6;::::0;;3435:38:::1;::::0;-1:-1:-1;;;;;3435:38:0;;::::1;::::0;3456:6;::::1;::::0;3435:38:::1;::::0;::::1;3484:6;:17:::0;;-1:-1:-1;;;;;;3484:17:0::1;-1:-1:-1::0;;;;;3484:17:0;;;::::1;::::0;;;::::1;::::0;;3265:244::o;16888:127::-;3022:6;;-1:-1:-1;;;;;3022:6:0;2332:10;3022:22;3014:67;;;;-1:-1:-1;;;3014:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16975:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16975:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16888:127::o;694:250::-;752:7;776:1;781;776:6;772:47;;-1:-1:-1;806:1:0;799:8;;772:47;831:9;843:5;847:1;843;:5;:::i;:::-;831:17;-1:-1:-1;876:1:0;867:5;871:1;831:17;867:5;:::i;:::-;:10;859:56;;;;-1:-1:-1;;;859:56:0;;9168:2:1;859:56:0;;;9150:21:1;9207:2;9187:18;;;9180:30;9246:34;9226:18;;;9219:62;-1:-1:-1;;;9297:18:1;;;9290:31;9338:19;;859:56:0;8966:397:1;950:132:0;1008:7;1035:39;1039:1;1042;1035:39;;;;;;;;;;;;;;;;;:3;:39::i;167:181::-;225:7;;257:5;261:1;257;:5;:::i;:::-;245:17;;286:1;281;:6;;273:46;;;;-1:-1:-1;;;273:46:0;;9700:2:1;273:46:0;;;9682:21:1;9739:2;9719:18;;;9712:30;9778:29;9758:18;;;9751:57;9825:18;;273:46:0;9498:351:1;496:192:0;582:7;618:12;610:6;;;;602:29;;;;-1:-1:-1;;;602:29:0;;;;;;;;:::i;:::-;-1:-1:-1;642:9:0;654:5;658:1;654;:5;:::i;:::-;642:17;496:192;-1:-1:-1;;;;;496:192:0:o;10291:1429::-;10403:6;;10383:4;;10403:6;;10400:63;;;10419:41;10434:6;10442:9;10453:6;10419:14;:41::i;:::-;10412:48;;;;10400:63;-1:-1:-1;;;;;10479:22:0;;;;;;:14;:22;;;;;;;;10478:23;:53;;;;-1:-1:-1;;;;;;10506:25:0;;;;;;:14;:25;;;;;;;;10505:26;10478:53;10475:140;;;10555:11;;-1:-1:-1;;;10555:11:0;;;;10547:43;;;;-1:-1:-1;;;10547:43:0;;10189:2:1;10547:43:0;;;10171:21:1;10228:2;10208:18;;;10201:30;-1:-1:-1;;;10247:18:1;;;10240:50;10307:18;;10547:43:0;9987:344:1;10547:43:0;10662:13;;;;10659:93;;;-1:-1:-1;;;;;10700:21:0;;;;;;:13;:21;;;;;;;;10699:22;10691:45;;;;-1:-1:-1;;;10691:45:0;;10538:2:1;10691:45:0;;;10520:21:1;10577:2;10557:18;;;10550:30;-1:-1:-1;;;10596:18:1;;;10589:41;10647:18;;10691:45:0;10336:335:1;10691:45:0;-1:-1:-1;;;;;10769:22:0;;;;;;:14;:22;;;;;;;;10768:23;:53;;;;-1:-1:-1;;;;;;10795:26:0;;10816:4;10795:26;;10768:53;:84;;;;-1:-1:-1;10847:4:0;;-1:-1:-1;;;;;10826:26:0;;;10847:4;;10826:26;;10768:84;:105;;;;-1:-1:-1;10869:4:0;;-1:-1:-1;;;;;10856:17:0;;;10869:4;;10856:17;;10768:105;:137;;;;-1:-1:-1;10890:15:0;;-1:-1:-1;;;;;10877:28:0;;;10890:15;;10877:28;;10768:137;:174;;;;-1:-1:-1;10922:20:0;;-1:-1:-1;;;;;10909:33:0;;;10922:20;;10909:33;;10768:174;:205;;;;-1:-1:-1;;;;;;10947:26:0;;;;;;:15;:26;;;;;;;;10946:27;10768:205;10764:397;;;-1:-1:-1;;;;;8586:18:0;;10989;8586;;;:9;:18;;;;;;11078:15;;11054:19;11067:6;8586:18;11054:19;:::i;:::-;11053:40;;11045:114;;;;-1:-1:-1;;;11045:114:0;;10878:2:1;11045:114:0;;;10860:21:1;10917:2;10897:18;;;10890:30;10956:34;10936:18;;;10929:62;11027:32;11007:18;;;11000:60;11077:19;;11045:114:0;10676:426:1;11045:114:0;10974:187;10764:397;11214:28;11227:6;11235;11214:12;:28::i;:::-;11259:16;:14;:16::i;:::-;11256:35;;;11278:10;:8;:10::i;:::-;11371:53;;;;;;;;;;;-1:-1:-1;;;11371:53:0;;;;;;;;-1:-1:-1;;;;;11371:17:0;;-1:-1:-1;11371:17:0;;;:9;:17;;;;;;;;:53;;11393:6;;11371:21;:53::i;:::-;-1:-1:-1;;;;;11351:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11463:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11486:22:0;;;;;;:11;:22;;;;;;;;11463:45;11462:93;;11521:34;11529:6;11537;11545:9;11521:7;:34::i;:::-;11462:93;;;11512:6;11462:93;-1:-1:-1;;;;;11589:20:0;;;;;;:9;:20;;;;;;11437:118;;-1:-1:-1;11589:40:0;;11437:118;11589:24;:40::i;:::-;-1:-1:-1;;;;;11566:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11647:43;;;;;;-1:-1:-1;;;;;;;;;;;11647:43:0;;;11675:14;160:25:1;;148:2;133:18;;14:177;11647:43:0;;;;;;;;-1:-1:-1;11708:4:0;;10291:1429;-1:-1:-1;;;;10291:1429:0:o;354:136::-;412:7;439:43;443:1;446;439:43;;;;;;;;;;;;;;;;;:3;:43::i;1088:189::-;1174:7;1209:12;1202:5;1194:28;;;;-1:-1:-1;;;1194:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1233:9:0;1245:5;1249:1;1245;:5;:::i;11732:330::-;11862:53;;;;;;;;;;;-1:-1:-1;;;11862:53:0;;;;;;;;-1:-1:-1;;;;;11862:17:0;;11825:4;11862:17;;;:9;:17;;;;;;;:53;;11884:6;;11862:21;:53::i;:::-;-1:-1:-1;;;;;11842:17:0;;;;;;;:9;:17;;;;;;:73;;;;11949:20;;;;;;;:32;;11974:6;11949:24;:32::i;:::-;-1:-1:-1;;;;;11926:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11997:35;;;;;;-1:-1:-1;;;;;;;;;;;11997:35:0;;;12025:6;160:25:1;;148:2;133:18;;14:177;11997:35:0;;;;;;;;-1:-1:-1;12050:4:0;11732:330;;;;;:::o;12070:166::-;12167:12;;12157:6;:22;;:49;;;-1:-1:-1;;;;;;12183:23:0;;;;;;:15;:23;;;;;;;;12157:49;12149:79;;;;-1:-1:-1;;;12149:79:0;;11309:2:1;12149:79:0;;;11291:21:1;11348:2;11328:18;;;11321:30;-1:-1:-1;;;11367:18:1;;;11360:47;11424:18;;12149:79:0;11107:341:1;12149:79:0;12070:166;;:::o;13316:197::-;13403:4;;13365;;-1:-1:-1;;;;;13403:4:0;13389:10;:18;;;;:38;;-1:-1:-1;13421:6:0;;;;13420:7;13389:38;:62;;;;-1:-1:-1;13440:11:0;;-1:-1:-1;;;13440:11:0;;;;13389:62;:116;;;;-1:-1:-1;;13492:13:0;;13482:4;13464:24;;;;:9;:24;;;;;;:41;;;13316:197::o;14563:1861::-;6944:6;:13;;-1:-1:-1;;6944:13:0;6953:4;6944:13;;;14658:15:::1;::::0;14675:26:::1;::::0;6944:6;;14642:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14709:12;;14642:79;;;14705:1;14642:79;14612:109;;14732:23;14758:59;14815:1;14758:52;14801:8;;14758:38;14776:19;14758:13;;:17;;:38;;;;:::i;:59::-;14732:85;;14828:20;14851:34;14869:15;14851:13;;:17;;:34;;;;:::i;:::-;14922:16;::::0;;14936:1:::1;14922:16:::0;;;;;::::1;::::0;;14828:57;;-1:-1:-1;14898:21:0::1;::::0;14922:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14922:16:0::1;14898:40;;14967:4;14949;14954:1;14949:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14949:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14993:4:::1;::::0;14983:7;;14993:4;::::1;::::0;14983;;14993;;14983:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14983:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15068:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15068:188:0;;15034:21:::1;::::0;15068:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15140:12;;15010:21:::1;::::0;15183:4;;15210::::1;::::0;15230:15:::1;::::0;15068:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15269:17;15289:40;15315:13;15289:21;:25;;:40;;;;:::i;:::-;15269:60:::0;-1:-1:-1;15342:19:0::1;15364:40;15377:26;:19:::0;15401:1:::1;15377:23;:26::i;:::-;15364:8;::::0;;:12:::1;:40::i;:::-;15342:62:::0;-1:-1:-1;15425:26:0::1;15454:58;15510:1;15454:51;15342:62:::0;15454:51;:9;15468:19;15454:13:::1;:34::i;:58::-;15425:87;;15523:26;15552:44;15584:11;15552:27;15566:12;;15552:9;:13;;:27;;;;:::i;:44::-;15523:73;;15607:21;15631:39;15658:11;15631:22;15645:7;;15631:9;:13;;:22;;;;:::i;:39::-;15607:63;;15681:20;15704:38;15730:11;15704:21;15718:6;;15704:9;:13;;:21;;;;:::i;:38::-;15784:20;::::0;15776:65:::1;::::0;15681:61;;-1:-1:-1;15756:15:0::1;::::0;-1:-1:-1;;;;;15784:20:0;;::::1;::::0;15818:18;;15756:15;15776:65;15756:15;15776:65;15818:18;15784:20;15776:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15876:14:0::1;::::0;15868:53:::1;::::0;15755:86;;-1:-1:-1;;;;;;15876:14:0::1;::::0;15904:12;;15868:53:::1;::::0;;;15904:12;15876:14;15868:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15956:15:0::1;::::0;15948:55:::1;::::0;15852:69;;-1:-1:-1;;;;;;15956:15:0::1;::::0;15985:13;;15948:55:::1;::::0;;;15985:13;15956:15;15948:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16037:5:0::1;::::0;-1:-1:-1;;16058:19:0;;;-1:-1:-1;16055:362:0::1;;16093:6;::::0;16267:21:::1;::::0;16093:244:::1;::::0;-1:-1:-1;;;16093:244:0;;16169:4:::1;16093:244;::::0;::::1;13121:34:1::0;13171:18;;;13164:34;;;16093:6:0::1;13214:18:1::0;;;13207:34;;;13257:18;;;13250:34;-1:-1:-1;;;;;16267:21:0;;::::1;13300:19:1::0;;;13293:44;16307:15:0::1;13353:19:1::0;;;13346:35;16093:6:0;::::1;::::0;:22:::1;::::0;16123:18;;13055:19:1;;16093:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16357:48:0::1;::::0;;13877:25:1;;;13933:2;13918:18;;13911:34;;;16357:48:0::1;::::0;-1:-1:-1;13850:18:1;16357:48:0::1;;;;;;;16055:362;-1:-1:-1::0;;6962:6:0;:14;;-1:-1:-1;;6962:14:0;;;-1:-1:-1;;;;;;;;;;14563:1861:0:o;12366:942::-;12503:18;;12550:4;;12452:7;;12503:18;-1:-1:-1;;;;;12550:4:0;;;12537:17;;;;12534:154;;-1:-1:-1;12584:14:0;;12534:154;;;12629:4;;-1:-1:-1;;;;;12629:4:0;;;12619:14;;;;12616:72;;-1:-1:-1;12663:13:0;;12616:72;12700:17;12720:62;12761:14;;12778:3;12761:20;;;;:::i;:::-;12720:36;12745:10;12720:20;12731:8;;12720:6;:10;;:20;;;;:::i;:62::-;12700:82;;12793:18;12814:36;12841:8;;12814:22;12828:7;;12814:9;:13;;:22;;;;:::i;:36::-;12793:57;-1:-1:-1;12861:22:0;12886:25;:9;12793:57;12886:13;:25::i;:::-;12969:4;12951:24;;;;:9;:24;;;;;;12861:50;;-1:-1:-1;12951:44:0;;12861:50;12951:28;:44::i;:::-;12942:4;12924:24;;;;:9;:24;;;;;;:71;;;;13045:15;;-1:-1:-1;;;;;13045:15:0;13035:26;;;;:42;;13066:10;13035:30;:42::i;:::-;13016:15;;-1:-1:-1;;;;;13016:15:0;;;13006:26;;;;:9;:26;;;;;;;;;:71;;;;13093:47;160:25:1;;;13118:4:0;;13093:47;;;;-1:-1:-1;;;;;;;;;;;13093:47:0;133:18:1;13093:47:0;;;;;;;13164:14;;13161:99;;13216:15;;13199:45;;160:25:1;;;-1:-1:-1;;;;;13216:15:0;;;;13199:45;;;-1:-1:-1;;;;;;;;;;;13199:45:0;148:2:1;133:18;13199:45:0;;;;;;;13161:99;13279:21;:6;13290:9;13279:10;:21::i;:::-;13272:28;12366:942;-1:-1:-1;;;;;;;;12366:942:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:523::-;1482:6;1490;1498;1506;1514;1522;1575:3;1563:9;1554:7;1550:23;1546:33;1543:53;;;1592:1;1589;1582:12;1543:53;-1:-1:-1;;1615:23:1;;;1685:2;1670:18;;1657:32;;-1:-1:-1;1736:2:1;1721:18;;1708:32;;1787:2;1772:18;;1759:32;;-1:-1:-1;1838:3:1;1823:19;;1810:33;;-1:-1:-1;1890:3:1;1875:19;1862:33;;-1:-1:-1;1378:523:1;-1:-1:-1;1378:523:1:o;1906:248::-;1974:6;1982;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;-1:-1:-1;;2074:23:1;;;2144:2;2129:18;;;2116:32;;-1:-1:-1;1906:248:1:o;2159:180::-;2218:6;2271:2;2259:9;2250:7;2246:23;2242:32;2239:52;;;2287:1;2284;2277:12;2239:52;-1:-1:-1;2310:23:1;;2159:180;-1:-1:-1;2159:180:1:o;2344:328::-;2421:6;2429;2437;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;2529:29;2548:9;2529:29;:::i;:::-;2519:39;;2577:38;2611:2;2600:9;2596:18;2577:38;:::i;:::-;2567:48;;2662:2;2651:9;2647:18;2634:32;2624:42;;2344:328;;;;;:::o;2866:118::-;2952:5;2945:13;2938:21;2931:5;2928:32;2918:60;;2974:1;2971;2964:12;2989:315;3054:6;3062;3115:2;3103:9;3094:7;3090:23;3086:32;3083:52;;;3131:1;3128;3121:12;3083:52;3154:29;3173:9;3154:29;:::i;:::-;3144:39;;3233:2;3222:9;3218:18;3205:32;3246:28;3268:5;3246:28;:::i;:::-;3293:5;3283:15;;;2989:315;;;;;:::o;3309:186::-;3368:6;3421:2;3409:9;3400:7;3396:23;3392:32;3389:52;;;3437:1;3434;3427:12;3389:52;3460:29;3479:9;3460:29;:::i;3500:241::-;3556:6;3609:2;3597:9;3588:7;3584:23;3580:32;3577:52;;;3625:1;3622;3615:12;3577:52;3664:9;3651:23;3683:28;3705:5;3683:28;:::i;3746:316::-;3823:6;3831;3839;3892:2;3880:9;3871:7;3867:23;3863:32;3860:52;;;3908:1;3905;3898:12;3860:52;-1:-1:-1;;3931:23:1;;;4001:2;3986:18;;3973:32;;-1:-1:-1;4052:2:1;4037:18;;;4024:32;;3746:316;-1:-1:-1;3746:316:1:o;4275:750::-;4367:6;4375;4383;4436:2;4424:9;4415:7;4411:23;4407:32;4404:52;;;4452:1;4449;4442:12;4404:52;4492:9;4479:23;4521:18;4562:2;4554:6;4551:14;4548:34;;;4578:1;4575;4568:12;4548:34;4616:6;4605:9;4601:22;4591:32;;4661:7;4654:4;4650:2;4646:13;4642:27;4632:55;;4683:1;4680;4673:12;4632:55;4723:2;4710:16;4749:2;4741:6;4738:14;4735:34;;;4765:1;4762;4755:12;4735:34;4820:7;4813:4;4803:6;4800:1;4796:14;4792:2;4788:23;4784:34;4781:47;4778:67;;;4841:1;4838;4831:12;4778:67;4872:4;4864:13;;;;-1:-1:-1;4896:6:1;-1:-1:-1;;4937:20:1;;4924:34;4967:28;4924:34;4967:28;:::i;:::-;5014:5;5004:15;;;4275:750;;;;;:::o;5030:484::-;5125:6;5133;5141;5149;5157;5210:3;5198:9;5189:7;5185:23;5181:33;5178:53;;;5227:1;5224;5217:12;5178:53;5250:29;5269:9;5250:29;:::i;:::-;5240:39;;5298:38;5332:2;5321:9;5317:18;5298:38;:::i;:::-;5288:48;;5355:38;5389:2;5378:9;5374:18;5355:38;:::i;:::-;5345:48;;5412:38;5446:2;5435:9;5431:18;5412:38;:::i;:::-;5402:48;;5469:39;5503:3;5492:9;5488:19;5469:39;:::i;:::-;5459:49;;5030:484;;;;;;;;:::o;5519:309::-;5584:6;5592;5645:2;5633:9;5624:7;5620:23;5616:32;5613:52;;;5661:1;5658;5651:12;5613:52;5700:9;5687:23;5719:28;5741:5;5719:28;:::i;5833:260::-;5901:6;5909;5962:2;5950:9;5941:7;5937:23;5933:32;5930:52;;;5978:1;5975;5968:12;5930:52;6001:29;6020:9;6001:29;:::i;:::-;5991:39;;6049:38;6083:2;6072:9;6068:18;6049:38;:::i;:::-;6039:48;;5833:260;;;;;:::o;6324:356::-;6526:2;6508:21;;;6545:18;;;6538:30;6604:34;6599:2;6584:18;;6577:62;6671:2;6656:18;;6324:356::o;6685:127::-;6746:10;6741:3;6737:20;6734:1;6727:31;6777:4;6774:1;6767:15;6801:4;6798:1;6791:15;6817:217;6857:1;6883;6873:132;;6927:10;6922:3;6918:20;6915:1;6908:31;6962:4;6959:1;6952:15;6990:4;6987:1;6980:15;6873:132;-1:-1:-1;7019:9:1;;6817:217::o;7396:168::-;7469:9;;;7500;;7517:15;;;7511:22;;7497:37;7487:71;;7538:18;;:::i;7569:184::-;7639:6;7692:2;7680:9;7671:7;7667:23;7663:32;7660:52;;;7708:1;7705;7698:12;7660:52;-1:-1:-1;7731:16:1;;7569:184;-1:-1:-1;7569:184:1:o;8037:245::-;8104:6;8157:2;8145:9;8136:7;8132:23;8128:32;8125:52;;;8173:1;8170;8163:12;8125:52;8205:9;8199:16;8224:28;8246:5;8224:28;:::i;8287:127::-;8348:10;8343:3;8339:20;8336:1;8329:31;8379:4;8376:1;8369:15;8403:4;8400:1;8393:15;8419:135;8458:3;8479:17;;;8476:43;;8499:18;;:::i;:::-;-1:-1:-1;8546:1:1;8535:13;;8419:135::o;9368:125::-;9433:9;;;9454:10;;;9451:36;;;9467:18;;:::i;9854:128::-;9921:9;;;9942:11;;;9939:37;;;9956:18;;:::i;11585:980::-;11847:4;11895:3;11884:9;11880:19;11926:6;11915:9;11908:25;11952:2;11990:6;11985:2;11974:9;11970:18;11963:34;12033:3;12028:2;12017:9;12013:18;12006:31;12057:6;12092;12086:13;12123:6;12115;12108:22;12161:3;12150:9;12146:19;12139:26;;12200:2;12192:6;12188:15;12174:29;;12221:1;12231:195;12245:6;12242:1;12239:13;12231:195;;;12310:13;;-1:-1:-1;;;;;12306:39:1;12294:52;;12401:15;;;;12366:12;;;;12342:1;12260:9;12231:195;;;-1:-1:-1;;;;;;;12482:32:1;;;;12477:2;12462:18;;12455:60;-1:-1:-1;;;12546:3:1;12531:19;12524:35;12443:3;11585:980;-1:-1:-1;;;11585:980:1:o;13392:306::-;13480:6;13488;13496;13549:2;13537:9;13528:7;13524:23;13520:32;13517:52;;;13565:1;13562;13555:12;13517:52;13594:9;13588:16;13578:26;;13644:2;13633:9;13629:18;13623:25;13613:35;;13688:2;13677:9;13673:18;13667:25;13657:35;;13392:306;;;;;:::o

Swarm Source

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