ETH Price: $3,444.87 (-0.30%)
Gas: 3 Gwei

Token

MUU (MUU)
 

Overview

Max Total Supply

1,000,000,000,000 MUU

Holders

369

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,246,520,033.385782225 MUU

Value
$0.00
0xd6c15f122e1eb27ff274c0b5736b7ac2929425e0
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:
MUU

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-28
*/

/**

MUU

- Total Supply: 1,000,000,000,000
- Max Wallet: 3%
- Max Txn: 3%
- Taxes: 5/5
*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.14;

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

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

    string constant _name = "MUU";
    string constant _symbol = "MUU";
    uint8 constant _decimals = 9;

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

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

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

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

     uint256 private liquidityFee   = 1;
    uint256 private marketingFee    = 4;
    uint256 private buybackFee      = 0;
    uint256 private devFee          = 0;
    uint256 private stakingFee      = 0;
    uint256 public totalFee         = devFee + marketingFee + liquidityFee + buybackFee + stakingFee;
    uint256 public feeDenominator   = 100;

    uint256 sellmultiplier = 100;
    uint256 buymultiplier = 100;
    uint256 transfermultiplier = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private stakingFeeReceiver;

    uint256 targetLiquidity = 10;
    uint256 targetLiquidityDenominator = 100;

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

    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 5; //timer in seconds
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 30 / 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[marketingFeeReceiver] = true;
        isFeeExempt[buybackFeeReceiver] = true;
         
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[pair] = true;
        isTimelockExempt[marketingFeeReceiver] = true;
        isTimelockExempt[buybackFeeReceiver] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[buybackFeeReceiver] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;
        stakingFeeReceiver = 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 setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 10,"Cannot set max wallet less than 1%");
        _maxWalletToken = (_totalSupply * maxWallPercent_base1000 ) / 1000;
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 10,"Cannot set max transaction less than 1%");
        _maxTxAmount = (_totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

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

    function manageAuthorizations(address account, bool status) public virtual onlyOwner {
    authorizations[account] = status;
    }
    
  
    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 (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
       
           }
        
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != stakingFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

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

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

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

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

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

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

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

        if(recipient == pair) {
            multiplier = sellmultiplier;
        } else if(sender == pair) {
            multiplier = buymultiplier;
        }

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

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

        return amount.sub(feeAmount);
    }

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

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

    function setmultiplierFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellmultiplier = _sell;
        buymultiplier = _buy;
        transfermultiplier = _trans;    
          
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }


     function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner { //Buycooldown only not sell (Anti HP)
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
         require(cooldownTimerInterval < 20,"Cannot set more than 20 seconds");

    }

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

    
     function SetIsFeeExempt(address[] calldata addresses, bool status) external onlyOwner {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function SetIsTxLimitExempt(address[] calldata addresses, bool status) external onlyOwner { //TXLimit Exempt will also Wallet Limit Exempt
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
        }
    }

    function setFees(uint256 _liquidityFee, uint256 _devFee, uint256 _marketingFee, uint256 _buybackFee, uint256 _stakingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        devFee = _devFee;
        marketingFee = _marketingFee;
        buybackFee = _buybackFee;
        stakingFee = _stakingFee;
        totalFee = _liquidityFee.add(_devFee).add(_marketingFee).add(_buybackFee).add(_stakingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < 21, "Buy Fees cannot be more than 21%");
    }

     function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _buybackFeeReceiver, address _stakingFeeReceiver, address _devFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
        stakingFeeReceiver = _stakingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }


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

    function setTargetLiquidity(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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"SetIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"SetIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageAuthorizations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_stakingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","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":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setmultiplierFees","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a62000702565b620000439064e8d4a5100062000713565b600581905562000064906064906200005d906003620004d2565b9062000569565b6006556005546200007f906064906200005d906003620004d2565b6007556001600d556004600e556000600f5560006010556000601155601154600f54600d54600e54601054620000b691906200072d565b620000c291906200072d565b620000ce91906200072d565b620000da91906200072d565b60125560646013819055601481905560158190556016819055600a601c55601d556020805462ffffff60a01b191661050160a81b1790556022805460ff19166001179055600554612710906200013290601e62000713565b6200013e919062000743565b6023553480156200014e57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200020e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000234919062000766565b600280546001600160a01b0319166001600160a01b03928316179055601e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000293573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b9919062000766565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000331919062000766565b602080546001600160a01b039283166001600160a01b031991821681178355601f805483169091179055306000908152600983526040808220601e54861683528452808220600019905533808352600a8552818320805460ff19908116600190811790925560188054891686528486208054831684179055601a80548a1687528587208054841685179055848752600b8952858720805484168517905588548a168752858720805484168517905581548a168752858720805484168517905580548a1687528587208054841685179055848752600c8952858720805484168517905588548a168752858720805484168517905581548a168752858720805484168517905580548a1687528587208054909316909317909155601780548716841790558054861683179055805485168217905560198054851682179055600354601b80549095169616959095179092556005548482526008909352818120839055905190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620004c491815260200190565b60405180910390a3620007e1565b600082600003620004e65750600062000563565b6000620004f4838562000713565b90508262000503858362000743565b14620005605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200056083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005b360201b60201c565b60008183620005d75760405162461bcd60e51b815260040162000557919062000791565b506000620005e6848662000743565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006465781600019048211156200062a576200062a620005ef565b808516156200063857918102915b93841c93908002906200060a565b509250929050565b6000826200065f5750600162000563565b816200066e5750600062000563565b81600181146200068757600281146200069257620006b2565b600191505062000563565b60ff841115620006a657620006a6620005ef565b50506001821b62000563565b5060208310610133831016604e8410600b8410161715620006d7575081810a62000563565b620006e3838362000605565b8060001904821115620006fa57620006fa620005ef565b029392505050565b60006200056060ff8416836200064e565b8082028115828204841417620005635762000563620005ef565b80820180821115620005635762000563620005ef565b6000826200076157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200077957600080fd5b81516001600160a01b03811681146200056057600080fd5b600060208083528351808285015260005b81811015620007c057858101830151858201604001528201620007a2565b506000604082860101526040601f19601f8301168501019250505092915050565b6125a480620007f16000396000f3fe60806040526004361061026b5760003560e01c8063722b62ad11610144578063b2bdfa7b116100b6578063df20fd491161007a578063df20fd491461072f578063f2fde38b1461074f578063f887ea401461076f578063fe9179cc1461078f578063ff732b90146107af578063ffb54a99146107cf57600080fd5b8063b2bdfa7b14610674578063bd9ab53714610694578063c9567bf9146106b4578063d51ed1c8146106c9578063dd62ed3e146106e957600080fd5b8063893d20e811610108578063893d20e8146105c45780638da5cb5b146105f6578063906ea2711461061457806395d89b41146102a0578063a8aa1b3114610634578063a9059cbb1461065457600080fd5b8063722b62ad1461053757806377b54bad1461055857806378109e54146105785780637d1db4a51461058e57806386f6c3c1146105a457600080fd5b80632b112e49116101dd578063571ac8b0116101a1578063571ac8b014610471578063617fe0ed146104915780636ddd1713146104b25780636fdba672146104cc57806370a08231146104ec578063715018a61461052257600080fd5b80632b112e49146103e55780632d594567146103fa578063313ce5671461041a578063364333f41461043c57806350db71fb1461045157600080fd5b8063180b0d7e1161022f578063180b0d7e1461034457806318160ddd1461035a57806318abb6351461036f5780631df4ccfc1461038f578063201e7991146103a557806323b872dd146103c557600080fd5b80630445b6671461027757806306fdde03146102a057806309302dc6146102d2578063095ea7b3146102f45780631161ae391461032457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60235481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201825260038152624d555560e81b602082015290516102979190612011565b3480156102de57600080fd5b506102f26102ed36600461205f565b6107f0565b005b34801561030057600080fd5b5061031461030f366004612094565b6108a0565b6040519015158152602001610297565b34801561033057600080fd5b5061031461033f3660046120be565b61090d565b34801561035057600080fd5b5061028d60135481565b34801561036657600080fd5b5060055461028d565b34801561037b57600080fd5b506102f261038a3660046120e0565b610921565b34801561039b57600080fd5b5061028d60125481565b3480156103b157600080fd5b506102f26103c03660046120be565b6109aa565b3480156103d157600080fd5b506103146103e0366004612145565b6109df565b3480156103f157600080fd5b5061028d610aa1565b34801561040657600080fd5b506102f261041536600461218f565b610af3565b34801561042657600080fd5b5060095b60405160ff9091168152602001610297565b34801561044857600080fd5b506102f2610ba4565b34801561045d57600080fd5b506102f261046c3660046121ce565b610bef565b34801561047d57600080fd5b5061031461048c3660046121fa565b610c44565b34801561049d57600080fd5b5060205461031490600160a81b900460ff1681565b3480156104be57600080fd5b506022546103149060ff1681565b3480156104d857600080fd5b506102f26104e73660046121ce565b610c52565b3480156104f857600080fd5b5061028d6105073660046121fa565b6001600160a01b031660009081526008602052604090205490565b34801561052e57600080fd5b506102f2610ca7565b34801561054357600080fd5b5060205461042a90600160b01b900460ff1681565b34801561056457600080fd5b50610314610573366004612094565b610d1b565b34801561058457600080fd5b5061028d60075481565b34801561059a57600080fd5b5061028d60065481565b3480156105b057600080fd5b506102f26105bf366004612215565b610e2a565b3480156105d057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561060257600080fd5b506000546001600160a01b03166105de565b34801561062057600080fd5b506102f261062f366004612258565b610ee6565b34801561064057600080fd5b506020546105de906001600160a01b031681565b34801561066057600080fd5b5061031461066f366004612094565b610fa6565b34801561068057600080fd5b506000546105de906001600160a01b031681565b3480156106a057600080fd5b506102f26106af36600461205f565b610fb3565b3480156106c057600080fd5b506102f261105f565b3480156106d557600080fd5b5061028d6106e436600461205f565b61109e565b3480156106f557600080fd5b5061028d6107043660046122de565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561073b57600080fd5b506102f261074a366004612311565b6110e6565b34801561075b57600080fd5b506102f261076a3660046121fa565b611127565b34801561077b57600080fd5b50601e546105de906001600160a01b031681565b34801561079b57600080fd5b506102f26107aa366004612258565b611211565b3480156107bb57600080fd5b506102f26107ca36600461232f565b6112cb565b3480156107db57600080fd5b5060205461031490600160a01b900460ff1681565b6000546001600160a01b031633146108235760405162461bcd60e51b815260040161081a9061235b565b60405180910390fd5b600a81101561087f5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b606482015260840161081a565b6103e88160055461089091906123a6565b61089a91906123bd565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108fb9086815260200190565b60405180910390a35060015b92915050565b6000826109198361109e565b119392505050565b6000546001600160a01b0316331461094b5760405162461bcd60e51b815260040161081a9061235b565b601780546001600160a01b03199081166001600160a01b039788161790915560188054821695871695909517909455601a8054851693861693909317909255601b80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b031633146109d45760405162461bcd60e51b815260040161081a9061235b565b601c91909155601d55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a8c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a67918490611306565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a97848484611340565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610aee906003546001600160a01b0316600090815260086020526040902054610ae8906005549061178e565b9061178e565b905090565b6000546001600160a01b03163314610b1d5760405162461bcd60e51b815260040161081a9061235b565b6020805461ffff60a81b1916600160a81b8415150260ff60b01b191617600160b01b60ff84811682029290921792839055601492041610610ba05760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206d6f7265207468616e203230207365636f6e647300604482015260640161081a565b5050565b336000908152600a602052604090205460ff16610bc057600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610bec573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161081a9061235b565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610907826000196108a0565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b815260040161081a9061235b565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161081a9061235b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b03163314610d465760405162461bcd60e51b815260040161081a9061235b565b81600003610db9576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db691906123df565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9a91906123f8565b6000546001600160a01b03163314610e545760405162461bcd60e51b815260040161081a9061235b565b600d8690556010859055600e849055600f8390556011829055610e8582610e7f858188818c8c6117d0565b906117d0565b60128190556013829055601511610ede5760405162461bcd60e51b815260206004820181905260248201527f42757920466565732063616e6e6f74206265206d6f7265207468616e20323125604482015260640161081a565b505050505050565b6000546001600160a01b03163314610f105760405162461bcd60e51b815260040161081a9061235b565b6101f58210610f315760405162461bcd60e51b815260040161081a90612415565b60005b82811015610fa05781600c6000868685818110610f5357610f5361245a565b9050602002016020810190610f6891906121fa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f9981612470565b9050610f34565b50505050565b6000610a9a338484611340565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b815260040161081a9061235b565b600a81101561103e5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b606482015260840161081a565b6103e88160055461104f91906123a6565b61105991906123bd565b60065550565b6000546001600160a01b031633146110895760405162461bcd60e51b815260040161081a9061235b565b6020805460ff60a01b1916600160a01b179055565b60006109076110ab610aa1565b602080546001600160a01b03166000908152600890915260409020546110e0906110d9906002905b9061182f565b859061182f565b906118b1565b6000546001600160a01b031633146111105760405162461bcd60e51b815260040161081a9061235b565b6022805460ff191692151592909217909155602355565b6000546001600160a01b031633146111515760405162461bcd60e51b815260040161081a9061235b565b6001600160a01b0381166111b65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461123b5760405162461bcd60e51b815260040161081a9061235b565b6101f5821061125c5760405162461bcd60e51b815260040161081a90612415565b60005b82811015610fa05781600a600086868581811061127e5761127e61245a565b905060200201602081019061129391906121fa565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112c481612470565b905061125f565b6000546001600160a01b031633146112f55760405162461bcd60e51b815260040161081a9061235b565b601491909155601591909155601655565b6000818484111561132a5760405162461bcd60e51b815260040161081a9190612011565b5060006113378486612489565b95945050505050565b60245460009060ff1615611360576113598484846118f3565b9050610a9a565b6001600160a01b03841660009081526001602052604090205460ff161580156113a257506001600160a01b03831660009081526001602052604090205460ff16155b156113f757602054600160a01b900460ff166113f75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161081a565b6020546001600160a01b03858116911614801561141d5750602054600160a81b900460ff165b801561144257506001600160a01b0383166000908152600b602052604090205460ff16155b156114df576001600160a01b03831660009081526021602052604090205442116114ae5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e20627579730000000000000000604482015260640161081a565b6020546114c590600160b01b900460ff164261249c565b6001600160a01b0384166000908152602160205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561151157506001600160a01b0383163014155b801561152b57506003546001600160a01b03848116911614155b801561154557506020546001600160a01b03848116911614155b801561155f5750601b546001600160a01b03848116911614155b801561157957506018546001600160a01b03848116911614155b801561159e57506001600160a01b0383166000908152600c602052604090205460ff16155b1561163f576001600160a01b0383166000908152600860205260409020546007546115c9848361249c565b111561163d5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161081a565b505b61164984836119c7565b611651611a30565b1561165e5761165e611a7f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546116b0918490611306565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806116fd57506001600160a01b0384166000908152600a602052604090205460ff165b6117115761170c858486611e66565b611713565b825b6001600160a01b03851660009081526008602052604090205490915061173990826117d0565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061254f8339815191529061177b9085815260200190565b60405180910390a3506001949350505050565b6000610a9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611306565b6000806117dd838561249c565b905083811015610a9a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081a565b60008260000361184157506000610907565b600061184d83856123a6565b90508261185a85836123bd565b14610a9a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081a565b6000610a9a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611944918490611306565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461197390836117d0565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061254f833981519152906119b59086815260200190565b60405180910390a35060019392505050565b600654811115806119f057506001600160a01b0382166000908152600c602052604090205460ff165b610ba05760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161081a565b6020546000906001600160a01b03163314801590611a51575060245460ff16155b8015611a5f575060225460ff165b8015610aee57505060235430600090815260086020526040902054101590565b6024805460ff19166001179055601c54601d54600091611a9e9161090d565b611aaa57600d54611aad565b60005b90506000611ad160026110e06012546110e08660235461182f90919063ffffffff16565b90506000611aea8260235461178e90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611b2457611b2461245a565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b5557611b5561245a565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac94790611b9f9086906000908790309042906004016124af565b600060405180830381600087803b158015611bb957600080fd5b505af1158015611bcd573d6000803e3d6000fd5b505050506000611be6824761178e90919063ffffffff16565b90506000611c01611bf88860026118b1565b6012549061178e565b90506000611c1660026110e08481878d61182f565b90506000611c33836110e0600e548761182f90919063ffffffff16565b90506000611c50846110e0600f548861182f90919063ffffffff16565b90506000611c6d856110e06010548961182f90919063ffffffff16565b6018546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611cbf576040519150601f19603f3d011682016040523d82523d6000602084013e611cc4565b606091505b50506019546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611d14576040519150601f19603f3d011682016040523d82523d6000602084013e611d19565b606091505b5050601a546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611d69576040519150601f19603f3d011682016040523d82523d6000602084013e611d6e565b606091505b5060009250508b159050611e4e57601e5460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611dec573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e119190612520565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b601654602054600091906001600160a01b0390811690841603611e8c5750601454611ea7565b6020546001600160a01b0390811690861603611ea757506015545b6000611ed46013546064611ebb91906123a6565b6110e0846110d36012548a61182f90919063ffffffff16565b90506000611ef36012546110e06011548561182f90919063ffffffff16565b90506000611f01838361178e565b30600090815260086020526040902054909150611f1e90826117d0565b3060009081526008602052604080822092909255601b546001600160a01b031681522054611f4c90836117d0565b601b546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061254f833981519152910160405180910390a38115611fcd57601b546040518381526001600160a01b03918216918a169060008051602061254f8339815191529060200160405180910390a35b611fd7878461178e565b98975050505050505050565b600081836120045760405162461bcd60e51b815260040161081a9190612011565b50600061133784866123bd565b600060208083528351808285015260005b8181101561203e57858101830151858201604001528201612022565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561207157600080fd5b5035919050565b80356001600160a01b038116811461208f57600080fd5b919050565b600080604083850312156120a757600080fd5b6120b083612078565b946020939093013593505050565b600080604083850312156120d157600080fd5b50508035926020909101359150565b600080600080600060a086880312156120f857600080fd5b61210186612078565b945061210f60208701612078565b935061211d60408701612078565b925061212b60608701612078565b915061213960808701612078565b90509295509295909350565b60008060006060848603121561215a57600080fd5b61216384612078565b925061217160208501612078565b9150604084013590509250925092565b8015158114610bec57600080fd5b600080604083850312156121a257600080fd5b82356121ad81612181565b9150602083013560ff811681146121c357600080fd5b809150509250929050565b600080604083850312156121e157600080fd5b6121ea83612078565b915060208301356121c381612181565b60006020828403121561220c57600080fd5b610a9a82612078565b60008060008060008060c0878903121561222e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561226d57600080fd5b833567ffffffffffffffff8082111561228557600080fd5b818601915086601f83011261229957600080fd5b8135818111156122a857600080fd5b8760208260051b85010111156122bd57600080fd5b602092830195509350508401356122d381612181565b809150509250925092565b600080604083850312156122f157600080fd5b6122fa83612078565b915061230860208401612078565b90509250929050565b6000806040838503121561232457600080fd5b82356120b081612181565b60008060006060848603121561234457600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090757610907612390565b6000826123da57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156123f157600080fd5b5051919050565b60006020828403121561240a57600080fd5b8151610a9a81612181565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161248257612482612390565b5060010190565b8181038181111561090757610907612390565b8082018082111561090757610907612390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124ff5784516001600160a01b0316835293830193918301916001016124da565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561253557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201525887dc446c1aafc1aa9b6a59e9baf2f304466a2c8a3827ff98cdcbd3ee8d564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c8063722b62ad11610144578063b2bdfa7b116100b6578063df20fd491161007a578063df20fd491461072f578063f2fde38b1461074f578063f887ea401461076f578063fe9179cc1461078f578063ff732b90146107af578063ffb54a99146107cf57600080fd5b8063b2bdfa7b14610674578063bd9ab53714610694578063c9567bf9146106b4578063d51ed1c8146106c9578063dd62ed3e146106e957600080fd5b8063893d20e811610108578063893d20e8146105c45780638da5cb5b146105f6578063906ea2711461061457806395d89b41146102a0578063a8aa1b3114610634578063a9059cbb1461065457600080fd5b8063722b62ad1461053757806377b54bad1461055857806378109e54146105785780637d1db4a51461058e57806386f6c3c1146105a457600080fd5b80632b112e49116101dd578063571ac8b0116101a1578063571ac8b014610471578063617fe0ed146104915780636ddd1713146104b25780636fdba672146104cc57806370a08231146104ec578063715018a61461052257600080fd5b80632b112e49146103e55780632d594567146103fa578063313ce5671461041a578063364333f41461043c57806350db71fb1461045157600080fd5b8063180b0d7e1161022f578063180b0d7e1461034457806318160ddd1461035a57806318abb6351461036f5780631df4ccfc1461038f578063201e7991146103a557806323b872dd146103c557600080fd5b80630445b6671461027757806306fdde03146102a057806309302dc6146102d2578063095ea7b3146102f45780631161ae391461032457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60235481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201825260038152624d555560e81b602082015290516102979190612011565b3480156102de57600080fd5b506102f26102ed36600461205f565b6107f0565b005b34801561030057600080fd5b5061031461030f366004612094565b6108a0565b6040519015158152602001610297565b34801561033057600080fd5b5061031461033f3660046120be565b61090d565b34801561035057600080fd5b5061028d60135481565b34801561036657600080fd5b5060055461028d565b34801561037b57600080fd5b506102f261038a3660046120e0565b610921565b34801561039b57600080fd5b5061028d60125481565b3480156103b157600080fd5b506102f26103c03660046120be565b6109aa565b3480156103d157600080fd5b506103146103e0366004612145565b6109df565b3480156103f157600080fd5b5061028d610aa1565b34801561040657600080fd5b506102f261041536600461218f565b610af3565b34801561042657600080fd5b5060095b60405160ff9091168152602001610297565b34801561044857600080fd5b506102f2610ba4565b34801561045d57600080fd5b506102f261046c3660046121ce565b610bef565b34801561047d57600080fd5b5061031461048c3660046121fa565b610c44565b34801561049d57600080fd5b5060205461031490600160a81b900460ff1681565b3480156104be57600080fd5b506022546103149060ff1681565b3480156104d857600080fd5b506102f26104e73660046121ce565b610c52565b3480156104f857600080fd5b5061028d6105073660046121fa565b6001600160a01b031660009081526008602052604090205490565b34801561052e57600080fd5b506102f2610ca7565b34801561054357600080fd5b5060205461042a90600160b01b900460ff1681565b34801561056457600080fd5b50610314610573366004612094565b610d1b565b34801561058457600080fd5b5061028d60075481565b34801561059a57600080fd5b5061028d60065481565b3480156105b057600080fd5b506102f26105bf366004612215565b610e2a565b3480156105d057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561060257600080fd5b506000546001600160a01b03166105de565b34801561062057600080fd5b506102f261062f366004612258565b610ee6565b34801561064057600080fd5b506020546105de906001600160a01b031681565b34801561066057600080fd5b5061031461066f366004612094565b610fa6565b34801561068057600080fd5b506000546105de906001600160a01b031681565b3480156106a057600080fd5b506102f26106af36600461205f565b610fb3565b3480156106c057600080fd5b506102f261105f565b3480156106d557600080fd5b5061028d6106e436600461205f565b61109e565b3480156106f557600080fd5b5061028d6107043660046122de565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561073b57600080fd5b506102f261074a366004612311565b6110e6565b34801561075b57600080fd5b506102f261076a3660046121fa565b611127565b34801561077b57600080fd5b50601e546105de906001600160a01b031681565b34801561079b57600080fd5b506102f26107aa366004612258565b611211565b3480156107bb57600080fd5b506102f26107ca36600461232f565b6112cb565b3480156107db57600080fd5b5060205461031490600160a01b900460ff1681565b6000546001600160a01b031633146108235760405162461bcd60e51b815260040161081a9061235b565b60405180910390fd5b600a81101561087f5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b606482015260840161081a565b6103e88160055461089091906123a6565b61089a91906123bd565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108fb9086815260200190565b60405180910390a35060015b92915050565b6000826109198361109e565b119392505050565b6000546001600160a01b0316331461094b5760405162461bcd60e51b815260040161081a9061235b565b601780546001600160a01b03199081166001600160a01b039788161790915560188054821695871695909517909455601a8054851693861693909317909255601b80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b031633146109d45760405162461bcd60e51b815260040161081a9061235b565b601c91909155601d55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a8c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a67918490611306565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a97848484611340565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610aee906003546001600160a01b0316600090815260086020526040902054610ae8906005549061178e565b9061178e565b905090565b6000546001600160a01b03163314610b1d5760405162461bcd60e51b815260040161081a9061235b565b6020805461ffff60a81b1916600160a81b8415150260ff60b01b191617600160b01b60ff84811682029290921792839055601492041610610ba05760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574206d6f7265207468616e203230207365636f6e647300604482015260640161081a565b5050565b336000908152600a602052604090205460ff16610bc057600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610bec573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161081a9061235b565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610907826000196108a0565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b815260040161081a9061235b565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161081a9061235b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b03163314610d465760405162461bcd60e51b815260040161081a9061235b565b81600003610db9576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db691906123df565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9a91906123f8565b6000546001600160a01b03163314610e545760405162461bcd60e51b815260040161081a9061235b565b600d8690556010859055600e849055600f8390556011829055610e8582610e7f858188818c8c6117d0565b906117d0565b60128190556013829055601511610ede5760405162461bcd60e51b815260206004820181905260248201527f42757920466565732063616e6e6f74206265206d6f7265207468616e20323125604482015260640161081a565b505050505050565b6000546001600160a01b03163314610f105760405162461bcd60e51b815260040161081a9061235b565b6101f58210610f315760405162461bcd60e51b815260040161081a90612415565b60005b82811015610fa05781600c6000868685818110610f5357610f5361245a565b9050602002016020810190610f6891906121fa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f9981612470565b9050610f34565b50505050565b6000610a9a338484611340565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b815260040161081a9061235b565b600a81101561103e5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b606482015260840161081a565b6103e88160055461104f91906123a6565b61105991906123bd565b60065550565b6000546001600160a01b031633146110895760405162461bcd60e51b815260040161081a9061235b565b6020805460ff60a01b1916600160a01b179055565b60006109076110ab610aa1565b602080546001600160a01b03166000908152600890915260409020546110e0906110d9906002905b9061182f565b859061182f565b906118b1565b6000546001600160a01b031633146111105760405162461bcd60e51b815260040161081a9061235b565b6022805460ff191692151592909217909155602355565b6000546001600160a01b031633146111515760405162461bcd60e51b815260040161081a9061235b565b6001600160a01b0381166111b65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461123b5760405162461bcd60e51b815260040161081a9061235b565b6101f5821061125c5760405162461bcd60e51b815260040161081a90612415565b60005b82811015610fa05781600a600086868581811061127e5761127e61245a565b905060200201602081019061129391906121fa565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112c481612470565b905061125f565b6000546001600160a01b031633146112f55760405162461bcd60e51b815260040161081a9061235b565b601491909155601591909155601655565b6000818484111561132a5760405162461bcd60e51b815260040161081a9190612011565b5060006113378486612489565b95945050505050565b60245460009060ff1615611360576113598484846118f3565b9050610a9a565b6001600160a01b03841660009081526001602052604090205460ff161580156113a257506001600160a01b03831660009081526001602052604090205460ff16155b156113f757602054600160a01b900460ff166113f75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161081a565b6020546001600160a01b03858116911614801561141d5750602054600160a81b900460ff165b801561144257506001600160a01b0383166000908152600b602052604090205460ff16155b156114df576001600160a01b03831660009081526021602052604090205442116114ae5760405162461bcd60e51b815260206004820152601860248201527f506c656173652077616974206265747765656e20627579730000000000000000604482015260640161081a565b6020546114c590600160b01b900460ff164261249c565b6001600160a01b0384166000908152602160205260409020555b6001600160a01b03841660009081526001602052604090205460ff1615801561151157506001600160a01b0383163014155b801561152b57506003546001600160a01b03848116911614155b801561154557506020546001600160a01b03848116911614155b801561155f5750601b546001600160a01b03848116911614155b801561157957506018546001600160a01b03848116911614155b801561159e57506001600160a01b0383166000908152600c602052604090205460ff16155b1561163f576001600160a01b0383166000908152600860205260409020546007546115c9848361249c565b111561163d5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161081a565b505b61164984836119c7565b611651611a30565b1561165e5761165e611a7f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546116b0918490611306565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806116fd57506001600160a01b0384166000908152600a602052604090205460ff165b6117115761170c858486611e66565b611713565b825b6001600160a01b03851660009081526008602052604090205490915061173990826117d0565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061254f8339815191529061177b9085815260200190565b60405180910390a3506001949350505050565b6000610a9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611306565b6000806117dd838561249c565b905083811015610a9a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081a565b60008260000361184157506000610907565b600061184d83856123a6565b90508261185a85836123bd565b14610a9a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081a565b6000610a9a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611944918490611306565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461197390836117d0565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061254f833981519152906119b59086815260200190565b60405180910390a35060019392505050565b600654811115806119f057506001600160a01b0382166000908152600c602052604090205460ff165b610ba05760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161081a565b6020546000906001600160a01b03163314801590611a51575060245460ff16155b8015611a5f575060225460ff165b8015610aee57505060235430600090815260086020526040902054101590565b6024805460ff19166001179055601c54601d54600091611a9e9161090d565b611aaa57600d54611aad565b60005b90506000611ad160026110e06012546110e08660235461182f90919063ffffffff16565b90506000611aea8260235461178e90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611b2457611b2461245a565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b5557611b5561245a565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac94790611b9f9086906000908790309042906004016124af565b600060405180830381600087803b158015611bb957600080fd5b505af1158015611bcd573d6000803e3d6000fd5b505050506000611be6824761178e90919063ffffffff16565b90506000611c01611bf88860026118b1565b6012549061178e565b90506000611c1660026110e08481878d61182f565b90506000611c33836110e0600e548761182f90919063ffffffff16565b90506000611c50846110e0600f548861182f90919063ffffffff16565b90506000611c6d856110e06010548961182f90919063ffffffff16565b6018546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611cbf576040519150601f19603f3d011682016040523d82523d6000602084013e611cc4565b606091505b50506019546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611d14576040519150601f19603f3d011682016040523d82523d6000602084013e611d19565b606091505b5050601a546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611d69576040519150601f19603f3d011682016040523d82523d6000602084013e611d6e565b606091505b5060009250508b159050611e4e57601e5460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611dec573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e119190612520565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b601654602054600091906001600160a01b0390811690841603611e8c5750601454611ea7565b6020546001600160a01b0390811690861603611ea757506015545b6000611ed46013546064611ebb91906123a6565b6110e0846110d36012548a61182f90919063ffffffff16565b90506000611ef36012546110e06011548561182f90919063ffffffff16565b90506000611f01838361178e565b30600090815260086020526040902054909150611f1e90826117d0565b3060009081526008602052604080822092909255601b546001600160a01b031681522054611f4c90836117d0565b601b546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061254f833981519152910160405180910390a38115611fcd57601b546040518381526001600160a01b03918216918a169060008051602061254f8339815191529060200160405180910390a35b611fd7878461178e565b98975050505050505050565b600081836120045760405162461bcd60e51b815260040161081a9190612011565b50600061133784866123bd565b600060208083528351808285015260005b8181101561203e57858101830151858201604001528201612022565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561207157600080fd5b5035919050565b80356001600160a01b038116811461208f57600080fd5b919050565b600080604083850312156120a757600080fd5b6120b083612078565b946020939093013593505050565b600080604083850312156120d157600080fd5b50508035926020909101359150565b600080600080600060a086880312156120f857600080fd5b61210186612078565b945061210f60208701612078565b935061211d60408701612078565b925061212b60608701612078565b915061213960808701612078565b90509295509295909350565b60008060006060848603121561215a57600080fd5b61216384612078565b925061217160208501612078565b9150604084013590509250925092565b8015158114610bec57600080fd5b600080604083850312156121a257600080fd5b82356121ad81612181565b9150602083013560ff811681146121c357600080fd5b809150509250929050565b600080604083850312156121e157600080fd5b6121ea83612078565b915060208301356121c381612181565b60006020828403121561220c57600080fd5b610a9a82612078565b60008060008060008060c0878903121561222e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561226d57600080fd5b833567ffffffffffffffff8082111561228557600080fd5b818601915086601f83011261229957600080fd5b8135818111156122a857600080fd5b8760208260051b85010111156122bd57600080fd5b602092830195509350508401356122d381612181565b809150509250925092565b600080604083850312156122f157600080fd5b6122fa83612078565b915061230860208401612078565b90509250929050565b6000806040838503121561232457600080fd5b82356120b081612181565b60008060006060848603121561234457600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090757610907612390565b6000826123da57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156123f157600080fd5b5051919050565b60006020828403121561240a57600080fd5b8151610a9a81612181565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161248257612482612390565b5060010190565b8181038181111561090757610907612390565b8082018082111561090757610907612390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124ff5784516001600160a01b0316835293830193918301916001016124da565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561253557600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201525887dc446c1aafc1aa9b6a59e9baf2f304466a2c8a3827ff98cdcbd3ee8d564736f6c63430008130033

Deployed Bytecode Sourcemap

5083:14684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6978:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6978:56:0;;;;;;;;8642:80;;;;;;;;;;-1:-1:-1;8714:5:0;;;;;;;;;;;-1:-1:-1;;;8714:5:0;;;;8642:80;;;;8714:5;8642:80;:::i;9967:261::-;;;;;;;;;;-1:-1:-1;9967:261:0;;;;;:::i;:::-;;:::i;:::-;;9064:216;;;;;;;;;;-1:-1:-1;9064:216:0;;;;;:::i;:::-;;:::i;:::-;;;1536:14:1;;1529:22;1511:41;;1499:2;1484:18;9064:216:0;1371:187:1;19543:150:0;;;;;;;;;;-1:-1:-1;19543:150:0;;;;;:::i;:::-;;:::i;6182:37::-;;;;;;;;;;;;;;;;8372:88;;;;;;;;;;-1:-1:-1;8445:12:0;;8372:88;;18396:455;;;;;;;;;;-1:-1:-1;18396:455:0;;;;;:::i;:::-;;:::i;6079:96::-;;;;;;;;;;;;;;;;19024:182;;;;;;;;;;-1:-1:-1;19024:182:0;;;;;:::i;:::-;;:::i;9582:370::-;;;;;;;;;;-1:-1:-1;9582:370:0;;;;;:::i;:::-;;:::i;19218:142::-;;;;;;;;;;;;;:::i;14983:285::-;;;;;;;;;;-1:-1:-1;14983:285:0;;;;;:::i;:::-;;:::i;8466:80::-;;;;;;;;;;-1:-1:-1;5406:1:0;8466:80;;;3344:4:1;3332:17;;;3314:36;;3302:2;3287:18;8466:80:0;3172:184:1;14216:162:0;;;;;;;;;;;;;:::i;10504:129::-;;;;;;;;;;-1:-1:-1;10504:129:0;;;;;:::i;:::-;;:::i;9288:122::-;;;;;;;;;;-1:-1:-1;9288:122:0;;;;;:::i;:::-;;:::i;6777:37::-;;;;;;;;;;-1:-1:-1;6777:37:0;;;;-1:-1:-1;;;6777:37:0;;;;;;6941:30;;;;;;;;;;-1:-1:-1;6941:30:0;;;;;;;;10641:132;;;;;;;;;;-1:-1:-1;10641:132:0;;;;;:::i;:::-;;:::i;8812:105::-;;;;;;;;;;-1:-1:-1;8812:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8896:18:0;8878:7;8896:18;;;:9;:18;;;;;;;8812:105;3140:148;;;;;;;;;;;;;:::i;6821:38::-;;;;;;;;;;-1:-1:-1;6821:38:0;;;;-1:-1:-1;;;6821:38:0;;;;;;14389:273;;;;;;;;;;-1:-1:-1;14389:273:0;;;;;:::i;:::-;;:::i;5539:61::-;;;;;;;;;;;;;;;;5474:58;;;;;;;;;;;;;;;;17825:562;;;;;;;;;;-1:-1:-1;17825:562:0;;;;;:::i;:::-;;:::i;8728:78::-;;;;;;;;;;-1:-1:-1;8780:7:0;2991:6;-1:-1:-1;;;;;2991:6:0;8728:78;;;-1:-1:-1;;;;;4564:32:1;;;4546:51;;4534:2;4519:18;8728:78:0;4400:203:1;2926:79:0;;;;;;;;;;-1:-1:-1;2964:7:0;2991:6;-1:-1:-1;;;;;2991:6:0;2926:79;;17472:345;;;;;;;;;;-1:-1:-1;17472:345:0;;;;;:::i;:::-;;:::i;6701:19::-;;;;;;;;;;-1:-1:-1;6701:19:0;;;;-1:-1:-1;;;;;6701:19:0;;;9418:156;;;;;;;;;;-1:-1:-1;9418:156:0;;;;;:::i;:::-;;:::i;2546:21::-;;;;;;;;;;-1:-1:-1;2546:21:0;;;;-1:-1:-1;;;;;2546:21:0;;;10234:262;;;;;;;;;;-1:-1:-1;10234:262:0;;;;;:::i;:::-;;:::i;14895:77::-;;;;;;;;;;;;;:::i;19368:167::-;;;;;;;;;;-1:-1:-1;19368:167:0;;;;;:::i;:::-;;:::i;8923:133::-;;;;;;;;;;-1:-1:-1;8923:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9025:19:0;;;9007:7;9025:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8923:133;18861:155;;;;;;;;;;-1:-1:-1;18861:155:0;;;;;:::i;:::-;;:::i;3296:244::-;;;;;;;;;;-1:-1:-1;3296:244:0;;;;;:::i;:::-;;:::i;6631:24::-;;;;;;;;;;-1:-1:-1;6631:24:0;;;;-1:-1:-1;;;;;6631:24:0;;;17174:290;;;;;;;;;;-1:-1:-1;17174:290:0;;;;;:::i;:::-;;:::i;14670:217::-;;;;;;;;;;-1:-1:-1;14670:217:0;;;;;:::i;:::-;;:::i;6733:31::-;;;;;;;;;;-1:-1:-1;6733:31:0;;;;-1:-1:-1;;;6733:31:0;;;;;;9967:261;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;;;;;;;;;10103:2:::1;10076:23;:29;;10068:75;;;::::0;-1:-1:-1;;;10068:75:0;;7052:2:1;10068:75:0::1;::::0;::::1;7034:21:1::0;7091:2;7071:18;;;7064:30;7130:34;7110:18;;;7103:62;-1:-1:-1;;;7181:18:1;;;7174:32;7223:19;;10068:75:0::1;6850:398:1::0;10068:75:0::1;10216:4;10188:23;10173:12;;:38;;;;:::i;:::-;10172:48;;;;:::i;:::-;10154:15;:66:::0;-1:-1:-1;9967:261:0:o;9064:216::-;9168:10;9139:4;9156:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9156:32:0;;;;;;;;;;:41;;;9213:37;9139:4;;9156:32;;9213:37;;;;9191:6;160:25:1;;148:2;133:18;;14:177;9213:37:0;;;;;;;;-1:-1:-1;9268:4:0;9064:216;;;;;:::o;19543:150::-;19623:4;19679:6;19647:29;19667:8;19647:19;:29::i;:::-;:38;;19543:150;-1:-1:-1;;;19543:150:0:o;18396:455::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;18597:21:::1;:46:::0;;-1:-1:-1;;;;;;18597:46:0;;::::1;-1:-1:-1::0;;;;;18597:46:0;;::::1;;::::0;;;18654:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18709:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18760:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18811:14:::1;:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18396:455::o;19024:182::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;19121:15:::1;:25:::0;;;;19157:26:::1;:41:::0;19024:182::o;9582:370::-;-1:-1:-1;;;;;9702:19:0;;9682:4;9702:19;;;:11;:19;;;;;;;;9722:10;9702:31;;;;;;;;-1:-1:-1;;9702:52:0;9699:186;;9804:69;;;;;;;;;;;-1:-1:-1;;;9804:69:0;;;;;;;;-1:-1:-1;;;;;9804:19:0;;-1:-1:-1;9804:19:0;;;:11;:19;;;;;9824:10;9804:31;;;;;;;;;;:69;;9840:6;;9804:35;:69::i;:::-;-1:-1:-1;;;;;9770:19:0;;;;;;:11;:19;;;;;;;;9790:10;9770:31;;;;;;;:103;9699:186;9904:40;9918:6;9926:9;9937:6;9904:13;:40::i;:::-;9897:47;;9582:370;;;;;;:::o;19218:142::-;19346:4;;-1:-1:-1;;;;;19346:4:0;19271:7;8896:18;;;:9;:18;;;;;;19298:54;;19325:4;;-1:-1:-1;;;;;19325:4:0;8878:7;8896:18;;;:9;:18;;;;;;19298:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19291:61;;19218:142;:::o;14983:285::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;15105:18:::1;:28:::0;;-1:-1:-1;;;;15144:33:0;-1:-1:-1;;;15105:28:0;::::1;;;-1:-1:-1::0;;;;15144:33:0;;-1:-1:-1;;;15105:28:0::1;15144:33:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;15221:2:::1;15197:21:::0;::::1;;:26;15189:69;;;::::0;-1:-1:-1;;;15189:69:0;;7982:2:1;15189:69:0::1;::::0;::::1;7964:21:1::0;8021:2;8001:18;;;7994:30;8060:33;8040:18;;;8033:61;8111:18;;15189:69:0::1;7780:355:1::0;15189:69:0::1;14983:285:::0;;:::o;14216:162::-;14286:10;14274:23;;;;:11;:23;;;;;;;;14266:32;;;;;;14309:51;;14317:10;;14338:21;14309:51;;;;;;;;;14338:21;14317:10;14309:51;;;;;;;;;;;;;;;;;;;;;14216:162::o;10504:129::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10592:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;10592:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10504:129::o;9288:122::-;9343:4;9367:35;9375:7;-1:-1:-1;;9367:7:0;:35::i;10641:132::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10733:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:32;;-1:-1:-1;;10733:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10641:132::o;3140:148::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;3247:1:::1;3231:6:::0;;3210:40:::1;::::0;-1:-1:-1;;;;;3231:6:0;;::::1;::::0;3210:40:::1;::::0;3247:1;;3210:40:::1;3278:1;3261:19:::0;;-1:-1:-1;;;;;;3261:19:0::1;::::0;;3140:148::o;14389:273::-;14478:4;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;14495:6:::1;14505:1;14495:11:::0;14492:96:::1;;14531:45;::::0;-1:-1:-1;;;14531:45:0;;14570:4:::1;14531:45;::::0;::::1;4546:51:1::0;-1:-1:-1;;;;;14531:30:0;::::1;::::0;::::1;::::0;4519:18:1;;14531:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14522:54;;14492:96;14605:49;::::0;-1:-1:-1;;;14605:49:0;;14635:10:::1;14605:49;::::0;::::1;8503:51:1::0;8570:18;;;8563:34;;;-1:-1:-1;;;;;14605:29:0;::::1;::::0;::::1;::::0;8476:18:1;;14605:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17825:562::-:0;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;18002:12:::1;:28:::0;;;18041:6:::1;:16:::0;;;18068:12:::1;:28:::0;;;18107:10:::1;:24:::0;;;18142:10:::1;:24:::0;;;18188:79:::1;18155:11:::0;18188:62:::1;18120:11:::0;18188:62;18083:13;18188:62;18017:13;18050:7;18188:17:::1;:26::i;:::-;:30:::0;::::1;:45::i;:79::-;18177:8;:90:::0;;;18278:14:::1;:32:::0;;;18340:2:::1;-1:-1:-1::0;18321:58:0::1;;;::::0;-1:-1:-1;;;18321:58:0;;9060:2:1;18321:58:0::1;::::0;::::1;9042:21:1::0;;;9079:18;;;9072:30;9138:34;9118:18;;;9111:62;9190:18;;18321:58:0::1;8858:356:1::0;18321:58:0::1;17825:562:::0;;;;;;:::o;17472:345::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;17647:3:::1;17628:22:::0;::::1;17620:71;;;;-1:-1:-1::0;;;17620:71:0::1;;;;;;;:::i;:::-;17707:9;17702:108;17718:20:::0;;::::1;17702:108;;;17792:6;17760:15;:29;17776:9;;17786:1;17776:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17760:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17760:29:0;:38;;-1:-1:-1;;17760:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17740:3:::1;::::0;::::1;:::i;:::-;;;17702:108;;;;17472:345:::0;;;:::o;9418:156::-;9498:4;9522:44;9536:10;9548:9;9559:6;9522:13;:44::i;10234:262::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;10368:2:::1;10340:24;:30;;10332:81;;;::::0;-1:-1:-1;;;10332:81:0;;10099:2:1;10332:81:0::1;::::0;::::1;10081:21:1::0;10138:2;10118:18;;;10111:30;10177:34;10157:18;;;10150:62;-1:-1:-1;;;10228:18:1;;;10221:37;10275:19;;10332:81:0::1;9897:403:1::0;10332:81:0::1;10484:4;10455:24;10440:12;;:39;;;;:::i;:::-;10439:49;;;;:::i;:::-;10424:12;:64:::0;-1:-1:-1;10234:262:0:o;14895:77::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;14946:11:::1;:18:::0;;-1:-1:-1;;;;14946:18:0::1;-1:-1:-1::0;;;14946:18:0::1;::::0;;14895:77::o;19368:167::-;19436:7;19463:64;19504:22;:20;:22::i;:::-;19486:4;;;-1:-1:-1;;;;;19486:4:0;8878:7;8896:18;;;:9;:18;;;;;;;19463:36;;19476:22;;19496:1;;19476:15;:19;;:22::i;:::-;19463:8;;:12;:36::i;:::-;:40;;:64::i;18861:155::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;18952:11:::1;:22:::0;;-1:-1:-1;;18952:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18985:13:::1;:23:::0;18861:155::o;3296:244::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3385:22:0;::::1;3377:73;;;::::0;-1:-1:-1;;;3377:73:0;;10507:2:1;3377:73:0::1;::::0;::::1;10489:21:1::0;10546:2;10526:18;;;10519:30;10585:34;10565:18;;;10558:62;-1:-1:-1;;;10636:18:1;;;10629:36;10682:19;;3377:73:0::1;10305:402:1::0;3377:73:0::1;3487:6;::::0;;3466:38:::1;::::0;-1:-1:-1;;;;;3466:38:0;;::::1;::::0;3487:6;::::1;::::0;3466:38:::1;::::0;::::1;3515:6;:17:::0;;-1:-1:-1;;;;;;3515:17:0::1;-1:-1:-1::0;;;;;3515:17:0;;;::::1;::::0;;;::::1;::::0;;3296:244::o;17174:290::-;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;17298:3:::1;17279:22:::0;::::1;17271:71;;;;-1:-1:-1::0;;;17271:71:0::1;;;;;;;:::i;:::-;17358:9;17353:104;17369:20:::0;;::::1;17353:104;;;17439:6;17411:11;:25;17423:9;;17433:1;17423:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17411:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17411:25:0;:34;;-1:-1:-1;;17411:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17391:3:::1;::::0;::::1;:::i;:::-;;;17353:104;;14670:217:::0;3053:6;;-1:-1:-1;;;;;3053:6:0;2363:10;3053:22;3045:67;;;;-1:-1:-1;;;3045:67:0;;;;;;;:::i;:::-;14772:14:::1;:22:::0;;;;14805:13:::1;:20:::0;;;;14836:18:::1;:27:::0;14670:217::o;527:192::-;613:7;649:12;641:6;;;;633:29;;;;-1:-1:-1;;;633:29:0;;;;;;;;:::i;:::-;-1:-1:-1;673:9:0;685:5;689:1;685;:5;:::i;:::-;673:17;527:192;-1:-1:-1;;;;;527:192:0:o;10789:1598::-;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;10973:127;;;11053:11;;-1:-1:-1;;;11053:11:0;;;;11045:43;;;;-1:-1:-1;;;11045:43:0;;11047:2:1;11045:43:0;;;11029:21:1;11086:2;11066:18;;;11059:30;-1:-1:-1;;;11105:18:1;;;11098:50;11165:18;;11045:43:0;10845:344:1;11045:43:0;11124:4;;-1:-1:-1;;;;;11114:14:0;;;11124:4;;11114:14;:49;;;;-1:-1:-1;11145:18:0;;-1:-1:-1;;;11145:18:0;;;;11114:49;:94;;;;-1:-1:-1;;;;;;11181:27:0;;;;;;:16;:27;;;;;;;;11180:28;11114:94;11110:298;;;-1:-1:-1;;;;;11233:24:0;;;;;;:13;:24;;;;;;11260:15;-1:-1:-1;11225:78:0;;;;-1:-1:-1;;;11225:78:0;;11396:2:1;11225:78:0;;;11378:21:1;11435:2;11415:18;;;11408:30;11474:26;11454:18;;;11447:54;11518:18;;11225:78:0;11194:348:1;11225:78:0;11363:21;;11345:39;;-1:-1:-1;;;11363:21:0;;;;11345:15;:39;:::i;:::-;-1:-1:-1;;;;;11318:24:0;;;;;;:13;:24;;;;;:66;11110:298;-1:-1:-1;;;;;11433:22:0;;;;;;:14;:22;;;;;;;;11432:23;:53;;;;-1:-1:-1;;;;;;11459:26:0;;11480:4;11459:26;;11432:53;:84;;;;-1:-1:-1;11511:4:0;;-1:-1:-1;;;;;11490:26:0;;;11511:4;;11490:26;;11432:84;:105;;;;-1:-1:-1;11533:4:0;;-1:-1:-1;;;;;11520:17:0;;;11533:4;;11520:17;;11432:105;:140;;;;-1:-1:-1;11554:18:0;;-1:-1:-1;;;;;11541:31:0;;;11554:18;;11541:31;;11432:140;:177;;;;-1:-1:-1;11589:20:0;;-1:-1:-1;;;;;11576:33:0;;;11589:20;;11576:33;;11432:177;:208;;;;-1:-1:-1;;;;;;11614:26:0;;;;;;:15;:26;;;;;;;;11613:27;11432:208;11428:400;;;-1:-1:-1;;;;;8896:18:0;;11656;8896;;;:9;:18;;;;;;11745:15;;11721:19;11734:6;8896:18;11721:19;:::i;:::-;11720:40;;11712:114;;;;-1:-1:-1;;;11712:114:0;;11879:2:1;11712:114:0;;;11861:21:1;11918:2;11898:18;;;11891:30;11957:34;11937:18;;;11930:62;12028:32;12008:18;;;12001:60;12078:19;;11712:114:0;11677:426:1;11712:114:0;11641:187;11428:400;11881:28;11894:6;11902;11881:12;:28::i;:::-;11926:16;:14;:16::i;:::-;11923:35;;;11945:10;:8;:10::i;:::-;12038:53;;;;;;;;;;;-1:-1:-1;;;12038:53:0;;;;;;;;-1:-1:-1;;;;;12038:17:0;;-1:-1:-1;12038:17:0;;;:9;:17;;;;;;;;:53;;12060:6;;12038:21;:53::i;:::-;-1:-1:-1;;;;;12018:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12130:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12153:22:0;;;;;;:11;:22;;;;;;;;12130:45;12129:93;;12188:34;12196:6;12204;12212:9;12188:7;:34::i;:::-;12129:93;;;12179:6;12129:93;-1:-1:-1;;;;;12256:20:0;;;;;;:9;:20;;;;;;12104:118;;-1:-1:-1;12256:40:0;;12104:118;12256:24;:40::i;:::-;-1:-1:-1;;;;;12233:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12314:43;;;;;;-1:-1:-1;;;;;;;;;;;12314:43:0;;;12342:14;160:25:1;;148:2;133:18;;14:177;12314:43:0;;;;;;;;-1:-1:-1;12375:4:0;;10789:1598;-1:-1:-1;;;;10789:1598:0:o;385:136::-;443:7;470:43;474:1;477;470:43;;;;;;;;;;;;;;;;;:3;:43::i;198:181::-;256:7;;288:5;292:1;288;:5;:::i;:::-;276:17;;317:1;312;:6;;304:46;;;;-1:-1:-1;;;304:46:0;;12310:2:1;304:46:0;;;12292:21:1;12349:2;12329:18;;;12322:30;12388:29;12368:18;;;12361:57;12435:18;;304:46:0;12108:351:1;725:250:0;783:7;807:1;812;807:6;803:47;;-1:-1:-1;837:1:0;830:8;;803:47;862:9;874:5;878:1;874;:5;:::i;:::-;862:17;-1:-1:-1;907:1:0;898:5;902:1;862:17;898:5;:::i;:::-;:10;890:56;;;;-1:-1:-1;;;890:56:0;;12666:2:1;890:56:0;;;12648:21:1;12705:2;12685:18;;;12678:30;12744:34;12724:18;;;12717:62;-1:-1:-1;;;12795:18:1;;;12788:31;12836:19;;890:56:0;12464:397:1;981:132:0;1039:7;1066:39;1070:1;1073;1066:39;;;;;;;;;;;;;;;;;:3;:39::i;12399:330::-;12529:53;;;;;;;;;;;-1:-1:-1;;;12529:53:0;;;;;;;;-1:-1:-1;;;;;12529:17:0;;12492:4;12529:17;;;:9;:17;;;;;;;:53;;12551:6;;12529:21;:53::i;:::-;-1:-1:-1;;;;;12509:17:0;;;;;;;:9;:17;;;;;;:73;;;;12616:20;;;;;;;:32;;12641:6;12616:24;:32::i;:::-;-1:-1:-1;;;;;12593:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12664:35;;;;;;-1:-1:-1;;;;;;;;;;;12664:35:0;;;12692:6;160:25:1;;148:2;133:18;;14:177;12664:35:0;;;;;;;;-1:-1:-1;12717:4:0;12399:330;;;;;:::o;12737:166::-;12834:12;;12824:6;:22;;:49;;;-1:-1:-1;;;;;;12850:23:0;;;;;;:15;:23;;;;;;;;12824:49;12816:79;;;;-1:-1:-1;;;12816:79:0;;13068:2:1;12816:79:0;;;13050:21:1;13107:2;13087:18;;;13080:30;-1:-1:-1;;;13126:18:1;;;13119:47;13183:18;;12816:79:0;12866:341:1;14010:197:0;14097:4;;14059;;-1:-1:-1;;;;;14097:4:0;14083:10;:18;;;;:38;;-1:-1:-1;14115:6:0;;;;14114:7;14083:38;:62;;;;-1:-1:-1;14134:11:0;;;;14083:62;:116;;;;-1:-1:-1;;14186:13:0;;14176:4;14158:24;;;;:9;:24;;;;;;:41;;;14010:197::o;15286:1873::-;7082:6;:13;;-1:-1:-1;;7082:13:0;7091:4;7082:13;;;15381:15:::1;::::0;15398:26:::1;::::0;7082:6;;15365:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15432:12;;15365:79;;;15428:1;15365:79;15335:109;;15455:23;15481:59;15538:1;15481:52;15524:8;;15481:38;15499:19;15481:13;;:17;;:38;;;;:::i;:59::-;15455:85;;15551:20;15574:34;15592:15;15574:13;;:17;;:34;;;;:::i;:::-;15645:16;::::0;;15659:1:::1;15645:16:::0;;;;;::::1;::::0;;15551:57;;-1:-1:-1;15621:21:0::1;::::0;15645:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15645:16:0::1;15621:40;;15690:4;15672;15677:1;15672:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15672:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15716:4:::1;::::0;15706:7;;15716:4;::::1;::::0;15706;;15716;;15706:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15706:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15791:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15791:188:0;;15757:21:::1;::::0;15791:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15863:12;;15733:21:::1;::::0;15906:4;;15933::::1;::::0;15953:15:::1;::::0;15791:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15992:17;16012:40;16038:13;16012:21;:25;;:40;;;;:::i;:::-;15992:60:::0;-1:-1:-1;16065:19:0::1;16087:40;16100:26;:19:::0;16124:1:::1;16100:23;:26::i;:::-;16087:8;::::0;;:12:::1;:40::i;:::-;16065:62:::0;-1:-1:-1;16148:26:0::1;16177:58;16233:1;16177:51;16065:62:::0;16177:51;:9;16191:19;16177:13:::1;:34::i;:58::-;16148:87;;16246:26;16275:44;16307:11;16275:27;16289:12;;16275:9;:13;;:27;;;;:::i;:44::-;16246:73;;16330:24;16357:42;16387:11;16357:25;16371:10;;16357:9;:13;;:25;;;;:::i;:42::-;16330:69;;16410:20;16433:38;16459:11;16433:21;16447:6;;16433:9;:13;;:21;;;;:::i;:38::-;16513:20;::::0;16505:65:::1;::::0;16410:61;;-1:-1:-1;16485:15:0::1;::::0;-1:-1:-1;;;;;16513:20:0;;::::1;::::0;16547:18;;16485:15;16505:65;16485:15;16505:65;16547:18;16513:20;16505:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16605:14:0::1;::::0;16597:53:::1;::::0;16484:86;;-1:-1:-1;;;;;;16605:14:0::1;::::0;16633:12;;16597:53:::1;::::0;;;16633:12;16605:14;16597:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16685:18:0::1;::::0;16677:61:::1;::::0;16581:69;;-1:-1:-1;;;;;;16685:18:0::1;::::0;16717:16;;16677:61:::1;::::0;;;16717:16;16685:18;16677:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16772:5:0::1;::::0;-1:-1:-1;;16793:19:0;;;-1:-1:-1;16790:362:0::1;;16828:6;::::0;17002:21:::1;::::0;16828:244:::1;::::0;-1:-1:-1;;;16828:244:0;;16904:4:::1;16828:244;::::0;::::1;14880:34:1::0;14930:18;;;14923:34;;;16828:6:0::1;14973:18:1::0;;;14966:34;;;15016:18;;;15009:34;-1:-1:-1;;;;;17002:21:0;;::::1;15059:19:1::0;;;15052:44;17042:15:0::1;15112:19:1::0;;;15105:35;16828:6:0;::::1;::::0;:22:::1;::::0;16858:18;;14814:19:1;;16828:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17092:48:0::1;::::0;;15636:25:1;;;15692:2;15677:18;;15670:34;;;17092:48:0::1;::::0;-1:-1:-1;15609:18:1;17092:48:0::1;;;;;;;16790:362;-1:-1:-1::0;;7100:6:0;:14;;-1:-1:-1;;7100:14:0;;;-1:-1:-1;;;;;;;;;;15286:1873:0:o;13033:969::-;13170:18;;13217:4;;13119:7;;13170:18;-1:-1:-1;;;;;13217:4:0;;;13204:17;;;;13201:154;;-1:-1:-1;13251:14:0;;13201:154;;;13296:4;;-1:-1:-1;;;;;13296:4:0;;;13286:14;;;;13283:72;;-1:-1:-1;13330:13:0;;13283:72;13367:17;13387:62;13428:14;;13445:3;13428:20;;;;:::i;:::-;13387:36;13412:10;13387:20;13398:8;;13387:6;:10;;:20;;;;:::i;:62::-;13367:82;;13460:21;13484:39;13514:8;;13484:25;13498:10;;13484:9;:13;;:25;;;;:::i;:39::-;13460:63;-1:-1:-1;13534:22:0;13559:28;:9;13460:63;13559:13;:28::i;:::-;13645:4;13627:24;;;;:9;:24;;;;;;13534:53;;-1:-1:-1;13627:44:0;;13534:53;13627:28;:44::i;:::-;13618:4;13600:24;;;;:9;:24;;;;;;:71;;;;13724:18;;-1:-1:-1;;;;;13724:18:0;13714:29;;;;:48;;13748:13;13714:33;:48::i;:::-;13692:18;;-1:-1:-1;;;;;13692:18:0;;;13682:29;;;;:9;:29;;;;;;;;;:80;;;;13778:47;160:25:1;;;13803:4:0;;13778:47;;;;-1:-1:-1;;;;;;;;;;;13778:47:0;133:18:1;13778:47:0;;;;;;;13849:17;;13846:108;;13904:18;;13887:51;;160:25:1;;;-1:-1:-1;;;;;13904:18:0;;;;13887:51;;;-1:-1:-1;;;;;;;;;;;13887:51:0;148:2:1;133:18;13887:51:0;;;;;;;13846:108;13973:21;:6;13984:9;13973:10;:21::i;:::-;13966:28;13033:969;-1:-1:-1;;;;;;;;13033:969:0:o;1119:189::-;1205:7;1240:12;1233:5;1225:28;;;;-1:-1:-1;;;1225:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1264:9:0;1276:5;1280:1;1276;:5;:::i;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;749:180::-;808:6;861:2;849:9;840:7;836:23;832:32;829:52;;;877:1;874;867:12;829:52;-1:-1:-1;900:23:1;;749:180;-1:-1:-1;749:180:1:o;934:173::-;1002:20;;-1:-1:-1;;;;;1051:31:1;;1041:42;;1031:70;;1097:1;1094;1087:12;1031:70;934:173;;;:::o;1112:254::-;1180:6;1188;1241:2;1229:9;1220:7;1216:23;1212:32;1209:52;;;1257:1;1254;1247:12;1209:52;1280:29;1299:9;1280:29;:::i;:::-;1270:39;1356:2;1341:18;;;;1328:32;;-1:-1:-1;;;1112:254:1:o;1563:248::-;1631:6;1639;1692:2;1680:9;1671:7;1667:23;1663:32;1660:52;;;1708:1;1705;1698:12;1660:52;-1:-1:-1;;1731:23:1;;;1801:2;1786:18;;;1773:32;;-1:-1:-1;1563:248:1:o;1816:484::-;1911:6;1919;1927;1935;1943;1996:3;1984:9;1975:7;1971:23;1967:33;1964:53;;;2013:1;2010;2003:12;1964:53;2036:29;2055:9;2036:29;:::i;:::-;2026:39;;2084:38;2118:2;2107:9;2103:18;2084:38;:::i;:::-;2074:48;;2141:38;2175:2;2164:9;2160:18;2141:38;:::i;:::-;2131:48;;2198:38;2232:2;2221:9;2217:18;2198:38;:::i;:::-;2188:48;;2255:39;2289:3;2278:9;2274:19;2255:39;:::i;:::-;2245:49;;1816:484;;;;;;;;:::o;2305:328::-;2382:6;2390;2398;2451:2;2439:9;2430:7;2426:23;2422:32;2419:52;;;2467:1;2464;2457:12;2419:52;2490:29;2509:9;2490:29;:::i;:::-;2480:39;;2538:38;2572:2;2561:9;2557:18;2538:38;:::i;:::-;2528:48;;2623:2;2612:9;2608:18;2595:32;2585:42;;2305:328;;;;;:::o;2638:118::-;2724:5;2717:13;2710:21;2703:5;2700:32;2690:60;;2746:1;2743;2736:12;2761:406;2824:6;2832;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2940:9;2927:23;2959:28;2981:5;2959:28;:::i;:::-;3006:5;-1:-1:-1;3063:2:1;3048:18;;3035:32;3111:4;3098:18;;3086:31;;3076:59;;3131:1;3128;3121:12;3076:59;3154:7;3144:17;;;2761:406;;;;;:::o;3361:315::-;3426:6;3434;3487:2;3475:9;3466:7;3462:23;3458:32;3455:52;;;3503:1;3500;3493:12;3455:52;3526:29;3545:9;3526:29;:::i;:::-;3516:39;;3605:2;3594:9;3590:18;3577:32;3618:28;3640:5;3618:28;:::i;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:523::-;3976:6;3984;3992;4000;4008;4016;4069:3;4057:9;4048:7;4044:23;4040:33;4037:53;;;4086:1;4083;4076:12;4037:53;-1:-1:-1;;4109:23:1;;;4179:2;4164:18;;4151:32;;-1:-1:-1;4230:2:1;4215:18;;4202:32;;4281:2;4266:18;;4253:32;;-1:-1:-1;4332:3:1;4317:19;;4304:33;;-1:-1:-1;4384:3:1;4369:19;4356:33;;-1:-1:-1;3872:523:1;-1:-1:-1;3872:523:1:o;4608:750::-;4700:6;4708;4716;4769:2;4757:9;4748:7;4744:23;4740:32;4737:52;;;4785:1;4782;4775:12;4737:52;4825:9;4812:23;4854:18;4895:2;4887:6;4884:14;4881:34;;;4911:1;4908;4901:12;4881:34;4949:6;4938:9;4934:22;4924:32;;4994:7;4987:4;4983:2;4979:13;4975:27;4965:55;;5016:1;5013;5006:12;4965:55;5056:2;5043:16;5082:2;5074:6;5071:14;5068:34;;;5098:1;5095;5088:12;5068:34;5153:7;5146:4;5136:6;5133:1;5129:14;5125:2;5121:23;5117:34;5114:47;5111:67;;;5174:1;5171;5164:12;5111:67;5205:4;5197:13;;;;-1:-1:-1;5229:6:1;-1:-1:-1;;5270:20:1;;5257:34;5300:28;5257:34;5300:28;:::i;:::-;5347:5;5337:15;;;4608:750;;;;;:::o;5363:260::-;5431:6;5439;5492:2;5480:9;5471:7;5467:23;5463:32;5460:52;;;5508:1;5505;5498:12;5460:52;5531:29;5550:9;5531:29;:::i;:::-;5521:39;;5579:38;5613:2;5602:9;5598:18;5579:38;:::i;:::-;5569:48;;5363:260;;;;;:::o;5628:309::-;5693:6;5701;5754:2;5742:9;5733:7;5729:23;5725:32;5722:52;;;5770:1;5767;5760:12;5722:52;5809:9;5796:23;5828:28;5850:5;5828:28;:::i;6168:316::-;6245:6;6253;6261;6314:2;6302:9;6293:7;6289:23;6285:32;6282:52;;;6330:1;6327;6320:12;6282:52;-1:-1:-1;;6353:23:1;;;6423:2;6408:18;;6395:32;;-1:-1:-1;6474:2:1;6459:18;;;6446:32;;6168:316;-1:-1:-1;6168:316:1:o;6489:356::-;6691:2;6673:21;;;6710:18;;;6703:30;6769:34;6764:2;6749:18;;6742:62;6836:2;6821:18;;6489:356::o;7253:127::-;7314:10;7309:3;7305:20;7302:1;7295:31;7345:4;7342:1;7335:15;7369:4;7366:1;7359:15;7385:168;7458:9;;;7489;;7506:15;;;7500:22;;7486:37;7476:71;;7527:18;;:::i;7558:217::-;7598:1;7624;7614:132;;7668:10;7663:3;7659:20;7656:1;7649:31;7703:4;7700:1;7693:15;7731:4;7728:1;7721:15;7614:132;-1:-1:-1;7760:9:1;;7558:217::o;8140:184::-;8210:6;8263:2;8251:9;8242:7;8238:23;8234:32;8231:52;;;8279:1;8276;8269:12;8231:52;-1:-1:-1;8302:16:1;;8140:184;-1:-1:-1;8140:184:1:o;8608:245::-;8675:6;8728:2;8716:9;8707:7;8703:23;8699:32;8696:52;;;8744:1;8741;8734:12;8696:52;8776:9;8770:16;8795:28;8817:5;8795:28;:::i;9219:401::-;9421:2;9403:21;;;9460:2;9440:18;;;9433:30;9499:34;9494:2;9479:18;;9472:62;-1:-1:-1;;;9565:2:1;9550:18;;9543:35;9610:3;9595:19;;9219:401::o;9625:127::-;9686:10;9681:3;9677:20;9674:1;9667:31;9717:4;9714:1;9707:15;9741:4;9738:1;9731:15;9757:135;9796:3;9817:17;;;9814:43;;9837:18;;:::i;:::-;-1:-1:-1;9884:1:1;9873:13;;9757:135::o;10712:128::-;10779:9;;;10800:11;;;10797:37;;;10814:18;;:::i;11547:125::-;11612:9;;;11633:10;;;11630:36;;;11646:18;;:::i;13344:980::-;13606:4;13654:3;13643:9;13639:19;13685:6;13674:9;13667:25;13711:2;13749:6;13744:2;13733:9;13729:18;13722:34;13792:3;13787:2;13776:9;13772:18;13765:31;13816:6;13851;13845:13;13882:6;13874;13867:22;13920:3;13909:9;13905:19;13898:26;;13959:2;13951:6;13947:15;13933:29;;13980:1;13990:195;14004:6;14001:1;13998:13;13990:195;;;14069:13;;-1:-1:-1;;;;;14065:39:1;14053:52;;14160:15;;;;14125:12;;;;14101:1;14019:9;13990:195;;;-1:-1:-1;;;;;;;14241:32:1;;;;14236:2;14221:18;;14214:60;-1:-1:-1;;;14305:3:1;14290:19;14283:35;14202:3;13344:980;-1:-1:-1;;;13344:980:1:o;15151:306::-;15239:6;15247;15255;15308:2;15296:9;15287:7;15283:23;15279:32;15276:52;;;15324:1;15321;15314:12;15276:52;15353:9;15347:16;15337:26;;15403:2;15392:9;15388:18;15382:25;15372:35;;15447:2;15436:9;15432:18;15426:25;15416:35;;15151:306;;;;;:::o

Swarm Source

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