ETH Price: $3,071.66 (-7.95%)
 

Overview

Max Total Supply

1,000,000,000,000 EPEPE

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,839,999,999.999999356506524877 EPEPE

Value
$0.00
0x29ebf7e780f1f14538675a5e37eb47f443e59be9
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:
ErmnPepeERC20

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-24
*/

/*

Telegram : https://t.me/ErmnPepe
    
*/

// 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 ErmnPepeERC20 is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "Ermn Pepe";
    string constant _symbol = "EPEPE";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1 * 10**12 * 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    = 3;
    uint256 private devFee          = 0;
    uint256 private ecosystemFee    = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = ecosystemFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 200;
    uint256 buypercent = 400;
    uint256 transferpercent = 1500; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private ecosystemFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 30 / 1000; 
    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 = 0x57Ba7eA8C3a41EA8d6F8b6a094FE2358A1839102;
        devFeeReceiver = msg.sender;
        ecosystemFeeReceiver = 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 setMaxBag(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTransaction(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

  
    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 percent = transferpercent;

        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).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 clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function manualSwapBack() external onlyOwner {
           swapBack();
    
    }

    function removelimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

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

    }

    function clearForeignToken(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 setPercentFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    
          
    }

    function openTrading() 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 amountETHecosystem = amountETH.mul(ecosystemFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

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

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

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

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

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

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

    function setReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _ecosystemFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        ecosystemFeeReceiver = _ecosystemFeeReceiver;
    }

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

    function setTargetRatio(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":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"add_blacklist","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"_status","type":"bool"}],"name":"boolblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"removelimits","outputs":[],"stateMutability":"nonpayable","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":"maxWallPercent","type":"uint256"}],"name":"setMaxBag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTransaction","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":"setPercentFees","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":"_ecosystemFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXandFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_ecosystemFee","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":"setTaxAllocation","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"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a620006e3565b620000439064e8d4a51000620006f4565b6005556200007d6064620000696001600554620004b660201b620012761790919060201c565b6200054a60201b620012f51790919060201c565b600655620000a36064620000696001600554620004b660201b620012761790919060201c565b600755600a805460ff19166001908117909155600e8190556003600f8190556000601081905560118390556012819055918291620000e2908262000716565b620000ee919062000716565b620000fa919062000716565b62000106919062000716565b6013556064601481905560c86015556101906016556105dc601755601e601d8190559081556021805461ffff60a01b1916600160a81b1790556005546103e891620001529190620006f4565b6200015e919062000731565b6022553480156200016e57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000254919062000754565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d9919062000754565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000351919062000754565b602180546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000818152600983526040808220601f54881683528452808220600019905533808352600c8552818320805460ff199081166001908117909255601a80548b1686528486208054831684179055838652600d8852848620805483168417905598548a168552838520805482168317905588548a1685528385208054821683179055601980548b16865284862080548316841790559585528385208054909116909117905560188054871682179055835486167357ba7ea8c3a41ea8d6f8b6a094fe2358a183910217909355855485168317909555601b8054851683179055600354601c80549095169616959095179092556005548285526008825283852081905592519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007d7565b600082620004c75750600062000544565b6000620004d58385620006f4565b905082620004e4858362000731565b14620005415760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059460201b60201c565b60008183620005b85760405162461bcd60e51b81526004016200053891906200077f565b506000620005c7848662000731565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006275781600019048211156200060b576200060b620005d0565b808516156200061957918102915b93841c9390800290620005eb565b509250929050565b600082620006405750600162000544565b816200064f5750600062000544565b8160018114620006685760028114620006735762000693565b600191505062000544565b60ff841115620006875762000687620005d0565b50506001821b62000544565b5060208310610133831016604e8410600b8410161715620006b8575081810a62000544565b620006c48383620005e6565b8060001904821115620006db57620006db620005d0565b029392505050565b60006200054160ff8416836200062f565b6000816000190483118215151615620007115762000711620005d0565b500290565b600082198211156200072c576200072c620005d0565b500190565b6000826200074f57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076757600080fd5b81516001600160a01b03811681146200054157600080fd5b600060208083528351808285015260005b81811015620007ae5785810183015185820160400152820162000790565b81811115620007c1576000604083870101525b50601f01601f1916929092016040019392505050565b61245480620007e76000396000f3fe6080604052600436106102765760003560e01c80637d1db4a51161014f578063c35e3050116100c1578063df20fd491161007a578063df20fd491461077f578063ed6a59651461079f578063ed716b2a146107cf578063f0a9e365146107ef578063f2fde38b1461080f578063f887ea401461082f57600080fd5b8063c35e3050146106a4578063c4e7e819146106c4578063c9567bf9146106e4578063d51ed1c8146106f9578063d78e139d14610719578063dd62ed3e1461073957600080fd5b80639acb773e116101135780639acb773e146105e4578063a55200d214610604578063a8aa1b3114610624578063a9059cbb14610644578063ab5a188714610664578063b2bdfa7b1461068457600080fd5b80637d1db4a514610536578063893d20e81461054c578063896648c11461057e5780638da5cb5b1461059857806395d89b41146105b657600080fd5b80633554dd3c116101e85780636ddd1713116101ac5780636ddd17131461047f5780636fc3eaec146104a057806370a08231146104b5578063715018a6146104eb57806372a2f3521461050057806378109e541461052057600080fd5b80633554dd3c146103f5578063395bf98214610415578063571ac8b0146104355780635e4ae81b1461045557806366eb37851461046a57600080fd5b806318160ddd1161023a57806318160ddd146103575780631df4ccfc1461036c57806323b872dd146103825780632782b5b7146103a25780632b112e49146103c4578063313ce567146103d957600080fd5b80630445b6671461028257806306fdde03146102ab57806308fd3d05146102e6578063095ea7b3146103175780631161ae391461033757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b5060408051808201909152600981526845726d6e205065706560b81b60208201525b6040516102a29190611f03565b3480156102f257600080fd5b5060215461030790600160a01b900460ff1681565b60405190151581526020016102a2565b34801561032357600080fd5b50610307610332366004611f74565b61084f565b34801561034357600080fd5b50610307610352366004611f9e565b6108bc565b34801561036357600080fd5b50600554610298565b34801561037857600080fd5b5061029860135481565b34801561038e57600080fd5b5061030761039d366004611fc0565b6108d0565b3480156103ae57600080fd5b506103c26103bd36600461200a565b610992565b005b3480156103d057600080fd5b506102986109d8565b3480156103e557600080fd5b50604051601281526020016102a2565b34801561040157600080fd5b506103c2610410366004612027565b610a2a565b34801561042157600080fd5b506103c261043036600461208c565b610ab3565b34801561044157600080fd5b506103076104503660046120b8565b610aee565b34801561046157600080fd5b506103c2610afc565b34801561047657600080fd5b506103c2610b33565b34801561048b57600080fd5b5060215461030790600160a81b900460ff1681565b3480156104ac57600080fd5b506103c2610b67565b3480156104c157600080fd5b506102986104d03660046120b8565b6001600160a01b031660009081526008602052604090205490565b3480156104f757600080fd5b506103c2610bbf565b34801561050c57600080fd5b506103c261051b3660046120d3565b610c33565b34801561052c57600080fd5b5061029860075481565b34801561054257600080fd5b5061029860065481565b34801561055857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b34801561058a57600080fd5b50600a546103079060ff1681565b3480156105a457600080fd5b506000546001600160a01b0316610566565b3480156105c257600080fd5b50604080518082019091526005815264455045504560d81b60208201526102d9565b3480156105f057600080fd5b506103c26105ff3660046120ec565b610c9c565b34801561061057600080fd5b506103c261061f3660046120ec565b610cf1565b34801561063057600080fd5b50602154610566906001600160a01b031681565b34801561065057600080fd5b5061030761065f366004611f74565b610d59565b34801561067057600080fd5b506103c261067f3660046120d3565b610d66565b34801561069057600080fd5b50600054610566906001600160a01b031681565b3480156106b057600080fd5b506103c26106bf366004612123565b610dcf565b3480156106d057600080fd5b506103c26106df366004612166565b610e95565b3480156106f057600080fd5b506103c2610f34565b34801561070557600080fd5b506102986107143660046120d3565b610f73565b34801561072557600080fd5b506103c26107343660046120d3565b610fba565b34801561074557600080fd5b506102986107543660046121ec565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561078b57600080fd5b506103c261079a36600461221f565b61100e565b3480156107ab57600080fd5b506103076107ba3660046120b8565b600b6020526000908152604090205460ff1681565b3480156107db57600080fd5b506103c26107ea366004611f9e565b61105a565b3480156107fb57600080fd5b5061030761080a366004611f74565b61108f565b34801561081b57600080fd5b506103c261082a3660046120b8565b61118c565b34801561083b57600080fd5b50601f54610566906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108aa9086815260200190565b60405180910390a35060015b92915050565b6000826108c883610f73565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461097d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610958918490611337565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610988848484611371565b90505b9392505050565b6000546001600160a01b031633146109c55760405162461bcd60e51b81526004016109bc9061223d565b60405180910390fd5b600a805460ff1916911515919091179055565b6004546001600160a01b0316600090815260086020526040812054610a25906003546001600160a01b0316600090815260086020526040902054610a1f9060055490611739565b90611739565b905090565b6000546001600160a01b03163314610a545760405162461bcd60e51b81526004016109bc9061223d565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610add5760405162461bcd60e51b81526004016109bc9061223d565b601591909155601691909155601755565b60006108b68260001961084f565b6000546001600160a01b03163314610b265760405162461bcd60e51b81526004016109bc9061223d565b6005546007819055600655565b6000546001600160a01b03163314610b5d5760405162461bcd60e51b81526004016109bc9061223d565b610b6561177b565b565b336000908152600d602052604090205460ff16610b8357600080fd5b601a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610bbc573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610be95760405162461bcd60e51b81526004016109bc9061223d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c5d5760405162461bcd60e51b81526004016109bc9061223d565b6103e8600554610c6d9190612288565b6007541015610c7b57600080fd5b6103e881600554610c8c91906122aa565b610c969190612288565b60075550565b6000546001600160a01b03163314610cc65760405162461bcd60e51b81526004016109bc9061223d565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b81526004016109bc9061223d565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d9092529091208054909216179055565b600061098b338484611371565b6000546001600160a01b03163314610d905760405162461bcd60e51b81526004016109bc9061223d565b6103e8600554610da09190612288565b6006541015610dae57600080fd5b6103e881600554610dbf91906122aa565b610dc99190612288565b60065550565b6000546001600160a01b03163314610df95760405162461bcd60e51b81526004016109bc9061223d565b600e8690556011859055600f84905560108390556012829055610e2a82610e24858188818c8c611b62565b90611b62565b6013556014819055610e3d600282612288565b60135410610e8d5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109bc565b505050505050565b6000546001600160a01b03163314610ebf5760405162461bcd60e51b81526004016109bc9061223d565b60005b82811015610f2e5781600b6000868685818110610ee157610ee16122c9565b9050602002016020810190610ef691906120b8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f27816122df565b9050610ec2565b50505050565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b81526004016109bc9061223d565b6021805460ff60a01b1916600160a01b179055565b60006108b6610f806109d8565b6021546001600160a01b0316600090815260086020526040902054610fb490610fad906002905b90611276565b8590611276565b906112f5565b60195447906001600160a01b03166108fc6064610fd785856122aa565b610fe19190612288565b6040518115909202916000818181858888f19350505050158015611009573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110385760405162461bcd60e51b81526004016109bc9061223d565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b031633146110845760405162461bcd60e51b81526004016109bc9061223d565b601d91909155601e55565b336000908152600d602052604081205460ff166110ab57600080fd5b8161111b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156110f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111891906122fa565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190612313565b6000546001600160a01b031633146111b65760405162461bcd60e51b81526004016109bc9061223d565b6001600160a01b03811661121b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109bc565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611285575060006108b6565b600061129183856122aa565b90508261129e8583612288565b1461098b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109bc565b600061098b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bc1565b6000818484111561135b5760405162461bcd60e51b81526004016109bc9190611f03565b5060006113688486612330565b95945050505050565b60235460009060ff16156113915761138a848484611bef565b905061098b565b6001600160a01b03841660009081526001602052604090205460ff161580156113d357506001600160a01b03831660009081526001602052604090205460ff16155b1561142857602154600160a01b900460ff166114285760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109bc565b600a5460ff161561148a576001600160a01b0384166000908152600b602052604090205460ff161561148a5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016109bc565b6001600160a01b03841660009081526001602052604090205460ff161580156114bc57506001600160a01b0383163014155b80156114d657506003546001600160a01b03848116911614155b80156114f057506021546001600160a01b03848116911614155b801561150a5750601c546001600160a01b03848116911614155b801561152457506019546001600160a01b03848116911614155b801561154957506001600160a01b0383166000908152600d602052604090205460ff16155b156115ea576001600160a01b0383166000908152600860205260409020546007546115748483612347565b11156115e85760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109bc565b505b6115f48483611cc3565b6115fc611d30565b156116095761160961177b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461165b918490611337565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116a857506001600160a01b0384166000908152600c602052604090205460ff165b6116bc576116b7858486611d86565b6116be565b825b6001600160a01b0385166000908152600860205260409020549091506116e49082611b62565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206123ff833981519152906117269085815260200190565b60405180910390a3506001949350505050565b600061098b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611337565b6023805460ff19166001179055601d54601e5460009161179a916108bc565b6117a657600e546117a9565b60005b905060006117cd6002610fb4601354610fb48660225461127690919063ffffffff16565b905060006117e68260225461173990919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611820576118206122c9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611851576118516122c9565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac9479061189b90869060009087903090429060040161235f565b600060405180830381600087803b1580156118b557600080fd5b505af11580156118c9573d6000803e3d6000fd5b5050505060006118e2824761173990919063ffffffff16565b905060006118fd6118f48860026112f5565b60135490611739565b905060006119126002610fb48481878d611276565b9050600061192f83610fb4600f548761127690919063ffffffff16565b9050600061194c84610fb46011548861127690919063ffffffff16565b9050600061196985610fb46010548961127690919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146119bb576040519150601f19603f3d011682016040523d82523d6000602084013e6119c0565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a10576040519150601f19603f3d011682016040523d82523d6000602084013e611a15565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a65576040519150601f19603f3d011682016040523d82523d6000602084013e611a6a565b606091505b5060009250508b159050611b4a57601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611ae8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b0d91906123d0565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611b6f8385612347565b90508381101561098b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109bc565b60008183611be25760405162461bcd60e51b81526004016109bc9190611f03565b5060006113688486612288565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c40918490611337565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c6f9083611b62565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206123ff83398151915290611cb19086815260200190565b60405180910390a35060019392505050565b60065481111580611cec57506001600160a01b0382166000908152600d602052604090205460ff165b611d2c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109bc565b5050565b6021546000906001600160a01b03163314801590611d51575060235460ff16155b8015611d665750602154600160a81b900460ff165b8015610a2557505060225430600090815260086020526040902054101590565b601754602154600091906001600160a01b0384811691161415611dac5750601554611dc7565b6021546001600160a01b0386811691161415611dc757506016545b6000611df46014546064611ddb91906122aa565b610fb484610fa76013548a61127690919063ffffffff16565b90506000611e13601354610fb46012548561127690919063ffffffff16565b90506000611e218383611739565b30600090815260086020526040902054909150611e3e9082611b62565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e6c9083611b62565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206123ff833981519152910160405180910390a38115611eed57601c546040518381526001600160a01b03918216918a16906000805160206123ff8339815191529060200160405180910390a35b611ef78784611739565b98975050505050505050565b600060208083528351808285015260005b81811015611f3057858101830151858201604001528201611f14565b81811115611f42576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611f6f57600080fd5b919050565b60008060408385031215611f8757600080fd5b611f9083611f58565b946020939093013593505050565b60008060408385031215611fb157600080fd5b50508035926020909101359150565b600080600060608486031215611fd557600080fd5b611fde84611f58565b9250611fec60208501611f58565b9150604084013590509250925092565b8015158114610bbc57600080fd5b60006020828403121561201c57600080fd5b813561098b81611ffc565b600080600080600060a0868803121561203f57600080fd5b61204886611f58565b945061205660208701611f58565b935061206460408701611f58565b925061207260608701611f58565b915061208060808701611f58565b90509295509295909350565b6000806000606084860312156120a157600080fd5b505081359360208301359350604090920135919050565b6000602082840312156120ca57600080fd5b61098b82611f58565b6000602082840312156120e557600080fd5b5035919050565b600080604083850312156120ff57600080fd5b61210883611f58565b9150602083013561211881611ffc565b809150509250929050565b60008060008060008060c0878903121561213c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561217b57600080fd5b833567ffffffffffffffff8082111561219357600080fd5b818601915086601f8301126121a757600080fd5b8135818111156121b657600080fd5b8760208260051b85010111156121cb57600080fd5b602092830195509350508401356121e181611ffc565b809150509250925092565b600080604083850312156121ff57600080fd5b61220883611f58565b915061221660208401611f58565b90509250929050565b6000806040838503121561223257600080fd5b8235611f9081611ffc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826122a557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156122c4576122c4612272565b500290565b634e487b7160e01b600052603260045260246000fd5b60006000198214156122f3576122f3612272565b5060010190565b60006020828403121561230c57600080fd5b5051919050565b60006020828403121561232557600080fd5b815161098b81611ffc565b60008282101561234257612342612272565b500390565b6000821982111561235a5761235a612272565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123af5784516001600160a01b03168352938301939183019160010161238a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123e557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d51db0cf843e18ee62bdac99368712d903dc1b89519714fedcbbb4524246504764736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80637d1db4a51161014f578063c35e3050116100c1578063df20fd491161007a578063df20fd491461077f578063ed6a59651461079f578063ed716b2a146107cf578063f0a9e365146107ef578063f2fde38b1461080f578063f887ea401461082f57600080fd5b8063c35e3050146106a4578063c4e7e819146106c4578063c9567bf9146106e4578063d51ed1c8146106f9578063d78e139d14610719578063dd62ed3e1461073957600080fd5b80639acb773e116101135780639acb773e146105e4578063a55200d214610604578063a8aa1b3114610624578063a9059cbb14610644578063ab5a188714610664578063b2bdfa7b1461068457600080fd5b80637d1db4a514610536578063893d20e81461054c578063896648c11461057e5780638da5cb5b1461059857806395d89b41146105b657600080fd5b80633554dd3c116101e85780636ddd1713116101ac5780636ddd17131461047f5780636fc3eaec146104a057806370a08231146104b5578063715018a6146104eb57806372a2f3521461050057806378109e541461052057600080fd5b80633554dd3c146103f5578063395bf98214610415578063571ac8b0146104355780635e4ae81b1461045557806366eb37851461046a57600080fd5b806318160ddd1161023a57806318160ddd146103575780631df4ccfc1461036c57806323b872dd146103825780632782b5b7146103a25780632b112e49146103c4578063313ce567146103d957600080fd5b80630445b6671461028257806306fdde03146102ab57806308fd3d05146102e6578063095ea7b3146103175780631161ae391461033757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029860225481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b5060408051808201909152600981526845726d6e205065706560b81b60208201525b6040516102a29190611f03565b3480156102f257600080fd5b5060215461030790600160a01b900460ff1681565b60405190151581526020016102a2565b34801561032357600080fd5b50610307610332366004611f74565b61084f565b34801561034357600080fd5b50610307610352366004611f9e565b6108bc565b34801561036357600080fd5b50600554610298565b34801561037857600080fd5b5061029860135481565b34801561038e57600080fd5b5061030761039d366004611fc0565b6108d0565b3480156103ae57600080fd5b506103c26103bd36600461200a565b610992565b005b3480156103d057600080fd5b506102986109d8565b3480156103e557600080fd5b50604051601281526020016102a2565b34801561040157600080fd5b506103c2610410366004612027565b610a2a565b34801561042157600080fd5b506103c261043036600461208c565b610ab3565b34801561044157600080fd5b506103076104503660046120b8565b610aee565b34801561046157600080fd5b506103c2610afc565b34801561047657600080fd5b506103c2610b33565b34801561048b57600080fd5b5060215461030790600160a81b900460ff1681565b3480156104ac57600080fd5b506103c2610b67565b3480156104c157600080fd5b506102986104d03660046120b8565b6001600160a01b031660009081526008602052604090205490565b3480156104f757600080fd5b506103c2610bbf565b34801561050c57600080fd5b506103c261051b3660046120d3565b610c33565b34801561052c57600080fd5b5061029860075481565b34801561054257600080fd5b5061029860065481565b34801561055857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b34801561058a57600080fd5b50600a546103079060ff1681565b3480156105a457600080fd5b506000546001600160a01b0316610566565b3480156105c257600080fd5b50604080518082019091526005815264455045504560d81b60208201526102d9565b3480156105f057600080fd5b506103c26105ff3660046120ec565b610c9c565b34801561061057600080fd5b506103c261061f3660046120ec565b610cf1565b34801561063057600080fd5b50602154610566906001600160a01b031681565b34801561065057600080fd5b5061030761065f366004611f74565b610d59565b34801561067057600080fd5b506103c261067f3660046120d3565b610d66565b34801561069057600080fd5b50600054610566906001600160a01b031681565b3480156106b057600080fd5b506103c26106bf366004612123565b610dcf565b3480156106d057600080fd5b506103c26106df366004612166565b610e95565b3480156106f057600080fd5b506103c2610f34565b34801561070557600080fd5b506102986107143660046120d3565b610f73565b34801561072557600080fd5b506103c26107343660046120d3565b610fba565b34801561074557600080fd5b506102986107543660046121ec565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561078b57600080fd5b506103c261079a36600461221f565b61100e565b3480156107ab57600080fd5b506103076107ba3660046120b8565b600b6020526000908152604090205460ff1681565b3480156107db57600080fd5b506103c26107ea366004611f9e565b61105a565b3480156107fb57600080fd5b5061030761080a366004611f74565b61108f565b34801561081b57600080fd5b506103c261082a3660046120b8565b61118c565b34801561083b57600080fd5b50601f54610566906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108aa9086815260200190565b60405180910390a35060015b92915050565b6000826108c883610f73565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461097d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610958918490611337565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610988848484611371565b90505b9392505050565b6000546001600160a01b031633146109c55760405162461bcd60e51b81526004016109bc9061223d565b60405180910390fd5b600a805460ff1916911515919091179055565b6004546001600160a01b0316600090815260086020526040812054610a25906003546001600160a01b0316600090815260086020526040902054610a1f9060055490611739565b90611739565b905090565b6000546001600160a01b03163314610a545760405162461bcd60e51b81526004016109bc9061223d565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b03163314610add5760405162461bcd60e51b81526004016109bc9061223d565b601591909155601691909155601755565b60006108b68260001961084f565b6000546001600160a01b03163314610b265760405162461bcd60e51b81526004016109bc9061223d565b6005546007819055600655565b6000546001600160a01b03163314610b5d5760405162461bcd60e51b81526004016109bc9061223d565b610b6561177b565b565b336000908152600d602052604090205460ff16610b8357600080fd5b601a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610bbc573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610be95760405162461bcd60e51b81526004016109bc9061223d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c5d5760405162461bcd60e51b81526004016109bc9061223d565b6103e8600554610c6d9190612288565b6007541015610c7b57600080fd5b6103e881600554610c8c91906122aa565b610c969190612288565b60075550565b6000546001600160a01b03163314610cc65760405162461bcd60e51b81526004016109bc9061223d565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b81526004016109bc9061223d565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff199586168117909155600d9092529091208054909216179055565b600061098b338484611371565b6000546001600160a01b03163314610d905760405162461bcd60e51b81526004016109bc9061223d565b6103e8600554610da09190612288565b6006541015610dae57600080fd5b6103e881600554610dbf91906122aa565b610dc99190612288565b60065550565b6000546001600160a01b03163314610df95760405162461bcd60e51b81526004016109bc9061223d565b600e8690556011859055600f84905560108390556012829055610e2a82610e24858188818c8c611b62565b90611b62565b6013556014819055610e3d600282612288565b60135410610e8d5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016109bc565b505050505050565b6000546001600160a01b03163314610ebf5760405162461bcd60e51b81526004016109bc9061223d565b60005b82811015610f2e5781600b6000868685818110610ee157610ee16122c9565b9050602002016020810190610ef691906120b8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f27816122df565b9050610ec2565b50505050565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b81526004016109bc9061223d565b6021805460ff60a01b1916600160a01b179055565b60006108b6610f806109d8565b6021546001600160a01b0316600090815260086020526040902054610fb490610fad906002905b90611276565b8590611276565b906112f5565b60195447906001600160a01b03166108fc6064610fd785856122aa565b610fe19190612288565b6040518115909202916000818181858888f19350505050158015611009573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110385760405162461bcd60e51b81526004016109bc9061223d565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b6000546001600160a01b031633146110845760405162461bcd60e51b81526004016109bc9061223d565b601d91909155601e55565b336000908152600d602052604081205460ff166110ab57600080fd5b8161111b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156110f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111891906122fa565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190612313565b6000546001600160a01b031633146111b65760405162461bcd60e51b81526004016109bc9061223d565b6001600160a01b03811661121b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109bc565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611285575060006108b6565b600061129183856122aa565b90508261129e8583612288565b1461098b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109bc565b600061098b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bc1565b6000818484111561135b5760405162461bcd60e51b81526004016109bc9190611f03565b5060006113688486612330565b95945050505050565b60235460009060ff16156113915761138a848484611bef565b905061098b565b6001600160a01b03841660009081526001602052604090205460ff161580156113d357506001600160a01b03831660009081526001602052604090205460ff16155b1561142857602154600160a01b900460ff166114285760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109bc565b600a5460ff161561148a576001600160a01b0384166000908152600b602052604090205460ff161561148a5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016109bc565b6001600160a01b03841660009081526001602052604090205460ff161580156114bc57506001600160a01b0383163014155b80156114d657506003546001600160a01b03848116911614155b80156114f057506021546001600160a01b03848116911614155b801561150a5750601c546001600160a01b03848116911614155b801561152457506019546001600160a01b03848116911614155b801561154957506001600160a01b0383166000908152600d602052604090205460ff16155b156115ea576001600160a01b0383166000908152600860205260409020546007546115748483612347565b11156115e85760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109bc565b505b6115f48483611cc3565b6115fc611d30565b156116095761160961177b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461165b918490611337565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806116a857506001600160a01b0384166000908152600c602052604090205460ff165b6116bc576116b7858486611d86565b6116be565b825b6001600160a01b0385166000908152600860205260409020549091506116e49082611b62565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206123ff833981519152906117269085815260200190565b60405180910390a3506001949350505050565b600061098b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611337565b6023805460ff19166001179055601d54601e5460009161179a916108bc565b6117a657600e546117a9565b60005b905060006117cd6002610fb4601354610fb48660225461127690919063ffffffff16565b905060006117e68260225461173990919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611820576118206122c9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611851576118516122c9565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac9479061189b90869060009087903090429060040161235f565b600060405180830381600087803b1580156118b557600080fd5b505af11580156118c9573d6000803e3d6000fd5b5050505060006118e2824761173990919063ffffffff16565b905060006118fd6118f48860026112f5565b60135490611739565b905060006119126002610fb48481878d611276565b9050600061192f83610fb4600f548761127690919063ffffffff16565b9050600061194c84610fb46011548861127690919063ffffffff16565b9050600061196985610fb46010548961127690919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146119bb576040519150601f19603f3d011682016040523d82523d6000602084013e6119c0565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a10576040519150601f19603f3d011682016040523d82523d6000602084013e611a15565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a65576040519150601f19603f3d011682016040523d82523d6000602084013e611a6a565b606091505b5060009250508b159050611b4a57601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611ae8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b0d91906123d0565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611b6f8385612347565b90508381101561098b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109bc565b60008183611be25760405162461bcd60e51b81526004016109bc9190611f03565b5060006113688486612288565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c40918490611337565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c6f9083611b62565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206123ff83398151915290611cb19086815260200190565b60405180910390a35060019392505050565b60065481111580611cec57506001600160a01b0382166000908152600d602052604090205460ff165b611d2c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109bc565b5050565b6021546000906001600160a01b03163314801590611d51575060235460ff16155b8015611d665750602154600160a81b900460ff165b8015610a2557505060225430600090815260086020526040902054101590565b601754602154600091906001600160a01b0384811691161415611dac5750601554611dc7565b6021546001600160a01b0386811691161415611dc757506016545b6000611df46014546064611ddb91906122aa565b610fb484610fa76013548a61127690919063ffffffff16565b90506000611e13601354610fb46012548561127690919063ffffffff16565b90506000611e218383611739565b30600090815260086020526040902054909150611e3e9082611b62565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611e6c9083611b62565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206123ff833981519152910160405180910390a38115611eed57601c546040518381526001600160a01b03918216918a16906000805160206123ff8339815191529060200160405180910390a35b611ef78784611739565b98975050505050505050565b600060208083528351808285015260005b81811015611f3057858101830151858201604001528201611f14565b81811115611f42576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611f6f57600080fd5b919050565b60008060408385031215611f8757600080fd5b611f9083611f58565b946020939093013593505050565b60008060408385031215611fb157600080fd5b50508035926020909101359150565b600080600060608486031215611fd557600080fd5b611fde84611f58565b9250611fec60208501611f58565b9150604084013590509250925092565b8015158114610bbc57600080fd5b60006020828403121561201c57600080fd5b813561098b81611ffc565b600080600080600060a0868803121561203f57600080fd5b61204886611f58565b945061205660208701611f58565b935061206460408701611f58565b925061207260608701611f58565b915061208060808701611f58565b90509295509295909350565b6000806000606084860312156120a157600080fd5b505081359360208301359350604090920135919050565b6000602082840312156120ca57600080fd5b61098b82611f58565b6000602082840312156120e557600080fd5b5035919050565b600080604083850312156120ff57600080fd5b61210883611f58565b9150602083013561211881611ffc565b809150509250929050565b60008060008060008060c0878903121561213c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561217b57600080fd5b833567ffffffffffffffff8082111561219357600080fd5b818601915086601f8301126121a757600080fd5b8135818111156121b657600080fd5b8760208260051b85010111156121cb57600080fd5b602092830195509350508401356121e181611ffc565b809150509250925092565b600080604083850312156121ff57600080fd5b61220883611f58565b915061221660208401611f58565b90509250929050565b6000806040838503121561223257600080fd5b8235611f9081611ffc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826122a557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156122c4576122c4612272565b500290565b634e487b7160e01b600052603260045260246000fd5b60006000198214156122f3576122f3612272565b5060010190565b60006020828403121561230c57600080fd5b5051919050565b60006020828403121561232557600080fd5b815161098b81611ffc565b60008282101561234257612342612272565b500390565b6000821982111561235a5761235a612272565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123af5784516001600160a01b03168352938301939183019160010161238a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156123e557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d51db0cf843e18ee62bdac99368712d903dc1b89519714fedcbbb4524246504764736f6c634300080b0033

Deployed Bytecode Sourcemap

5033:13947:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6825:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6825:55:0;;;;;;;;8321:80;;;;;;;;;;-1:-1:-1;8393:5:0;;;;;;;;;;;;-1:-1:-1;;;8393:5:0;;;;8321:80;;;;;;;:::i;6744:31::-;;;;;;;;;;-1:-1:-1;6744:31:0;;;;-1:-1:-1;;;6744:31:0;;;;;;;;;963:14:1;;956:22;938:41;;926:2;911:18;6744:31:0;798:187:1;8743:216:0;;;;;;;;;;-1:-1:-1;8743:216:0;;;;;:::i;:::-;;:::i;18756:150::-;;;;;;;;;;-1:-1:-1;18756:150:0;;;;;:::i;:::-;;:::i;8051:88::-;;;;;;;;;;-1:-1:-1;8124:12:0;;8051:88;;6100:95;;;;;;;;;;;;;;;;9261:370;;;;;;;;;;-1:-1:-1;9261:370:0;;;;;:::i;:::-;;:::i;16406:96::-;;;;;;;;;;-1:-1:-1;16406:96:0;;;;;:::i;:::-;;:::i;:::-;;18431:142;;;;;;;;;;;;;:::i;8145:80::-;;;;;;;;;;-1:-1:-1;8145:80:0;;5380:2;2524:36:1;;2512:2;2497:18;8145:80:0;2382:184:1;17621:449:0;;;;;;;;;;-1:-1:-1;17621:449:0;;;;;:::i;:::-;;:::i;14209:205::-;;;;;;;;;;-1:-1:-1;14209:205:0;;;;;:::i;:::-;;:::i;8967:122::-;;;;;;;;;;-1:-1:-1;8967:122:0;;;;;:::i;:::-;;:::i;13587:133::-;;;;;;;;;;;;;:::i;13496:83::-;;;;;;;;;;;;;:::i;6788:30::-;;;;;;;;;;-1:-1:-1;6788:30:0;;;;-1:-1:-1;;;6788:30:0;;;;;;13728:155;;;;;;;;;;;;;:::i;8491:105::-;;;;;;;;;;-1:-1:-1;8491:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8575:18:0;8557:7;8575:18;;;:9;:18;;;;;;;8491:105;3090:148;;;;;;;;;;;;;:::i;9643:216::-;;;;;;;;;;-1:-1:-1;9643:216:0;;;;;:::i;:::-;;:::i;5514:61::-;;;;;;;;;;;;;;;;5449:58;;;;;;;;;;;;;;;;8407:78;;;;;;;;;;-1:-1:-1;8459:7:0;2941:6;-1:-1:-1;;;;;2941:6:0;8407:78;;;-1:-1:-1;;;;;3921:32:1;;;3903:51;;3891:2;3876:18;8407:78:0;3757:203:1;5699:32:0;;;;;;;;;;-1:-1:-1;5699:32:0;;;;;;;;2876:79;;;;;;;;;;-1:-1:-1;2914:7:0;2941:6;-1:-1:-1;;;;;2941:6:0;2876:79;;8231:84;;;;;;;;;;-1:-1:-1;8305:7:0;;;;;;;;;;;;-1:-1:-1;;;8305:7:0;;;;8231:84;;16907:120;;;;;;;;;;-1:-1:-1;16907:120:0;;;;;:::i;:::-;;:::i;16734:165::-;;;;;;;;;;-1:-1:-1;16734:165:0;;;;;:::i;:::-;;:::i;6712:19::-;;;;;;;;;;-1:-1:-1;6712:19:0;;;;-1:-1:-1;;;;;6712:19:0;;;9097:156;;;;;;;;;;-1:-1:-1;9097:156:0;;;;;:::i;:::-;;:::i;9867:196::-;;;;;;;;;;-1:-1:-1;9867:196:0;;;;;:::i;:::-;;:::i;2496:21::-;;;;;;;;;;-1:-1:-1;2496:21:0;;;;-1:-1:-1;;;;;2496:21:0;;;17035:578;;;;;;;;;;-1:-1:-1;17035:578:0;;;;;:::i;:::-;;:::i;16515:207::-;;;;;;;;;;-1:-1:-1;16515:207:0;;;;;:::i;:::-;;:::i;14422:77::-;;;;;;;;;;;;;:::i;18581:167::-;;;;;;;;;;-1:-1:-1;18581:167:0;;;;;:::i;:::-;;:::i;13284:203::-;;;;;;;;;;-1:-1:-1;13284:203:0;;;;;:::i;:::-;;:::i;8602:133::-;;;;;;;;;;-1:-1:-1;8602:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8704:19:0;;;8686:7;8704:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8602:133;18078:155;;;;;;;;;;-1:-1:-1;18078:155:0;;;;;:::i;:::-;;:::i;5738:46::-;;;;;;;;;;-1:-1:-1;5738:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18241:178;;;;;;;;;;-1:-1:-1;18241:178:0;;;;;:::i;:::-;;:::i;13891:310::-;;;;;;;;;;-1:-1:-1;13891:310:0;;;;;:::i;:::-;;:::i;3246:244::-;;;;;;;;;;-1:-1:-1;3246:244:0;;;;;:::i;:::-;;:::i;6642:24::-;;;;;;;;;;-1:-1:-1;6642:24:0;;;;-1:-1:-1;;;;;6642:24:0;;;8743:216;8847:10;8818:4;8835:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8835:32:0;;;;;;;;;;:41;;;8892:37;8818:4;;8835:32;;8892:37;;;;8870:6;160:25:1;;148:2;133:18;;14:177;8892:37:0;;;;;;;;-1:-1:-1;8947:4:0;8743:216;;;;;:::o;18756:150::-;18836:4;18892:6;18860:29;18880:8;18860:19;:29::i;:::-;:38;;18756:150;-1:-1:-1;;;18756:150:0:o;9261:370::-;-1:-1:-1;;;;;9381:19:0;;9361:4;9381:19;;;:11;:19;;;;;;;;9401:10;9381:31;;;;;;;;-1:-1:-1;;9381:52:0;9378:186;;9483:69;;;;;;;;;;;-1:-1:-1;;;9483:69:0;;;;;;;;-1:-1:-1;;;;;9483:19:0;;-1:-1:-1;9483:19:0;;;:11;:19;;;;;9503:10;9483:31;;;;;;;;;;:69;;9519:6;;9483:35;:69::i;:::-;-1:-1:-1;;;;;9449:19:0;;;;;;:11;:19;;;;;;;;9469:10;9449:31;;;;;;;:103;9378:186;9583:40;9597:6;9605:9;9616:6;9583:13;:40::i;:::-;9576:47;;9261:370;;;;;;:::o;16406:96::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;;;;;;;;;16471:13:::1;:23:::0;;-1:-1:-1;;16471:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16406:96::o;18431:142::-;18559:4;;-1:-1:-1;;;;;18559:4:0;18484:7;8575:18;;;:9;:18;;;;;;18511:54;;18538:4;;-1:-1:-1;;;;;18538:4:0;8557:7;8575:18;;;:9;:18;;;;;;18511:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18504:61;;18431:142;:::o;17621:449::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;17818:21:::1;:46:::0;;-1:-1:-1;;;;;;17818:46:0;;::::1;-1:-1:-1::0;;;;;17818:46:0;;::::1;;::::0;;;17875:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17930:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17973:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18018:20:::1;:44:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17621:449::o;14209:205::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;14308:11:::1;:19:::0;;;;14338:10:::1;:17:::0;;;;14366:15:::1;:24:::0;14209:205::o;8967:122::-;9022:4;9046:35;9054:7;-1:-1:-1;;9046:7:0;:35::i;13587:133::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;13660:12:::1;::::0;13642:15:::1;:30:::0;;;13683:12:::1;:27:::0;13587:133::o;13496:83::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;13555:10:::1;:8;:10::i;:::-;13496:83::o:0;13728:155::-;13795:10;13779:27;;;;:15;:27;;;;;;;;13771:36;;;;;;13826:14;;13818:55;;-1:-1:-1;;;;;13826:14:0;;;;13851:21;13818:55;;;;;13826:14;13818:55;13826:14;13818:55;13851:21;13826:14;13818:55;;;;;;;;;;;;;;;;;;;;;13728:155::o;3090:148::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;3197:1:::1;3181:6:::0;;3160:40:::1;::::0;-1:-1:-1;;;;;3181:6:0;;::::1;::::0;3160:40:::1;::::0;3197:1;;3160:40:::1;3228:1;3211:19:::0;;-1:-1:-1;;;;;;3211:19:0::1;::::0;;3090:148::o;9643:216::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;9759:4:::1;9744:12;;:19;;;;:::i;:::-;9725:15;;:38;;9717:47;;;::::0;::::1;;9829:4;9810:14;9795:12;;:29;;;;:::i;:::-;9794:39;;;;:::i;:::-;9776:15;:57:::0;-1:-1:-1;9643:216:0:o;16907:120::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16987:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16987:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16907:120::o;16734:165::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16820:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16820:28:0;;::::1;::::0;::::1;::::0;;;16859:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16734:165::o;9097:156::-;9177:4;9201:44;9215:10;9227:9;9238:6;9201:13;:44::i;9867:196::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;9986:4:::1;9971:12;;:19;;;;:::i;:::-;9955:12;;:35;;9947:44;;;::::0;::::1;;10051:4;10034:12;10019;;:27;;;;:::i;:::-;10018:37;;;;:::i;:::-;10003:12;:52:::0;-1:-1:-1;9867:196:0:o;17035:578::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;17220:12:::1;:28:::0;;;17259:12:::1;:28:::0;;;17298:12:::1;:28:::0;;;17337:6:::1;:16:::0;;;17364:7:::1;:18:::0;;;17404:78:::1;17374:8:::0;17404:64:::1;17346:7:::0;17404:64;17313:13;17404:64;17235:13;17274;17404:17:::1;:32::i;:::-;:36:::0;::::1;:51::i;:78::-;17393:8;:89:::0;17493:14:::1;:32:::0;;;17555:16:::1;17570:1;17510:15:::0;17555:16:::1;:::i;:::-;17544:8;;:27;17536:68;;;::::0;-1:-1:-1;;;17536:68:0;;7463:2:1;17536:68:0::1;::::0;::::1;7445:21:1::0;7502:2;7482:18;;;7475:30;7541;7521:18;;;7514:58;7589:18;;17536:68:0::1;7261:352:1::0;17536:68:0::1;17035:578:::0;;;;;;:::o;16515:207::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;16614:9:::1;16609:106;16625:20:::0;;::::1;16609:106;;;16697:6;16667:13;:27;16681:9;;16691:1;16681:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16667:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16667:27:0;:36;;-1:-1:-1;;16667:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16647:3:::1;::::0;::::1;:::i;:::-;;;16609:106;;;;16515:207:::0;;;:::o;14422:77::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;14473:11:::1;:18:::0;;-1:-1:-1;;;;14473:18:0::1;-1:-1:-1::0;;;14473:18:0::1;::::0;;14422:77::o;18581:167::-;18649:7;18676:64;18717:22;:20;:22::i;:::-;18699:4;;-1:-1:-1;;;;;18699:4:0;8557:7;8575:18;;;:9;:18;;;;;;18676:36;;18689:22;;18709:1;;18689:15;:19;;:22::i;:::-;18676:8;;:12;:36::i;:::-;:40;;:64::i;13284:203::-;13413:20;;13373:21;;-1:-1:-1;;;;;13413:20:0;13405:74;13475:3;13444:28;13456:16;13373:21;13444:28;:::i;:::-;:34;;;;:::i;:::-;13405:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13342:145;13284:203;:::o;18078:155::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;18169:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18169:22:0::1;-1:-1:-1::0;;;;18169:22:0;;::::1;::::0;;;::::1;::::0;;;18202:13:::1;:23:::0;18078:155::o;18241:178::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;18334:15:::1;:25:::0;;;;18370:26:::1;:41:::0;18241:178::o;13891:310::-;14013:10;13972:4;13997:27;;;:15;:27;;;;;;;;13989:36;;;;;;14036:11;14033:95;;14072:44;;-1:-1:-1;;;14072:44:0;;14110:4;14072:44;;;3903:51:1;-1:-1:-1;;;;;14072:29:0;;;;;3876:18:1;;14072:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14063:53;;14033:95;14145:48;;-1:-1:-1;;;14145:48:0;;14174:10;14145:48;;;8253:51:1;8320:18;;;8313:34;;;-1:-1:-1;;;;;14145:28:0;;;;;8226:18:1;;14145:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3246:244::-;3003:6;;-1:-1:-1;;;;;3003:6:0;2313:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3335:22:0;::::1;3327:73;;;::::0;-1:-1:-1;;;3327:73:0;;8810:2:1;3327:73:0::1;::::0;::::1;8792:21:1::0;8849:2;8829:18;;;8822:30;8888:34;8868:18;;;8861:62;-1:-1:-1;;;8939:18:1;;;8932:36;8985:19;;3327:73:0::1;8608:402:1::0;3327:73:0::1;3437:6;::::0;;3416:38:::1;::::0;-1:-1:-1;;;;;3416:38:0;;::::1;::::0;3437:6;::::1;::::0;3416:38:::1;::::0;::::1;3465:6;:17:::0;;-1:-1:-1;;;;;;3465:17:0::1;-1:-1:-1::0;;;;;3465:17:0;;;::::1;::::0;;;::::1;::::0;;3246:244::o;675:250::-;733:7;757:6;753:47;;-1:-1:-1;787:1:0;780:8;;753:47;812:9;824:5;828:1;824;:5;:::i;:::-;812:17;-1:-1:-1;857:1:0;848:5;852:1;812:17;848:5;:::i;:::-;:10;840:56;;;;-1:-1:-1;;;840:56:0;;9217:2:1;840:56:0;;;9199:21:1;9256:2;9236:18;;;9229:30;9295:34;9275:18;;;9268:62;-1:-1:-1;;;9346:18:1;;;9339:31;9387:19;;840:56:0;9015:397:1;931:132:0;989:7;1016:39;1020:1;1023;1016:39;;;;;;;;;;;;;;;;;:3;:39::i;477:192::-;563:7;599:12;591:6;;;;583:29;;;;-1:-1:-1;;;583:29:0;;;;;;;;:::i;:::-;-1:-1:-1;623:9:0;635:5;639:1;635;:5;:::i;:::-;623:17;477:192;-1:-1:-1;;;;;477:192:0:o;10075:1429::-;10187:6;;10167:4;;10187:6;;10184:63;;;10203:41;10218:6;10226:9;10237:6;10203:14;:41::i;:::-;10196:48;;;;10184:63;-1:-1:-1;;;;;10263:22:0;;;;;;:14;:22;;;;;;;;10262:23;:53;;;;-1:-1:-1;;;;;;10290:25:0;;;;;;:14;:25;;;;;;;;10289:26;10262:53;10259:140;;;10339:11;;-1:-1:-1;;;10339:11:0;;;;10331:43;;;;-1:-1:-1;;;10331:43:0;;9749:2:1;10331:43:0;;;9731:21:1;9788:2;9768:18;;;9761:30;-1:-1:-1;;;9807:18:1;;;9800:50;9867:18;;10331:43:0;9547:344:1;10331:43:0;10446:13;;;;10443:93;;;-1:-1:-1;;;;;10484:21:0;;;;;;:13;:21;;;;;;;;10483:22;10475:45;;;;-1:-1:-1;;;10475:45:0;;10098:2:1;10475:45:0;;;10080:21:1;10137:2;10117:18;;;10110:30;-1:-1:-1;;;10156:18:1;;;10149:41;10207:18;;10475:45:0;9896:335:1;10475:45:0;-1:-1:-1;;;;;10553:22:0;;;;;;:14;:22;;;;;;;;10552:23;:53;;;;-1:-1:-1;;;;;;10579:26:0;;10600:4;10579:26;;10552:53;:84;;;;-1:-1:-1;10631:4:0;;-1:-1:-1;;;;;10610:26:0;;;10631:4;;10610:26;;10552:84;:105;;;;-1:-1:-1;10653:4:0;;-1:-1:-1;;;;;10640:17:0;;;10653:4;;10640:17;;10552:105;:137;;;;-1:-1:-1;10674:15:0;;-1:-1:-1;;;;;10661:28:0;;;10674:15;;10661:28;;10552:137;:174;;;;-1:-1:-1;10706:20:0;;-1:-1:-1;;;;;10693:33:0;;;10706:20;;10693:33;;10552:174;:205;;;;-1:-1:-1;;;;;;10731:26:0;;;;;;:15;:26;;;;;;;;10730:27;10552:205;10548:397;;;-1:-1:-1;;;;;8575:18:0;;10773;8575;;;:9;:18;;;;;;10862:15;;10838:19;10851:6;8575:18;10838:19;:::i;:::-;10837:40;;10829:114;;;;-1:-1:-1;;;10829:114:0;;10571:2:1;10829:114:0;;;10553:21:1;10610:2;10590:18;;;10583:30;10649:34;10629:18;;;10622:62;10720:32;10700:18;;;10693:60;10770:19;;10829:114:0;10369:426:1;10829:114:0;10758:187;10548:397;10998:28;11011:6;11019;10998:12;:28::i;:::-;11043:16;:14;:16::i;:::-;11040:35;;;11062:10;:8;:10::i;:::-;11155:53;;;;;;;;;;;-1:-1:-1;;;11155:53:0;;;;;;;;-1:-1:-1;;;;;11155:17:0;;-1:-1:-1;11155:17:0;;;:9;:17;;;;;;;;:53;;11177:6;;11155:21;:53::i;:::-;-1:-1:-1;;;;;11135:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11247:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11270:22:0;;;;;;:11;:22;;;;;;;;11247:45;11246:93;;11305:34;11313:6;11321;11329:9;11305:7;:34::i;:::-;11246:93;;;11296:6;11246:93;-1:-1:-1;;;;;11373:20:0;;;;;;:9;:20;;;;;;11221:118;;-1:-1:-1;11373:40:0;;11221:118;11373:24;:40::i;:::-;-1:-1:-1;;;;;11350:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11431:43;;;;;;-1:-1:-1;;;;;;;;;;;11431:43:0;;;11459:14;160:25:1;;148:2;133:18;;14:177;11431:43:0;;;;;;;;-1:-1:-1;11492:4:0;;10075:1429;-1:-1:-1;;;;10075:1429:0:o;335:136::-;393:7;420:43;424:1;427;420:43;;;;;;;;;;;;;;;;;:3;:43::i;14517:1881::-;6928:6;:13;;-1:-1:-1;;6928:13:0;6937:4;6928:13;;;14612:15:::1;::::0;14629:26:::1;::::0;6928:6;;14596:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14663:12;;14596:79;;;14659:1;14596:79;14566:109;;14686:23;14712:59;14769:1;14712:52;14755:8;;14712:38;14730:19;14712:13;;:17;;:38;;;;:::i;:59::-;14686:85;;14782:20;14805:34;14823:15;14805:13;;:17;;:34;;;;:::i;:::-;14876:16;::::0;;14890:1:::1;14876:16:::0;;;;;::::1;::::0;;14782:57;;-1:-1:-1;14852:21:0::1;::::0;14876:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14876:16:0::1;14852:40;;14921:4;14903;14908:1;14903:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14903:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14947:4:::1;::::0;14937:7;;14947:4;::::1;::::0;14937;;14947;;14937:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14937:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15022:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15022:188:0;;14988:21:::1;::::0;15022:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15094:12;;14964:21:::1;::::0;15137:4;;15164::::1;::::0;15184:15:::1;::::0;15022:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15223:17;15243:40;15269:13;15243:21;:25;;:40;;;;:::i;:::-;15223:60:::0;-1:-1:-1;15296:19:0::1;15318:40;15331:26;:19:::0;15355:1:::1;15331:23;:26::i;:::-;15318:8;::::0;;:12:::1;:40::i;:::-;15296:62:::0;-1:-1:-1;15379:26:0::1;15408:58;15464:1;15408:51;15296:62:::0;15408:51;:9;15422:19;15408:13:::1;:34::i;:58::-;15379:87;;15477:26;15506:44;15538:11;15506:27;15520:12;;15506:9;:13;;:27;;;;:::i;:44::-;15477:73;;15561:26;15590:44;15622:11;15590:27;15604:12;;15590:9;:13;;:27;;;;:::i;:44::-;15561:73;;15645:20;15668:38;15694:11;15668:21;15682:6;;15668:9;:13;;:21;;;;:::i;:38::-;15748:20;::::0;15740:65:::1;::::0;15645:61;;-1:-1:-1;15720:15:0::1;::::0;-1:-1:-1;;;;;15748:20:0;;::::1;::::0;15782:18;;15720:15;15740:65;15720:15;15740:65;15782:18;15748:20;15740:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15840:14:0::1;::::0;15832:53:::1;::::0;15719:86;;-1:-1:-1;;;;;;15840:14:0::1;::::0;15868:12;;15832:53:::1;::::0;;;15868:12;15840:14;15832:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15920:20:0::1;::::0;15912:65:::1;::::0;15816:69;;-1:-1:-1;;;;;;15920:20:0::1;::::0;15954:18;;15912:65:::1;::::0;;;15954:18;15920:20;15912:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16011:5:0::1;::::0;-1:-1:-1;;16032:19:0;;;-1:-1:-1;16029:362:0::1;;16067:6;::::0;16241:21:::1;::::0;16067:244:::1;::::0;-1:-1:-1;;;16067:244:0;;16143:4:::1;16067:244;::::0;::::1;12468:34:1::0;12518:18;;;12511:34;;;16067:6:0::1;12561:18:1::0;;;12554:34;;;12604:18;;;12597:34;-1:-1:-1;;;;;16241:21:0;;::::1;12647:19:1::0;;;12640:44;16281:15:0::1;12700:19:1::0;;;12693:35;16067:6:0;::::1;::::0;:22:::1;::::0;16097:18;;12402:19:1;;16067:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16331:48:0::1;::::0;;13224:25:1;;;13280:2;13265:18;;13258:34;;;16331:48:0::1;::::0;-1:-1:-1;13197:18:1;16331:48:0::1;;;;;;;16029:362;-1:-1:-1::0;;6946:6:0;:14;;-1:-1:-1;;6946:14:0;;;-1:-1:-1;;;;;;;;;;14517:1881:0:o;148:181::-;206:7;;238:5;242:1;238;:5;:::i;:::-;226:17;;267:1;262;:6;;254:46;;;;-1:-1:-1;;;254:46:0;;13505:2:1;254:46:0;;;13487:21:1;13544:2;13524:18;;;13517:30;13583:29;13563:18;;;13556:57;13630:18;;254:46:0;13303:351:1;1069:189:0;1155:7;1190:12;1183:5;1175:28;;;;-1:-1:-1;;;1175:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1214:9:0;1226:5;1230:1;1226;:5;:::i;11516:330::-;11646:53;;;;;;;;;;;-1:-1:-1;;;11646:53:0;;;;;;;;-1:-1:-1;;;;;11646:17:0;;11609:4;11646:17;;;:9;:17;;;;;;;:53;;11668:6;;11646:21;:53::i;:::-;-1:-1:-1;;;;;11626:17:0;;;;;;;:9;:17;;;;;;:73;;;;11733:20;;;;;;;:32;;11758:6;11733:24;:32::i;:::-;-1:-1:-1;;;;;11710:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11781:35;;;;;;-1:-1:-1;;;;;;;;;;;11781:35:0;;;11809:6;160:25:1;;148:2;133:18;;14:177;11781:35:0;;;;;;;;-1:-1:-1;11834:4:0;11516:330;;;;;:::o;11854:166::-;11951:12;;11941:6;:22;;:49;;;-1:-1:-1;;;;;;11967:23:0;;;;;;:15;:23;;;;;;;;11941:49;11933:79;;;;-1:-1:-1;;;11933:79:0;;13861:2:1;11933:79:0;;;13843:21:1;13900:2;13880:18;;;13873:30;-1:-1:-1;;;13919:18:1;;;13912:47;13976:18;;11933:79:0;13659:341:1;11933:79:0;11854:166;;:::o;13079:197::-;13166:4;;13128;;-1:-1:-1;;;;;13166:4:0;13152:10;:18;;;;:38;;-1:-1:-1;13184:6:0;;;;13183:7;13152:38;:62;;;;-1:-1:-1;13203:11:0;;-1:-1:-1;;;13203:11:0;;;;13152:62;:116;;;;-1:-1:-1;;13255:13:0;;13245:4;13227:24;;;;:9;:24;;;;;;:41;;;13079:197::o;12150:921::-;12284:15;;12328:4;;12236:7;;12284:15;-1:-1:-1;;;;;12315:17:0;;;12328:4;;12315:17;12312:142;;;-1:-1:-1;12359:11:0;;12312:142;;;12401:4;;-1:-1:-1;;;;;12391:14:0;;;12401:4;;12391:14;12388:66;;;-1:-1:-1;12432:10:0;;12388:66;12466:17;12486:59;12524:14;;12541:3;12524:20;;;;:::i;:::-;12486:33;12511:7;12486:20;12497:8;;12486:6;:10;;:20;;;;:::i;:59::-;12466:79;;12556:18;12577:36;12604:8;;12577:22;12591:7;;12577:9;:13;;:22;;;;:::i;:36::-;12556:57;-1:-1:-1;12624:22:0;12649:25;:9;12556:57;12649:13;:25::i;:::-;12732:4;12714:24;;;;:9;:24;;;;;;12624:50;;-1:-1:-1;12714:44:0;;12624:50;12714:28;:44::i;:::-;12705:4;12687:24;;;;:9;:24;;;;;;:71;;;;12808:15;;-1:-1:-1;;;;;12808:15:0;12798:26;;;;:42;;12829:10;12798:30;:42::i;:::-;12779:15;;-1:-1:-1;;;;;12779:15:0;;;12769:26;;;;:9;:26;;;;;;;;;:71;;;;12856:47;160:25:1;;;12881:4:0;;12856:47;;;;-1:-1:-1;;;;;;;;;;;12856:47:0;133:18:1;12856:47:0;;;;;;;12927:14;;12924:99;;12979:15;;12962:45;;160:25:1;;;-1:-1:-1;;;;;12979:15:0;;;;12962:45;;;-1:-1:-1;;;;;;;;;;;12962:45:0;148:2:1;133:18;12962:45:0;;;;;;;12924:99;13042:21;:6;13053:9;13042:10;:21::i;:::-;13035:28;12150:921;-1:-1:-1;;;;;;;;12150:921:0:o;196:597: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;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;990:173::-;1058:20;;-1:-1:-1;;;;;1107:31:1;;1097:42;;1087:70;;1153:1;1150;1143:12;1087:70;990:173;;;:::o;1168:254::-;1236:6;1244;1297:2;1285:9;1276:7;1272:23;1268:32;1265:52;;;1313:1;1310;1303:12;1265:52;1336:29;1355:9;1336:29;:::i;:::-;1326:39;1412:2;1397:18;;;;1384:32;;-1:-1:-1;;;1168:254:1:o;1427:248::-;1495:6;1503;1556:2;1544:9;1535:7;1531:23;1527:32;1524:52;;;1572:1;1569;1562:12;1524:52;-1:-1:-1;;1595:23:1;;;1665:2;1650:18;;;1637:32;;-1:-1:-1;1427:248:1:o;1680:328::-;1757:6;1765;1773;1826:2;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1865:29;1884:9;1865:29;:::i;:::-;1855:39;;1913:38;1947:2;1936:9;1932:18;1913:38;:::i;:::-;1903:48;;1998:2;1987:9;1983:18;1970:32;1960:42;;1680:328;;;;;:::o;2013:118::-;2099:5;2092:13;2085:21;2078:5;2075:32;2065:60;;2121:1;2118;2111:12;2136:241;2192:6;2245:2;2233:9;2224:7;2220:23;2216:32;2213:52;;;2261:1;2258;2251:12;2213:52;2300:9;2287:23;2319:28;2341:5;2319:28;:::i;2571:484::-;2666:6;2674;2682;2690;2698;2751:3;2739:9;2730:7;2726:23;2722:33;2719:53;;;2768:1;2765;2758:12;2719:53;2791:29;2810:9;2791:29;:::i;:::-;2781:39;;2839:38;2873:2;2862:9;2858:18;2839:38;:::i;:::-;2829:48;;2896:38;2930:2;2919:9;2915:18;2896:38;:::i;:::-;2886:48;;2953:38;2987:2;2976:9;2972:18;2953:38;:::i;:::-;2943:48;;3010:39;3044:3;3033:9;3029:19;3010:39;:::i;:::-;3000:49;;2571:484;;;;;;;;:::o;3060:316::-;3137:6;3145;3153;3206:2;3194:9;3185:7;3181:23;3177:32;3174:52;;;3222:1;3219;3212:12;3174:52;-1:-1:-1;;3245:23:1;;;3315:2;3300:18;;3287:32;;-1:-1:-1;3366:2:1;3351:18;;;3338:32;;3060:316;-1:-1:-1;3060:316:1:o;3381:186::-;3440:6;3493:2;3481:9;3472:7;3468:23;3464:32;3461:52;;;3509:1;3506;3499:12;3461:52;3532:29;3551:9;3532:29;:::i;3572:180::-;3631:6;3684:2;3672:9;3663:7;3659:23;3655:32;3652:52;;;3700:1;3697;3690:12;3652:52;-1:-1:-1;3723:23:1;;3572:180;-1:-1:-1;3572:180:1:o;3965:315::-;4030:6;4038;4091:2;4079:9;4070:7;4066:23;4062:32;4059:52;;;4107:1;4104;4097:12;4059:52;4130:29;4149:9;4130:29;:::i;:::-;4120:39;;4209:2;4198:9;4194:18;4181:32;4222:28;4244:5;4222:28;:::i;:::-;4269:5;4259:15;;;3965:315;;;;;:::o;4285:523::-;4389:6;4397;4405;4413;4421;4429;4482:3;4470:9;4461:7;4457:23;4453:33;4450:53;;;4499:1;4496;4489:12;4450:53;-1:-1:-1;;4522:23:1;;;4592:2;4577:18;;4564:32;;-1:-1:-1;4643:2:1;4628:18;;4615:32;;4694:2;4679:18;;4666:32;;-1:-1:-1;4745:3:1;4730:19;;4717:33;;-1:-1:-1;4797:3:1;4782:19;4769:33;;-1:-1:-1;4285:523:1;-1:-1:-1;4285:523:1:o;4813:750::-;4905:6;4913;4921;4974:2;4962:9;4953:7;4949:23;4945:32;4942:52;;;4990:1;4987;4980:12;4942:52;5030:9;5017:23;5059:18;5100:2;5092:6;5089:14;5086:34;;;5116:1;5113;5106:12;5086:34;5154:6;5143:9;5139:22;5129:32;;5199:7;5192:4;5188:2;5184:13;5180:27;5170:55;;5221:1;5218;5211:12;5170:55;5261:2;5248:16;5287:2;5279:6;5276:14;5273:34;;;5303:1;5300;5293:12;5273:34;5358:7;5351:4;5341:6;5338:1;5334:14;5330:2;5326:23;5322:34;5319:47;5316:67;;;5379:1;5376;5369:12;5316:67;5410:4;5402:13;;;;-1:-1:-1;5434:6:1;-1:-1:-1;;5475:20:1;;5462:34;5505:28;5462:34;5505:28;:::i;:::-;5552:5;5542:15;;;4813:750;;;;;:::o;5568:260::-;5636:6;5644;5697:2;5685:9;5676:7;5672:23;5668:32;5665:52;;;5713:1;5710;5703:12;5665:52;5736:29;5755:9;5736:29;:::i;:::-;5726:39;;5784:38;5818:2;5807:9;5803:18;5784:38;:::i;:::-;5774:48;;5568:260;;;;;:::o;5833:309::-;5898:6;5906;5959:2;5947:9;5938:7;5934:23;5930:32;5927:52;;;5975:1;5972;5965:12;5927:52;6014:9;6001:23;6033:28;6055:5;6033:28;:::i;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;6866:217;6906:1;6932;6922:132;;6976:10;6971:3;6967:20;6964:1;6957:31;7011:4;7008:1;7001:15;7039:4;7036:1;7029:15;6922:132;-1:-1:-1;7068:9:1;;6866:217::o;7088:168::-;7128:7;7194:1;7190;7186:6;7182:14;7179:1;7176:21;7171:1;7164:9;7157:17;7153:45;7150:71;;;7201:18;;:::i;:::-;-1:-1:-1;7241:9:1;;7088:168::o;7618:127::-;7679:10;7674:3;7670:20;7667:1;7660:31;7710:4;7707:1;7700:15;7734:4;7731:1;7724:15;7750:135;7789:3;-1:-1:-1;;7810:17:1;;7807:43;;;7830:18;;:::i;:::-;-1:-1:-1;7877:1:1;7866:13;;7750:135::o;7890:184::-;7960:6;8013:2;8001:9;7992:7;7988:23;7984:32;7981:52;;;8029:1;8026;8019:12;7981:52;-1:-1:-1;8052:16:1;;7890:184;-1:-1:-1;7890:184:1:o;8358:245::-;8425:6;8478:2;8466:9;8457:7;8453:23;8449:32;8446:52;;;8494:1;8491;8484:12;8446:52;8526:9;8520:16;8545:28;8567:5;8545:28;:::i;9417:125::-;9457:4;9485:1;9482;9479:8;9476:34;;;9490:18;;:::i;:::-;-1:-1:-1;9527:9:1;;9417:125::o;10236:128::-;10276:3;10307:1;10303:6;10300:1;10297:13;10294:39;;;10313:18;;:::i;:::-;-1:-1:-1;10349:9:1;;10236:128::o;10932:980::-;11194:4;11242:3;11231:9;11227:19;11273:6;11262:9;11255:25;11299:2;11337:6;11332:2;11321:9;11317:18;11310:34;11380:3;11375:2;11364:9;11360:18;11353:31;11404:6;11439;11433:13;11470:6;11462;11455:22;11508:3;11497:9;11493:19;11486:26;;11547:2;11539:6;11535:15;11521:29;;11568:1;11578:195;11592:6;11589:1;11586:13;11578:195;;;11657:13;;-1:-1:-1;;;;;11653:39:1;11641:52;;11748:15;;;;11713:12;;;;11689:1;11607:9;11578:195;;;-1:-1:-1;;;;;;;11829:32:1;;;;11824:2;11809:18;;11802:60;-1:-1:-1;;;11893:3:1;11878:19;11871:35;11790:3;10932:980;-1:-1:-1;;;10932:980:1:o;12739:306::-;12827:6;12835;12843;12896:2;12884:9;12875:7;12871:23;12867:32;12864:52;;;12912:1;12909;12902:12;12864:52;12941:9;12935:16;12925:26;;12991:2;12980:9;12976:18;12970:25;12960:35;;13035:2;13024:9;13020:18;13014:25;13004:35;;12739:306;;;;;:::o

Swarm Source

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