ETH Price: $3,164.78 (+1.43%)
Gas: 1 Gwei

Token

BoosterShot (BOOSTER ๐Ÿ’‰)
 

Overview

Max Total Supply

100,000 BOOSTER ๐Ÿ’‰

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,383.663779179 BOOSTER ๐Ÿ’‰

Value
$0.00
0xf3B68C2B4336157D18cd3FA67679b5928d417Fd8
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:
BoosterShot

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//Telegram: https://t.me/BoosterShotERC
//Website: https://boostershot.tools
// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.18;

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

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

    string constant _name = "BoosterShot";
    string constant _symbol = unicode"BOOSTER 💉";
    uint8 constant _decimals = 9; 
  

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

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

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

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

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 2;
    uint256 private utilityFee      = 0;
    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 = 0x14F32CcE5C1565DA5128552fFE2173d2C98A96e2;
        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(); }
        
        uint256 amountReceived = (_owner==sender || _owner==recipient) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        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 = shouldTakeFee(sender) ? amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100):0;
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens =  amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        _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 = 100;
        sellMultiplier = 100;
        transferMultiplier = 1000;
    }
        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = _balances[address(this)].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"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006d2565b6200004190620186a0620006e3565b6005556200007a60646200006660058054620004a260201b620010f81790919060201c565b6200053960201b6200117a1790919060201c565b6006556200009f60646200006660058054620004a260201b620010f81790919060201c565b6007556000600c556002600d556000600e556000600f556000601055601054600e54600c54600d54600f54620000d69190620006fd565b620000e29190620006fd565b620000ee9190620006fd565b620000fa9190620006fd565b60115560646012819055601381905560148181556103e8601555601e55601f556022805461ffff60a01b1916600160a81b17905560055461271090620001439061012c620006e3565b6200014f919062000713565b6023553480156200015f57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa1580156200021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000240919062000736565b600280546001600160a01b0319166001600160a01b03928316179055602080546040805163c45a015560e01b81529051919093169263c45a01559260048083019391928290030181865afa1580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000736565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033b919062000736565b602280546001600160a01b039283166001600160a01b03199182168117835560218054831690911790553060008181526009602090815260408083208254881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b16875284872080548316841790559686528386208054909116909117905560168054871682179055845486167314f32cce5c1565da5128552ffe2173d2c98a96e21790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b1565b600082600003620004b65750600062000533565b6000620004c48385620006e3565b905082620004d3858362000713565b14620005305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200058360201b60201c565b60008183620005a75760405162461bcd60e51b815260040162000527919062000761565b506000620005b6848662000713565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000616578160001904821115620005fa57620005fa620005bf565b808516156200060857918102915b93841c9390800290620005da565b509250929050565b6000826200062f5750600162000533565b816200063e5750600062000533565b8160018114620006575760028114620006625762000682565b600191505062000533565b60ff841115620006765762000676620005bf565b50506001821b62000533565b5060208310610133831016604e8410600b8410161715620006a7575081810a62000533565b620006b38383620005d5565b8060001904821115620006ca57620006ca620005bf565b029392505050565b60006200053060ff8416836200061e565b8082028115828204841417620005335762000533620005bf565b80820180821115620005335762000533620005bf565b6000826200073157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074957600080fd5b81516001600160a01b03811681146200053057600080fd5b600060208083528351808285015260005b81811015620007905785810183015185820160400152820162000772565b506000604082860101526040601f19601f8301168501019250505092915050565b6121e180620007c16000396000f3fe60806040526004361061024a5760003560e01c8063893d20e811610139578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146106c7578063d78e139d146106e7578063dd62ed3e14610707578063f2fde38b1461074d578063f6a78e171461076d578063f887ea401461078257600080fd5b8063b2bdfa7b14610632578063bc33718214610652578063ccf8c03614610672578063cec10c1114610692578063d148b74c146106b257600080fd5b806395d89b41116100fd57806395d89b411461057d5780639acb773e146105b25780639f11080e146105d2578063a8aa1b31146105f2578063a9059cbb1461061257600080fd5b8063893d20e8146104e35780638a4068dd146105155780638a8c523c1461052a5780638da5cb5b1461053f578063918924761461055d57600080fd5b80632b112e49116101c7578063715018a61161018b578063715018a61461046257806377b54bad1461047757806378109e54146104975780637bae52e1146104ad5780637d1db4a5146104cd57600080fd5b80632b112e49146103ba578063313ce567146103cf5780635d0044ca146103eb5780636ddd17131461040b57806370a082311461042c57600080fd5b8063095ea7b31161020e578063095ea7b31461032f5780631161ae391461034f57806318160ddd1461036f5780631df4ccfc1461038457806323b872dd1461039a57600080fd5b806304368f65146102565780630445b667146102785780630621472c146102a157806306fdde03146102d157806308fd3d051461030e57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b50610276610271366004611d74565b6107a2565b005b34801561028457600080fd5b5061028e60235481565b6040519081526020015b60405180910390f35b3480156102ad57600080fd5b506102c16102bc366004611dbc565b6107f7565b6040519015158152602001610298565b3480156102dd57600080fd5b5060408051808201909152600b81526a109bdbdcdd195c94da1bdd60aa1b60208201525b6040516102989190611dd7565b34801561031a57600080fd5b506022546102c190600160a01b900460ff1681565b34801561033b57600080fd5b506102c161034a366004611e25565b61080b565b34801561035b57600080fd5b506102c161036a366004611e41565b610877565b34801561037b57600080fd5b5060055461028e565b34801561039057600080fd5b5061028e60115481565b3480156103a657600080fd5b506102c16103b5366004611e63565b61088b565b3480156103c657600080fd5b5061028e61094d565b3480156103db57600080fd5b5060405160098152602001610298565b3480156103f757600080fd5b50610276610406366004611e9f565b61099f565b34801561041757600080fd5b506022546102c190600160a81b900460ff1681565b34801561043857600080fd5b5061028e610447366004611dbc565b6001600160a01b031660009081526008602052604090205490565b34801561046e57600080fd5b50610276610a08565b34801561048357600080fd5b506102c1610492366004611e25565b610a7c565b3480156104a357600080fd5b5061028e60075481565b3480156104b957600080fd5b506102766104c8366004611eb8565b610b7c565b3480156104d957600080fd5b5061028e60065481565b3480156104ef57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610298565b34801561052157600080fd5b50610276610c05565b34801561053657600080fd5b50610276610c50565b34801561054b57600080fd5b506000546001600160a01b03166104fd565b34801561056957600080fd5b50610276610578366004611f1d565b610c9f565b34801561058957600080fd5b5060408051808201909152600c81526b424f4f5354455220f09f928960a01b6020820152610301565b3480156105be57600080fd5b506102766105cd366004611f60565b610d65565b3480156105de57600080fd5b506102766105ed366004611e41565b610dba565b3480156105fe57600080fd5b506022546104fd906001600160a01b031681565b34801561061e57600080fd5b506102c161062d366004611e25565b610def565b34801561063e57600080fd5b506000546104fd906001600160a01b031681565b34801561065e57600080fd5b5061027661066d366004611e9f565b610dfc565b34801561067e57600080fd5b5061027661068d366004611f60565b610e65565b34801561069e57600080fd5b506102766106ad366004611f97565b610ecd565b3480156106be57600080fd5b50610276610f08565b3480156106d357600080fd5b5061028e6106e2366004611e9f565b610f3c565b3480156106f357600080fd5b50610276610702366004611e9f565b610f83565b34801561071357600080fd5b5061028e610722366004611fc3565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561075957600080fd5b50610276610768366004611dbc565b610fd7565b34801561077957600080fd5b506102766110c1565b34801561078e57600080fd5b506020546104fd906001600160a01b031681565b6000546001600160a01b031633146107d55760405162461bcd60e51b81526004016107cc90611ff6565b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b60006108058260001961080b565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108669086815260200190565b60405180910390a350600192915050565b60008261088383610f3c565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610938576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109139184906111bc565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109438484846111f6565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461099a906003546001600160a01b0316600090815260086020526040902054610994906005549061153e565b9061153e565b905090565b6000546001600160a01b031633146109c95760405162461bcd60e51b81526004016107cc90611ff6565b6103e86005546109d99190612041565b60075410156109e757600080fd5b6103e8816005546109f89190612063565b610a029190612041565b60075550565b6000546001600160a01b03163314610a325760405162461bcd60e51b81526004016107cc90611ff6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610a9857600080fd5b81600003610b0b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b08919061207a565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109469190612093565b6000546001600160a01b03163314610ba65760405162461bcd60e51b81526004016107cc90611ff6565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b336000908152600b602052604090205460ff16610c2157600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610c4d573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610c7a5760405162461bcd60e51b81526004016107cc90611ff6565b6022805460ff60a01b1916600160a01b179055606460148190556013556103e8601555565b6000546001600160a01b03163314610cc95760405162461bcd60e51b81526004016107cc90611ff6565b600c869055600f859055600d849055600e8390556010829055610cfa82610cf4858188818c8c611580565b90611580565b6011556012819055610d0d600582612041565b60115410610d5d5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107cc565b505050505050565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b81526004016107cc90611ff6565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610de45760405162461bcd60e51b81526004016107cc90611ff6565b601e91909155601f55565b60006109463384846111f6565b6000546001600160a01b03163314610e265760405162461bcd60e51b81526004016107cc90611ff6565b6103e8600554610e369190612041565b6006541015610e4457600080fd5b6103e881600554610e559190612063565b610e5f9190612041565b60065550565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b81526004016107cc90611ff6565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610ef75760405162461bcd60e51b81526004016107cc90611ff6565b601391909155601491909155601555565b6000546001600160a01b03163314610f325760405162461bcd60e51b81526004016107cc90611ff6565b610f3a6115df565b565b6000610805610f4961094d565b6022546001600160a01b0316600090815260086020526040902054610f7d90610f76906002905b906110f8565b85906110f8565b9061117a565b60195447906001600160a01b03166108fc6064610fa08585612063565b610faa9190612041565b6040518115909202916000818181858888f19350505050158015610fd2573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110015760405162461bcd60e51b81526004016107cc90611ff6565b6001600160a01b0381166110665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cc565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110eb5760405162461bcd60e51b81526004016107cc90611ff6565b6005546007819055600655565b60008260000361110a57506000610805565b60006111168385612063565b9050826111238583612041565b146109465760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107cc565b600061094683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119cd565b600081848411156111e05760405162461bcd60e51b81526004016107cc9190611dd7565b5060006111ed84866120b0565b95945050505050565b60245460009060ff16156112165761120f8484846119fb565b9050610946565b6001600160a01b03841660009081526001602052604090205460ff1615801561125857506001600160a01b03831660009081526001602052604090205460ff16155b156112ad57602254600160a01b900460ff166112ad5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107cc565b6001600160a01b03841660009081526001602052604090205460ff161580156112df57506001600160a01b0383163014155b80156112f957506003546001600160a01b03848116911614155b801561131357506022546001600160a01b03848116911614155b801561132d5750601a546001600160a01b03848116911614155b801561134757506017546001600160a01b03848116911614155b801561136c57506001600160a01b0383166000908152600b602052604090205460ff16155b1561140d576001600160a01b03831660009081526008602052604090205460075461139784836120c3565b111561140b5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107cc565b505b6114178483611acf565b61141f611b3c565b1561142c5761142c6115df565b600080546001600160a01b038681169116148061145657506000546001600160a01b038581169116145b61146a57611465858486611b92565b61146c565b825b6001600160a01b0385166000908152600860205260409020549091506114929082611580565b6001600160a01b03808616600090815260086020818152604080842095909555845180860186526014815273496e73756666696369656e742042616c616e636560601b81830152938a1683525291909120546114ef9185906111bc565b6001600160a01b03868116600081815260086020908152604091829020949094555184815291871692909160008051602061218c833981519152910160405180910390a3506001949350505050565b600061094683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111bc565b60008061158d83856120c3565b9050838110156109465760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107cc565b6024805460ff19166001179055601e54601f546000916115fe91610877565b61160a57600c5461160d565b60005b905060006116316002610f7d601154610f7d866023546110f890919063ffffffff16565b306000908152600860205260408120549192509061164f908361153e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611689576116896120d6565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106116ba576116ba6120d6565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac947906117069086906000908790309042906004016120ec565b600060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b50505050600061174d824761153e90919063ffffffff16565b9050600061176861175f88600261117a565b6011549061153e565b9050600061177d6002610f7d8481878d6110f8565b9050600061179a83610f7d600d54876110f890919063ffffffff16565b905060006117b784610f7d600f54886110f890919063ffffffff16565b905060006117d485610f7d600e54896110f890919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611826576040519150601f19603f3d011682016040523d82523d6000602084013e61182b565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461187b576040519150601f19603f3d011682016040523d82523d6000602084013e611880565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146118d0576040519150601f19603f3d011682016040523d82523d6000602084013e6118d5565b606091505b5060009250508b1590506119b55760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611953573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611978919061215d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b600081836119ee5760405162461bcd60e51b81526004016107cc9190611dd7565b5060006111ed8486612041565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611a4c9184906111bc565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611a7b9083611580565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061218c83398151915290611abd9086815260200190565b60405180910390a35060019392505050565b60065481111580611af857506001600160a01b0382166000908152600b602052604090205460ff165b611b385760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107cc565b5050565b6022546000906001600160a01b03163314801590611b5d575060245460ff16155b8015611b725750602254600160a81b900460ff165b801561099a57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0390811690841603611bb85750601354611bd3565b6022546001600160a01b0390811690861603611bd357506014545b6001600160a01b0385166000908152600a602052604081205460ff1615611bfb576000611c26565b611c266012546064611c0d9190612063565b610f7d84610f706011548a6110f890919063ffffffff16565b90506000611c45601154610f7d601054856110f890919063ffffffff16565b90506000611c746012546064611c5b9190612063565b610f7d86610f706011548c6110f890919063ffffffff16565b30600090815260086020526040902054909150611c919082611580565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611cbf9083611580565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061218c833981519152910160405180910390a38115611d5057600554611d19908361153e565b6005556004546040518381526001600160a01b03918216918a169060008051602061218c8339815191529060200160405180910390a35b611d5a878461153e565b98975050505050505050565b8015158114610c4d57600080fd5b60008060408385031215611d8757600080fd5b8235611d9281611d66565b946020939093013593505050565b80356001600160a01b0381168114611db757600080fd5b919050565b600060208284031215611dce57600080fd5b61094682611da0565b600060208083528351808285015260005b81811015611e0457858101830151858201604001528201611de8565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e3857600080fd5b611d9283611da0565b60008060408385031215611e5457600080fd5b50508035926020909101359150565b600080600060608486031215611e7857600080fd5b611e8184611da0565b9250611e8f60208501611da0565b9150604084013590509250925092565b600060208284031215611eb157600080fd5b5035919050565b600080600080600060a08688031215611ed057600080fd5b611ed986611da0565b9450611ee760208701611da0565b9350611ef560408701611da0565b9250611f0360608701611da0565b9150611f1160808701611da0565b90509295509295909350565b60008060008060008060c08789031215611f3657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611f7357600080fd5b611f7c83611da0565b91506020830135611f8c81611d66565b809150509250929050565b600080600060608486031215611fac57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611fd657600080fd5b611fdf83611da0565b9150611fed60208401611da0565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261205e57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108055761080561202b565b60006020828403121561208c57600080fd5b5051919050565b6000602082840312156120a557600080fd5b815161094681611d66565b818103818111156108055761080561202b565b808201808211156108055761080561202b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561213c5784516001600160a01b031683529383019391830191600101612117565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561217257600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a170083d2f33304f3eac5e8933b343dee08838a90dbf8984766ea52e0932c87864736f6c63430008120033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063893d20e811610139578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146106c7578063d78e139d146106e7578063dd62ed3e14610707578063f2fde38b1461074d578063f6a78e171461076d578063f887ea401461078257600080fd5b8063b2bdfa7b14610632578063bc33718214610652578063ccf8c03614610672578063cec10c1114610692578063d148b74c146106b257600080fd5b806395d89b41116100fd57806395d89b411461057d5780639acb773e146105b25780639f11080e146105d2578063a8aa1b31146105f2578063a9059cbb1461061257600080fd5b8063893d20e8146104e35780638a4068dd146105155780638a8c523c1461052a5780638da5cb5b1461053f578063918924761461055d57600080fd5b80632b112e49116101c7578063715018a61161018b578063715018a61461046257806377b54bad1461047757806378109e54146104975780637bae52e1146104ad5780637d1db4a5146104cd57600080fd5b80632b112e49146103ba578063313ce567146103cf5780635d0044ca146103eb5780636ddd17131461040b57806370a082311461042c57600080fd5b8063095ea7b31161020e578063095ea7b31461032f5780631161ae391461034f57806318160ddd1461036f5780631df4ccfc1461038457806323b872dd1461039a57600080fd5b806304368f65146102565780630445b667146102785780630621472c146102a157806306fdde03146102d157806308fd3d051461030e57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b50610276610271366004611d74565b6107a2565b005b34801561028457600080fd5b5061028e60235481565b6040519081526020015b60405180910390f35b3480156102ad57600080fd5b506102c16102bc366004611dbc565b6107f7565b6040519015158152602001610298565b3480156102dd57600080fd5b5060408051808201909152600b81526a109bdbdcdd195c94da1bdd60aa1b60208201525b6040516102989190611dd7565b34801561031a57600080fd5b506022546102c190600160a01b900460ff1681565b34801561033b57600080fd5b506102c161034a366004611e25565b61080b565b34801561035b57600080fd5b506102c161036a366004611e41565b610877565b34801561037b57600080fd5b5060055461028e565b34801561039057600080fd5b5061028e60115481565b3480156103a657600080fd5b506102c16103b5366004611e63565b61088b565b3480156103c657600080fd5b5061028e61094d565b3480156103db57600080fd5b5060405160098152602001610298565b3480156103f757600080fd5b50610276610406366004611e9f565b61099f565b34801561041757600080fd5b506022546102c190600160a81b900460ff1681565b34801561043857600080fd5b5061028e610447366004611dbc565b6001600160a01b031660009081526008602052604090205490565b34801561046e57600080fd5b50610276610a08565b34801561048357600080fd5b506102c1610492366004611e25565b610a7c565b3480156104a357600080fd5b5061028e60075481565b3480156104b957600080fd5b506102766104c8366004611eb8565b610b7c565b3480156104d957600080fd5b5061028e60065481565b3480156104ef57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610298565b34801561052157600080fd5b50610276610c05565b34801561053657600080fd5b50610276610c50565b34801561054b57600080fd5b506000546001600160a01b03166104fd565b34801561056957600080fd5b50610276610578366004611f1d565b610c9f565b34801561058957600080fd5b5060408051808201909152600c81526b424f4f5354455220f09f928960a01b6020820152610301565b3480156105be57600080fd5b506102766105cd366004611f60565b610d65565b3480156105de57600080fd5b506102766105ed366004611e41565b610dba565b3480156105fe57600080fd5b506022546104fd906001600160a01b031681565b34801561061e57600080fd5b506102c161062d366004611e25565b610def565b34801561063e57600080fd5b506000546104fd906001600160a01b031681565b34801561065e57600080fd5b5061027661066d366004611e9f565b610dfc565b34801561067e57600080fd5b5061027661068d366004611f60565b610e65565b34801561069e57600080fd5b506102766106ad366004611f97565b610ecd565b3480156106be57600080fd5b50610276610f08565b3480156106d357600080fd5b5061028e6106e2366004611e9f565b610f3c565b3480156106f357600080fd5b50610276610702366004611e9f565b610f83565b34801561071357600080fd5b5061028e610722366004611fc3565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561075957600080fd5b50610276610768366004611dbc565b610fd7565b34801561077957600080fd5b506102766110c1565b34801561078e57600080fd5b506020546104fd906001600160a01b031681565b6000546001600160a01b031633146107d55760405162461bcd60e51b81526004016107cc90611ff6565b60405180910390fd5b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b60006108058260001961080b565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108669086815260200190565b60405180910390a350600192915050565b60008261088383610f3c565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610938576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109139184906111bc565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109438484846111f6565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461099a906003546001600160a01b0316600090815260086020526040902054610994906005549061153e565b9061153e565b905090565b6000546001600160a01b031633146109c95760405162461bcd60e51b81526004016107cc90611ff6565b6103e86005546109d99190612041565b60075410156109e757600080fd5b6103e8816005546109f89190612063565b610a029190612041565b60075550565b6000546001600160a01b03163314610a325760405162461bcd60e51b81526004016107cc90611ff6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610a9857600080fd5b81600003610b0b576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b08919061207a565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109469190612093565b6000546001600160a01b03163314610ba65760405162461bcd60e51b81526004016107cc90611ff6565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b336000908152600b602052604090205460ff16610c2157600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610c4d573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610c7a5760405162461bcd60e51b81526004016107cc90611ff6565b6022805460ff60a01b1916600160a01b179055606460148190556013556103e8601555565b6000546001600160a01b03163314610cc95760405162461bcd60e51b81526004016107cc90611ff6565b600c869055600f859055600d849055600e8390556010829055610cfa82610cf4858188818c8c611580565b90611580565b6011556012819055610d0d600582612041565b60115410610d5d5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107cc565b505050505050565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b81526004016107cc90611ff6565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610de45760405162461bcd60e51b81526004016107cc90611ff6565b601e91909155601f55565b60006109463384846111f6565b6000546001600160a01b03163314610e265760405162461bcd60e51b81526004016107cc90611ff6565b6103e8600554610e369190612041565b6006541015610e4457600080fd5b6103e881600554610e559190612063565b610e5f9190612041565b60065550565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b81526004016107cc90611ff6565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610ef75760405162461bcd60e51b81526004016107cc90611ff6565b601391909155601491909155601555565b6000546001600160a01b03163314610f325760405162461bcd60e51b81526004016107cc90611ff6565b610f3a6115df565b565b6000610805610f4961094d565b6022546001600160a01b0316600090815260086020526040902054610f7d90610f76906002905b906110f8565b85906110f8565b9061117a565b60195447906001600160a01b03166108fc6064610fa08585612063565b610faa9190612041565b6040518115909202916000818181858888f19350505050158015610fd2573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110015760405162461bcd60e51b81526004016107cc90611ff6565b6001600160a01b0381166110665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cc565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110eb5760405162461bcd60e51b81526004016107cc90611ff6565b6005546007819055600655565b60008260000361110a57506000610805565b60006111168385612063565b9050826111238583612041565b146109465760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107cc565b600061094683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119cd565b600081848411156111e05760405162461bcd60e51b81526004016107cc9190611dd7565b5060006111ed84866120b0565b95945050505050565b60245460009060ff16156112165761120f8484846119fb565b9050610946565b6001600160a01b03841660009081526001602052604090205460ff1615801561125857506001600160a01b03831660009081526001602052604090205460ff16155b156112ad57602254600160a01b900460ff166112ad5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107cc565b6001600160a01b03841660009081526001602052604090205460ff161580156112df57506001600160a01b0383163014155b80156112f957506003546001600160a01b03848116911614155b801561131357506022546001600160a01b03848116911614155b801561132d5750601a546001600160a01b03848116911614155b801561134757506017546001600160a01b03848116911614155b801561136c57506001600160a01b0383166000908152600b602052604090205460ff16155b1561140d576001600160a01b03831660009081526008602052604090205460075461139784836120c3565b111561140b5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107cc565b505b6114178483611acf565b61141f611b3c565b1561142c5761142c6115df565b600080546001600160a01b038681169116148061145657506000546001600160a01b038581169116145b61146a57611465858486611b92565b61146c565b825b6001600160a01b0385166000908152600860205260409020549091506114929082611580565b6001600160a01b03808616600090815260086020818152604080842095909555845180860186526014815273496e73756666696369656e742042616c616e636560601b81830152938a1683525291909120546114ef9185906111bc565b6001600160a01b03868116600081815260086020908152604091829020949094555184815291871692909160008051602061218c833981519152910160405180910390a3506001949350505050565b600061094683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111bc565b60008061158d83856120c3565b9050838110156109465760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107cc565b6024805460ff19166001179055601e54601f546000916115fe91610877565b61160a57600c5461160d565b60005b905060006116316002610f7d601154610f7d866023546110f890919063ffffffff16565b306000908152600860205260408120549192509061164f908361153e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611689576116896120d6565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106116ba576116ba6120d6565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac947906117069086906000908790309042906004016120ec565b600060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b50505050600061174d824761153e90919063ffffffff16565b9050600061176861175f88600261117a565b6011549061153e565b9050600061177d6002610f7d8481878d6110f8565b9050600061179a83610f7d600d54876110f890919063ffffffff16565b905060006117b784610f7d600f54886110f890919063ffffffff16565b905060006117d485610f7d600e54896110f890919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611826576040519150601f19603f3d011682016040523d82523d6000602084013e61182b565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461187b576040519150601f19603f3d011682016040523d82523d6000602084013e611880565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146118d0576040519150601f19603f3d011682016040523d82523d6000602084013e6118d5565b606091505b5060009250508b1590506119b55760205460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611953573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611978919061215d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b600081836119ee5760405162461bcd60e51b81526004016107cc9190611dd7565b5060006111ed8486612041565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611a4c9184906111bc565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611a7b9083611580565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061218c83398151915290611abd9086815260200190565b60405180910390a35060019392505050565b60065481111580611af857506001600160a01b0382166000908152600b602052604090205460ff165b611b385760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107cc565b5050565b6022546000906001600160a01b03163314801590611b5d575060245460ff16155b8015611b725750602254600160a81b900460ff165b801561099a57505060235430600090815260086020526040902054101590565b601554602254600091906001600160a01b0390811690841603611bb85750601354611bd3565b6022546001600160a01b0390811690861603611bd357506014545b6001600160a01b0385166000908152600a602052604081205460ff1615611bfb576000611c26565b611c266012546064611c0d9190612063565b610f7d84610f706011548a6110f890919063ffffffff16565b90506000611c45601154610f7d601054856110f890919063ffffffff16565b90506000611c746012546064611c5b9190612063565b610f7d86610f706011548c6110f890919063ffffffff16565b30600090815260086020526040902054909150611c919082611580565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611cbf9083611580565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061218c833981519152910160405180910390a38115611d5057600554611d19908361153e565b6005556004546040518381526001600160a01b03918216918a169060008051602061218c8339815191529060200160405180910390a35b611d5a878461153e565b98975050505050505050565b8015158114610c4d57600080fd5b60008060408385031215611d8757600080fd5b8235611d9281611d66565b946020939093013593505050565b80356001600160a01b0381168114611db757600080fd5b919050565b600060208284031215611dce57600080fd5b61094682611da0565b600060208083528351808285015260005b81811015611e0457858101830151858201604001528201611de8565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e3857600080fd5b611d9283611da0565b60008060408385031215611e5457600080fd5b50508035926020909101359150565b600080600060608486031215611e7857600080fd5b611e8184611da0565b9250611e8f60208501611da0565b9150604084013590509250925092565b600060208284031215611eb157600080fd5b5035919050565b600080600080600060a08688031215611ed057600080fd5b611ed986611da0565b9450611ee760208701611da0565b9350611ef560408701611da0565b9250611f0360608701611da0565b9150611f1160808701611da0565b90509295509295909350565b60008060008060008060c08789031215611f3657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611f7357600080fd5b611f7c83611da0565b91506020830135611f8c81611d66565b809150509250929050565b600080600060608486031215611fac57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611fd657600080fd5b611fdf83611da0565b9150611fed60208401611da0565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261205e57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108055761080561202b565b60006020828403121561208c57600080fd5b5051919050565b6000602082840312156120a557600080fd5b815161094681611d66565b818103818111156108055761080561202b565b808201808211156108055761080561202b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561213c5784516001600160a01b031683529383019391830191600101612117565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561217257600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a170083d2f33304f3eac5e8933b343dee08838a90dbf8984766ea52e0932c87864736f6c63430008120033

Deployed Bytecode Sourcemap

5062:13681:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17842:156;;;;;;;;;;-1:-1:-1;17842:156:0;;;;;:::i;:::-;;:::i;:::-;;6875:57;;;;;;;;;;;;;;;;;;;597:25:1;;;585:2;570:18;6875:57:0;;;;;;;;9037:122;;;;;;;;;;-1:-1:-1;9037:122:0;;;;;:::i;:::-;;:::i;:::-;;;1167:14:1;;1160:22;1142:41;;1130:2;1115:18;9037:122:0;1002:187:1;8391:80:0;;;;;;;;;;-1:-1:-1;8463:5:0;;;;;;;;;;;;-1:-1:-1;;;8463:5:0;;;;8391:80;;;;;;;:::i;6794:31::-;;;;;;;;;;-1:-1:-1;6794:31:0;;;;-1:-1:-1;;;6794:31:0;;;;;;8813:216;;;;;;;;;;-1:-1:-1;8813:216:0;;;;;:::i;:::-;;:::i;18517:150::-;;;;;;;;;;-1:-1:-1;18517:150:0;;;;;:::i;:::-;;:::i;8121:88::-;;;;;;;;;;-1:-1:-1;8194:12:0;;8121:88;;6056:94;;;;;;;;;;;;;;;;9331:370;;;;;;;;;;-1:-1:-1;9331:370:0;;;;;:::i;:::-;;:::i;18192:142::-;;;;;;;;;;;;;:::i;8215:80::-;;;;;;;;;;-1:-1:-1;8215:80:0;;5423:1;2734:36:1;;2722:2;2707:18;8215:80:0;2592:184:1;9713:219:0;;;;;;;;;;-1:-1:-1;9713:219:0;;;;;:::i;:::-;;:::i;6838:30::-;;;;;;;;;;-1:-1:-1;6838:30:0;;;;-1:-1:-1;;;6838:30:0;;;;;;8561:105;;;;;;;;;;-1:-1:-1;8561:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8645:18:0;8627:7;8645:18;;;:9;:18;;;;;;;8561:105;3117:148;;;;;;;;;;;;;:::i;13880:308::-;;;;;;;;;;-1:-1:-1;13880:308:0;;;;;:::i;:::-;;:::i;5560:61::-;;;;;;;;;;;;;;;;17379:455;;;;;;;;;;-1:-1:-1;17379:455:0;;;;;:::i;:::-;;:::i;5495:58::-;;;;;;;;;;;;;;;;8477:78;;;;;;;;;;-1:-1:-1;8529:7:0;2968:6;-1:-1:-1;;;;;2968:6:0;8477:78;;;-1:-1:-1;;;;;3619:32:1;;;3601:51;;3589:2;3574:18;8477:78:0;3455:203:1;13723:149:0;;;;;;;;;;;;;:::i;14411:176::-;;;;;;;;;;;;;:::i;2903:79::-;;;;;;;;;;-1:-1:-1;2941:7:0;2968:6;-1:-1:-1;;;;;2968:6:0;2903:79;;16792:579;;;;;;;;;;-1:-1:-1;16792:579:0;;;;;:::i;:::-;;:::i;8301:84::-;;;;;;;;;;-1:-1:-1;8375:7:0;;;;;;;;;;;;-1:-1:-1;;;8375:7:0;;;;8301:84;;16664:120;;;;;;;;;;-1:-1:-1;16664:120:0;;;;;:::i;:::-;;:::i;18006:174::-;;;;;;;;;;-1:-1:-1;18006:174:0;;;;;:::i;:::-;;:::i;6762:19::-;;;;;;;;;;-1:-1:-1;6762:19:0;;;;-1:-1:-1;;;;;6762:19:0;;;9167:156;;;;;;;;;;-1:-1:-1;9167:156:0;;;;;:::i;:::-;;:::i;2523:21::-;;;;;;;;;;-1:-1:-1;2523:21:0;;;;-1:-1:-1;;;;;2523:21:0;;;9940:187;;;;;;;;;;-1:-1:-1;9940:187:0;;;;;:::i;:::-;;:::i;16499:157::-;;;;;;;;;;-1:-1:-1;16499:157:0;;;;;:::i;:::-;;:::i;14196:207::-;;;;;;;;;;-1:-1:-1;14196:207:0;;;;;:::i;:::-;;:::i;13494:77::-;;;;;;;;;;;;;:::i;18342:167::-;;;;;;;;;;-1:-1:-1;18342:167:0;;;;;:::i;:::-;;:::i;13287:198::-;;;;;;;;;;-1:-1:-1;13287:198:0;;;;;:::i;:::-;;:::i;8672:133::-;;;;;;;;;;-1:-1:-1;8672:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8774:19:0;;;8756:7;8774:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8672:133;3273:244;;;;;;;;;;-1:-1:-1;3273:244:0;;;;;:::i;:::-;;:::i;13579:136::-;;;;;;;;;;;;;:::i;6692:24::-;;;;;;;;;;-1:-1:-1;6692:24:0;;;;-1:-1:-1;;;;;6692:24:0;;;17842:156;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;;;;;;;;;17934:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17934:22:0::1;-1:-1:-1::0;;;;17934:22:0;;::::1;::::0;;;::::1;::::0;;;17967:13:::1;:23:::0;17842:156::o;9037:122::-;9092:4;9116:35;9124:7;-1:-1:-1;;9116:7:0;:35::i;:::-;9109:42;9037:122;-1:-1:-1;;9037:122:0:o;8813:216::-;8917:10;8888:4;8905:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8905:32:0;;;;;;;;;;:41;;;8962:37;8888:4;;8905:32;;8962:37;;;;8940:6;597:25:1;;585:2;570:18;;451:177;8962:37:0;;;;;;;;-1:-1:-1;9017:4:0;8813:216;;;;:::o;18517:150::-;18597:4;18653:6;18621:29;18641:8;18621:19;:29::i;:::-;:38;;18517:150;-1:-1:-1;;;18517:150:0:o;9331:370::-;-1:-1:-1;;;;;9451:19:0;;9431:4;9451:19;;;:11;:19;;;;;;;;9471:10;9451:31;;;;;;;;-1:-1:-1;;9451:52:0;9448:186;;9553:69;;;;;;;;;;;-1:-1:-1;;;9553:69:0;;;;;;;;-1:-1:-1;;;;;9553:19:0;;-1:-1:-1;9553:19:0;;;:11;:19;;;;;9573:10;9553:31;;;;;;;;;;:69;;9589:6;;9553:35;:69::i;:::-;-1:-1:-1;;;;;9519:19:0;;;;;;:11;:19;;;;;;;;9539:10;9519:31;;;;;;;:103;9448:186;9653:40;9667:6;9675:9;9686:6;9653:13;:40::i;:::-;9646:47;;9331:370;;;;;;:::o;18192:142::-;18320:4;;-1:-1:-1;;;;;18320:4:0;18245:7;8645:18;;;:9;:18;;;;;;18272:54;;18299:4;;-1:-1:-1;;;;;18299:4:0;8627:7;8645:18;;;:9;:18;;;;;;18272:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18265:61;;18192:142;:::o;9713:219::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;9832:4:::1;9817:12;;:19;;;;:::i;:::-;9798:15;;:38;;9790:47;;;::::0;::::1;;9902:4;9883:14;9868:12;;:29;;;;:::i;:::-;9867:39;;;;:::i;:::-;9849:15;:57:::0;-1:-1:-1;9713:219:0:o;3117:148::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;3224:1:::1;3208:6:::0;;3187:40:::1;::::0;-1:-1:-1;;;;;3208:6:0;;::::1;::::0;3187:40:::1;::::0;3224:1;;3187:40:::1;3255:1;3238:19:::0;;-1:-1:-1;;;;;;3238:19:0::1;::::0;;3117:148::o;13880:308::-;14000:10;13959:4;13984:27;;;:15;:27;;;;;;;;13976:36;;;;;;14023:6;14033:1;14023:11;14020:95;;14059:44;;-1:-1:-1;;;14059:44:0;;14097:4;14059:44;;;3601:51:1;-1:-1:-1;;;;;14059:29:0;;;;;3574:18:1;;14059:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14050:53;;14020:95;14132:48;;-1:-1:-1;;;14132:48:0;;14161:10;14132:48;;;6574:51:1;6641:18;;;6634:34;;;-1:-1:-1;;;;;14132:28:0;;;;;6547:18:1;;14132:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17379:455::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;17584:21:::1;:46:::0;;-1:-1:-1;;;;;;17584:46:0;;::::1;-1:-1:-1::0;;;;;17584:46:0;;::::1;;::::0;;;17641:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17696:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17747:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17792:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17379:455::o;13723:149::-;13788:10;13772:27;;;;:15;:27;;;;;;;;13764:36;;;;;;13811:51;;13819:10;;13840:21;13811:51;;;;;;;;;13840:21;13819:10;13811:51;;;;;;;;;;;;;;;;;;;;;13723:149::o;14411:176::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;14464:11:::1;:18:::0;;-1:-1:-1;;;;14464:18:0::1;-1:-1:-1::0;;;14464:18:0::1;::::0;;14509:3:::1;14464:11;14493:19:::0;;;14523:14:::1;:20:::0;14575:4:::1;14554:18;:25:::0;14411:176::o;16792:579::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;16978:12:::1;:28:::0;;;17017:7:::1;:18:::0;;;17046:12:::1;:28:::0;;;17085:10:::1;:24:::0;;;17120:7:::1;:18:::0;;;17160:77:::1;17130:8:::0;17160:63:::1;17098:11:::0;17160:63;17061:13;17160:63;16993:13;17027:8;17160:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;17149:8;:88:::0;17248:14:::1;:32:::0;;;17310:18:::1;17327:1;17265:15:::0;17310:18:::1;:::i;:::-;17299:8;;:29;17291:71;;;::::0;-1:-1:-1;;;17291:71:0;;7131:2:1;17291:71:0::1;::::0;::::1;7113:21:1::0;7170:2;7150:18;;;7143:30;7209:31;7189:18;;;7182:59;7258:18;;17291:71:0::1;6929:353:1::0;17291:71:0::1;16792:579:::0;;;;;;:::o;16664:120::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16744:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16744:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16664:120::o;18006:174::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;18095:15:::1;:25:::0;;;;18131:26:::1;:41:::0;18006:174::o;9167:156::-;9247:4;9271:44;9285:10;9297:9;9308:6;9271:13;:44::i;9940:187::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;10050:4:::1;10035:12;;:19;;;;:::i;:::-;10019:12;;:35;;10011:44;;;::::0;::::1;;10115:4;10098:12;10083;;:27;;;;:::i;:::-;10082:37;;;;:::i;:::-;10067:12;:52:::0;-1:-1:-1;9940:187:0:o;16499:157::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16577:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16577:28:0;;::::1;::::0;::::1;::::0;;;16616:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16499:157::o;14196:207::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;14288:14:::1;:22:::0;;;;14321:13:::1;:20:::0;;;;14352:18:::1;:27:::0;14196:207::o;13494:77::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;13547:10:::1;:8;:10::i;:::-;13494:77::o:0;18342:167::-;18410:7;18437:64;18478:22;:20;:22::i;:::-;18460:4;;-1:-1:-1;;;;;18460:4:0;8627:7;8645:18;;;:9;:18;;;;;;18437:36;;18450:22;;18470:1;;18450:15;:19;;:22::i;:::-;18437:8;;:12;:36::i;:::-;:40;;:64::i;13287:198::-;13416:15;;13376:21;;-1:-1:-1;;;;;13416:15:0;13408:69;13473:3;13442:28;13454:16;13376:21;13442:28;:::i;:::-;:34;;;;:::i;:::-;13408:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:140;13287:198;:::o;3273:244::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3362:22:0;::::1;3354:73;;;::::0;-1:-1:-1;;;3354:73:0;;7489:2:1;3354:73:0::1;::::0;::::1;7471:21:1::0;7528:2;7508:18;;;7501:30;7567:34;7547:18;;;7540:62;-1:-1:-1;;;7618:18:1;;;7611:36;7664:19;;3354:73:0::1;7287:402:1::0;3354:73:0::1;3464:6;::::0;;3443:38:::1;::::0;-1:-1:-1;;;;;3443:38:0;;::::1;::::0;3464:6;::::1;::::0;3443:38:::1;::::0;::::1;3492:6;:17:::0;;-1:-1:-1;;;;;;3492:17:0::1;-1:-1:-1::0;;;;;3492:17:0;;;::::1;::::0;;;::::1;::::0;;3273:244::o;13579:136::-;3030:6;;-1:-1:-1;;;;;3030:6:0;2340:10;3030:22;3022:67;;;;-1:-1:-1;;;3022:67:0;;;;;;;:::i;:::-;13655:12:::1;::::0;13637:15:::1;:30:::0;;;13678:12:::1;:27:::0;13579:136::o;702:250::-;760:7;784:1;789;784:6;780:47;;-1:-1:-1;814:1:0;807:8;;780:47;839:9;851:5;855:1;851;:5;:::i;:::-;839:17;-1:-1:-1;884:1:0;875:5;879:1;839:17;875:5;:::i;:::-;:10;867:56;;;;-1:-1:-1;;;867:56:0;;7896:2:1;867:56:0;;;7878:21:1;7935:2;7915:18;;;7908:30;7974:34;7954:18;;;7947:62;-1:-1:-1;;;8025:18:1;;;8018:31;8066:19;;867:56:0;7694:397:1;958:132:0;1016:7;1043:39;1047:1;1050;1043:39;;;;;;;;;;;;;;;;;:3;:39::i;504:192::-;590:7;626:12;618:6;;;;610:29;;;;-1:-1:-1;;;610:29:0;;;;;;;;:::i;:::-;-1:-1:-1;650:9:0;662:5;666:1;662;:5;:::i;:::-;650:17;504:192;-1:-1:-1;;;;;504:192:0:o;10144:1213::-;10256:6;;10236:4;;10256:6;;10253:63;;;10272:41;10287:6;10295:9;10306:6;10272:14;:41::i;:::-;10265:48;;;;10253:63;-1:-1:-1;;;;;10332:22:0;;;;;;:14;:22;;;;;;;;10331:23;:53;;;;-1:-1:-1;;;;;;10359:25:0;;;;;;:14;:25;;;;;;;;10358:26;10331:53;10328:130;;;10408:11;;-1:-1:-1;;;10408:11:0;;;;10400:43;;;;-1:-1:-1;;;10400:43:0;;8431:2:1;10400:43:0;;;8413:21:1;8470:2;8450:18;;;8443:30;-1:-1:-1;;;8489:18:1;;;8482:50;8549:18;;10400:43:0;8229:344:1;10400:43:0;-1:-1:-1;;;;;10492:22:0;;;;;;:14;:22;;;;;;;;10491:23;:53;;;;-1:-1:-1;;;;;;10518:26:0;;10539:4;10518:26;;10491:53;:84;;;;-1:-1:-1;10570:4:0;;-1:-1:-1;;;;;10549:26:0;;;10570:4;;10549:26;;10491:84;:105;;;;-1:-1:-1;10592:4:0;;-1:-1:-1;;;;;10579:17:0;;;10592:4;;10579:17;;10491:105;:137;;;;-1:-1:-1;10613:15:0;;-1:-1:-1;;;;;10600:28:0;;;10613:15;;10600:28;;10491:137;:174;;;;-1:-1:-1;10645:20:0;;-1:-1:-1;;;;;10632:33:0;;;10645:20;;10632:33;;10491:174;:205;;;;-1:-1:-1;;;;;;10670:26:0;;;;;;:15;:26;;;;;;;;10669:27;10491:205;10487:397;;;-1:-1:-1;;;;;8645:18:0;;10712;8645;;;:9;:18;;;;;;10801:15;;10777:19;10790:6;8645:18;10777:19;:::i;:::-;10776:40;;10768:114;;;;-1:-1:-1;;;10768:114:0;;8910:2:1;10768:114:0;;;8892:21:1;8949:2;8929:18;;;8922:30;8988:34;8968:18;;;8961:62;9059:32;9039:18;;;9032:60;9109:19;;10768:114:0;8708:426:1;10768:114:0;10697:187;10487:397;10905:28;10918:6;10926;10905:12;:28::i;:::-;10950:16;:14;:16::i;:::-;10947:35;;;10969:10;:8;:10::i;:::-;11002:22;11028:6;;-1:-1:-1;;;;;11028:14:0;;;:6;;:14;;:35;;-1:-1:-1;11046:6:0;;-1:-1:-1;;;;;11046:17:0;;;:6;;:17;11028:35;11027:83;;11076:34;11084:6;11092;11100:9;11076:7;:34::i;:::-;11027:83;;;11067:6;11027:83;-1:-1:-1;;;;;11144:20:0;;;;;;:9;:20;;;;;;11002:108;;-1:-1:-1;11144:40:0;;11002:108;11144:24;:40::i;:::-;-1:-1:-1;;;;;11121:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;11215:53;;;;;;;;;;-1:-1:-1;;;11215:53:0;;;;:17;;;;;;;;;;;:53;;11237:6;;11215:21;:53::i;:::-;-1:-1:-1;;;;;11195:17:0;;;;;;;:9;:17;;;;;;;;;:73;;;;11284:43;597:25:1;;;11284:43:0;;;;11195:17;;-1:-1:-1;;;;;;;;;;;11284:43:0;570:18:1;11284:43:0;;;;;;;-1:-1:-1;11345:4:0;;10144:1213;-1:-1:-1;;;;10144:1213:0:o;362:136::-;420:7;447:43;451:1;454;447:43;;;;;;;;;;;;;;;;;:3;:43::i;175:181::-;233:7;;265:5;269:1;265;:5;:::i;:::-;253:17;;294:1;289;:6;;281:46;;;;-1:-1:-1;;;281:46:0;;9341:2:1;281:46:0;;;9323:21:1;9380:2;9360:18;;;9353:30;9419:29;9399:18;;;9392:57;9466:18;;281:46:0;9139:351:1;14603:1888:0;6980:6;:13;;-1:-1:-1;;6980:13:0;6989:4;6980:13;;;14698:15:::1;::::0;14715:26:::1;::::0;6980:6;;14682:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14749:12;;14682:79;;;14745:1;14682:79;14652:109;;14772:23;14798:59;14855:1;14798:52;14841:8;;14798:38;14816:19;14798:13;;:17;;:38;;;;:::i;:59::-;14909:4;14868:20;14891:24:::0;;;:9:::1;:24;::::0;;;;;14772:85;;-1:-1:-1;14868:20:0;14891:45:::1;::::0;14772:85;14891:28:::1;:45::i;:::-;14973:16;::::0;;14987:1:::1;14973:16:::0;;;;;::::1;::::0;;14868:68;;-1:-1:-1;14949:21:0::1;::::0;14973:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14973:16:0::1;14949:40;;15018:4;15000;15005:1;15000:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15000:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15044:4:::1;::::0;15034:7;;15044:4;::::1;::::0;15034;;15044;;15034:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15034:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;15119:6;:188:::1;::::0;-1:-1:-1;;;15119:188:0;;15085:21:::1;::::0;15119:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15191:12;;15061:21:::1;::::0;15234:4;;15261::::1;::::0;15281:15:::1;::::0;15119:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15320:17;15340:40;15366:13;15340:21;:25;;:40;;;;:::i;:::-;15320:60:::0;-1:-1:-1;15393:19:0::1;15415:40;15428:26;:19:::0;15452:1:::1;15428:23;:26::i;:::-;15415:8;::::0;;:12:::1;:40::i;:::-;15393:62:::0;-1:-1:-1;15476:26:0::1;15505:58;15561:1;15505:51;15393:62:::0;15505:51;:9;15519:19;15505:13:::1;:34::i;:58::-;15476:87;;15574:26;15603:44;15635:11;15603:27;15617:12;;15603:9;:13;;:27;;;;:::i;:44::-;15574:73;;15658:21;15682:39;15709:11;15682:22;15696:7;;15682:9;:13;;:22;;;;:::i;:39::-;15658:63;;15732:24;15759:42;15789:11;15759:25;15773:10;;15759:9;:13;;:25;;;;:::i;:42::-;15843:20;::::0;15835:65:::1;::::0;15732:69;;-1:-1:-1;15815:15:0::1;::::0;-1:-1:-1;;;;;15843:20:0;;::::1;::::0;15877:18;;15815:15;15835:65;15815:15;15835:65;15877:18;15843:20;15835:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15935:18:0::1;::::0;15927:61:::1;::::0;15814:86;;-1:-1:-1;;;;;;15935:18:0::1;::::0;15967:16;;15927:61:::1;::::0;;;15967:16;15935:18;15927:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16023:15:0::1;::::0;16015:55:::1;::::0;15911:77;;-1:-1:-1;;;;;;16023:15:0::1;::::0;16052:13;;16015:55:::1;::::0;;;16052:13;16023:15;16015:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16104:5:0::1;::::0;-1:-1:-1;;16125:19:0;;;-1:-1:-1;16122:362:0::1;;16160:6;::::0;16334:21:::1;::::0;16160:244:::1;::::0;-1:-1:-1;;;16160:244:0;;16236:4:::1;16160:244;::::0;::::1;11295:34:1::0;11345:18;;;11338:34;;;16160:6:0::1;11388:18:1::0;;;11381:34;;;11431:18;;;11424:34;-1:-1:-1;;;;;16334:21:0;;::::1;11474:19:1::0;;;11467:44;16374:15:0::1;11527:19:1::0;;;11520:35;16160:6:0;::::1;::::0;:22:::1;::::0;16190:18;;11229:19:1;;16160:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16424:48:0::1;::::0;;12051:25:1;;;12107:2;12092:18;;12085:34;;;16424:48:0::1;::::0;-1:-1:-1;12024:18:1;16424:48:0::1;;;;;;;16122:362;-1:-1:-1::0;;6998:6:0;:14;;-1:-1:-1;;6998:14:0;;;-1:-1:-1;;;;;;;;;;14603:1888:0:o;1096:189::-;1182:7;1217:12;1210:5;1202:28;;;;-1:-1:-1;;;1202:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1241:9:0;1253:5;1257:1;1253;:5;:::i;11369:330::-;11499:53;;;;;;;;;;;-1:-1:-1;;;11499:53:0;;;;;;;;-1:-1:-1;;;;;11499:17:0;;11462:4;11499:17;;;:9;:17;;;;;;;:53;;11521:6;;11499:21;:53::i;:::-;-1:-1:-1;;;;;11479:17:0;;;;;;;:9;:17;;;;;;:73;;;;11586:20;;;;;;;:32;;11611:6;11586:24;:32::i;:::-;-1:-1:-1;;;;;11563:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11634:35;;;;;;-1:-1:-1;;;;;;;;;;;11634:35:0;;;11662:6;597:25:1;;585:2;570:18;;451:177;11634:35:0;;;;;;;;-1:-1:-1;11687:4:0;11369:330;;;;;:::o;11707:166::-;11804:12;;11794:6;:22;;:49;;;-1:-1:-1;;;;;;11820:23:0;;;;;;:15;:23;;;;;;;;11794:49;11786:79;;;;-1:-1:-1;;;11786:79:0;;12332:2:1;11786:79:0;;;12314:21:1;12371:2;12351:18;;;12344:30;-1:-1:-1;;;12390:18:1;;;12383:47;12447:18;;11786:79:0;12130:341:1;11786:79:0;11707:166;;:::o;13082:197::-;13169:4;;13131;;-1:-1:-1;;;;;13169:4:0;13155:10;:18;;;;:38;;-1:-1:-1;13187:6:0;;;;13186:7;13155:38;:62;;;;-1:-1:-1;13206:11:0;;-1:-1:-1;;;13206:11:0;;;;13155:62;:116;;;;-1:-1:-1;;13258:13:0;;13248:4;13230:24;;;;:9;:24;;;;;;:41;;;13082:197::o;12003:1071::-;12140:18;;12187:4;;12089:7;;12140:18;-1:-1:-1;;;;;12187:4:0;;;12174:17;;;;12171:154;;-1:-1:-1;12221:14:0;;12171:154;;;12266:4;;-1:-1:-1;;;;;12266:4:0;;;12256:14;;;;12253:72;;-1:-1:-1;12300:13:0;;12253:72;-1:-1:-1;;;;;11968:19:0;;12337:17;11968:19;;;:11;:19;;;;;;;;11967:20;12357:88;;12444:1;12357:88;;;12381:62;12422:14;;12439:3;12422:20;;;;:::i;:::-;12381:36;12406:10;12381:20;12392:8;;12381:6;:10;;:20;;;;:::i;:62::-;12337:108;;12456:18;12477:36;12504:8;;12477:22;12491:7;;12477:9;:13;;:22;;;;:::i;:36::-;12456:57;;12524:22;12550:62;12591:14;;12608:3;12591:20;;;;:::i;:::-;12550:36;12575:10;12550:20;12561:8;;12550:6;:10;;:20;;;;:::i;:62::-;12670:4;12652:24;;;;:9;:24;;;;;;12524:88;;-1:-1:-1;12652:44:0;;12524:88;12652:28;:44::i;:::-;12643:4;12625:24;;;;:9;:24;;;;;;:71;;;;12746:15;;-1:-1:-1;;;;;12746:15:0;12736:26;;;;:42;;12767:10;12736:30;:42::i;:::-;12717:15;;-1:-1:-1;;;;;12717:15:0;;;12707:26;;;;:9;:26;;;;;;;;;:71;;;;12794:47;597:25:1;;;12819:4:0;;12794:47;;;;-1:-1:-1;;;;;;;;;;;12794:47:0;570:18:1;12794:47:0;;;;;;;12875:14;;12872:154;;12920:12;;:28;;12937:10;12920:16;:28::i;:::-;12905:12;:43;12985:4;;12968:34;;597:25:1;;;-1:-1:-1;;;;;12985:4:0;;;;12968:34;;;-1:-1:-1;;;;;;;;;;;12968:34:0;585:2:1;570:18;12968:34:0;;;;;;;12872:154;13045:21;:6;13056:9;13045:10;:21::i;:::-;13038:28;12003:1071;-1:-1:-1;;;;;;;;12003:1071: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:173::-;701:20;;-1:-1:-1;;;;;750:31:1;;740:42;;730:70;;796:1;793;786:12;730:70;633:173;;;:::o;811:186::-;870:6;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;1194:548::-;1306:4;1335:2;1364;1353:9;1346:21;1396:6;1390:13;1439:6;1434:2;1423:9;1419:18;1412:34;1464:1;1474:140;1488:6;1485:1;1482:13;1474:140;;;1583:14;;;1579:23;;1573:30;1549:17;;;1568:2;1545:26;1538:66;1503:10;;1474:140;;;1478:3;1663:1;1658:2;1649:6;1638:9;1634:22;1630:31;1623:42;1733:2;1726;1722:7;1717:2;1709:6;1705:15;1701:29;1690:9;1686:45;1682:54;1674:62;;;;1194:548;;;;:::o;1747:254::-;1815:6;1823;1876:2;1864:9;1855:7;1851:23;1847:32;1844:52;;;1892:1;1889;1882:12;1844:52;1915:29;1934:9;1915:29;:::i;2006:248::-;2074:6;2082;2135:2;2123:9;2114:7;2110:23;2106:32;2103:52;;;2151:1;2148;2141:12;2103:52;-1:-1:-1;;2174:23:1;;;2244:2;2229:18;;;2216:32;;-1:-1:-1;2006:248:1:o;2259:328::-;2336:6;2344;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2577:2;2566:9;2562:18;2549:32;2539:42;;2259:328;;;;;:::o;2781:180::-;2840:6;2893:2;2881:9;2872:7;2868:23;2864:32;2861:52;;;2909:1;2906;2899:12;2861:52;-1:-1:-1;2932:23:1;;2781:180;-1:-1:-1;2781:180:1:o;2966:484::-;3061:6;3069;3077;3085;3093;3146:3;3134:9;3125:7;3121:23;3117:33;3114:53;;;3163:1;3160;3153:12;3114:53;3186:29;3205:9;3186:29;:::i;:::-;3176:39;;3234:38;3268:2;3257:9;3253:18;3234:38;:::i;:::-;3224:48;;3291:38;3325:2;3314:9;3310:18;3291:38;:::i;:::-;3281:48;;3348:38;3382:2;3371:9;3367:18;3348:38;:::i;:::-;3338:48;;3405:39;3439:3;3428:9;3424:19;3405:39;:::i;:::-;3395:49;;2966:484;;;;;;;;:::o;3663:523::-;3767:6;3775;3783;3791;3799;3807;3860:3;3848:9;3839:7;3835:23;3831:33;3828:53;;;3877:1;3874;3867:12;3828:53;-1:-1:-1;;3900:23:1;;;3970:2;3955:18;;3942:32;;-1:-1:-1;4021:2:1;4006:18;;3993:32;;4072:2;4057:18;;4044:32;;-1:-1:-1;4123:3:1;4108:19;;4095:33;;-1:-1:-1;4175:3:1;4160:19;4147:33;;-1:-1:-1;3663:523:1;-1:-1:-1;3663:523:1:o;4191:315::-;4256:6;4264;4317:2;4305:9;4296:7;4292:23;4288:32;4285:52;;;4333:1;4330;4323:12;4285:52;4356:29;4375:9;4356:29;:::i;:::-;4346:39;;4435:2;4424:9;4420:18;4407:32;4448:28;4470:5;4448:28;:::i;:::-;4495:5;4485:15;;;4191:315;;;;;:::o;4511:316::-;4588:6;4596;4604;4657:2;4645:9;4636:7;4632:23;4628:32;4625:52;;;4673:1;4670;4663:12;4625:52;-1:-1:-1;;4696:23:1;;;4766:2;4751:18;;4738:32;;-1:-1:-1;4817:2:1;4802:18;;;4789:32;;4511:316;-1:-1:-1;4511:316:1:o;4832:260::-;4900:6;4908;4961:2;4949:9;4940:7;4936:23;4932:32;4929:52;;;4977:1;4974;4967:12;4929:52;5000:29;5019:9;5000:29;:::i;:::-;4990:39;;5048:38;5082:2;5071:9;5067:18;5048:38;:::i;:::-;5038:48;;4832:260;;;;;:::o;5323:356::-;5525:2;5507:21;;;5544:18;;;5537:30;5603:34;5598:2;5583:18;;5576:62;5670:2;5655:18;;5323:356::o;5684:127::-;5745:10;5740:3;5736:20;5733:1;5726:31;5776:4;5773:1;5766:15;5800:4;5797:1;5790:15;5816:217;5856:1;5882;5872:132;;5926:10;5921:3;5917:20;5914:1;5907:31;5961:4;5958:1;5951:15;5989:4;5986:1;5979:15;5872:132;-1:-1:-1;6018:9:1;;5816:217::o;6038:168::-;6111:9;;;6142;;6159:15;;;6153:22;;6139:37;6129:71;;6180:18;;:::i;6211:184::-;6281:6;6334:2;6322:9;6313:7;6309:23;6305:32;6302:52;;;6350:1;6347;6340:12;6302:52;-1:-1:-1;6373:16:1;;6211:184;-1:-1:-1;6211:184:1:o;6679:245::-;6746:6;6799:2;6787:9;6778:7;6774:23;6770:32;6767:52;;;6815:1;6812;6805:12;6767:52;6847:9;6841:16;6866:28;6888:5;6866:28;:::i;8096:128::-;8163:9;;;8184:11;;;8181:37;;;8198:18;;:::i;8578:125::-;8643:9;;;8664:10;;;8661:36;;;8677:18;;:::i;9627:127::-;9688:10;9683:3;9679:20;9676:1;9669:31;9719:4;9716:1;9709:15;9743:4;9740:1;9733:15;9759:980;10021:4;10069:3;10058:9;10054:19;10100:6;10089:9;10082:25;10126:2;10164:6;10159:2;10148:9;10144:18;10137:34;10207:3;10202:2;10191:9;10187:18;10180:31;10231:6;10266;10260:13;10297:6;10289;10282:22;10335:3;10324:9;10320:19;10313:26;;10374:2;10366:6;10362:15;10348:29;;10395:1;10405:195;10419:6;10416:1;10413:13;10405:195;;;10484:13;;-1:-1:-1;;;;;10480:39:1;10468:52;;10575:15;;;;10540:12;;;;10516:1;10434:9;10405:195;;;-1:-1:-1;;;;;;;10656:32:1;;;;10651:2;10636:18;;10629:60;-1:-1:-1;;;10720:3:1;10705:19;10698:35;10617:3;9759:980;-1:-1:-1;;;9759:980:1:o;11566:306::-;11654:6;11662;11670;11723:2;11711:9;11702:7;11698:23;11694:32;11691:52;;;11739:1;11736;11729:12;11691:52;11768:9;11762:16;11752:26;;11818:2;11807:9;11803:18;11797:25;11787:35;;11862:2;11851:9;11847:18;11841:25;11831:35;;11566:306;;;;;:::o

Swarm Source

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