ETH Price: $2,441.51 (-1.34%)
 

Overview

Max Total Supply

420,000,000,000 OGGY

Holders

2,455 ( -0.041%)

Market

Price

$0.00 @ 0.000000 ETH (-0.38%)

Onchain Market Cap

$401,697.68

Circulating Supply Market Cap

$192,501.39

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 OGGY

Value
$0.00
0xe9429b688f2c5648a1ec227b12d015b4991ef338
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

OggyInu is a token derived from the impromptu meme market. Not affiliated with any broadcast or production agency.

Market

Volume (24H):$186.17
Market Capitalization:$192,501.39
Circulating Supply:201,272,222,574.00 OGGY
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OGGYINU

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

http://oggyinu.com
https://twitter.com/OggyInuLTD/
https://t.me/oggy_inu

*/

// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.20;

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;
}


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;
    }
}

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

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

    string constant _name = "Oggy Inu";
    string constant _symbol = "OGGY";
    uint8 constant _decimals = 9; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address teamFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply = 420000000000 * 10**_decimals; 

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

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isexemptfromfees;
    mapping (address => bool) isexemptfrommaxTX;

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

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 0; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
   
    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    bool public TradingOpen = true; 
  
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 50 / 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;

        isexemptfromfees[msg.sender] = true;            
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        authorizations[marketingFeeReceiver] = true;
        
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xb7F2BC0446CceC9367207eC0C02A1B8557152753;
        devFeeReceiver = 0xb7F2BC0446CceC9367207eC0C02A1B8557152753;
        teamFeeReceiver = 0xb7F2BC0446CceC9367207eC0C02A1B8557152753;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

      function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

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

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

        if(!authorizations[sender] && !authorizations[recipient] && recipient !=marketingFeeReceiver && sender !=marketingFeeReceiver) {
            require(TradingOpen,"Trading not open yet");
        
          }
        
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[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 = (isexemptfromfees[sender] || isexemptfromfees[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 || isexemptfrommaxTX[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _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() external { 
             payable(marketingFeeReceiver).transfer(address(this).balance);
            
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
     require(tokenAddress != address(this), "Owner cannot claim native tokens"); 
     if(tokens == 0){
            tokens = ERC20 (tokenAddress).balanceOf(address(this));
        }
        return ERC20 (tokenAddress).transfer(msg.sender, tokens);
    }

    
    function setFeeMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) public onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    

        require(totalFee.mul(buypercent).div(100) < 10, "Buy Tax cannot be more than 10%");
        require(totalFee.mul(sellpercent).div(100) < 10, "Sell Tax cannot be more than 10%");
        require(totalFee.mul(transferpercent).div(100) < 10, "Transfer Tax cannot be more than 10%");
 
    }
       
     function swapBack() internal swapping {
        
        uint256 totalETHFee = totalFee;

        uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2);
        uint256 amountToSwap = swapThreshold - amountToLiquify;

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

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

         uint256 amountETH = address(this).balance;

         totalETHFee = totalETHFee - (liquidityFee / 2);
        
        uint256 amountETHLiquidity = (amountETH * liquidityFee) / (totalETHFee * 2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

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

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }
    
    function setTax(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
        set_fees();
    }

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

        emit set_Receivers(marketingFeeReceiver, teamFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

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

       
    function circulatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"teamFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"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":"setFeeMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setWhitelistAddresss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200066b565b62000023906461c9f368006200067b565b600381905562000043906064906200003c908262000448565b90620004db565b6004556003546200005e906064906200003c90600262000448565b6005555f600a556003600b555f600c555f600d555f600e55600e54600c54600a54600b54600d5462000091919062000695565b6200009d919062000695565b620000a9919062000695565b620000b5919062000695565b600f556064601081905560118190556012555f601355601d805461ffff60a01b191661010160a01b17905560035461271090620000f49060326200067b565b620001009190620006ab565b601e553480156200010f575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001cc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f29190620006cb565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200024f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002759190620006cb565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002c4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ea9190620006cb565b601d80546001600160a01b039283166001600160a01b031991821681178355601c805483169091179055305f818152600760209081526040808320601b548816845282528083205f1990553380845260088352818420805460ff1990811660019081179092556009855283862080548216831790559754891685528285208054891682179055601580548a16865283862080548a16831790559585528285208054891682179055855490981684528783528184208054909716909717909555601480548516871790558254841673b7f2bc0446ccec9367207ec0c02a1b8557152753908117909355601680548516841790556017805485169093179092556018805490931661dead179092556003548483526006909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200043a91815260200190565b60405180910390a362000740565b5f825f036200045957505f620004d5565b5f6200046683856200067b565b905082620004758583620006ab565b14620004d25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200052460201b60201c565b5f8183620005475760405162461bcd60e51b8152600401620004c99190620006f3565b505f620005558486620006ab565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005b257815f19048211156200059657620005966200055e565b80851615620005a457918102915b93841c939080029062000577565b509250929050565b5f82620005ca57506001620004d5565b81620005d857505f620004d5565b8160018114620005f15760028114620005fc576200061c565b6001915050620004d5565b60ff8411156200061057620006106200055e565b50506001821b620004d5565b5060208310610133831016604e8410600b841016171562000641575081810a620004d5565b6200064d838362000572565b805f19048211156200066357620006636200055e565b029392505050565b5f620004d260ff841683620005ba565b8082028115828204841417620004d557620004d56200055e565b80820180821115620004d557620004d56200055e565b5f82620006c657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006dc575f80fd5b81516001600160a01b0381168114620004d2575f80fd5b5f6020808352835180828501525f5b81811015620007205785810183015185820160400152820162000702565b505f604082860101526040601f19601f8301168501019250505092915050565b6120a3806200074e5f395ff3fe6080604052600436106101e9575f3560e01c8063715018a611610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e1461057b578063df20fd49146105bf578063f2fde38b146105de578063f887ea40146105fd578063f88de0c31461061c575f80fd5b8063a8aa1b3114610500578063a9059cbb1461051f578063b2bdfa7b1461053e578063b6a5d7de1461055c575f80fd5b8063893d20e8116100d8578063893d20e8146104745780638da5cb5b146104a45780639358928b146104c057806395d89b41146104d4575f80fd5b8063715018a61461041757806377b54bad1461042b57806378109e541461044a5780637d1db4a51461045f575f80fd5b80631df4ccfc1161017e578063571ac8b01161014e578063571ac8b0146103855780635d0044ca146103a45780636ddd1713146103c357806370a08231146103e3575f80fd5b80631df4ccfc1461031757806323b872dd1461032c57806326f85dbe1461034b578063313ce5671461036a575f80fd5b806311f630f3116101b957806311f630f3146102a4578063169bb498146102c557806318160ddd146102e457806318abb635146102f8575f80fd5b80630445b667146101f457806306fdde031461021c57806308fd3d0514610255578063095ea7b314610285575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50610209601e5481565b6040519081526020015b60405180910390f35b348015610227575f80fd5b506040805180820190915260088152674f67677920496e7560c01b60208201525b6040516102139190611c79565b348015610260575f80fd5b50601d5461027590600160a01b900460ff1681565b6040519015158152602001610213565b348015610290575f80fd5b5061027561029f366004611cdf565b610630565b3480156102af575f80fd5b506102c36102be366004611d07565b61069c565b005b3480156102d0575f80fd5b506102c36102df366004611d46565b610772565b3480156102ef575f80fd5b50600354610209565b348015610303575f80fd5b506102c3610312366004611d6f565b6108fb565b348015610322575f80fd5b50610209600f5481565b348015610337575f80fd5b50610275610346366004611dd0565b6109d2565b348015610356575f80fd5b506102c3610365366004611e16565b610a90565b348015610375575f80fd5b5060405160098152602001610213565b348015610390575f80fd5b5061027561039f366004611e4b565b610af6565b3480156103af575f80fd5b506102c36103be366004611e64565b610b02565b3480156103ce575f80fd5b50601d5461027590600160a81b900460ff1681565b3480156103ee575f80fd5b506102096103fd366004611e4b565b6001600160a01b03165f9081526006602052604090205490565b348015610422575f80fd5b506102c3610b8e565b348015610436575f80fd5b50610275610445366004611cdf565b610bff565b348015610455575f80fd5b5061020960055481565b34801561046a575f80fd5b5061020960045481565b34801561047f575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610213565b3480156104af575f80fd5b505f546001600160a01b031661048c565b3480156104cb575f80fd5b50610209610d64565b3480156104df575f80fd5b506040805180820190915260048152634f47475960e01b6020820152610248565b34801561050b575f80fd5b50601d5461048c906001600160a01b031681565b34801561052a575f80fd5b50610275610539366004611cdf565b610dcf565b348015610549575f80fd5b505f5461048c906001600160a01b031681565b348015610567575f80fd5b506102c3610576366004611e4b565b610ddb565b348015610586575f80fd5b50610209610595366004611e7b565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156105ca575f80fd5b506102c36105d9366004611eac565b610e2a565b3480156105e9575f80fd5b506102c36105f8366004611e4b565b610ebc565b348015610608575f80fd5b50601b5461048c906001600160a01b031681565b348015610627575f80fd5b506102c3610fa3565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068a9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146106ce5760405162461bcd60e51b81526004016106c590611ec8565b60405180910390fd5b600a869055600d859055600b849055600c839055600e8290556106ff826106f9858188818c8c610fdc565b90610fdc565b600f556010819055610712600582611f11565b600f54106107625760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016106c5565b61076a61103a565b505050505050565b5f546001600160a01b0316331461079b5760405162461bcd60e51b81526004016106c590611ec8565b601182905560128390556013819055600f54600a906107c7906064906107c190876110d5565b90611153565b106108145760405162461bcd60e51b815260206004820152601f60248201527f427579205461782063616e6e6f74206265206d6f7265207468616e203130250060448201526064016106c5565b600a61083260646107c1601154600f546110d590919063ffffffff16565b1061087f5760405162461bcd60e51b815260206004820181905260248201527f53656c6c205461782063616e6e6f74206265206d6f7265207468616e2031302560448201526064016106c5565b600a61089d60646107c1601354600f546110d590919063ffffffff16565b106108f65760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b60648201526084016106c5565b505050565b5f546001600160a01b031633146109245760405162461bcd60e51b81526004016106c590611ec8565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1914610a7b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610a57918490611194565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610a868484846111cc565b90505b9392505050565b5f546001600160a01b03163314610ab95760405162461bcd60e51b81526004016106c590611ec8565b6001600160a01b039091165f908152601960209081526040808320805494151560ff199586168117909155601a9092529091208054909216179055565b5f610696825f19610630565b5f546001600160a01b03163314610b2b5760405162461bcd60e51b81526004016106c590611ec8565b6001811015610b38575f80fd5b6103e881600354610b499190611f30565b610b539190611f11565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b5f546001600160a01b03163314610bb75760405162461bcd60e51b81526004016106c590611ec8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f80546001600160a01b03163314610c295760405162461bcd60e51b81526004016106c590611ec8565b306001600160a01b03841603610c815760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e7360448201526064016106c5565b815f03610cf1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610cca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cee9190611f47565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a899190611f5e565b905090565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610d5f929091610dc99190611557565b90611557565b5f610a893384846111cc565b5f546001600160a01b03163314610e045760405162461bcd60e51b81526004016106c590611ec8565b6001600160a01b03165f908152600160208190526040909120805460ff19169091179055565b5f546001600160a01b03163314610e535760405162461bcd60e51b81526004016106c590611ec8565b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610ee55760405162461bcd60e51b81526004016106c590611ec8565b6001600160a01b038116610f4a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610fd9573d5f803e3d5ffd5b50565b5f80610fe88385611f79565b905083811015610a895760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c5565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061107760646107c1601254600f546110d590919063ffffffff16565b61109360646107c1601154600f546110d590919063ffffffff16565b6110af60646107c1601354600f546110d590919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036110e457505f610696565b5f6110ef8385611f30565b9050826110fc8583611f11565b14610a895760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106c5565b5f610a8983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611598565b5f81848411156111b75760405162461bcd60e51b81526004016106c59190611c79565b505f6111c38486611f8c565b95945050505050565b601f545f9060ff16156111eb576111e48484846115c4565b9050610a89565b6001600160a01b0384165f9081526001602052604090205460ff1615801561122b57506001600160a01b0383165f9081526001602052604090205460ff16155b801561124557506015546001600160a01b03848116911614155b801561125f57506015546001600160a01b03858116911614155b156112b457601d54600160a01b900460ff166112b45760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106c5565b6001600160a01b0384165f9081526001602052604090205460ff161580156112e557506001600160a01b0383163014155b80156112fc57506001600160a01b03831661dead14155b80156113165750601d546001600160a01b03848116911614155b801561133057506018546001600160a01b03848116911614155b801561134a57506015546001600160a01b03848116911614155b801561136e57506001600160a01b0383165f9081526009602052604090205460ff16155b1561140e576001600160a01b0383165f908152600660205260409020546005546113988483611f79565b111561140c5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106c5565b505b6114188483611694565b611420611700565b1561142d5761142d611754565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526006909152919091205461147e918490611194565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806114c957506001600160a01b0384165f9081526008602052604090205460ff165b6114dd576114d8858486611af4565b6114df565b825b6001600160a01b0385165f908152600660205260409020549091506115049082610fdc565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f8051602061204e833981519152906115449085815260200190565b60405180910390a3506001949350505050565b5f610a8983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611194565b5f81836115b85760405162461bcd60e51b81526004016106c59190611c79565b505f6111c38486611f11565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600690915291822054611614918490611194565b6001600160a01b038086165f9081526006602052604080822093909355908516815220546116429083610fdc565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f8051602061204e833981519152906116829086815260200190565b60405180910390a35060019392505050565b600454811115806116bc57506001600160a01b0382165f9081526009602052604090205460ff165b6116fc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016106c5565b5050565b601d545f906001600160a01b031633148015906117205750601f5460ff16155b80156117355750601d54600160a81b900460ff165b8015610d5f575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055600f545f611770826002611f30565b600a54601e546117809190611f30565b61178a9190611f11565b90505f81601e5461179b9190611f8c565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106117d3576117d3611f9f565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061180457611804611f9f565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac947906118499085905f90869030904290600401611fb3565b5f604051808303815f87803b158015611860575f80fd5b505af1158015611872573d5f803e3d5ffd5b5050600a544792506118879150600290611f11565b6118919086611f8c565b94505f61189f866002611f30565b600a546118ac9084611f30565b6118b69190611f11565b90505f6118d2876107c1600b54866110d590919063ffffffff16565b90505f6118ee886107c1600d54876110d590919063ffffffff16565b90505f61190a896107c1600c54886110d590919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611959576040519150601f19603f3d011682016040523d82523d5f602084013e61195e565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146119ab576040519150601f19603f3d011682016040523d82523d5f602084013e6119b0565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146119fd576040519150601f19603f3d011682016040523d82523d5f602084013e611a02565b606091505b505f92505089159050611ade57601b5460145460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611aa19190612022565b505060408051878152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff191690555050505050505050565b601354601d545f91906001600160a01b0390811690841603611b195750601154611b34565b601d546001600160a01b0390811690861603611b3457506012545b5f611b666010546064611b479190611f30565b6107c184611b60600f548a6110d590919063ffffffff16565b906110d5565b90505f611b84600f546107c1600e54856110d590919063ffffffff16565b90505f611b918383611557565b305f90815260066020526040902054909150611bad9082610fdc565b305f90815260066020526040808220929092556018546001600160a01b031681522054611bda9083610fdc565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f8051602061204e833981519152910160405180910390a38115611c6357600354611c329083611557565b6003556040518281525f906001600160a01b038a16905f8051602061204e8339815191529060200160405180910390a35b611c6d8784611557565b98975050505050505050565b5f6020808352835180828501525f5b81811015611ca457858101830151858201604001528201611c88565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cda575f80fd5b919050565b5f8060408385031215611cf0575f80fd5b611cf983611cc4565b946020939093013593505050565b5f805f805f8060c08789031215611d1c575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611d58575f80fd5b505081359360208301359350604090920135919050565b5f805f805f60a08688031215611d83575f80fd5b611d8c86611cc4565b9450611d9a60208701611cc4565b9350611da860408701611cc4565b9250611db660608701611cc4565b9150611dc460808701611cc4565b90509295509295909350565b5f805f60608486031215611de2575f80fd5b611deb84611cc4565b9250611df960208501611cc4565b9150604084013590509250925092565b8015158114610fd9575f80fd5b5f8060408385031215611e27575f80fd5b611e3083611cc4565b91506020830135611e4081611e09565b809150509250929050565b5f60208284031215611e5b575f80fd5b610a8982611cc4565b5f60208284031215611e74575f80fd5b5035919050565b5f8060408385031215611e8c575f80fd5b611e9583611cc4565b9150611ea360208401611cc4565b90509250929050565b5f8060408385031215611ebd575f80fd5b8235611cf981611e09565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611f2b57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761069657610696611efd565b5f60208284031215611f57575f80fd5b5051919050565b5f60208284031215611f6e575f80fd5b8151610a8981611e09565b8082018082111561069657610696611efd565b8181038181111561069657610696611efd565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120015784516001600160a01b031683529383019391830191600101611fdc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612034575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220de7e49b162a65e0e93e4af25f262b2ad25b7c436f355141ee6bb69594ac1a27c64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101e9575f3560e01c8063715018a611610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e1461057b578063df20fd49146105bf578063f2fde38b146105de578063f887ea40146105fd578063f88de0c31461061c575f80fd5b8063a8aa1b3114610500578063a9059cbb1461051f578063b2bdfa7b1461053e578063b6a5d7de1461055c575f80fd5b8063893d20e8116100d8578063893d20e8146104745780638da5cb5b146104a45780639358928b146104c057806395d89b41146104d4575f80fd5b8063715018a61461041757806377b54bad1461042b57806378109e541461044a5780637d1db4a51461045f575f80fd5b80631df4ccfc1161017e578063571ac8b01161014e578063571ac8b0146103855780635d0044ca146103a45780636ddd1713146103c357806370a08231146103e3575f80fd5b80631df4ccfc1461031757806323b872dd1461032c57806326f85dbe1461034b578063313ce5671461036a575f80fd5b806311f630f3116101b957806311f630f3146102a4578063169bb498146102c557806318160ddd146102e457806318abb635146102f8575f80fd5b80630445b667146101f457806306fdde031461021c57806308fd3d0514610255578063095ea7b314610285575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50610209601e5481565b6040519081526020015b60405180910390f35b348015610227575f80fd5b506040805180820190915260088152674f67677920496e7560c01b60208201525b6040516102139190611c79565b348015610260575f80fd5b50601d5461027590600160a01b900460ff1681565b6040519015158152602001610213565b348015610290575f80fd5b5061027561029f366004611cdf565b610630565b3480156102af575f80fd5b506102c36102be366004611d07565b61069c565b005b3480156102d0575f80fd5b506102c36102df366004611d46565b610772565b3480156102ef575f80fd5b50600354610209565b348015610303575f80fd5b506102c3610312366004611d6f565b6108fb565b348015610322575f80fd5b50610209600f5481565b348015610337575f80fd5b50610275610346366004611dd0565b6109d2565b348015610356575f80fd5b506102c3610365366004611e16565b610a90565b348015610375575f80fd5b5060405160098152602001610213565b348015610390575f80fd5b5061027561039f366004611e4b565b610af6565b3480156103af575f80fd5b506102c36103be366004611e64565b610b02565b3480156103ce575f80fd5b50601d5461027590600160a81b900460ff1681565b3480156103ee575f80fd5b506102096103fd366004611e4b565b6001600160a01b03165f9081526006602052604090205490565b348015610422575f80fd5b506102c3610b8e565b348015610436575f80fd5b50610275610445366004611cdf565b610bff565b348015610455575f80fd5b5061020960055481565b34801561046a575f80fd5b5061020960045481565b34801561047f575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610213565b3480156104af575f80fd5b505f546001600160a01b031661048c565b3480156104cb575f80fd5b50610209610d64565b3480156104df575f80fd5b506040805180820190915260048152634f47475960e01b6020820152610248565b34801561050b575f80fd5b50601d5461048c906001600160a01b031681565b34801561052a575f80fd5b50610275610539366004611cdf565b610dcf565b348015610549575f80fd5b505f5461048c906001600160a01b031681565b348015610567575f80fd5b506102c3610576366004611e4b565b610ddb565b348015610586575f80fd5b50610209610595366004611e7b565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156105ca575f80fd5b506102c36105d9366004611eac565b610e2a565b3480156105e9575f80fd5b506102c36105f8366004611e4b565b610ebc565b348015610608575f80fd5b50601b5461048c906001600160a01b031681565b348015610627575f80fd5b506102c3610fa3565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068a9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146106ce5760405162461bcd60e51b81526004016106c590611ec8565b60405180910390fd5b600a869055600d859055600b849055600c839055600e8290556106ff826106f9858188818c8c610fdc565b90610fdc565b600f556010819055610712600582611f11565b600f54106107625760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016106c5565b61076a61103a565b505050505050565b5f546001600160a01b0316331461079b5760405162461bcd60e51b81526004016106c590611ec8565b601182905560128390556013819055600f54600a906107c7906064906107c190876110d5565b90611153565b106108145760405162461bcd60e51b815260206004820152601f60248201527f427579205461782063616e6e6f74206265206d6f7265207468616e203130250060448201526064016106c5565b600a61083260646107c1601154600f546110d590919063ffffffff16565b1061087f5760405162461bcd60e51b815260206004820181905260248201527f53656c6c205461782063616e6e6f74206265206d6f7265207468616e2031302560448201526064016106c5565b600a61089d60646107c1601354600f546110d590919063ffffffff16565b106108f65760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b60648201526084016106c5565b505050565b5f546001600160a01b031633146109245760405162461bcd60e51b81526004016106c590611ec8565b601480546001600160a01b038781166001600160a01b031992831617909255601580548784169083168117909155601680548785169084168117909155601880548786169085168117909155601780549587169590941685179093556040805192835260208301949094529281019190915260608101919091527f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b159060800160405180910390a15050505050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1914610a7b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610a57918490611194565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610a868484846111cc565b90505b9392505050565b5f546001600160a01b03163314610ab95760405162461bcd60e51b81526004016106c590611ec8565b6001600160a01b039091165f908152601960209081526040808320805494151560ff199586168117909155601a9092529091208054909216179055565b5f610696825f19610630565b5f546001600160a01b03163314610b2b5760405162461bcd60e51b81526004016106c590611ec8565b6001811015610b38575f80fd5b6103e881600354610b499190611f30565b610b539190611f11565b60058190556040519081527f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519060200160405180910390a150565b5f546001600160a01b03163314610bb75760405162461bcd60e51b81526004016106c590611ec8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f80546001600160a01b03163314610c295760405162461bcd60e51b81526004016106c590611ec8565b306001600160a01b03841603610c815760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e7360448201526064016106c5565b815f03610cf1576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610cca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cee9190611f47565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a899190611f5e565b905090565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546003549192610d5f929091610dc99190611557565b90611557565b5f610a893384846111cc565b5f546001600160a01b03163314610e045760405162461bcd60e51b81526004016106c590611ec8565b6001600160a01b03165f908152600160208190526040909120805460ff19169091179055565b5f546001600160a01b03163314610e535760405162461bcd60e51b81526004016106c590611ec8565b601d805460ff60a81b1916600160a81b84151581029190911791829055601e8390556040805184815260ff9290930491909116151560208301527f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60910160405180910390a15050565b5f546001600160a01b03163314610ee55760405162461bcd60e51b81526004016106c590611ec8565b6001600160a01b038116610f4a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610fd9573d5f803e3d5ffd5b50565b5f80610fe88385611f79565b905083811015610a895760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c5565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b93280061107760646107c1601254600f546110d590919063ffffffff16565b61109360646107c1601154600f546110d590919063ffffffff16565b6110af60646107c1601354600f546110d590919063ffffffff16565b6040805160ff9485168152928416602084015292168183015290519081900360600190a1565b5f825f036110e457505f610696565b5f6110ef8385611f30565b9050826110fc8583611f11565b14610a895760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106c5565b5f610a8983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611598565b5f81848411156111b75760405162461bcd60e51b81526004016106c59190611c79565b505f6111c38486611f8c565b95945050505050565b601f545f9060ff16156111eb576111e48484846115c4565b9050610a89565b6001600160a01b0384165f9081526001602052604090205460ff1615801561122b57506001600160a01b0383165f9081526001602052604090205460ff16155b801561124557506015546001600160a01b03848116911614155b801561125f57506015546001600160a01b03858116911614155b156112b457601d54600160a01b900460ff166112b45760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106c5565b6001600160a01b0384165f9081526001602052604090205460ff161580156112e557506001600160a01b0383163014155b80156112fc57506001600160a01b03831661dead14155b80156113165750601d546001600160a01b03848116911614155b801561133057506018546001600160a01b03848116911614155b801561134a57506015546001600160a01b03848116911614155b801561136e57506001600160a01b0383165f9081526009602052604090205460ff16155b1561140e576001600160a01b0383165f908152600660205260409020546005546113988483611f79565b111561140c5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106c5565b505b6114188483611694565b611420611700565b1561142d5761142d611754565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526006909152919091205461147e918490611194565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806114c957506001600160a01b0384165f9081526008602052604090205460ff165b6114dd576114d8858486611af4565b6114df565b825b6001600160a01b0385165f908152600660205260409020549091506115049082610fdc565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f8051602061204e833981519152906115449085815260200190565b60405180910390a3506001949350505050565b5f610a8983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611194565b5f81836115b85760405162461bcd60e51b81526004016106c59190611c79565b505f6111c38486611f11565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600690915291822054611614918490611194565b6001600160a01b038086165f9081526006602052604080822093909355908516815220546116429083610fdc565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f8051602061204e833981519152906116829086815260200190565b60405180910390a35060019392505050565b600454811115806116bc57506001600160a01b0382165f9081526009602052604090205460ff165b6116fc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016106c5565b5050565b601d545f906001600160a01b031633148015906117205750601f5460ff16155b80156117355750601d54600160a81b900460ff165b8015610d5f575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055600f545f611770826002611f30565b600a54601e546117809190611f30565b61178a9190611f11565b90505f81601e5461179b9190611f8c565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106117d3576117d3611f9f565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061180457611804611f9f565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac947906118499085905f90869030904290600401611fb3565b5f604051808303815f87803b158015611860575f80fd5b505af1158015611872573d5f803e3d5ffd5b5050600a544792506118879150600290611f11565b6118919086611f8c565b94505f61189f866002611f30565b600a546118ac9084611f30565b6118b69190611f11565b90505f6118d2876107c1600b54866110d590919063ffffffff16565b90505f6118ee886107c1600d54876110d590919063ffffffff16565b90505f61190a896107c1600c54886110d590919063ffffffff16565b6015546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611959576040519150601f19603f3d011682016040523d82523d5f602084013e61195e565b606091505b50506016546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146119ab576040519150601f19603f3d011682016040523d82523d5f602084013e6119b0565b606091505b50506017546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146119fd576040519150601f19603f3d011682016040523d82523d5f602084013e611a02565b606091505b505f92505089159050611ade57601b5460145460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611aa19190612022565b505060408051878152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff191690555050505050505050565b601354601d545f91906001600160a01b0390811690841603611b195750601154611b34565b601d546001600160a01b0390811690861603611b3457506012545b5f611b666010546064611b479190611f30565b6107c184611b60600f548a6110d590919063ffffffff16565b906110d5565b90505f611b84600f546107c1600e54856110d590919063ffffffff16565b90505f611b918383611557565b305f90815260066020526040902054909150611bad9082610fdc565b305f90815260066020526040808220929092556018546001600160a01b031681522054611bda9083610fdc565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f8051602061204e833981519152910160405180910390a38115611c6357600354611c329083611557565b6003556040518281525f906001600160a01b038a16905f8051602061204e8339815191529060200160405180910390a35b611c6d8784611557565b98975050505050505050565b5f6020808352835180828501525f5b81811015611ca457858101830151858201604001528201611c88565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cda575f80fd5b919050565b5f8060408385031215611cf0575f80fd5b611cf983611cc4565b946020939093013593505050565b5f805f805f8060c08789031215611d1c575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f60608486031215611d58575f80fd5b505081359360208301359350604090920135919050565b5f805f805f60a08688031215611d83575f80fd5b611d8c86611cc4565b9450611d9a60208701611cc4565b9350611da860408701611cc4565b9250611db660608701611cc4565b9150611dc460808701611cc4565b90509295509295909350565b5f805f60608486031215611de2575f80fd5b611deb84611cc4565b9250611df960208501611cc4565b9150604084013590509250925092565b8015158114610fd9575f80fd5b5f8060408385031215611e27575f80fd5b611e3083611cc4565b91506020830135611e4081611e09565b809150509250929050565b5f60208284031215611e5b575f80fd5b610a8982611cc4565b5f60208284031215611e74575f80fd5b5035919050565b5f8060408385031215611e8c575f80fd5b611e9583611cc4565b9150611ea360208401611cc4565b90509250929050565b5f8060408385031215611ebd575f80fd5b8235611cf981611e09565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611f2b57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761069657610696611efd565b5f60208284031215611f57575f80fd5b5051919050565b5f60208284031215611f6e575f80fd5b8151610a8981611e09565b8082018082111561069657610696611efd565b8181038181111561069657610696611efd565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120015784516001600160a01b031683529383019391830191600101611fdc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612034575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220de7e49b162a65e0e93e4af25f262b2ad25b7c436f355141ee6bb69594ac1a27c64736f6c63430008140033

Deployed Bytecode Sourcemap

5084:13334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7379:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7379:56:0;;;;;;;;8925:80;;;;;;;;;;-1:-1:-1;8997:5:0;;;;;;;;;;;;-1:-1:-1;;;8997:5:0;;;;8925:80;;;;;;;:::i;7300:30::-;;;;;;;;;;-1:-1:-1;7300:30:0;;;;-1:-1:-1;;;7300:30:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7300:30:0;749:187:1;9347:216:0;;;;;;;;;;-1:-1:-1;9347:216:0;;;;;:::i;:::-;;:::i;16911:572::-;;;;;;;;;;-1:-1:-1;16911:572:0;;;;;:::i;:::-;;:::i;:::-;;14459:490;;;;;;;;;;-1:-1:-1;14459:490:0;;;;;:::i;:::-;;:::i;8655:88::-;;;;;;;;;;-1:-1:-1;8728:12:0;;8655:88;;17496:540;;;;;;;;;;-1:-1:-1;17496:540:0;;;;;:::i;:::-;;:::i;6658:90::-;;;;;;;;;;;;;;;;9865:370;;;;;;;;;;-1:-1:-1;9865:370:0;;;;;:::i;:::-;;:::i;10605:168::-;;;;;;;;;;-1:-1:-1;10605:168:0;;;;;:::i;:::-;;:::i;8749:80::-;;;;;;;;;;-1:-1:-1;8749:80:0;;5441:1;3634:36:1;;3622:2;3607:18;8749:80:0;3492:184:1;9571:122:0;;;;;;;;;;-1:-1:-1;9571:122:0;;;;;:::i;:::-;;:::i;10247:246::-;;;;;;;;;;-1:-1:-1;10247:246:0;;;;;:::i;:::-;;:::i;7342:30::-;;;;;;;;;;-1:-1:-1;7342:30:0;;;;-1:-1:-1;;;7342:30:0;;;;;;9095:105;;;;;;;;;;-1:-1:-1;9095:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9179:18:0;9161:7;9179:18;;;:9;:18;;;;;;;9095:105;1998:148;;;;;;;;;;;;;:::i;14089:356::-;;;;;;;;;;-1:-1:-1;14089:356:0;;;;;:::i;:::-;;:::i;6161:61::-;;;;;;;;;;;;;;;;6094:60;;;;;;;;;;;;;;;;9011:78;;;;;;;;;;-1:-1:-1;9063:7:0;1849:6;-1:-1:-1;;;;;1849:6:0;9011:78;;;-1:-1:-1;;;;;4221:32:1;;;4203:51;;4191:2;4176:18;9011:78:0;4057:203:1;1784:79:0;;;;;;;;;;-1:-1:-1;1822:7:0;1849:6;-1:-1:-1;;;;;1849:6:0;1784:79;;18272:139;;;;;;;;;;;;;:::i;8835:84::-;;;;;;;;;;-1:-1:-1;8909:7:0;;;;;;;;;;;;-1:-1:-1;;;8909:7:0;;;;8835:84;;7274:19;;;;;;;;;;-1:-1:-1;7274:19:0;;;;-1:-1:-1;;;;;7274:19:0;;;9701:156;;;;;;;;;;-1:-1:-1;9701:156:0;;;;;:::i;:::-;;:::i;1396:21::-;;;;;;;;;;-1:-1:-1;1396:21:0;;;;-1:-1:-1;;;;;1396:21:0;;;10503:94;;;;;;;;;;-1:-1:-1;10503:94:0;;;;;:::i;:::-;;:::i;9206:133::-;;;;;;;;;;-1:-1:-1;9206:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9308:19:0;;;9290:7;9308:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9206:133;18044:211;;;;;;;;;;-1:-1:-1;18044:211:0;;;;;:::i;:::-;;:::i;2154:244::-;;;;;;;;;;-1:-1:-1;2154:244:0;;;;;:::i;:::-;;:::i;7204:24::-;;;;;;;;;;-1:-1:-1;7204:24:0;;;;-1:-1:-1;;;;;7204:24:0;;;13947:134;;;;;;;;;;;;;:::i;9347:216::-;9451:10;9422:4;9439:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9439:32:0;;;;;;;;;;:41;;;9496:37;9422:4;;9439:32;;9496:37;;;;9474:6;160:25:1;;148:2;133:18;;14:177;9496:37:0;;;;;;;;-1:-1:-1;9551:4:0;9347:216;;;;;:::o;16911:572::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;;;;;;;;;17081:12:::1;:28:::0;;;17120:7:::1;:18:::0;;;17149:12:::1;:28:::0;;;17188:6:::1;:16:::0;;;17215:7:::1;:18:::0;;;17255:73:::1;17225:8:::0;17255:59:::1;17197:7:::0;17255:59;17164:13;17255:59;17096:13;17130:8;17255:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17244:8;:84:::0;17339:14:::1;:32:::0;;;17401:18:::1;17418:1;17356:15:::0;17401:18:::1;:::i;:::-;17390:8;;:29;17382:71;;;::::0;-1:-1:-1;;;17382:71:0;;5987:2:1;17382:71:0::1;::::0;::::1;5969:21:1::0;6026:2;6006:18;;;5999:30;6065:31;6045:18;;;6038:59;6114:18;;17382:71:0::1;5785:353:1::0;17382:71:0::1;17465:10;:8;:10::i;:::-;16911:572:::0;;;;;;:::o;14459:490::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;14559:11:::1;:19:::0;;;14589:10:::1;:17:::0;;;14617:15:::1;:24:::0;;;14666:8:::1;::::0;14702:2:::1;::::0;14666:33:::1;::::0;14695:3:::1;::::0;14666:24:::1;::::0;14602:4;14666:12:::1;:24::i;:::-;:28:::0;::::1;:33::i;:::-;:38;14658:82;;;::::0;-1:-1:-1;;;14658:82:0;;6345:2:1;14658:82:0::1;::::0;::::1;6327:21:1::0;6384:2;6364:18;;;6357:30;6423:33;6403:18;;;6396:61;6474:18;;14658:82:0::1;6143:355:1::0;14658:82:0::1;14796:2;14759:34;14789:3;14759:25;14772:11;;14759:8;;:12;;:25;;;;:::i;:34::-;:39;14751:84;;;::::0;-1:-1:-1;;;14751:84:0;;6705:2:1;14751:84:0::1;::::0;::::1;6687:21:1::0;;;6724:18;;;6717:30;6783:34;6763:18;;;6756:62;6835:18;;14751:84:0::1;6503:356:1::0;14751:84:0::1;14895:2;14854:38;14888:3;14854:29;14867:15;;14854:8;;:12;;:29;;;;:::i;:38::-;:43;14846:92;;;::::0;-1:-1:-1;;;14846:92:0;;7066:2:1;14846:92:0::1;::::0;::::1;7048:21:1::0;7105:2;7085:18;;;7078:30;7144:34;7124:18;;;7117:62;-1:-1:-1;;;7195:18:1;;;7188:34;7239:19;;14846:92:0::1;6864:400:1::0;14846:92:0::1;14459:490:::0;;;:::o;17496:540::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;17691:21:::1;:46:::0;;-1:-1:-1;;;;;17691:46:0;;::::1;-1:-1:-1::0;;;;;;17691:46:0;;::::1;;::::0;;;17748:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17803:14:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17846:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;17891:15:::1;:34:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;17943:85:::1;::::0;;7538:34:1;;;7603:2;7588:18;;7581:43;;;;7640:18;;;7633:43;;;;7707:2;7692:18;;7685:43;;;;17943:85:0::1;::::0;7487:3:1;7472:19;17943:85:0::1;;;;;;;17496:540:::0;;;;;:::o;9865:370::-;-1:-1:-1;;;;;9985:19:0;;9965:4;9985:19;;;:11;:19;;;;;;;;10005:10;9985:31;;;;;;;;-1:-1:-1;;9985:52:0;9982:186;;10087:69;;;;;;;;;;;-1:-1:-1;;;10087:69:0;;;;;;;;-1:-1:-1;;;;;10087:19:0;;-1:-1:-1;10087:19:0;;;:11;:19;;;;;10107:10;10087:31;;;;;;;;;;:69;;10123:6;;10087:35;:69::i;:::-;-1:-1:-1;;;;;10053:19:0;;;;;;:11;:19;;;;;;;;10073:10;10053:31;;;;;;;:103;9982:186;10187:40;10201:6;10209:9;10220:6;10187:13;:40::i;:::-;10180:47;;9865:370;;;;;;:::o;10605:168::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10694:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;10694:28:0;;::::1;::::0;::::1;::::0;;;10733:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;10605:168::o;9571:122::-;9626:4;9650:35;9658:7;-1:-1:-1;;9650:7:0;:35::i;10247:246::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;10350:1:::1;10332:14;:19;;10324:28;;;::::0;::::1;;10417:4;10398:14;10383:12;;:29;;;;:::i;:::-;10382:39;;;;:::i;:::-;10364:15;:57:::0;;;10437:30:::1;::::0;160:25:1;;;10437:30:0::1;::::0;148:2:1;133:18;10437:30:0::1;;;;;;;10247:246:::0;:::o;1998:148::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;2105:1:::1;2089:6:::0;;2068:40:::1;::::0;-1:-1:-1;;;;;2089:6:0;;::::1;::::0;2068:40:::1;::::0;2105:1;;2068:40:::1;2136:1;2119:19:::0;;-1:-1:-1;;;;;;2119:19:0::1;::::0;;1998:148::o;14089:356::-;14178:4;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;14224:4:::1;-1:-1:-1::0;;;;;14200:29:0;::::1;::::0;14192:74:::1;;;::::0;-1:-1:-1;;;14192:74:0;;8114:2:1;14192:74:0::1;::::0;::::1;8096:21:1::0;;;8133:18;;;8126:30;8192:34;8172:18;;;8165:62;8244:18;;14192:74:0::1;7912:356:1::0;14192:74:0::1;14278:6;14288:1;14278:11:::0;14275:96:::1;;14314:45;::::0;-1:-1:-1;;;14314:45:0;;14353:4:::1;14314:45;::::0;::::1;4203:51:1::0;-1:-1:-1;;;;;14314:30:0;::::1;::::0;::::1;::::0;4176:18:1;;14314:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14305:54;;14275:96;14388:49;::::0;-1:-1:-1;;;14388:49:0;;14418:10:::1;14388:49;::::0;::::1;8636:51:1::0;8703:18;;;8696:34;;;-1:-1:-1;;;;;14388:29:0;::::1;::::0;::::1;::::0;8609:18:1;;14388:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9080:7::-:0;9073:14;;9011:78;:::o;18272:139::-;9179:9;:18;;;;5204:42;18322:7;9179:18;;;;;18349:12;;18322:7;;18349:54;;9179:18;;18349:33;;:12;:16;:33::i;:::-;:37;;:54::i;9701:156::-;9781:4;9805:44;9819:10;9831:9;9842:6;9805:13;:44::i;10503:94::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10563:19:0::1;;::::0;;;10585:4:::1;10563:19;::::0;;;;;;;:26;;-1:-1:-1;;10563:26:0::1;::::0;;::::1;::::0;;10503:94::o;18044:211::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;18135:11:::1;:22:::0;;-1:-1:-1;;;;18135:22:0::1;-1:-1:-1::0;;;18135:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;18168:13:::1;:23:::0;;;18207:40:::1;::::0;;9159:25:1;;;18135:22:0::1;18235:11:::0;;;::::1;::::0;;;::::1;9227:14:1::0;9220:22;9215:2;9200:18;;9193:50;18207:40:0::1;::::0;9132:18:1;18207:40:0::1;;;;;;;18044:211:::0;;:::o;2154:244::-;1911:6;;-1:-1:-1;;;;;1911:6:0;1213:10;1911:22;1903:67;;;;-1:-1:-1;;;1903:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2243:22:0;::::1;2235:73;;;::::0;-1:-1:-1;;;2235:73:0;;9456:2:1;2235:73:0::1;::::0;::::1;9438:21:1::0;9495:2;9475:18;;;9468:30;9534:34;9514:18;;;9507:62;-1:-1:-1;;;9585:18:1;;;9578:36;9631:19;;2235:73:0::1;9254:402:1::0;2235:73:0::1;2345:6;::::0;;2324:38:::1;::::0;-1:-1:-1;;;;;2324:38:0;;::::1;::::0;2345:6;::::1;::::0;2324:38:::1;::::0;::::1;2373:6;:17:::0;;-1:-1:-1;;;;;;2373:17:0::1;-1:-1:-1::0;;;;;2373:17:0;;;::::1;::::0;;;::::1;::::0;;2154:244::o;13947:134::-;14006:20;;13998:61;;-1:-1:-1;;;;;14006:20:0;;;;14037:21;13998:61;;;;;14006:20;13998:61;14006:20;13998:61;14037:21;14006:20;13998:61;;;;;;;;;;;;;;;;;;;;;13947:134::o;3967:181::-;4025:7;;4057:5;4061:1;4057;:5;:::i;:::-;4045:17;;4086:1;4081;:6;;4073:46;;;;-1:-1:-1;;;4073:46:0;;9993:2:1;4073:46:0;;;9975:21:1;10032:2;10012:18;;;10005:30;10071:29;10051:18;;;10044:57;10118:18;;4073:46:0;9791:351:1;16658:241:0;16711:180;16726:33;16755:3;16726:24;16739:10;;16726:8;;:12;;:24;;;;:::i;:33::-;16781:34;16811:3;16781:25;16794:11;;16781:8;;:12;;:25;;;;:::i;:34::-;16837:38;16871:3;16837:29;16850:15;;16837:8;;:12;;:29;;;;:::i;:38::-;16711:180;;;10367:4:1;10355:17;;;10337:36;;10409:17;;;10404:2;10389:18;;10382:45;10463:17;;10443:18;;;10436:45;16711:180:0;;;;;;10325:2:1;16711:180:0;;;16658:241::o;4494:250::-;4552:7;4576:1;4581;4576:6;4572:47;;-1:-1:-1;4606:1:0;4599:8;;4572:47;4631:9;4643:5;4647:1;4643;:5;:::i;:::-;4631:17;-1:-1:-1;4676:1:0;4667:5;4671:1;4631:17;4667:5;:::i;:::-;:10;4659:56;;;;-1:-1:-1;;;4659:56:0;;10694:2:1;4659:56:0;;;10676:21:1;10733:2;10713:18;;;10706:30;10772:34;10752:18;;;10745:62;-1:-1:-1;;;10823:18:1;;;10816:31;10864:19;;4659:56:0;10492:397:1;4750:132:0;4808:7;4835:39;4839:1;4842;4835:39;;;;;;;;;;;;;;;;;:3;:39::i;4296:192::-;4382:7;4418:12;4410:6;;;;4402:29;;;;-1:-1:-1;;;4402:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4442:9:0;4454:5;4458:1;4454;:5;:::i;:::-;4442:17;4296:192;-1:-1:-1;;;;;4296:192:0:o;10789:1308::-;10901:6;;10881:4;;10901:6;;10898:63;;;10917:41;10932:6;10940:9;10951:6;10917:14;:41::i;:::-;10910:48;;;;10898:63;-1:-1:-1;;;;;10977:22:0;;;;;;:14;:22;;;;;;;;10976:23;:53;;;;-1:-1:-1;;;;;;11004:25:0;;;;;;:14;:25;;;;;;;;11003:26;10976:53;:89;;;;-1:-1:-1;11045:20:0;;-1:-1:-1;;;;;11033:32:0;;;11045:20;;11033:32;;10976:89;:122;;;;-1:-1:-1;11078:20:0;;-1:-1:-1;;;;;11069:29:0;;;11078:20;;11069:29;;10976:122;10973:209;;;11123:11;;-1:-1:-1;;;11123:11:0;;;;11115:43;;;;-1:-1:-1;;;11115:43:0;;11229:2:1;11115:43:0;;;11211:21:1;11268:2;11248:18;;;11241:30;-1:-1:-1;;;11287:18:1;;;11280:50;11347:18;;11115:43:0;11027:344:1;11115:43:0;-1:-1:-1;;;;;11224:22:0;;;;;;:14;:22;;;;;;;;11223:23;:53;;;;-1:-1:-1;;;;;;11250:26:0;;11271:4;11250:26;;11223:53;:84;;;;-1:-1:-1;;;;;;11281:26:0;;5204:42;11281:26;;11223:84;:105;;;;-1:-1:-1;11324:4:0;;-1:-1:-1;;;;;11311:17:0;;;11324:4;;11311:17;;11223:105;:137;;;;-1:-1:-1;11345:15:0;;-1:-1:-1;;;;;11332:28:0;;;11345:15;;11332:28;;11223:137;:174;;;;-1:-1:-1;11377:20:0;;-1:-1:-1;;;;;11364:33:0;;;11377:20;;11364:33;;11223:174;:207;;;;-1:-1:-1;;;;;;11402:28:0;;;;;;:17;:28;;;;;;;;11401:29;11223:207;11219:399;;;-1:-1:-1;;;;;9179:18:0;;11446;9179;;;:9;:18;;;;;;11535:15;;11511:19;11524:6;9179:18;11511:19;:::i;:::-;11510:40;;11502:114;;;;-1:-1:-1;;;11502:114:0;;11578:2:1;11502:114:0;;;11560:21:1;11617:2;11597:18;;;11590:30;11656:34;11636:18;;;11629:62;11727:32;11707:18;;;11700:60;11777:19;;11502:114:0;11376:426:1;11502:114:0;11431:187;11219:399;11630:28;11643:6;11651;11630:12;:28::i;:::-;11676:16;:14;:16::i;:::-;11673:35;;;11695:10;:8;:10::i;:::-;11738:53;;;;;;;;;;;-1:-1:-1;;;11738:53:0;;;;;;;;-1:-1:-1;;;;;11738:17:0;;-1:-1:-1;11738:17:0;;;:9;:17;;;;;;;;:53;;11760:6;;11738:21;:53::i;:::-;-1:-1:-1;;;;;11718:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11830:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;11858:27:0;;;;;;:16;:27;;;;;;;;11830:55;11829:103;;11898:34;11906:6;11914;11922:9;11898:7;:34::i;:::-;11829:103;;;11889:6;11829:103;-1:-1:-1;;;;;11966:20:0;;;;;;:9;:20;;;;;;11804:128;;-1:-1:-1;11966:40:0;;11804:128;11966:24;:40::i;:::-;-1:-1:-1;;;;;11943:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12024:43;;;;;;-1:-1:-1;;;;;;;;;;;12024:43:0;;;12052:14;160:25:1;;148:2;133:18;;14:177;12024:43:0;;;;;;;;-1:-1:-1;12085:4:0;;10789:1308;-1:-1:-1;;;;10789:1308:0:o;4154:136::-;4212:7;4239:43;4243:1;4246;4239:43;;;;;;;;;;;;;;;;;:3;:43::i;4888:189::-;4974:7;5009:12;5002:5;4994:28;;;;-1:-1:-1;;;4994:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5033:9:0;5045:5;5049:1;5045;:5;:::i;12106:330::-;12236:53;;;;;;;;;;;-1:-1:-1;;;12236:53:0;;;;;;;;-1:-1:-1;;;;;12236:17:0;;12199:4;12236:17;;;:9;:17;;;;;;;:53;;12258:6;;12236:21;:53::i;:::-;-1:-1:-1;;;;;12216:17:0;;;;;;;:9;:17;;;;;;:73;;;;12323:20;;;;;;;:32;;12348:6;12323:24;:32::i;:::-;-1:-1:-1;;;;;12300:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12371:35;;;;;;-1:-1:-1;;;;;;;;;;;12371:35:0;;;12399:6;160:25:1;;148:2;133:18;;14:177;12371:35:0;;;;;;;;-1:-1:-1;12424:4:0;12106:330;;;;;:::o;12444:168::-;12541:12;;12531:6;:22;;:51;;;-1:-1:-1;;;;;;12557:25:0;;;;;;:17;:25;;;;;;;;12531:51;12523:81;;;;-1:-1:-1;;;12523:81:0;;12009:2:1;12523:81:0;;;11991:21:1;12048:2;12028:18;;;12021:30;-1:-1:-1;;;12067:18:1;;;12060:47;12124:18;;12523:81:0;11807:341:1;12523:81:0;12444:168;;:::o;13737:197::-;13824:4;;13786;;-1:-1:-1;;;;;13824:4:0;13810:10;:18;;;;:38;;-1:-1:-1;13842:6:0;;;;13841:7;13810:38;:62;;;;-1:-1:-1;13861:11:0;;-1:-1:-1;;;13861:11:0;;;;13810:62;:116;;;;-1:-1:-1;;13913:13:0;;13903:4;13885:24;;;;:9;:24;;;;;;:41;;;13737:197::o;14965:1677::-;7483:6;:13;;-1:-1:-1;;7483:13:0;7492:4;7483:13;;;15046:8:::1;::::0;7483:6;15125:15:::1;15046:8:::0;15139:1:::1;15125:15;:::i;:::-;15110:12;;15094:13;;:28;;;;:::i;:::-;15093:48;;;;:::i;:::-;15067:74;;15152:20;15191:15;15175:13;;:31;;;;:::i;:::-;15243:16;::::0;;15257:1:::1;15243:16:::0;;;;;::::1;::::0;;15152:54;;-1:-1:-1;15219:21:0::1;::::0;15243:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15243:16:0::1;15219:40;;15288:4;15270;15275:1;15270:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15270:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15314:4:::1;::::0;15304:7;;15314:4;::::1;::::0;15304;;15314;;15304:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15304:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15331:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15331:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15403:12;;15331:6:::1;::::0;15446:4;;15473::::1;::::0;15493:15:::1;::::0;15331:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15617:12:0::1;::::0;15553:21:::1;::::0;-1:-1:-1;15617:16:0::1;::::0;-1:-1:-1;15632:1:0::1;::::0;15617:16:::1;:::i;:::-;15602:32;::::0;:11;:32:::1;:::i;:::-;15588:46:::0;-1:-1:-1;15655:26:0::1;15714:15;15588:46:::0;15728:1:::1;15714:15;:::i;:::-;15697:12;::::0;15685:24:::1;::::0;:9;:24:::1;:::i;:::-;15684:46;;;;:::i;:::-;15655:75;;15741:26;15770:44;15802:11;15770:27;15784:12;;15770:9;:13;;:27;;;;:::i;:44::-;15741:73;;15825:21;15849:39;15876:11;15849:22;15863:7;;15849:9;:13;;:22;;;;:::i;:39::-;15825:63;;15899:20;15922:38;15948:11;15922:21;15936:6;;15922:9;:13;;:21;;;;:::i;:38::-;16002:20;::::0;15994:65:::1;::::0;15899:61;;-1:-1:-1;15974:15:0::1;::::0;-1:-1:-1;;;;;16002:20:0;;::::1;::::0;16036:18;;15974:15;15994:65;15974:15;15994:65;16036:18;16002:20;15994:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16094:14:0::1;::::0;16086:53:::1;::::0;15973:86;;-1:-1:-1;;;;;;16094:14:0::1;::::0;16122:12;;16086:53:::1;::::0;;;16122:12;16094:14;16086:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16174:15:0::1;::::0;16166:55:::1;::::0;16070:69;;-1:-1:-1;;;;;;16174:15:0::1;::::0;16203:13;;16166:55:::1;::::0;;;16203:13;16174:15;16166:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16255:5:0::1;::::0;-1:-1:-1;;16276:19:0;;;-1:-1:-1;16273:362:0::1;;16311:6;::::0;16485:21:::1;::::0;16311:244:::1;::::0;-1:-1:-1;;;16311:244:0;;16387:4:::1;16311:244;::::0;::::1;13953:34:1::0;14003:18;;;13996:34;;;16311:6:0::1;14046:18:1::0;;;14039:34;;;14089:18;;;14082:34;-1:-1:-1;;;;;16485:21:0;;::::1;14132:19:1::0;;;14125:44;16525:15:0::1;14185:19:1::0;;;14178:35;16311:6:0;::::1;::::0;:22:::1;::::0;16341:18;;13887:19:1;;16311:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16575:48:0::1;::::0;;14709:25:1;;;14765:2;14750:18;;14743:34;;;16575:48:0::1;::::0;-1:-1:-1;14682:18:1;16575:48:0::1;;;;;;;16273:362;-1:-1:-1::0;;7501:6:0;:14;;-1:-1:-1;;7501:14:0;;;-1:-1:-1;;;;;;;;14965:1677:0:o;12747:982::-;12881:15;;12923:4;;12833:7;;12881:15;-1:-1:-1;;;;;12923:4:0;;;12910:17;;;;12907:142;;-1:-1:-1;12954:11:0;;12907:142;;;12996:4;;-1:-1:-1;;;;;12996:4:0;;;12986:14;;;;12983:66;;-1:-1:-1;13027:10:0;;12983:66;13061:17;13081:59;13119:14;;13136:3;13119:20;;;;:::i;:::-;13081:33;13106:7;13081:20;13092:8;;13081:6;:10;;:20;;;;:::i;:::-;:24;;:33::i;:59::-;13061:79;;13151:18;13172:36;13199:8;;13172:22;13186:7;;13172:9;:13;;:22;;;;:::i;:36::-;13151:57;-1:-1:-1;13219:22:0;13244:25;:9;13151:57;13244:13;:25::i;:::-;13325:4;13307:24;;;;:9;:24;;;;;;13219:50;;-1:-1:-1;13307:44:0;;13219:50;13307:28;:44::i;:::-;13298:4;13280:24;;;;:9;:24;;;;;;:71;;;;13401:15;;-1:-1:-1;;;;;13401:15:0;13391:26;;;;:42;;13422:10;13391:30;:42::i;:::-;13372:15;;-1:-1:-1;;;;;13372:15:0;;;13362:26;;;;:9;:26;;;;;;;;;:71;;;;13449:47;160:25:1;;;13474:4:0;;13449:47;;;;-1:-1:-1;;;;;;;;;;;13449:47:0;133:18:1;13449:47:0;;;;;;;13530:14;;13527:154;;13575:12;;:28;;13592:10;13575:16;:28::i;:::-;13560:12;:43;13623:34;;160:25:1;;;5277:42:0;;-1:-1:-1;;;;;13623:34:0;;;-1:-1:-1;;;;;;;;;;;13623:34:0;148:2:1;133:18;13623:34:0;;;;;;;13527:154;13700:21;:6;13711:9;13700:10;:21::i;:::-;13693:28;12747:982;-1:-1:-1;;;;;;;;12747:982:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:523::-;1482:6;1490;1498;1506;1514;1522;1575:3;1563:9;1554:7;1550:23;1546:33;1543:53;;;1592:1;1589;1582:12;1543:53;-1:-1:-1;;1615:23:1;;;1685:2;1670:18;;1657:32;;-1:-1:-1;1736:2:1;1721:18;;1708:32;;1787:2;1772:18;;1759:32;;-1:-1:-1;1838:3:1;1823:19;;1810:33;;-1:-1:-1;1890:3:1;1875:19;1862:33;;-1:-1:-1;1378:523:1;-1:-1:-1;1378:523:1:o;1906:316::-;1983:6;1991;1999;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;-1:-1:-1;;2091:23:1;;;2161:2;2146:18;;2133:32;;-1:-1:-1;2212:2:1;2197:18;;;2184:32;;1906:316;-1:-1:-1;1906:316:1:o;2227:484::-;2322:6;2330;2338;2346;2354;2407:3;2395:9;2386:7;2382:23;2378:33;2375:53;;;2424:1;2421;2414:12;2375:53;2447:29;2466:9;2447:29;:::i;:::-;2437:39;;2495:38;2529:2;2518:9;2514:18;2495:38;:::i;:::-;2485:48;;2552:38;2586:2;2575:9;2571:18;2552:38;:::i;:::-;2542:48;;2609:38;2643:2;2632:9;2628:18;2609:38;:::i;:::-;2599:48;;2666:39;2700:3;2689:9;2685:19;2666:39;:::i;:::-;2656:49;;2227:484;;;;;;;;:::o;2716:328::-;2793:6;2801;2809;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;2901:29;2920:9;2901:29;:::i;:::-;2891:39;;2949:38;2983:2;2972:9;2968:18;2949:38;:::i;:::-;2939:48;;3034:2;3023:9;3019:18;3006:32;2996:42;;2716:328;;;;;:::o;3049:118::-;3135:5;3128:13;3121:21;3114:5;3111:32;3101:60;;3157:1;3154;3147:12;3172:315;3237:6;3245;3298:2;3286:9;3277:7;3273:23;3269:32;3266:52;;;3314:1;3311;3304:12;3266:52;3337:29;3356:9;3337:29;:::i;:::-;3327:39;;3416:2;3405:9;3401:18;3388:32;3429:28;3451:5;3429:28;:::i;:::-;3476:5;3466:15;;;3172:315;;;;;:::o;3681:186::-;3740:6;3793:2;3781:9;3772:7;3768:23;3764:32;3761:52;;;3809:1;3806;3799:12;3761:52;3832:29;3851:9;3832:29;:::i;3872:180::-;3931:6;3984:2;3972:9;3963:7;3959:23;3955:32;3952:52;;;4000:1;3997;3990:12;3952:52;-1:-1:-1;4023:23:1;;3872:180;-1:-1:-1;3872:180:1:o;4265:260::-;4333:6;4341;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4433:29;4452:9;4433:29;:::i;:::-;4423:39;;4481:38;4515:2;4504:9;4500:18;4481:38;:::i;:::-;4471:48;;4265:260;;;;;:::o;4530:309::-;4595:6;4603;4656:2;4644:9;4635:7;4631:23;4627:32;4624:52;;;4672:1;4669;4662:12;4624:52;4711:9;4698:23;4730:28;4752:5;4730:28;:::i;5070:356::-;5272:2;5254:21;;;5291:18;;;5284:30;5350:34;5345:2;5330:18;;5323:62;5417:2;5402:18;;5070:356::o;5431:127::-;5492:10;5487:3;5483:20;5480:1;5473:31;5523:4;5520:1;5513:15;5547:4;5544:1;5537:15;5563:217;5603:1;5629;5619:132;;5673:10;5668:3;5664:20;5661:1;5654:31;5708:4;5705:1;5698:15;5736:4;5733:1;5726:15;5619:132;-1:-1:-1;5765:9:1;;5563:217::o;7739:168::-;7812:9;;;7843;;7860:15;;;7854:22;;7840:37;7830:71;;7881:18;;:::i;8273:184::-;8343:6;8396:2;8384:9;8375:7;8371:23;8367:32;8364:52;;;8412:1;8409;8402:12;8364:52;-1:-1:-1;8435:16:1;;8273:184;-1:-1:-1;8273:184:1:o;8741:245::-;8808:6;8861:2;8849:9;8840:7;8836:23;8832:32;8829:52;;;8877:1;8874;8867:12;8829:52;8909:9;8903:16;8928:28;8950:5;8928:28;:::i;9661:125::-;9726:9;;;9747:10;;;9744:36;;;9760:18;;:::i;10894:128::-;10961:9;;;10982:11;;;10979:37;;;10996:18;;:::i;12285:127::-;12346:10;12341:3;12337:20;12334:1;12327:31;12377:4;12374:1;12367:15;12401:4;12398:1;12391:15;12417:980;12679:4;12727:3;12716:9;12712:19;12758:6;12747:9;12740:25;12784:2;12822:6;12817:2;12806:9;12802:18;12795:34;12865:3;12860:2;12849:9;12845:18;12838:31;12889:6;12924;12918:13;12955:6;12947;12940:22;12993:3;12982:9;12978:19;12971:26;;13032:2;13024:6;13020:15;13006:29;;13053:1;13063:195;13077:6;13074:1;13071:13;13063:195;;;13142:13;;-1:-1:-1;;;;;13138:39:1;13126:52;;13233:15;;;;13198:12;;;;13174:1;13092:9;13063:195;;;-1:-1:-1;;;;;;;13314:32:1;;;;13309:2;13294:18;;13287:60;-1:-1:-1;;;13378:3:1;13363:19;13356:35;13275:3;12417:980;-1:-1:-1;;;12417:980:1:o;14224:306::-;14312:6;14320;14328;14381:2;14369:9;14360:7;14356:23;14352:32;14349:52;;;14397:1;14394;14387:12;14349:52;14426:9;14420:16;14410:26;;14476:2;14465:9;14461:18;14455:25;14445:35;;14520:2;14509:9;14505:18;14499:25;14489:35;;14224:306;;;;;:::o

Swarm Source

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