ETH Price: $2,524.10 (-0.01%)

Token

Dog Face (U(´ᴥ`)U)
 

Overview

Max Total Supply

1,000,000,000,000 U(´ᴥ`)U

Holders

232

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,102,868,367.715445505 U(´ᴥ`)U

Value
$0.00
0xbfde3e756b5d9e9282974a8414d1504ab7b01311
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:
DOGFACE

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 400 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-15
*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

    string constant _name = "Dog Face";
    string constant _symbol = unicode"U(´ᴥ`)U";
    uint8 constant _decimals = 9; 
  

    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;

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

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private utilityFee      = 1;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

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

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

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTx(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 (!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.");}

       
        checkTxLimit(sender, amount); 

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

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

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

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

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

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

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

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

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, 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(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

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

    }

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

    }

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

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

    function enableTrading() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 1000;
        sellMultiplier = 1500;
        transferMultiplier = 1000;
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

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

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

    function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        utilityFee = _utilityFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

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

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

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

  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","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":"swapback","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006d6565b620000439064e8d4a51000620006e7565b6005556200007d6064620000696001600554620004a660201b620012ab1790919060201c565b6200053d60201b6200132d1790919060201c565b600655620000a36064620000696001600554620004a660201b620012ab1790919060201c565b6007556001600c556003600d556001600e556000600f556000601055601054600e54600c54600d54600f54620000da919062000701565b620000e6919062000701565b620000f2919062000701565b620000fe919062000701565b60115560646012819055601381905560148181556103e8601555601e55601f556022805461ffff60a01b1916600160a81b17905560055461271090620001479061012c620006e7565b62000153919062000717565b6023553480156200016357600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024491906200073a565b600280546001600160a01b0319166001600160a01b03928316179055602080546040805163c45a015560e01b81529051919093169263c45a01559260048083019391928290030181865afa158015620002a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c791906200073a565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033f91906200073a565b602280546001600160a01b039283166001600160a01b03199182168117835560218054831690911790553060008181526009602090815260408083208254881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673f99ef050c2d8155347fe1b137cd08a813f5557251790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b5565b600082600003620004ba5750600062000537565b6000620004c88385620006e7565b905082620004d7858362000717565b14620005345760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058760201b60201c565b60008183620005ab5760405162461bcd60e51b81526004016200052b919062000765565b506000620005ba848662000717565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200061a578160001904821115620005fe57620005fe620005c3565b808516156200060c57918102915b93841c9390800290620005de565b509250929050565b600082620006335750600162000537565b81620006425750600062000537565b81600181146200065b5760028114620006665762000686565b600191505062000537565b60ff8411156200067a576200067a620005c3565b50506001821b62000537565b5060208310610133831016604e8410600b8410161715620006ab575081810a62000537565b620006b78383620005d9565b8060001904821115620006ce57620006ce620005c3565b029392505050565b60006200053460ff84168362000622565b8082028115828204841417620005375762000537620005c3565b80820180821115620005375762000537620005c3565b6000826200073557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074d57600080fd5b81516001600160a01b03811681146200053457600080fd5b600060208083528351808285015260005b81811015620007945785810183015185820160400152820162000776565b506000604082860101526040601f19601f8301168501019250505092915050565b61238e80620007c56000396000f3fe60806040526004361061025a5760003560e01c8063893d20e811610149578063b2bdfa7b116100c6578063d51ed1c81161008a578063f2fde38b11610064578063f2fde38b14610758578063f6a78e1714610778578063f887ea401461078d57600080fd5b8063d51ed1c8146106d2578063d78e139d146106f2578063dd62ed3e1461071257600080fd5b8063b2bdfa7b1461063d578063bc3371821461065d578063ccf8c0361461067d578063cec10c111461069d578063d148b74c146106bd57600080fd5b806395d89b411161010d57806395d89b411461058a5780639acb773e146105bd5780639f11080e146105dd578063a8aa1b31146105fd578063a9059cbb1461061d57600080fd5b8063893d20e8146104f05780638a4068dd146105225780638a8c523c146105375780638da5cb5b1461054c578063918924761461056a57600080fd5b80632b112e49116101d7578063715018a61161019b578063715018a61461046f57806377b54bad1461048457806378109e54146104a45780637bae52e1146104ba5780637d1db4a5146104da57600080fd5b80632b112e49146103c7578063313ce567146103dc5780635d0044ca146103f85780636ddd17131461041857806370a082311461043957600080fd5b8063095ea7b31161021e578063095ea7b31461033c5780631161ae391461035c57806318160ddd1461037c5780631df4ccfc1461039157806323b872dd146103a757600080fd5b806304368f65146102665780630445b667146102885780630621472c146102b157806306fdde03146102e157806308fd3d051461031b57600080fd5b3661026157005b600080fd5b34801561027257600080fd5b50610286610281366004611f56565b6107ad565b005b34801561029457600080fd5b5061029e60235481565b6040519081526020015b60405180910390f35b3480156102bd57600080fd5b506102d16102cc366004611f9e565b61081c565b60405190151581526020016102a8565b3480156102ed57600080fd5b50604080518082019091526008815267446f67204661636560c01b60208201525b6040516102a89190611fb9565b34801561032757600080fd5b506022546102d190600160a01b900460ff1681565b34801561034857600080fd5b506102d1610357366004612007565b610830565b34801561036857600080fd5b506102d1610377366004612023565b61089c565b34801561038857600080fd5b5060055461029e565b34801561039d57600080fd5b5061029e60115481565b3480156103b357600080fd5b506102d16103c2366004612045565b6108b0565b3480156103d357600080fd5b5061029e610979565b3480156103e857600080fd5b50604051600981526020016102a8565b34801561040457600080fd5b50610286610413366004612081565b6109cb565b34801561042457600080fd5b506022546102d190600160a81b900460ff1681565b34801561044557600080fd5b5061029e610454366004611f9e565b6001600160a01b031660009081526008602052604090205490565b34801561047b57600080fd5b50610286610a52565b34801561049057600080fd5b506102d161049f366004612007565b610ae4565b3480156104b057600080fd5b5061029e60075481565b3480156104c657600080fd5b506102866104d536600461209a565b610be4565b3480156104e657600080fd5b5061029e60065481565b3480156104fc57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a8565b34801561052e57600080fd5b50610286610c8b565b34801561054357600080fd5b50610286610cd6565b34801561055857600080fd5b506000546001600160a01b031661050a565b34801561057657600080fd5b506102866105853660046120ff565b610d44565b34801561059657600080fd5b5060408051808201909152600a8152695528c2b4e1b4a560295560b01b602082015261030e565b3480156105c957600080fd5b506102866105d8366004612142565b610e28565b3480156105e957600080fd5b506102866105f8366004612023565b610e9b565b34801561060957600080fd5b5060225461050a906001600160a01b031681565b34801561062957600080fd5b506102d1610638366004612007565b610eee565b34801561064957600080fd5b5060005461050a906001600160a01b031681565b34801561066957600080fd5b50610286610678366004612081565b610efb565b34801561068957600080fd5b50610286610698366004612142565b610f82565b3480156106a957600080fd5b506102866106b8366004612179565b611008565b3480156106c957600080fd5b50610286611061565b3480156106de57600080fd5b5061029e6106ed366004612081565b6110b3565b3480156106fe57600080fd5b5061028661070d366004612081565b6110fa565b34801561071e57600080fd5b5061029e61072d3660046121a5565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561076457600080fd5b50610286610773366004611f9e565b61114e565b34801561078457600080fd5b50610286611256565b34801561079957600080fd5b5060205461050a906001600160a01b031681565b6000546001600160a01b031633146107fa5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064015b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061082a82600019610830565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061088b9086815260200190565b60405180910390a350600192915050565b6000826108a8836110b3565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461096457604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461093f91849061136f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61096f8484846113a9565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546109c6906003546001600160a01b03166000908152600860205260409020546109c0906005549061172a565b9061172a565b905090565b6000546001600160a01b03163314610a135760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6103e8600554610a2391906121ee565b6007541015610a3157600080fd5b6103e881600554610a429190612210565b610a4c91906121ee565b60075550565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610b0057600080fd5b81600003610b73576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b709190612227565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109729190612240565b6000546001600160a01b03163314610c2c5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b336000908152600b602052604090205460ff16610ca757600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610cd3573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610d1e5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6022805460ff60a01b1916600160a01b1790556103e860148190556105dc601355601555565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b600c869055600f859055600d849055600e8390556010829055610dbd82610db7858188818c8c61176c565b9061176c565b6011556012819055610dd06005826121ee565b60115410610e205760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107f1565b505050505050565b6000546001600160a01b03163314610e705760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ee35760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b601e91909155601f55565b60006109723384846113a9565b6000546001600160a01b03163314610f435760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6103e8600554610f5391906121ee565b6006541015610f6157600080fd5b6103e881600554610f729190612210565b610f7c91906121ee565b60065550565b6000546001600160a01b03163314610fca5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031633146110505760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b601391909155601491909155601555565b6000546001600160a01b031633146110a95760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6110b16117cb565b565b600061082a6110c0610979565b6022546001600160a01b03166000908152600860205260409020546110f4906110ed906002905b906112ab565b85906112ab565b9061132d565b60195447906001600160a01b03166108fc60646111178585612210565b61112191906121ee565b6040518115909202916000818181858888f19350505050158015611149573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111965760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6001600160a01b0381166111fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461129e5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6005546007819055600655565b6000826000036112bd5750600061082a565b60006112c98385612210565b9050826112d685836121ee565b146109725760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f1565b600061097283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bb4565b600081848411156113935760405162461bcd60e51b81526004016107f19190611fb9565b5060006113a0848661225d565b95945050505050565b60245460009060ff16156113c9576113c2848484611be2565b9050610972565b6001600160a01b03841660009081526001602052604090205460ff1615801561140b57506001600160a01b03831660009081526001602052604090205460ff16155b1561146957602254600160a01b900460ff166114695760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206e6f74206f70656e2079657400000000000000000000000060448201526064016107f1565b6001600160a01b03841660009081526001602052604090205460ff1615801561149b57506001600160a01b0383163014155b80156114b557506003546001600160a01b03848116911614155b80156114cf57506022546001600160a01b03848116911614155b80156114e95750601a546001600160a01b03848116911614155b801561150357506017546001600160a01b03848116911614155b801561152857506001600160a01b0383166000908152600b602052604090205460ff16155b156115c9576001600160a01b0383166000908152600860205260409020546007546115538483612270565b11156115c75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107f1565b505b6115d38483611cc8565b6115db611d41565b156115e8576115e86117cb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461163a91849061136f565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061168757506001600160a01b0384166000908152600a602052604090205460ff165b61169b57611696858486611d97565b61169d565b825b6001600160a01b0385166000908152600860205260409020549091506116c3908261176c565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117179085815260200190565b60405180910390a3506001949350505050565b600061097283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061136f565b6000806117798385612270565b9050838110156109725760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f1565b6024805460ff19166001179055601e54601f546000916117ea9161089c565b6117f657600c546117f9565b60005b9050600061181d60026110f46011546110f4866023546112ab90919063ffffffff16565b905060006118368260235461172a90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061187057611870612283565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106118a1576118a1612283565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac947906118ed908690600090879030904290600401612299565b600060405180830381600087803b15801561190757600080fd5b505af115801561191b573d6000803e3d6000fd5b505050506000611934824761172a90919063ffffffff16565b9050600061194f61194688600261132d565b6011549061172a565b9050600061196460026110f48481878d6112ab565b90506000611981836110f4600d54876112ab90919063ffffffff16565b9050600061199e846110f4600f54886112ab90919063ffffffff16565b905060006119bb856110f4600e54896112ab90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611a0d576040519150601f19603f3d011682016040523d82523d6000602084013e611a12565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a62576040519150601f19603f3d011682016040523d82523d6000602084013e611a67565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611ab7576040519150601f19603f3d011682016040523d82523d6000602084013e611abc565b606091505b5060009250508b159050611b9c5760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b3a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b5f919061230a565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b60008183611bd55760405162461bcd60e51b81526004016107f19190611fb9565b5060006113a084866121ee565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c3391849061136f565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c62908361176c565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb69086815260200190565b60405180910390a35060019392505050565b60065481111580611cf157506001600160a01b0382166000908152600b602052604090205460ff165b611d3d5760405162461bcd60e51b815260206004820152601160248201527f5458204c696d697420457863656564656400000000000000000000000000000060448201526064016107f1565b5050565b6022546000906001600160a01b03163314801590611d62575060245460ff16155b8015611d775750602254600160a81b900460ff165b80156109c657505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0390811690841603611dbd5750601354611dd8565b6022546001600160a01b0390811690861603611dd857506014545b6000611e056012546064611dec9190612210565b6110f4846110e76011548a6112ab90919063ffffffff16565b90506000611e246011546110f4601054856112ab90919063ffffffff16565b90506000611e32838361172a565b30600090815260086020526040902054909150611e4f908261176c565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611e7d908361176c565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38115611f3257600554611ee9908361172a565b6005556004546040518381526001600160a01b03918216918a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611f3c878461172a565b98975050505050505050565b8015158114610cd357600080fd5b60008060408385031215611f6957600080fd5b8235611f7481611f48565b946020939093013593505050565b80356001600160a01b0381168114611f9957600080fd5b919050565b600060208284031215611fb057600080fd5b61097282611f82565b600060208083528351808285015260005b81811015611fe657858101830151858201604001528201611fca565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561201a57600080fd5b611f7483611f82565b6000806040838503121561203657600080fd5b50508035926020909101359150565b60008060006060848603121561205a57600080fd5b61206384611f82565b925061207160208501611f82565b9150604084013590509250925092565b60006020828403121561209357600080fd5b5035919050565b600080600080600060a086880312156120b257600080fd5b6120bb86611f82565b94506120c960208701611f82565b93506120d760408701611f82565b92506120e560608701611f82565b91506120f360808701611f82565b90509295509295909350565b60008060008060008060c0878903121561211857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561215557600080fd5b61215e83611f82565b9150602083013561216e81611f48565b809150509250929050565b60008060006060848603121561218e57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156121b857600080fd5b6121c183611f82565b91506121cf60208401611f82565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261220b57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761082a5761082a6121d8565b60006020828403121561223957600080fd5b5051919050565b60006020828403121561225257600080fd5b815161097281611f48565b8181038181111561082a5761082a6121d8565b8082018082111561082a5761082a6121d8565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122e95784516001600160a01b0316835293830193918301916001016122c4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561231f57600080fd5b835192506020840151915060408401519050925092509256fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212208c7ec56c340bdcf1c609eeffd186227735144f1bdcc09505801061868ab52e6a64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061025a5760003560e01c8063893d20e811610149578063b2bdfa7b116100c6578063d51ed1c81161008a578063f2fde38b11610064578063f2fde38b14610758578063f6a78e1714610778578063f887ea401461078d57600080fd5b8063d51ed1c8146106d2578063d78e139d146106f2578063dd62ed3e1461071257600080fd5b8063b2bdfa7b1461063d578063bc3371821461065d578063ccf8c0361461067d578063cec10c111461069d578063d148b74c146106bd57600080fd5b806395d89b411161010d57806395d89b411461058a5780639acb773e146105bd5780639f11080e146105dd578063a8aa1b31146105fd578063a9059cbb1461061d57600080fd5b8063893d20e8146104f05780638a4068dd146105225780638a8c523c146105375780638da5cb5b1461054c578063918924761461056a57600080fd5b80632b112e49116101d7578063715018a61161019b578063715018a61461046f57806377b54bad1461048457806378109e54146104a45780637bae52e1146104ba5780637d1db4a5146104da57600080fd5b80632b112e49146103c7578063313ce567146103dc5780635d0044ca146103f85780636ddd17131461041857806370a082311461043957600080fd5b8063095ea7b31161021e578063095ea7b31461033c5780631161ae391461035c57806318160ddd1461037c5780631df4ccfc1461039157806323b872dd146103a757600080fd5b806304368f65146102665780630445b667146102885780630621472c146102b157806306fdde03146102e157806308fd3d051461031b57600080fd5b3661026157005b600080fd5b34801561027257600080fd5b50610286610281366004611f56565b6107ad565b005b34801561029457600080fd5b5061029e60235481565b6040519081526020015b60405180910390f35b3480156102bd57600080fd5b506102d16102cc366004611f9e565b61081c565b60405190151581526020016102a8565b3480156102ed57600080fd5b50604080518082019091526008815267446f67204661636560c01b60208201525b6040516102a89190611fb9565b34801561032757600080fd5b506022546102d190600160a01b900460ff1681565b34801561034857600080fd5b506102d1610357366004612007565b610830565b34801561036857600080fd5b506102d1610377366004612023565b61089c565b34801561038857600080fd5b5060055461029e565b34801561039d57600080fd5b5061029e60115481565b3480156103b357600080fd5b506102d16103c2366004612045565b6108b0565b3480156103d357600080fd5b5061029e610979565b3480156103e857600080fd5b50604051600981526020016102a8565b34801561040457600080fd5b50610286610413366004612081565b6109cb565b34801561042457600080fd5b506022546102d190600160a81b900460ff1681565b34801561044557600080fd5b5061029e610454366004611f9e565b6001600160a01b031660009081526008602052604090205490565b34801561047b57600080fd5b50610286610a52565b34801561049057600080fd5b506102d161049f366004612007565b610ae4565b3480156104b057600080fd5b5061029e60075481565b3480156104c657600080fd5b506102866104d536600461209a565b610be4565b3480156104e657600080fd5b5061029e60065481565b3480156104fc57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102a8565b34801561052e57600080fd5b50610286610c8b565b34801561054357600080fd5b50610286610cd6565b34801561055857600080fd5b506000546001600160a01b031661050a565b34801561057657600080fd5b506102866105853660046120ff565b610d44565b34801561059657600080fd5b5060408051808201909152600a8152695528c2b4e1b4a560295560b01b602082015261030e565b3480156105c957600080fd5b506102866105d8366004612142565b610e28565b3480156105e957600080fd5b506102866105f8366004612023565b610e9b565b34801561060957600080fd5b5060225461050a906001600160a01b031681565b34801561062957600080fd5b506102d1610638366004612007565b610eee565b34801561064957600080fd5b5060005461050a906001600160a01b031681565b34801561066957600080fd5b50610286610678366004612081565b610efb565b34801561068957600080fd5b50610286610698366004612142565b610f82565b3480156106a957600080fd5b506102866106b8366004612179565b611008565b3480156106c957600080fd5b50610286611061565b3480156106de57600080fd5b5061029e6106ed366004612081565b6110b3565b3480156106fe57600080fd5b5061028661070d366004612081565b6110fa565b34801561071e57600080fd5b5061029e61072d3660046121a5565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561076457600080fd5b50610286610773366004611f9e565b61114e565b34801561078457600080fd5b50610286611256565b34801561079957600080fd5b5060205461050a906001600160a01b031681565b6000546001600160a01b031633146107fa5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064015b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b600061082a82600019610830565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061088b9086815260200190565b60405180910390a350600192915050565b6000826108a8836110b3565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461096457604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461093f91849061136f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61096f8484846113a9565b90505b9392505050565b6004546001600160a01b03166000908152600860205260408120546109c6906003546001600160a01b03166000908152600860205260409020546109c0906005549061172a565b9061172a565b905090565b6000546001600160a01b03163314610a135760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6103e8600554610a2391906121ee565b6007541015610a3157600080fd5b6103e881600554610a429190612210565b610a4c91906121ee565b60075550565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610b0057600080fd5b81600003610b73576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b709190612227565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109729190612240565b6000546001600160a01b03163314610c2c5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b336000908152600b602052604090205460ff16610ca757600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610cd3573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610d1e5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6022805460ff60a01b1916600160a01b1790556103e860148190556105dc601355601555565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b600c869055600f859055600d849055600e8390556010829055610dbd82610db7858188818c8c61176c565b9061176c565b6011556012819055610dd06005826121ee565b60115410610e205760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107f1565b505050505050565b6000546001600160a01b03163314610e705760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ee35760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b601e91909155601f55565b60006109723384846113a9565b6000546001600160a01b03163314610f435760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6103e8600554610f5391906121ee565b6006541015610f6157600080fd5b6103e881600554610f729190612210565b610f7c91906121ee565b60065550565b6000546001600160a01b03163314610fca5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031633146110505760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b601391909155601491909155601555565b6000546001600160a01b031633146110a95760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6110b16117cb565b565b600061082a6110c0610979565b6022546001600160a01b03166000908152600860205260409020546110f4906110ed906002905b906112ab565b85906112ab565b9061132d565b60195447906001600160a01b03166108fc60646111178585612210565b61112191906121ee565b6040518115909202916000818181858888f19350505050158015611149573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111965760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6001600160a01b0381166111fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461129e5760405162461bcd60e51b8152602060048201819052602482015260008051602061233983398151915260448201526064016107f1565b6005546007819055600655565b6000826000036112bd5750600061082a565b60006112c98385612210565b9050826112d685836121ee565b146109725760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f1565b600061097283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bb4565b600081848411156113935760405162461bcd60e51b81526004016107f19190611fb9565b5060006113a0848661225d565b95945050505050565b60245460009060ff16156113c9576113c2848484611be2565b9050610972565b6001600160a01b03841660009081526001602052604090205460ff1615801561140b57506001600160a01b03831660009081526001602052604090205460ff16155b1561146957602254600160a01b900460ff166114695760405162461bcd60e51b815260206004820152601460248201527f54726164696e67206e6f74206f70656e2079657400000000000000000000000060448201526064016107f1565b6001600160a01b03841660009081526001602052604090205460ff1615801561149b57506001600160a01b0383163014155b80156114b557506003546001600160a01b03848116911614155b80156114cf57506022546001600160a01b03848116911614155b80156114e95750601a546001600160a01b03848116911614155b801561150357506017546001600160a01b03848116911614155b801561152857506001600160a01b0383166000908152600b602052604090205460ff16155b156115c9576001600160a01b0383166000908152600860205260409020546007546115538483612270565b11156115c75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107f1565b505b6115d38483611cc8565b6115db611d41565b156115e8576115e86117cb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461163a91849061136f565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061168757506001600160a01b0384166000908152600a602052604090205460ff165b61169b57611696858486611d97565b61169d565b825b6001600160a01b0385166000908152600860205260409020549091506116c3908261176c565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117179085815260200190565b60405180910390a3506001949350505050565b600061097283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061136f565b6000806117798385612270565b9050838110156109725760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f1565b6024805460ff19166001179055601e54601f546000916117ea9161089c565b6117f657600c546117f9565b60005b9050600061181d60026110f46011546110f4866023546112ab90919063ffffffff16565b905060006118368260235461172a90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061187057611870612283565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106118a1576118a1612283565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac947906118ed908690600090879030904290600401612299565b600060405180830381600087803b15801561190757600080fd5b505af115801561191b573d6000803e3d6000fd5b505050506000611934824761172a90919063ffffffff16565b9050600061194f61194688600261132d565b6011549061172a565b9050600061196460026110f48481878d6112ab565b90506000611981836110f4600d54876112ab90919063ffffffff16565b9050600061199e846110f4600f54886112ab90919063ffffffff16565b905060006119bb856110f4600e54896112ab90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611a0d576040519150601f19603f3d011682016040523d82523d6000602084013e611a12565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611a62576040519150601f19603f3d011682016040523d82523d6000602084013e611a67565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611ab7576040519150601f19603f3d011682016040523d82523d6000602084013e611abc565b606091505b5060009250508b159050611b9c5760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b3a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b5f919061230a565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b60008183611bd55760405162461bcd60e51b81526004016107f19190611fb9565b5060006113a084866121ee565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c3391849061136f565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c62908361176c565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb69086815260200190565b60405180910390a35060019392505050565b60065481111580611cf157506001600160a01b0382166000908152600b602052604090205460ff165b611d3d5760405162461bcd60e51b815260206004820152601160248201527f5458204c696d697420457863656564656400000000000000000000000000000060448201526064016107f1565b5050565b6022546000906001600160a01b03163314801590611d62575060245460ff16155b8015611d775750602254600160a81b900460ff165b80156109c657505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0390811690841603611dbd5750601354611dd8565b6022546001600160a01b0390811690861603611dd857506014545b6000611e056012546064611dec9190612210565b6110f4846110e76011548a6112ab90919063ffffffff16565b90506000611e246011546110f4601054856112ab90919063ffffffff16565b90506000611e32838361172a565b30600090815260086020526040902054909150611e4f908261176c565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611e7d908361176c565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38115611f3257600554611ee9908361172a565b6005556004546040518381526001600160a01b03918216918a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611f3c878461172a565b98975050505050505050565b8015158114610cd357600080fd5b60008060408385031215611f6957600080fd5b8235611f7481611f48565b946020939093013593505050565b80356001600160a01b0381168114611f9957600080fd5b919050565b600060208284031215611fb057600080fd5b61097282611f82565b600060208083528351808285015260005b81811015611fe657858101830151858201604001528201611fca565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561201a57600080fd5b611f7483611f82565b6000806040838503121561203657600080fd5b50508035926020909101359150565b60008060006060848603121561205a57600080fd5b61206384611f82565b925061207160208501611f82565b9150604084013590509250925092565b60006020828403121561209357600080fd5b5035919050565b600080600080600060a086880312156120b257600080fd5b6120bb86611f82565b94506120c960208701611f82565b93506120d760408701611f82565b92506120e560608701611f82565b91506120f360808701611f82565b90509295509295909350565b60008060008060008060c0878903121561211857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561215557600080fd5b61215e83611f82565b9150602083013561216e81611f48565b809150509250929050565b60008060006060848603121561218e57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156121b857600080fd5b6121c183611f82565b91506121cf60208401611f82565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261220b57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761082a5761082a6121d8565b60006020828403121561223957600080fd5b5051919050565b60006020828403121561225257600080fd5b815161097281611f48565b8181038181111561082a5761082a6121d8565b8082018082111561082a5761082a6121d8565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122e95784516001600160a01b0316835293830193918301916001016122c4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561231f57600080fd5b835192506020840151915060408401519050925092509256fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212208c7ec56c340bdcf1c609eeffd186227735144f1bdcc09505801061868ab52e6a64736f6c63430008110033

Deployed Bytecode Sourcemap

4981:13624:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17704:156;;;;;;;;;;-1:-1:-1;17704:156:0;;;;;:::i;:::-;;:::i;:::-;;6786:57;;;;;;;;;;;;;;;;;;;597:25:1;;;585:2;570:18;6786:57:0;;;;;;;;8948:122;;;;;;;;;;-1:-1:-1;8948:122:0;;;;;:::i;:::-;;:::i;:::-;;;1190:14:1;;1183:22;1165:41;;1153:2;1138:18;8948:122:0;1025:187:1;8302:80:0;;;;;;;;;;-1:-1:-1;8374:5:0;;;;;;;;;;;;-1:-1:-1;;;8374:5:0;;;;8302:80;;;;;;;:::i;6705:31::-;;;;;;;;;;-1:-1:-1;6705:31:0;;;;-1:-1:-1;;;6705:31:0;;;;;;8724:216;;;;;;;;;;-1:-1:-1;8724:216:0;;;;;:::i;:::-;;:::i;18379:150::-;;;;;;;;;;-1:-1:-1;18379:150:0;;;;;:::i;:::-;;:::i;8032:88::-;;;;;;;;;;-1:-1:-1;8105:12:0;;8032:88;;5967:94;;;;;;;;;;;;;;;;9242:370;;;;;;;;;;-1:-1:-1;9242:370:0;;;;;:::i;:::-;;:::i;18054:142::-;;;;;;;;;;;;;:::i;8126:80::-;;;;;;;;;;-1:-1:-1;8126:80:0;;5333:1;2757:36:1;;2745:2;2730:18;8126:80:0;2615:184:1;9624:219:0;;;;;;;;;;-1:-1:-1;9624:219:0;;;;;:::i;:::-;;:::i;6749:30::-;;;;;;;;;;-1:-1:-1;6749:30:0;;;;-1:-1:-1;;;6749:30:0;;;;;;8472:105;;;;;;;;;;-1:-1:-1;8472:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8556:18:0;8538:7;8556:18;;;:9;:18;;;;;;;8472:105;3038:148;;;;;;;;;;;;;:::i;13751:308::-;;;;;;;;;;-1:-1:-1;13751:308:0;;;;;:::i;:::-;;:::i;5471:61::-;;;;;;;;;;;;;;;;17241:455;;;;;;;;;;-1:-1:-1;17241:455:0;;;;;:::i;:::-;;:::i;5406:58::-;;;;;;;;;;;;;;;;8388:78;;;;;;;;;;-1:-1:-1;8440:7:0;2889:6;-1:-1:-1;;;;;2889:6:0;8388:78;;;-1:-1:-1;;;;;3642:55:1;;;3624:74;;3612:2;3597:18;8388:78:0;3478:226:1;13594:149:0;;;;;;;;;;;;;:::i;14282:178::-;;;;;;;;;;;;;:::i;2824:79::-;;;;;;;;;;-1:-1:-1;2862:7:0;2889:6;-1:-1:-1;;;;;2889:6:0;2824:79;;16654:579;;;;;;;;;;-1:-1:-1;16654:579:0;;;;;:::i;:::-;;:::i;8212:84::-;;;;;;;;;;-1:-1:-1;8286:7:0;;;;;;;;;;;;-1:-1:-1;;;8286:7:0;;;;8212:84;;16526:120;;;;;;;;;;-1:-1:-1;16526:120:0;;;;;:::i;:::-;;:::i;17868:174::-;;;;;;;;;;-1:-1:-1;17868:174:0;;;;;:::i;:::-;;:::i;6673:19::-;;;;;;;;;;-1:-1:-1;6673:19:0;;;;-1:-1:-1;;;;;6673:19:0;;;9078:156;;;;;;;;;;-1:-1:-1;9078:156:0;;;;;:::i;:::-;;:::i;2444:21::-;;;;;;;;;;-1:-1:-1;2444:21:0;;;;-1:-1:-1;;;;;2444:21:0;;;9851:187;;;;;;;;;;-1:-1:-1;9851:187:0;;;;;:::i;:::-;;:::i;16361:157::-;;;;;;;;;;-1:-1:-1;16361:157:0;;;;;:::i;:::-;;:::i;14067:207::-;;;;;;;;;;-1:-1:-1;14067:207:0;;;;;:::i;:::-;;:::i;13365:77::-;;;;;;;;;;;;;:::i;18204:167::-;;;;;;;;;;-1:-1:-1;18204:167:0;;;;;:::i;:::-;;:::i;13158:198::-;;;;;;;;;;-1:-1:-1;13158:198:0;;;;;:::i;:::-;;:::i;8583:133::-;;;;;;;;;;-1:-1:-1;8583:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8685:19:0;;;8667:7;8685:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8583:133;3194:244;;;;;;;;;;-1:-1:-1;3194:244:0;;;;;:::i;:::-;;:::i;13450:136::-;;;;;;;;;;;;;:::i;6603:24::-;;;;;;;;;;-1:-1:-1;6603:24:0;;;;-1:-1:-1;;;;;6603:24:0;;;17704:156;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;;;;;;;;;17796:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17796:22:0::1;-1:-1:-1::0;;;;17796:22:0;;::::1;::::0;;;::::1;::::0;;;17829:13:::1;:23:::0;17704:156::o;8948:122::-;9003:4;9027:35;9035:7;-1:-1:-1;;9027:7:0;:35::i;:::-;9020:42;8948:122;-1:-1:-1;;8948:122:0:o;8724:216::-;8828:10;8799:4;8816:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8816:32:0;;;;;;;;;;:41;;;8873:37;8799:4;;8816:32;;8873:37;;;;8851:6;597:25:1;;585:2;570:18;;451:177;8873:37:0;;;;;;;;-1:-1:-1;8928:4:0;8724:216;;;;:::o;18379:150::-;18459:4;18515:6;18483:29;18503:8;18483:19;:29::i;:::-;:38;;18379:150;-1:-1:-1;;;18379:150:0:o;9242:370::-;-1:-1:-1;;;;;9362:19:0;;9342:4;9362:19;;;:11;:19;;;;;;;;9382:10;9362:31;;;;;;;;-1:-1:-1;;9362:52:0;9359:186;;9464:69;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9464:19:0;;-1:-1:-1;9464:19:0;;;:11;:19;;;;;9484:10;9464:31;;;;;;;;;;:69;;9500:6;;9464:35;:69::i;:::-;-1:-1:-1;;;;;9430:19:0;;;;;;:11;:19;;;;;;;;9450:10;9430:31;;;;;;;:103;9359:186;9564:40;9578:6;9586:9;9597:6;9564:13;:40::i;:::-;9557:47;;9242:370;;;;;;:::o;18054:142::-;18182:4;;-1:-1:-1;;;;;18182:4:0;18107:7;8556:18;;;:9;:18;;;;;;18134:54;;18161:4;;-1:-1:-1;;;;;18161:4:0;8538:7;8556:18;;;:9;:18;;;;;;18134:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18127:61;;18054:142;:::o;9624:219::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;9743:4:::1;9728:12;;:19;;;;:::i;:::-;9709:15;;:38;;9701:47;;;::::0;::::1;;9813:4;9794:14;9779:12;;:29;;;;:::i;:::-;9778:39;;;;:::i;:::-;9760:15;:57:::0;-1:-1:-1;9624:219:0:o;3038:148::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;3145:1:::1;3129:6:::0;;3108:40:::1;::::0;-1:-1:-1;;;;;3129:6:0;;::::1;::::0;3108:40:::1;::::0;3145:1;;3108:40:::1;3176:1;3159:19:::0;;-1:-1:-1;;;;;;3159:19:0::1;::::0;;3038:148::o;13751:308::-;13871:10;13830:4;13855:27;;;:15;:27;;;;;;;;13847:36;;;;;;13894:6;13904:1;13894:11;13891:95;;13930:44;;-1:-1:-1;;;13930:44:0;;13968:4;13930:44;;;3624:74:1;-1:-1:-1;;;;;13930:29:0;;;;;3597:18:1;;13930:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13921:53;;13891:95;14003:48;;-1:-1:-1;;;14003:48:0;;14032:10;14003:48;;;6643:74:1;6733:18;;;6726:34;;;-1:-1:-1;;;;;14003:28:0;;;;;6616:18:1;;14003:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17241:455::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;17446:21:::1;:46:::0;;-1:-1:-1;;;;;;17446:46:0;;::::1;-1:-1:-1::0;;;;;17446:46:0;;::::1;;::::0;;;17503:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17558:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17609:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17654:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17241:455::o;13594:149::-;13659:10;13643:27;;;;:15;:27;;;;;;;;13635:36;;;;;;13682:51;;13690:10;;13711:21;13682:51;;;;;;;;;13711:21;13690:10;13682:51;;;;;;;;;;;;;;;;;;;;;13594:149::o;14282:178::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;14335:11:::1;:18:::0;;-1:-1:-1;;;;14335:18:0::1;-1:-1:-1::0;;;14335:18:0::1;::::0;;14380:4:::1;14335:11;14364:20:::0;;;14412:4:::1;14395:14;:21:::0;14427:18:::1;:25:::0;14282:178::o;16654:579::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;16840:12:::1;:28:::0;;;16879:7:::1;:18:::0;;;16908:12:::1;:28:::0;;;16947:10:::1;:24:::0;;;16982:7:::1;:18:::0;;;17022:77:::1;16992:8:::0;17022:63:::1;16960:11:::0;17022:63;16923:13;17022:63;16855:13;16889:8;17022:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;17011:8;:88:::0;17110:14:::1;:32:::0;;;17172:18:::1;17189:1;17127:15:::0;17172:18:::1;:::i;:::-;17161:8;;:29;17153:71;;;::::0;-1:-1:-1;;;17153:71:0;;7223:2:1;17153:71:0::1;::::0;::::1;7205:21:1::0;7262:2;7242:18;;;7235:30;7301:31;7281:18;;;7274:59;7350:18;;17153:71:0::1;7021:353:1::0;17153:71:0::1;16654:579:::0;;;;;;:::o;16526:120::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;-1:-1:-1;;;;;16606:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16606:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16526:120::o;17868:174::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;17957:15:::1;:25:::0;;;;17993:26:::1;:41:::0;17868:174::o;9078:156::-;9158:4;9182:44;9196:10;9208:9;9219:6;9182:13;:44::i;9851:187::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;9961:4:::1;9946:12;;:19;;;;:::i;:::-;9930:12;;:35;;9922:44;;;::::0;::::1;;10026:4;10009:12;9994;;:27;;;;:::i;:::-;9993:37;;;;:::i;:::-;9978:12;:52:::0;-1:-1:-1;9851:187:0:o;16361:157::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;-1:-1:-1;;;;;16439:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16439:28:0;;::::1;::::0;::::1;::::0;;;16478:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16361:157::o;14067:207::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;14159:14:::1;:22:::0;;;;14192:13:::1;:20:::0;;;;14223:18:::1;:27:::0;14067:207::o;13365:77::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;13418:10:::1;:8;:10::i;:::-;13365:77::o:0;18204:167::-;18272:7;18299:64;18340:22;:20;:22::i;:::-;18322:4;;-1:-1:-1;;;;;18322:4:0;8538:7;8556:18;;;:9;:18;;;;;;18299:36;;18312:22;;18332:1;;18312:15;:19;;:22::i;:::-;18299:8;;:12;:36::i;:::-;:40;;:64::i;13158:198::-;13287:15;;13247:21;;-1:-1:-1;;;;;13287:15:0;13279:69;13344:3;13313:28;13325:16;13247:21;13313:28;:::i;:::-;:34;;;;:::i;:::-;13279:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13216:140;13158:198;:::o;3194:244::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;-1:-1:-1;;;;;3283:22:0;::::1;3275:73;;;::::0;-1:-1:-1;;;3275:73:0;;7581:2:1;3275:73:0::1;::::0;::::1;7563:21:1::0;7620:2;7600:18;;;7593:30;7659:34;7639:18;;;7632:62;-1:-1:-1;;;7710:18:1;;;7703:36;7756:19;;3275:73:0::1;7379:402:1::0;3275:73:0::1;3385:6;::::0;;3364:38:::1;::::0;-1:-1:-1;;;;;3364:38:0;;::::1;::::0;3385:6;::::1;::::0;3364:38:::1;::::0;::::1;3413:6;:17:::0;;-1:-1:-1;;;;;;3413:17:0::1;-1:-1:-1::0;;;;;3413:17:0;;;::::1;::::0;;;::::1;::::0;;3194:244::o;13450:136::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;5594:2:1;2943:67:0;;;5576:21:1;;;5613:18;;;5606:30;-1:-1:-1;;;;;;;;;;;5652:18:1;;;5645:62;5724:18;;2943:67:0;5392:356:1;2943:67:0;13526:12:::1;::::0;13508:15:::1;:30:::0;;;13549:12:::1;:27:::0;13450:136::o;623:250::-;681:7;705:1;710;705:6;701:47;;-1:-1:-1;735:1:0;728:8;;701:47;760:9;772:5;776:1;772;:5;:::i;:::-;760:17;-1:-1:-1;805:1:0;796:5;800:1;760:17;796:5;:::i;:::-;:10;788:56;;;;-1:-1:-1;;;788:56:0;;7988:2:1;788:56:0;;;7970:21:1;8027:2;8007:18;;;8000:30;8066:34;8046:18;;;8039:62;-1:-1:-1;;;8117:18:1;;;8110:31;8158:19;;788:56:0;7786:397:1;879:132:0;937:7;964:39;968:1;971;964:39;;;;;;;;;;;;;;;;;:3;:39::i;425:192::-;511:7;547:12;539:6;;;;531:29;;;;-1:-1:-1;;;531:29:0;;;;;;;;:::i;:::-;-1:-1:-1;571:9:0;583:5;587:1;583;:5;:::i;:::-;571:17;425:192;-1:-1:-1;;;;;425:192:0:o;10055:1237::-;10167:6;;10147:4;;10167:6;;10164:63;;;10183:41;10198:6;10206:9;10217:6;10183:14;:41::i;:::-;10176:48;;;;10164:63;-1:-1:-1;;;;;10243:22:0;;;;;;:14;:22;;;;;;;;10242:23;:53;;;;-1:-1:-1;;;;;;10270:25:0;;;;;;:14;:25;;;;;;;;10269:26;10242:53;10239:140;;;10319:11;;-1:-1:-1;;;10319:11:0;;;;10311:43;;;;-1:-1:-1;;;10311:43:0;;8523:2:1;10311:43:0;;;8505:21:1;8562:2;8542:18;;;8535:30;8601:22;8581:18;;;8574:50;8641:18;;10311:43:0;8321:344:1;10311:43:0;-1:-1:-1;;;;;10413:22:0;;;;;;:14;:22;;;;;;;;10412:23;:53;;;;-1:-1:-1;;;;;;10439:26:0;;10460:4;10439:26;;10412:53;:84;;;;-1:-1:-1;10491:4:0;;-1:-1:-1;;;;;10470:26:0;;;10491:4;;10470:26;;10412:84;:105;;;;-1:-1:-1;10513:4:0;;-1:-1:-1;;;;;10500:17:0;;;10513:4;;10500:17;;10412:105;:137;;;;-1:-1:-1;10534:15:0;;-1:-1:-1;;;;;10521:28:0;;;10534:15;;10521:28;;10412:137;:174;;;;-1:-1:-1;10566:20:0;;-1:-1:-1;;;;;10553:33:0;;;10566:20;;10553:33;;10412:174;:205;;;;-1:-1:-1;;;;;;10591:26:0;;;;;;:15;:26;;;;;;;;10590:27;10412:205;10408:397;;;-1:-1:-1;;;;;8556:18:0;;10633;8556;;;:9;:18;;;;;;10722:15;;10698:19;10711:6;8556:18;10698:19;:::i;:::-;10697:40;;10689:114;;;;-1:-1:-1;;;10689:114:0;;9002:2:1;10689:114:0;;;8984:21:1;9041:2;9021:18;;;9014:30;9080:34;9060:18;;;9053:62;9151:32;9131:18;;;9124:60;9201:19;;10689:114:0;8800:426:1;10689:114:0;10618:187;10408:397;10826:28;10839:6;10847;10826:12;:28::i;:::-;10871:16;:14;:16::i;:::-;10868:35;;;10890:10;:8;:10::i;:::-;10943:53;;;;;;;;;;;-1:-1:-1;;;10943:53:0;;;;;;;;-1:-1:-1;;;;;10943:17:0;;-1:-1:-1;10943:17:0;;;:9;:17;;;;;;;;:53;;10965:6;;10943:21;:53::i;:::-;-1:-1:-1;;;;;10923:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11035:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11058:22:0;;;;;;:11;:22;;;;;;;;11035:45;11034:93;;11093:34;11101:6;11109;11117:9;11093:7;:34::i;:::-;11034:93;;;11084:6;11034:93;-1:-1:-1;;;;;11161:20:0;;;;;;:9;:20;;;;;;11009:118;;-1:-1:-1;11161:40:0;;11009:118;11161:24;:40::i;:::-;-1:-1:-1;;;;;11138:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11219:43;;;;;;;;;;11247:14;597:25:1;;585:2;570:18;;451:177;11219:43:0;;;;;;;;-1:-1:-1;11280:4:0;;10055:1237;-1:-1:-1;;;;10055:1237:0:o;283:136::-;341:7;368:43;372:1;375;368:43;;;;;;;;;;;;;;;;;:3;:43::i;96:181::-;154:7;;186:5;190:1;186;:5;:::i;:::-;174:17;;215:1;210;:6;;202:46;;;;-1:-1:-1;;;202:46:0;;9433:2:1;202:46:0;;;9415:21:1;9472:2;9452:18;;;9445:30;9511:29;9491:18;;;9484:57;9558:18;;202:46:0;9231:351:1;14476:1877:0;6891:6;:13;;-1:-1:-1;;6891:13:0;6900:4;6891:13;;;14571:15:::1;::::0;14588:26:::1;::::0;6891:6;;14555:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14622:12;;14555:79;;;14618:1;14555:79;14525:109;;14645:23;14671:59;14728:1;14671:52;14714:8;;14671:38;14689:19;14671:13;;:17;;:38;;;;:::i;:59::-;14645:85;;14741:20;14764:34;14782:15;14764:13;;:17;;:34;;;;:::i;:::-;14835:16;::::0;;14849:1:::1;14835:16:::0;;;;;::::1;::::0;;14741:57;;-1:-1:-1;14811:21:0::1;::::0;14835:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14835:16:0::1;14811:40;;14880:4;14862;14867:1;14862:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14862:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14906:4:::1;::::0;14896:7;;14906:4;::::1;::::0;14896;;14906;;14896:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14896:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;14981:6;:188:::1;::::0;-1:-1:-1;;;14981:188:0;;14947:21:::1;::::0;14981:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15053:12;;14923:21:::1;::::0;15096:4;;15123::::1;::::0;15143:15:::1;::::0;14981:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15182:17;15202:40;15228:13;15202:21;:25;;:40;;;;:::i;:::-;15182:60:::0;-1:-1:-1;15255:19:0::1;15277:40;15290:26;:19:::0;15314:1:::1;15290:23;:26::i;:::-;15277:8;::::0;;:12:::1;:40::i;:::-;15255:62:::0;-1:-1:-1;15338:26:0::1;15367:58;15423:1;15367:51;15255:62:::0;15367:51;:9;15381:19;15367:13:::1;:34::i;:58::-;15338:87;;15436:26;15465:44;15497:11;15465:27;15479:12;;15465:9;:13;;:27;;;;:::i;:44::-;15436:73;;15520:21;15544:39;15571:11;15544:22;15558:7;;15544:9;:13;;:22;;;;:::i;:39::-;15520:63;;15594:24;15621:42;15651:11;15621:25;15635:10;;15621:9;:13;;:25;;;;:::i;:42::-;15705:20;::::0;15697:65:::1;::::0;15594:69;;-1:-1:-1;15677:15:0::1;::::0;-1:-1:-1;;;;;15705:20:0;;::::1;::::0;15739:18;;15677:15;15697:65;15677:15;15697:65;15739:18;15705:20;15697:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15797:18:0::1;::::0;15789:61:::1;::::0;15676:86;;-1:-1:-1;;;;;;15797:18:0::1;::::0;15829:16;;15789:61:::1;::::0;;;15829:16;15797:18;15789:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15885:15:0::1;::::0;15877:55:::1;::::0;15773:77;;-1:-1:-1;;;;;;15885:15:0::1;::::0;15914:13;;15877:55:::1;::::0;;;15914:13;15885:15;15877:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15966:5:0::1;::::0;-1:-1:-1;;15987:19:0;;;-1:-1:-1;15984:362:0::1;;16022:6;::::0;16196:21:::1;::::0;16022:244:::1;::::0;-1:-1:-1;;;16022:244:0;;16098:4:::1;16022:244;::::0;::::1;11456:34:1::0;11506:18;;;11499:34;;;16022:6:0::1;11549:18:1::0;;;11542:34;;;11592:18;;;11585:34;-1:-1:-1;;;;;16196:21:0;;::::1;11635:19:1::0;;;11628:44;16236:15:0::1;11688:19:1::0;;;11681:35;16022:6:0;::::1;::::0;:22:::1;::::0;16052:18;;11367:19:1;;16022:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16286:48:0::1;::::0;;12212:25:1;;;12268:2;12253:18;;12246:34;;;16286:48:0::1;::::0;-1:-1:-1;12185:18:1;16286:48:0::1;;;;;;;15984:362;-1:-1:-1::0;;6909:6:0;:14;;-1:-1:-1;;6909:14:0;;;-1:-1:-1;;;;;;;;;;14476:1877:0:o;1017:189::-;1103:7;1138:12;1131:5;1123:28;;;;-1:-1:-1;;;1123:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1162:9:0;1174:5;1178:1;1174;:5;:::i;11304:330::-;11434:53;;;;;;;;;;;-1:-1:-1;;;11434:53:0;;;;;;;;-1:-1:-1;;;;;11434:17:0;;11397:4;11434:17;;;:9;:17;;;;;;;:53;;11456:6;;11434:21;:53::i;:::-;-1:-1:-1;;;;;11414:17:0;;;;;;;:9;:17;;;;;;:73;;;;11521:20;;;;;;;:32;;11546:6;11521:24;:32::i;:::-;-1:-1:-1;;;;;11498:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11569:35;;;;;;;;;;11597:6;597:25:1;;585:2;570:18;;451:177;11569:35:0;;;;;;;;-1:-1:-1;11622:4:0;11304:330;;;;;:::o;11642:166::-;11739:12;;11729:6;:22;;:49;;;-1:-1:-1;;;;;;11755:23:0;;;;;;:15;:23;;;;;;;;11729:49;11721:79;;;;-1:-1:-1;;;11721:79:0;;12493:2:1;11721:79:0;;;12475:21:1;12532:2;12512:18;;;12505:30;12571:19;12551:18;;;12544:47;12608:18;;11721:79:0;12291:341:1;11721:79:0;11642:166;;:::o;12953:197::-;13040:4;;13002;;-1:-1:-1;;;;;13040:4:0;13026:10;:18;;;;:38;;-1:-1:-1;13058:6:0;;;;13057:7;13026:38;:62;;;;-1:-1:-1;13077:11:0;;-1:-1:-1;;;13077:11:0;;;;13026:62;:116;;;;-1:-1:-1;;13129:13:0;;13119:4;13101:24;;;;:9;:24;;;;;;:41;;;12953:197::o;11938:1007::-;12075:18;;12122:4;;12024:7;;12075:18;-1:-1:-1;;;;;12122:4:0;;;12109:17;;;;12106:154;;-1:-1:-1;12156:14:0;;12106:154;;;12201:4;;-1:-1:-1;;;;;12201:4:0;;;12191:14;;;;12188:72;;-1:-1:-1;12235:13:0;;12188:72;12272:17;12292:62;12333:14;;12350:3;12333:20;;;;:::i;:::-;12292:36;12317:10;12292:20;12303:8;;12292:6;:10;;:20;;;;:::i;:62::-;12272:82;;12365:18;12386:36;12413:8;;12386:22;12400:7;;12386:9;:13;;:22;;;;:::i;:36::-;12365:57;-1:-1:-1;12433:22:0;12458:25;:9;12365:57;12458:13;:25::i;:::-;12541:4;12523:24;;;;:9;:24;;;;;;12433:50;;-1:-1:-1;12523:44:0;;12433:50;12523:28;:44::i;:::-;12514:4;12496:24;;;;:9;:24;;;;;;:71;;;;12617:15;;-1:-1:-1;;;;;12617:15:0;12607:26;;;;:42;;12638:10;12607:30;:42::i;:::-;12588:15;;-1:-1:-1;;;;;12588:15:0;;;12578:26;;;;:9;:26;;;;;;;;;:71;;;;12665:47;597:25:1;;;12690:4:0;;12665:47;;;;;;570:18:1;12665:47:0;;;;;;;12746:14;;12743:154;;12791:12;;:28;;12808:10;12791:16;:28::i;:::-;12776:12;:43;12856:4;;12839:34;;597:25:1;;;-1:-1:-1;;;;;12856:4:0;;;;12839:34;;;;;585:2:1;570:18;12839:34:0;;;;;;;12743:154;12916:21;:6;12927:9;12916:10;:21::i;:::-;12909:28;11938:1007;-1:-1:-1;;;;;;;;11938:1007:0:o;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:309;202:6;210;263:2;251:9;242:7;238:23;234:32;231:52;;;279:1;276;269:12;231:52;318:9;305:23;337:28;359:5;337:28;:::i;:::-;384:5;436:2;421:18;;;;408:32;;-1:-1:-1;;;137:309:1:o;633:196::-;701:20;;-1:-1:-1;;;;;750:54:1;;740:65;;730:93;;819:1;816;809:12;730:93;633:196;;;:::o;834:186::-;893:6;946:2;934:9;925:7;921:23;917:32;914:52;;;962:1;959;952:12;914:52;985:29;1004:9;985:29;:::i;1217:548::-;1329:4;1358:2;1387;1376:9;1369:21;1419:6;1413:13;1462:6;1457:2;1446:9;1442:18;1435:34;1487:1;1497:140;1511:6;1508:1;1505:13;1497:140;;;1606:14;;;1602:23;;1596:30;1572:17;;;1591:2;1568:26;1561:66;1526:10;;1497:140;;;1501:3;1686:1;1681:2;1672:6;1661:9;1657:22;1653:31;1646:42;1756:2;1749;1745:7;1740:2;1732:6;1728:15;1724:29;1713:9;1709:45;1705:54;1697:62;;;;1217:548;;;;:::o;1770:254::-;1838:6;1846;1899:2;1887:9;1878:7;1874:23;1870:32;1867:52;;;1915:1;1912;1905:12;1867:52;1938:29;1957:9;1938:29;:::i;2029:248::-;2097:6;2105;2158:2;2146:9;2137:7;2133:23;2129:32;2126:52;;;2174:1;2171;2164:12;2126:52;-1:-1:-1;;2197:23:1;;;2267:2;2252:18;;;2239:32;;-1:-1:-1;2029:248:1:o;2282:328::-;2359:6;2367;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:29;2486:9;2467:29;:::i;:::-;2457:39;;2515:38;2549:2;2538:9;2534:18;2515:38;:::i;:::-;2505:48;;2600:2;2589:9;2585:18;2572:32;2562:42;;2282:328;;;;;:::o;2804:180::-;2863:6;2916:2;2904:9;2895:7;2891:23;2887:32;2884:52;;;2932:1;2929;2922:12;2884:52;-1:-1:-1;2955:23:1;;2804:180;-1:-1:-1;2804:180:1:o;2989:484::-;3084:6;3092;3100;3108;3116;3169:3;3157:9;3148:7;3144:23;3140:33;3137:53;;;3186:1;3183;3176:12;3137:53;3209:29;3228:9;3209:29;:::i;:::-;3199:39;;3257:38;3291:2;3280:9;3276:18;3257:38;:::i;:::-;3247:48;;3314:38;3348:2;3337:9;3333:18;3314:38;:::i;:::-;3304:48;;3371:38;3405:2;3394:9;3390:18;3371:38;:::i;:::-;3361:48;;3428:39;3462:3;3451:9;3447:19;3428:39;:::i;:::-;3418:49;;2989:484;;;;;;;;:::o;3709:523::-;3813:6;3821;3829;3837;3845;3853;3906:3;3894:9;3885:7;3881:23;3877:33;3874:53;;;3923:1;3920;3913:12;3874:53;-1:-1:-1;;3946:23:1;;;4016:2;4001:18;;3988:32;;-1:-1:-1;4067:2:1;4052:18;;4039:32;;4118:2;4103:18;;4090:32;;-1:-1:-1;4169:3:1;4154:19;;4141:33;;-1:-1:-1;4221:3:1;4206:19;4193:33;;-1:-1:-1;3709:523:1;-1:-1:-1;3709:523:1:o;4237:315::-;4302:6;4310;4363:2;4351:9;4342:7;4338:23;4334:32;4331:52;;;4379:1;4376;4369:12;4331:52;4402:29;4421:9;4402:29;:::i;:::-;4392:39;;4481:2;4470:9;4466:18;4453:32;4494:28;4516:5;4494:28;:::i;:::-;4541:5;4531:15;;;4237:315;;;;;:::o;4557:316::-;4634:6;4642;4650;4703:2;4691:9;4682:7;4678:23;4674:32;4671:52;;;4719:1;4716;4709:12;4671:52;-1:-1:-1;;4742:23:1;;;4812:2;4797:18;;4784:32;;-1:-1:-1;4863:2:1;4848:18;;;4835:32;;4557:316;-1:-1:-1;4557:316:1:o;4878:260::-;4946:6;4954;5007:2;4995:9;4986:7;4982:23;4978:32;4975:52;;;5023:1;5020;5013:12;4975:52;5046:29;5065:9;5046:29;:::i;:::-;5036:39;;5094:38;5128:2;5117:9;5113:18;5094:38;:::i;:::-;5084:48;;4878:260;;;;;:::o;5753:127::-;5814:10;5809:3;5805:20;5802:1;5795:31;5845:4;5842:1;5835:15;5869:4;5866:1;5859:15;5885:217;5925:1;5951;5941:132;;5995:10;5990:3;5986:20;5983:1;5976:31;6030:4;6027:1;6020:15;6058:4;6055:1;6048:15;5941:132;-1:-1:-1;6087:9:1;;5885:217::o;6107:168::-;6180:9;;;6211;;6228:15;;;6222:22;;6208:37;6198:71;;6249:18;;:::i;6280:184::-;6350:6;6403:2;6391:9;6382:7;6378:23;6374:32;6371:52;;;6419:1;6416;6409:12;6371:52;-1:-1:-1;6442:16:1;;6280:184;-1:-1:-1;6280:184:1:o;6771:245::-;6838:6;6891:2;6879:9;6870:7;6866:23;6862:32;6859:52;;;6907:1;6904;6897:12;6859:52;6939:9;6933:16;6958:28;6980:5;6958:28;:::i;8188:128::-;8255:9;;;8276:11;;;8273:37;;;8290:18;;:::i;8670:125::-;8735:9;;;8756:10;;;8753:36;;;8769:18;;:::i;9719:127::-;9780:10;9775:3;9771:20;9768:1;9761:31;9811:4;9808:1;9801:15;9835:4;9832:1;9825:15;9851:1026;10113:4;10161:3;10150:9;10146:19;10192:6;10181:9;10174:25;10218:2;10256:6;10251:2;10240:9;10236:18;10229:34;10299:3;10294:2;10283:9;10279:18;10272:31;10323:6;10358;10352:13;10389:6;10381;10374:22;10427:3;10416:9;10412:19;10405:26;;10466:2;10458:6;10454:15;10440:29;;10487:1;10497:218;10511:6;10508:1;10505:13;10497:218;;;10576:13;;-1:-1:-1;;;;;10572:62:1;10560:75;;10690:15;;;;10655:12;;;;10533:1;10526:9;10497:218;;;-1:-1:-1;;;;;;;10771:55:1;;;;10766:2;10751:18;;10744:83;-1:-1:-1;;;10858:3:1;10843:19;10836:35;10732:3;9851:1026;-1:-1:-1;;;9851:1026:1:o;11727:306::-;11815:6;11823;11831;11884:2;11872:9;11863:7;11859:23;11855:32;11852:52;;;11900:1;11897;11890:12;11852:52;11929:9;11923:16;11913:26;;11979:2;11968:9;11964:18;11958:25;11948:35;;12023:2;12012:9;12008:18;12002:25;11992:35;;11727:306;;;;;:::o

Swarm Source

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