ETH Price: $3,421.32 (+2.26%)

Token

Catboy (CATBOY)
 

Overview

Max Total Supply

100,000,000 CATBOY

Holders

2,049 ( 0.049%)

Market

Price

$0.02 @ 0.000006 ETH (+2.73%)

Onchain Market Cap

$1,981,910.00

Circulating Supply Market Cap

$3,757,834.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,701.917425454217244295 CATBOY

Value
$192.28 ( ~0.0562005415221674 Eth) [0.0097%]
0xf8861230aa97486eb8c09ecdd62b6640b7830232
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Catboy is an NFT project with a fusion of meme & anime, while 'catified.' With reward utilities & innovative and Interactive NFTs with AI integration.

Market

Volume (24H):$360,905.00
Market Capitalization:$3,757,834.00
Circulating Supply:189,606,718.00 CATBOY
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Catboy

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.15;

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 Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

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

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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


contract Catboy is ERC20, Auth {
    using SafeMath for uint256;

     //events
    event Fupdated(uint256 _timeF);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event SetMaxWalletExempt(address _address, bool _bool);
    event SellFeesChanged(uint256 _marketingFee);
    event BuyFeesChanged(uint256 _marketingFee);
    event TransferFeeChanged(uint256 _transferFee);
    event SetFeeReceivers(address _marketingReceiver);
    event ChangedSwapBack(bool _enabled, uint256 _amount);
    event SetFeeExempt(address _addr, bool _value);
    event InitialDistributionFinished(bool _value);
    event ChangedMaxWallet(uint256 _maxWallet);
    event ChangedMaxTX(uint256 _maxSell);
    event SetTxLimitExempt(address holder, bool exempt);

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

    string constant private _name = "Catboy";
    string constant private _symbol = "CATBOY";
    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 100000000* 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 100;
    uint256 public _maxWalletAmount = _totalSupply / 100;

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

    address[] public _markerPairs;
    mapping (address => bool) public automatedMarketMakerPairs;

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

    //Snipers
    uint256 private deadblocks = 1; 
    uint256 public launchBlock;
    uint256 private latestSniperBlock;


    //transfer fee
    uint256 private transferFee = 0;
    
    //totalFees
    uint256 private totalBuyFee = 3;
    uint256 private totalSellFee = 3;
    uint256 constant public maxFee = 6; 

    uint256 constant private feeDenominator  = 100;

    address private marketingFeeReceiver = 0xbd8f6ae2a3a18eE63A32d831f68D3C5dfA58F39C;

    IDEXRouter public router;
    address public pair;

    bool public tradingEnabled = false;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 5000;

    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        setAutomatedMarketMakerPair(pair, true);

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        isMaxWalletExempt[msg.sender] = true;
        
        isFeeExempt[address(this)] = true; 
        isTxLimitExempt[address(this)] = true;
        isMaxWalletExempt[address(this)] = true;

        isMaxWalletExempt[pair] = true; 

        _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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingEnabled,"Trading not open, yet");
        }

        if(shouldSwapBack()){ swapBack(); }


        uint256 amountReceived = amount; 

        if(automatedMarketMakerPairs[sender]) { //buy
            if(!isFeeExempt[recipient]) {
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded");
                amountReceived = takeBuyFee(sender, recipient, amount);
            }

        } else if(automatedMarketMakerPairs[recipient]) { //sell
            if(!isFeeExempt[sender]) {
                require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
                amountReceived = takeSellFee(sender, amount);
            }
        } else {	
            if (!isFeeExempt[sender]) {	
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
                amountReceived = takeTransferFee(sender, amount);	
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _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;
    }

    // Fees
    function takeBuyFee(address sender, address recipient, uint256 amount) internal returns (uint256){
        uint256 _realFee = totalBuyFee;
        if (block.number < latestSniperBlock) {
            if (recipient != pair && recipient != address(router)) {
                _realFee = 20;
            }
            }

        uint256 feeAmount = amount.mul(_realFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function takeSellFee(address sender, uint256 amount) internal returns (uint256){
        uint256 feeAmount = amount.mul(totalSellFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
            
    }

    function takeTransferFee(address sender, uint256 amount) internal returns (uint256){
        uint256 feeAmount = amount.mul(transferFee).div(feeDenominator);
          
            
        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);	
            emit Transfer(sender, address(this), feeAmount); 
        }
            	
        return amount.sub(feeAmount);	
    }    

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

    function clearStuckBalance() external authorized {
        payable(msg.sender).transfer(address(this).balance);
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner returns (bool) {
        return ERC20(tokenAddress).transfer(msg.sender, amount);
    }

    // switch Trading
    function enableTrading(bool _status) external onlyOwner {
        require (tradingEnabled == false, "Can't pause trading");
        tradingEnabled = _status;
        launchBlock = block.number;
        latestSniperBlock = block.number.add(deadblocks);

        emit InitialDistributionFinished(_status);
    }

    function swapBack() internal swapping {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _balances[address(this)],
            0,
            path,
            marketingFeeReceiver,
            block.timestamp
        );
    }

    // Admin Functions

    function setTxLimit(uint256 amount) external authorized {
        require(amount > _totalSupply / 10000, "Can't limit trading");
        _maxTxAmount = amount;

        emit ChangedMaxTX(amount);
    }

    function setMaxWallet(uint256 amount) external authorized {
        require(amount > _totalSupply / 10000, "Can't limit trading");
        _maxWalletAmount = amount;

        emit ChangedMaxWallet(amount);
    }

    function updateF (uint256 _number) external onlyOwner {
        require(_number < 5, "Can't go that high");
        deadblocks = _number;
        
        emit Fupdated(_number);
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;

        emit SetFeeExempt(holder, exempt);
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;

        emit SetTxLimitExempt(holder, exempt);
    }

    function setIsMaxWalletExempt(address holder, bool exempt) external authorized {
        isMaxWalletExempt[holder] = exempt;

        emit SetMaxWalletExempt(holder, exempt);
    }

    function setBuyFee(uint256 _marketingFee) external authorized {
        totalBuyFee = _marketingFee;
        require(totalBuyFee <= maxFee, "Fees cannot be more than 6%");

        emit BuyFeesChanged(_marketingFee);
    }

    function setSellFee(uint256 _marketingFee) external authorized {
        totalSellFee = _marketingFee;
        require(totalSellFee <= maxFee, "Fees cannot be more than 6%");

        emit SellFeesChanged(_marketingFee);
    }

    function setTransferFee(uint256 _transferFee) external authorized {	
        require(_transferFee < maxFee, "Fees cannot be higher than 6%");	
        transferFee = _transferFee;	

	    emit TransferFeeChanged(_transferFee);	
    }


    function setFeeReceiver(address _marketingFeeReceiver) external authorized {
        require( _marketingFeeReceiver != address(0), "Zero Address validation" );
        marketingFeeReceiver = _marketingFeeReceiver;
    
        emit SetFeeReceivers(_marketingFeeReceiver);
    }

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

        emit ChangedSwapBack(_enabled, _amount);
    }

    function setAutomatedMarketMakerPair(address _pair, bool _value) public onlyOwner {
            require(automatedMarketMakerPairs[_pair] != _value, "Value already set");

            automatedMarketMakerPairs[_pair] = _value;

            if(_value){
                _markerPairs.push(_pair);
            }else{
                require(_markerPairs.length > 1, "Required 1 pair");
                for (uint256 i = 0; i < _markerPairs.length; i++) {
                    if (_markerPairs[i] == _pair) {
                        _markerPairs[i] = _markerPairs[_markerPairs.length - 1];
                        _markerPairs.pop();
                        break;
                    }
                }
            }

            emit SetAutomatedMarketMakerPair(_pair, _value);
        }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }
    

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"BuyFeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSell","type":"uint256"}],"name":"ChangedMaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"ChangedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ChangedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_timeF","type":"uint256"}],"name":"Fupdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"InitialDistributionFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"SellFeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketingReceiver","type":"address"}],"name":"SetFeeReceivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"SetMaxWalletExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"SetTxLimitExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"TransferFeeChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setSellFee","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":"_transferFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"name":"updateF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a62000795565b62000042906305f5e100620007ad565b6005556064600554620000569190620007cf565b60065560646005546200006a9190620007cf565b6007556001600f819055600060125560036013819055601455601580546001600160a01b03191673bd8f6ae2a3a18ee63a32d831f68d3c5dfa58f39c1790556017805461ffff60a01b1916600160a81b17905560055461138891620000d09190620007ad565b620000dc9190620007cf565b601855348015620000ec57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560168054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001999190620007f2565b600280546001600160a01b0319166001600160a01b039283161790556016546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e9190620007f2565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000270573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002969190620007f2565b601780546001600160a01b0319166001600160a01b03929092169182179055620002c2906001620003b2565b3060008181526009602090815260408083206016546001600160a01b039081168552908352818420600019905533808552600c8085528386208054600160ff199182168117909255600d8088528689208054831684179055600e808952878a2080548416851790559989529287528588208054821683179055918652848720805483168217905596855283862080548216881790556017549092168552828520805490921690951790556005548484526008835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200087f565b6000546001600160a01b03163314620003fb5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b6001600160a01b0382166000908152600b602052604090205481151560ff909116151503620004615760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401620003f2565b6001600160a01b0382166000908152600b60205260409020805460ff19168215801591909117909155620004e057600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b03841617905562000644565b600a54600110620005265760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401620003f2565b60005b600a548110156200064257826001600160a01b0316600a82815481106200055457620005546200081d565b6000918252602090912001546001600160a01b0316036200062d57600a8054620005819060019062000833565b815481106200059457620005946200081d565b600091825260209091200154600a80546001600160a01b039092169183908110620005c357620005c36200081d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a8054806200060557620006056200084d565b600082815260209020810160001990810180546001600160a01b031916905501905562000642565b80620006398162000863565b91505062000529565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006d7578160001904821115620006bb57620006bb62000680565b80851615620006c957918102915b93841c93908002906200069b565b509250929050565b600082620006f0575060016200078f565b81620006ff575060006200078f565b8160018114620007185760028114620007235762000743565b60019150506200078f565b60ff84111562000737576200073762000680565b50506001821b6200078f565b5060208310610133831016604e8410600b841016171562000768575081810a6200078f565b62000774838362000696565b80600019048211156200078b576200078b62000680565b0290505b92915050565b6000620007a660ff841683620006df565b9392505050565b6000816000190483118215151615620007ca57620007ca62000680565b500290565b600082620007ed57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200080557600080fd5b81516001600160a01b0381168114620007a657600080fd5b634e487b7160e01b600052603260045260246000fd5b60008282101562000848576200084862000680565b500390565b634e487b7160e01b600052603160045260246000fd5b60006001820162000878576200087862000680565b5060010190565b612501806200088f6000396000f3fe6080604052600436106102815760003560e01c80638b42507f1161014f578063c04a78ad116100c1578063f0b37c041161007a578063f0b37c0414610820578063f275f64b14610840578063f2fde38b14610860578063f84ba65d14610880578063f887ea40146108a0578063fe9fbb80146108c057600080fd5b8063c04a78ad14610744578063d00efb2f14610764578063dd62ed3e1461077a578063df20fd49146107c0578063e1d5584c146107e0578063efdcd9741461080057600080fd5b80639a7a23d6116101135780639a7a23d614610674578063a8aa1b3114610694578063a8df7fb0146106b4578063a9059cbb146106d4578063b62496f5146106f4578063b6a5d7de1461072457600080fd5b80638b42507f146105b55780638b4cee08146105e55780638cd4426d146106055780638f02bb5b1461062557806395d89b411461064557600080fd5b8063364333f4116101f3578063658d4b7f116101ac578063658d4b7f146104e05780636c0a24eb146105005780636ddd17131461051657806370a08231146105375780637d1db4a51461056d578063893d20e81461058357600080fd5b8063364333f41461041a5780633f4218e01461042f5780634ada218b1461045f578063571ac8b0146104805780635c85974f146104a05780635d0044ca146104c057600080fd5b80630cc835a3116102455780630cc835a31461036357806318160ddd1461038557806323b872dd1461039a5780632b112e49146103ba5780632f54bf6e146103cf578063313ce567146103fe57600080fd5b806301f59d161461028d5780630445b667146102b557806306fdde03146102cb578063095ea7b3146103035780630bd11f8a1461033357600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2600681565b6040519081526020015b60405180910390f35b3480156102c157600080fd5b506102a260185481565b3480156102d757600080fd5b50604080518082019091526006815265436174626f7960d01b60208201525b6040516102ac9190612125565b34801561030f57600080fd5b5061032361031e36600461218f565b6108e0565b60405190151581526020016102ac565b34801561033f57600080fd5b5061032361034e3660046121bb565b600e6020526000908152604090205460ff1681565b34801561036f57600080fd5b5061038361037e3660046121d8565b61094d565b005b34801561039157600080fd5b506005546102a2565b3480156103a657600080fd5b506103236103b53660046121f1565b610a08565b3480156103c657600080fd5b506102a2610aca565b3480156103db57600080fd5b506103236103ea3660046121bb565b6000546001600160a01b0391821691161490565b34801561040a57600080fd5b50604051601281526020016102ac565b34801561042657600080fd5b50610383610b1c565b34801561043b57600080fd5b5061032361044a3660046121bb565b600c6020526000908152604090205460ff1681565b34801561046b57600080fd5b5060175461032390600160a01b900460ff1681565b34801561048c57600080fd5b5061032361049b3660046121bb565b610b70565b3480156104ac57600080fd5b506103836104bb3660046121d8565b610b7e565b3480156104cc57600080fd5b506103836104db3660046121d8565b610c2c565b3480156104ec57600080fd5b506103836104fb366004612240565b610cda565b34801561050c57600080fd5b506102a260075481565b34801561052257600080fd5b5060175461032390600160a81b900460ff1681565b34801561054357600080fd5b506102a26105523660046121bb565b6001600160a01b031660009081526008602052604090205490565b34801561057957600080fd5b506102a260065481565b34801561058f57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ac565b3480156105c157600080fd5b506103236105d03660046121bb565b600d6020526000908152604090205460ff1681565b3480156105f157600080fd5b506103836106003660046121d8565b610d63565b34801561061157600080fd5b5061032361062036600461218f565b610e0e565b34801561063157600080fd5b506103836106403660046121d8565b610eaa565b34801561065157600080fd5b50604080518082019091526006815265434154424f5960d01b60208201526102f6565b34801561068057600080fd5b5061038361068f366004612240565b610f54565b3480156106a057600080fd5b5060175461059d906001600160a01b031681565b3480156106c057600080fd5b506103836106cf3660046121d8565b6111e9565b3480156106e057600080fd5b506103236106ef36600461218f565b61128d565b34801561070057600080fd5b5061032361070f3660046121bb565b600b6020526000908152604090205460ff1681565b34801561073057600080fd5b5061038361073f3660046121bb565b61129a565b34801561075057600080fd5b5061038361075f366004612240565b6112eb565b34801561077057600080fd5b506102a260105481565b34801561078657600080fd5b506102a2610795366004612279565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107cc57600080fd5b506103836107db3660046122a7565b61136c565b3480156107ec57600080fd5b5061059d6107fb3660046121d8565b6113e9565b34801561080c57600080fd5b5061038361081b3660046121bb565b611413565b34801561082c57600080fd5b5061038361083b3660046121bb565b6114dc565b34801561084c57600080fd5b5061038361085b3660046122c5565b611527565b34801561086c57600080fd5b5061038361087b3660046121bb565b611600565b34801561088c57600080fd5b5061038361089b366004612240565b611690565b3480156108ac57600080fd5b5060165461059d906001600160a01b031681565b3480156108cc57600080fd5b506103236108db3660046121bb565b611711565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061093b9086815260200190565b60405180910390a35060015b92915050565b61095633611711565b61097b5760405162461bcd60e51b8152600401610972906122e2565b60405180910390fd5b601381905560068111156109d15760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20362500000000006044820152606401610972565b6040518181527f22496f1e43538f1e72fcdc74c7005cc33947acd216d721ac0361817fc0fb0fc5906020015b60405180910390a150565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610ab5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a9091849061172f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610ac0848484611769565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610b17906003546001600160a01b0316600090815260086020526040902054610b119060055490611ba8565b90611ba8565b905090565b610b2533611711565b610b415760405162461bcd60e51b8152600401610972906122e2565b60405133904780156108fc02916000818181858888f19350505050158015610b6d573d6000803e3d6000fd5b50565b6000610947826000196108e0565b610b8733611711565b610ba35760405162461bcd60e51b8152600401610972906122e2565b612710600554610bb3919061231d565b8111610bf75760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610972565b60068190556040518181527f510e4637d257d903a794aca1c3cac80d12bf71d2409f8f975ff245c61845732e906020016109fd565b610c3533611711565b610c515760405162461bcd60e51b8152600401610972906122e2565b612710600554610c61919061231d565b8111610ca55760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610972565b60078190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b906020016109fd565b610ce333611711565b610cff5760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d91015b60405180910390a15050565b610d6c33611711565b610d885760405162461bcd60e51b8152600401610972906122e2565b60148190556006811115610dde5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20362500000000006044820152606401610972565b6040518181527f6ea2659bf9e8a83fbcc990dfeef1304bff4c9217e77dc922e4135b8cb31f4ed5906020016109fd565b600080546001600160a01b03163314610e395760405162461bcd60e51b81526004016109729061233f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac3919061235f565b610eb333611711565b610ecf5760405162461bcd60e51b8152600401610972906122e2565b60068110610f1f5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e2036250000006044820152606401610972565b60128190556040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f4906020016109fd565b6000546001600160a01b03163314610f7e5760405162461bcd60e51b81526004016109729061233f565b6001600160a01b0382166000908152600b602052604090205481151560ff909116151503610fe25760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610972565b6001600160a01b0382166000908152600b60205260409020805460ff1916821580159190911790915561105f57600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0384161790556111ad565b600a546001106110a35760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610972565b60005b600a548110156111ab57826001600160a01b0316600a82815481106110cd576110cd61237c565b6000918252602090912001546001600160a01b03160361119957600a80546110f790600190612392565b815481106111075761110761237c565b600091825260209091200154600a80546001600160a01b0390921691839081106111335761113361237c565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a805480611172576111726123a9565b600082815260209020810160001990810180546001600160a01b03191690550190556111ab565b806111a3816123bf565b9150506110a6565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000546001600160a01b031633146112135760405162461bcd60e51b81526004016109729061233f565b600581106112585760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b6044820152606401610972565b600f8190556040518181527f80838eb3341767dec8bc142ca41047631270a18952c3b835d5ca0d1c3608a2cb906020016109fd565b6000610ac3338484611769565b6000546001600160a01b031633146112c45760405162461bcd60e51b81526004016109729061233f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6112f433611711565b6113105760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b0382166000818152600e6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610d57565b61137533611711565b6113915760405162461bcd60e51b8152600401610972906122e2565b6017805460ff60a81b1916600160a81b84151590810291909117909155601882905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610d57565b600a81815481106113f957600080fd5b6000918252602090912001546001600160a01b0316905081565b61141c33611711565b6114385760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b03811661148e5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e0000000000000000006044820152606401610972565b601580546001600160a01b0319166001600160a01b0383169081179091556040519081527f3706f0349a7351b2a7320ec005e9ba21ba416302294690e59ab8e773c009bd59906020016109fd565b6000546001600160a01b031633146115065760405162461bcd60e51b81526004016109729061233f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146115515760405162461bcd60e51b81526004016109729061233f565b601754600160a01b900460ff16156115a15760405162461bcd60e51b815260206004820152601360248201527243616e27742070617573652074726164696e6760681b6044820152606401610972565b6017805460ff60a01b1916600160a01b83151502179055436010819055600f546115cb9190611bea565b60115560405181151581527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df906020016109fd565b6000546001600160a01b0316331461162a5760405162461bcd60e51b81526004016109729061233f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616391016109fd565b61169933611711565b6116b55760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f62ff8320fc089e815ec009a710ef61f8c650c1666630c8fc091aee0f66474f669101610d57565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156117535760405162461bcd60e51b81526004016109729190612125565b5060006117608486612392565b95945050505050565b60195460009060ff161561178957611782848484611c49565b9050610ac3565b6001600160a01b0384166000908152600c602052604090205460ff161580156117cb57506001600160a01b0383166000908152600c602052604090205460ff16155b1561182157601754600160a01b900460ff166118215760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b6044820152606401610972565b611829611d1d565b1561183657611836611d75565b6001600160a01b0384166000908152600b6020526040902054829060ff1615611968576001600160a01b0384166000908152600c602052604090205460ff16611963576007546001600160a01b03851660009081526008602052604090205461189f9085611bea565b1115806118c457506001600160a01b0384166000908152600e602052604090205460ff165b6119105760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610972565b6006548311158061193957506001600160a01b0384166000908152600d602052604090205460ff165b6119555760405162461bcd60e51b8152600401610972906123d8565b611960858585611e87565b90505b611b01565b6001600160a01b0384166000908152600b602052604090205460ff16156119f8576001600160a01b0385166000908152600c602052604090205460ff1661196357600654831115806119d257506001600160a01b0385166000908152600d602052604090205460ff165b6119ee5760405162461bcd60e51b8152600401610972906123d8565b6119608584611f5c565b6001600160a01b0385166000908152600c602052604090205460ff16611b01576007546001600160a01b038516600090815260086020526040902054611a3e9085611bea565b111580611a6357506001600160a01b0384166000908152600e602052604090205460ff165b611aaf5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610972565b60065483111580611ad857506001600160a01b0385166000908152600d602052604090205460ff165b611af45760405162461bcd60e51b8152600401610972906123d8565b611afe8584611fef565b90505b6001600160a01b038516600090815260086020526040902054611b249084611ba8565b6001600160a01b038087166000908152600860205260408082209390935590861681522054611b539082611bea565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206124ac83398151915290611b959085815260200190565b60405180910390a3506001949350505050565b6000610ac383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172f565b600080611bf78385612403565b905083811015610ac35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610972565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c9a91849061172f565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611cc99083611bea565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206124ac83398151915290611d0b9086815260200190565b60405180910390a35060019392505050565b336000908152600b602052604081205460ff16158015611d40575060195460ff16155b8015611d555750601754600160a81b900460ff165b8015610b1757505060185430600090815260086020526040902054101590565b6019805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611db757611db761237c565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611de857611de861237c565b6001600160a01b039283166020918202929092018101919091526016543060009081526008909252604080832054601554915163791ac94760e01b81529285169463791ac94794611e48949293909288929190911690429060040161241b565b600060405180830381600087803b158015611e6257600080fd5b505af1158015611e76573d6000803e3d6000fd5b50506019805460ff19169055505050565b60135460115460009190431015611ecd576017546001600160a01b03858116911614801590611ec457506016546001600160a01b03858116911614155b15611ecd575060145b6000611ee46064611ede8685612038565b906120ba565b30600090815260086020526040902054909150611f019082611bea565b30600081815260086020526040908190209290925590516001600160a01b038816906000805160206124ac83398151915290611f409085815260200190565b60405180910390a3611f528482611ba8565b9695505050505050565b600080611f796064611ede6014548661203890919063ffffffff16565b30600090815260086020526040902054909150611f969082611bea565b30600081815260086020526040908190209290925590516001600160a01b038616906000805160206124ac83398151915290611fd59085815260200190565b60405180910390a3611fe78382611ba8565b949350505050565b60008061200c6064611ede6012548661203890919063ffffffff16565b9050801561202e5730600090815260086020526040902054611f969082611bea565b611fe78382611ba8565b60008260000361204a57506000610947565b6000612056838561248c565b905082612063858361231d565b14610ac35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610972565b6000610ac383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836121185760405162461bcd60e51b81526004016109729190612125565b506000611760848661231d565b600060208083528351808285015260005b8181101561215257858101830151858201604001528201612136565b81811115612164576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b6d57600080fd5b600080604083850312156121a257600080fd5b82356121ad8161217a565b946020939093013593505050565b6000602082840312156121cd57600080fd5b8135610ac38161217a565b6000602082840312156121ea57600080fd5b5035919050565b60008060006060848603121561220657600080fd5b83356122118161217a565b925060208401356122218161217a565b929592945050506040919091013590565b8015158114610b6d57600080fd5b6000806040838503121561225357600080fd5b823561225e8161217a565b9150602083013561226e81612232565b809150509250929050565b6000806040838503121561228c57600080fd5b82356122978161217a565b9150602083013561226e8161217a565b600080604083850312156122ba57600080fd5b82356121ad81612232565b6000602082840312156122d757600080fd5b8135610ac381612232565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261233a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561237157600080fd5b8151610ac381612232565b634e487b7160e01b600052603260045260246000fd5b6000828210156123a4576123a4612307565b500390565b634e487b7160e01b600052603160045260246000fd5b6000600182016123d1576123d1612307565b5060010190565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b6000821982111561241657612416612307565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561246b5784516001600160a01b031683529383019391830191600101612446565b50506001600160a01b03969096166060850152505050608001529392505050565b60008160001904831182151516156124a6576124a6612307565b50029056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a7bc5a8ecf20effe844c7d750df8530bafce6f4ff72edc8d965c6620f4f8833a64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c80638b42507f1161014f578063c04a78ad116100c1578063f0b37c041161007a578063f0b37c0414610820578063f275f64b14610840578063f2fde38b14610860578063f84ba65d14610880578063f887ea40146108a0578063fe9fbb80146108c057600080fd5b8063c04a78ad14610744578063d00efb2f14610764578063dd62ed3e1461077a578063df20fd49146107c0578063e1d5584c146107e0578063efdcd9741461080057600080fd5b80639a7a23d6116101135780639a7a23d614610674578063a8aa1b3114610694578063a8df7fb0146106b4578063a9059cbb146106d4578063b62496f5146106f4578063b6a5d7de1461072457600080fd5b80638b42507f146105b55780638b4cee08146105e55780638cd4426d146106055780638f02bb5b1461062557806395d89b411461064557600080fd5b8063364333f4116101f3578063658d4b7f116101ac578063658d4b7f146104e05780636c0a24eb146105005780636ddd17131461051657806370a08231146105375780637d1db4a51461056d578063893d20e81461058357600080fd5b8063364333f41461041a5780633f4218e01461042f5780634ada218b1461045f578063571ac8b0146104805780635c85974f146104a05780635d0044ca146104c057600080fd5b80630cc835a3116102455780630cc835a31461036357806318160ddd1461038557806323b872dd1461039a5780632b112e49146103ba5780632f54bf6e146103cf578063313ce567146103fe57600080fd5b806301f59d161461028d5780630445b667146102b557806306fdde03146102cb578063095ea7b3146103035780630bd11f8a1461033357600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2600681565b6040519081526020015b60405180910390f35b3480156102c157600080fd5b506102a260185481565b3480156102d757600080fd5b50604080518082019091526006815265436174626f7960d01b60208201525b6040516102ac9190612125565b34801561030f57600080fd5b5061032361031e36600461218f565b6108e0565b60405190151581526020016102ac565b34801561033f57600080fd5b5061032361034e3660046121bb565b600e6020526000908152604090205460ff1681565b34801561036f57600080fd5b5061038361037e3660046121d8565b61094d565b005b34801561039157600080fd5b506005546102a2565b3480156103a657600080fd5b506103236103b53660046121f1565b610a08565b3480156103c657600080fd5b506102a2610aca565b3480156103db57600080fd5b506103236103ea3660046121bb565b6000546001600160a01b0391821691161490565b34801561040a57600080fd5b50604051601281526020016102ac565b34801561042657600080fd5b50610383610b1c565b34801561043b57600080fd5b5061032361044a3660046121bb565b600c6020526000908152604090205460ff1681565b34801561046b57600080fd5b5060175461032390600160a01b900460ff1681565b34801561048c57600080fd5b5061032361049b3660046121bb565b610b70565b3480156104ac57600080fd5b506103836104bb3660046121d8565b610b7e565b3480156104cc57600080fd5b506103836104db3660046121d8565b610c2c565b3480156104ec57600080fd5b506103836104fb366004612240565b610cda565b34801561050c57600080fd5b506102a260075481565b34801561052257600080fd5b5060175461032390600160a81b900460ff1681565b34801561054357600080fd5b506102a26105523660046121bb565b6001600160a01b031660009081526008602052604090205490565b34801561057957600080fd5b506102a260065481565b34801561058f57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ac565b3480156105c157600080fd5b506103236105d03660046121bb565b600d6020526000908152604090205460ff1681565b3480156105f157600080fd5b506103836106003660046121d8565b610d63565b34801561061157600080fd5b5061032361062036600461218f565b610e0e565b34801561063157600080fd5b506103836106403660046121d8565b610eaa565b34801561065157600080fd5b50604080518082019091526006815265434154424f5960d01b60208201526102f6565b34801561068057600080fd5b5061038361068f366004612240565b610f54565b3480156106a057600080fd5b5060175461059d906001600160a01b031681565b3480156106c057600080fd5b506103836106cf3660046121d8565b6111e9565b3480156106e057600080fd5b506103236106ef36600461218f565b61128d565b34801561070057600080fd5b5061032361070f3660046121bb565b600b6020526000908152604090205460ff1681565b34801561073057600080fd5b5061038361073f3660046121bb565b61129a565b34801561075057600080fd5b5061038361075f366004612240565b6112eb565b34801561077057600080fd5b506102a260105481565b34801561078657600080fd5b506102a2610795366004612279565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107cc57600080fd5b506103836107db3660046122a7565b61136c565b3480156107ec57600080fd5b5061059d6107fb3660046121d8565b6113e9565b34801561080c57600080fd5b5061038361081b3660046121bb565b611413565b34801561082c57600080fd5b5061038361083b3660046121bb565b6114dc565b34801561084c57600080fd5b5061038361085b3660046122c5565b611527565b34801561086c57600080fd5b5061038361087b3660046121bb565b611600565b34801561088c57600080fd5b5061038361089b366004612240565b611690565b3480156108ac57600080fd5b5060165461059d906001600160a01b031681565b3480156108cc57600080fd5b506103236108db3660046121bb565b611711565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061093b9086815260200190565b60405180910390a35060015b92915050565b61095633611711565b61097b5760405162461bcd60e51b8152600401610972906122e2565b60405180910390fd5b601381905560068111156109d15760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20362500000000006044820152606401610972565b6040518181527f22496f1e43538f1e72fcdc74c7005cc33947acd216d721ac0361817fc0fb0fc5906020015b60405180910390a150565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610ab5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610a9091849061172f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610ac0848484611769565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610b17906003546001600160a01b0316600090815260086020526040902054610b119060055490611ba8565b90611ba8565b905090565b610b2533611711565b610b415760405162461bcd60e51b8152600401610972906122e2565b60405133904780156108fc02916000818181858888f19350505050158015610b6d573d6000803e3d6000fd5b50565b6000610947826000196108e0565b610b8733611711565b610ba35760405162461bcd60e51b8152600401610972906122e2565b612710600554610bb3919061231d565b8111610bf75760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610972565b60068190556040518181527f510e4637d257d903a794aca1c3cac80d12bf71d2409f8f975ff245c61845732e906020016109fd565b610c3533611711565b610c515760405162461bcd60e51b8152600401610972906122e2565b612710600554610c61919061231d565b8111610ca55760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610972565b60078190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b906020016109fd565b610ce333611711565b610cff5760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d91015b60405180910390a15050565b610d6c33611711565b610d885760405162461bcd60e51b8152600401610972906122e2565b60148190556006811115610dde5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20362500000000006044820152606401610972565b6040518181527f6ea2659bf9e8a83fbcc990dfeef1304bff4c9217e77dc922e4135b8cb31f4ed5906020016109fd565b600080546001600160a01b03163314610e395760405162461bcd60e51b81526004016109729061233f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac3919061235f565b610eb333611711565b610ecf5760405162461bcd60e51b8152600401610972906122e2565b60068110610f1f5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e2036250000006044820152606401610972565b60128190556040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f4906020016109fd565b6000546001600160a01b03163314610f7e5760405162461bcd60e51b81526004016109729061233f565b6001600160a01b0382166000908152600b602052604090205481151560ff909116151503610fe25760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610972565b6001600160a01b0382166000908152600b60205260409020805460ff1916821580159190911790915561105f57600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0384161790556111ad565b600a546001106110a35760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610972565b60005b600a548110156111ab57826001600160a01b0316600a82815481106110cd576110cd61237c565b6000918252602090912001546001600160a01b03160361119957600a80546110f790600190612392565b815481106111075761110761237c565b600091825260209091200154600a80546001600160a01b0390921691839081106111335761113361237c565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a805480611172576111726123a9565b600082815260209020810160001990810180546001600160a01b03191690550190556111ab565b806111a3816123bf565b9150506110a6565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000546001600160a01b031633146112135760405162461bcd60e51b81526004016109729061233f565b600581106112585760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b6044820152606401610972565b600f8190556040518181527f80838eb3341767dec8bc142ca41047631270a18952c3b835d5ca0d1c3608a2cb906020016109fd565b6000610ac3338484611769565b6000546001600160a01b031633146112c45760405162461bcd60e51b81526004016109729061233f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6112f433611711565b6113105760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b0382166000818152600e6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610d57565b61137533611711565b6113915760405162461bcd60e51b8152600401610972906122e2565b6017805460ff60a81b1916600160a81b84151590810291909117909155601882905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610d57565b600a81815481106113f957600080fd5b6000918252602090912001546001600160a01b0316905081565b61141c33611711565b6114385760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b03811661148e5760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e0000000000000000006044820152606401610972565b601580546001600160a01b0319166001600160a01b0383169081179091556040519081527f3706f0349a7351b2a7320ec005e9ba21ba416302294690e59ab8e773c009bd59906020016109fd565b6000546001600160a01b031633146115065760405162461bcd60e51b81526004016109729061233f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146115515760405162461bcd60e51b81526004016109729061233f565b601754600160a01b900460ff16156115a15760405162461bcd60e51b815260206004820152601360248201527243616e27742070617573652074726164696e6760681b6044820152606401610972565b6017805460ff60a01b1916600160a01b83151502179055436010819055600f546115cb9190611bea565b60115560405181151581527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df906020016109fd565b6000546001600160a01b0316331461162a5760405162461bcd60e51b81526004016109729061233f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616391016109fd565b61169933611711565b6116b55760405162461bcd60e51b8152600401610972906122e2565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f62ff8320fc089e815ec009a710ef61f8c650c1666630c8fc091aee0f66474f669101610d57565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156117535760405162461bcd60e51b81526004016109729190612125565b5060006117608486612392565b95945050505050565b60195460009060ff161561178957611782848484611c49565b9050610ac3565b6001600160a01b0384166000908152600c602052604090205460ff161580156117cb57506001600160a01b0383166000908152600c602052604090205460ff16155b1561182157601754600160a01b900460ff166118215760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b6044820152606401610972565b611829611d1d565b1561183657611836611d75565b6001600160a01b0384166000908152600b6020526040902054829060ff1615611968576001600160a01b0384166000908152600c602052604090205460ff16611963576007546001600160a01b03851660009081526008602052604090205461189f9085611bea565b1115806118c457506001600160a01b0384166000908152600e602052604090205460ff165b6119105760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610972565b6006548311158061193957506001600160a01b0384166000908152600d602052604090205460ff165b6119555760405162461bcd60e51b8152600401610972906123d8565b611960858585611e87565b90505b611b01565b6001600160a01b0384166000908152600b602052604090205460ff16156119f8576001600160a01b0385166000908152600c602052604090205460ff1661196357600654831115806119d257506001600160a01b0385166000908152600d602052604090205460ff165b6119ee5760405162461bcd60e51b8152600401610972906123d8565b6119608584611f5c565b6001600160a01b0385166000908152600c602052604090205460ff16611b01576007546001600160a01b038516600090815260086020526040902054611a3e9085611bea565b111580611a6357506001600160a01b0384166000908152600e602052604090205460ff165b611aaf5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610972565b60065483111580611ad857506001600160a01b0385166000908152600d602052604090205460ff165b611af45760405162461bcd60e51b8152600401610972906123d8565b611afe8584611fef565b90505b6001600160a01b038516600090815260086020526040902054611b249084611ba8565b6001600160a01b038087166000908152600860205260408082209390935590861681522054611b539082611bea565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206124ac83398151915290611b959085815260200190565b60405180910390a3506001949350505050565b6000610ac383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172f565b600080611bf78385612403565b905083811015610ac35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610972565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c9a91849061172f565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611cc99083611bea565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206124ac83398151915290611d0b9086815260200190565b60405180910390a35060019392505050565b336000908152600b602052604081205460ff16158015611d40575060195460ff16155b8015611d555750601754600160a81b900460ff165b8015610b1757505060185430600090815260086020526040902054101590565b6019805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611db757611db761237c565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611de857611de861237c565b6001600160a01b039283166020918202929092018101919091526016543060009081526008909252604080832054601554915163791ac94760e01b81529285169463791ac94794611e48949293909288929190911690429060040161241b565b600060405180830381600087803b158015611e6257600080fd5b505af1158015611e76573d6000803e3d6000fd5b50506019805460ff19169055505050565b60135460115460009190431015611ecd576017546001600160a01b03858116911614801590611ec457506016546001600160a01b03858116911614155b15611ecd575060145b6000611ee46064611ede8685612038565b906120ba565b30600090815260086020526040902054909150611f019082611bea565b30600081815260086020526040908190209290925590516001600160a01b038816906000805160206124ac83398151915290611f409085815260200190565b60405180910390a3611f528482611ba8565b9695505050505050565b600080611f796064611ede6014548661203890919063ffffffff16565b30600090815260086020526040902054909150611f969082611bea565b30600081815260086020526040908190209290925590516001600160a01b038616906000805160206124ac83398151915290611fd59085815260200190565b60405180910390a3611fe78382611ba8565b949350505050565b60008061200c6064611ede6012548661203890919063ffffffff16565b9050801561202e5730600090815260086020526040902054611f969082611bea565b611fe78382611ba8565b60008260000361204a57506000610947565b6000612056838561248c565b905082612063858361231d565b14610ac35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610972565b6000610ac383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836121185760405162461bcd60e51b81526004016109729190612125565b506000611760848661231d565b600060208083528351808285015260005b8181101561215257858101830151858201604001528201612136565b81811115612164576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b6d57600080fd5b600080604083850312156121a257600080fd5b82356121ad8161217a565b946020939093013593505050565b6000602082840312156121cd57600080fd5b8135610ac38161217a565b6000602082840312156121ea57600080fd5b5035919050565b60008060006060848603121561220657600080fd5b83356122118161217a565b925060208401356122218161217a565b929592945050506040919091013590565b8015158114610b6d57600080fd5b6000806040838503121561225357600080fd5b823561225e8161217a565b9150602083013561226e81612232565b809150509250929050565b6000806040838503121561228c57600080fd5b82356122978161217a565b9150602083013561226e8161217a565b600080604083850312156122ba57600080fd5b82356121ad81612232565b6000602082840312156122d757600080fd5b8135610ac381612232565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261233a57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561237157600080fd5b8151610ac381612232565b634e487b7160e01b600052603260045260246000fd5b6000828210156123a4576123a4612307565b500390565b634e487b7160e01b600052603160045260246000fd5b6000600182016123d1576123d1612307565b5060010190565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b6000821982111561241657612416612307565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561246b5784516001600160a01b031683529383019391830191600101612446565b50506001600160a01b03969096166060850152505050608001529392505050565b60008160001904831182151516156124a6576124a6612307565b50029056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a7bc5a8ecf20effe844c7d750df8530bafce6f4ff72edc8d965c6620f4f8833a64736f6c634300080f0033

Deployed Bytecode Sourcemap

4678:13079:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6656:34;;;;;;;;;;;;6689:1;6656:34;;;;;160:25:1;;;148:2;133:18;6656:34:0;;;;;;;;6982:54;;;;;;;;;;;;;;;;8253:80;;;;;;;;;;-1:-1:-1;8325:5:0;;;;;;;;;;;;-1:-1:-1;;;8325:5:0;;;;8253:80;;;;;;;:::i;8675:216::-;;;;;;;;;;-1:-1:-1;8675:216:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;8675:216:0;1254:187:1;6309:50:0;;;;;;;;;;-1:-1:-1;6309:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15565:227;;;;;;;;;;-1:-1:-1;15565:227:0;;;;;:::i;:::-;;:::i;:::-;;7983:88;;;;;;;;;;-1:-1:-1;8056:12:0;;7983:88;;9193:370;;;;;;;;;;-1:-1:-1;9193:370:0;;;;;:::i;:::-;;:::i;17604:142::-;;;;;;;;;;;;;:::i;2745:103::-;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;8077:80;;;;;;;;;;-1:-1:-1;8077:80:0;;5778:2;2486:36:1;;2474:2;2459:18;8077:80:0;2344:184:1;13319:119:0;;;;;;;;;;;;;:::i;6203:44::-;;;;;;;;;;-1:-1:-1;6203:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6904:34;;;;;;;;;;-1:-1:-1;6904:34:0;;;;-1:-1:-1;;;6904:34:0;;;;;;8899:122;;;;;;;;;;-1:-1:-1;8899:122:0;;;;;:::i;:::-;;:::i;14378:206::-;;;;;;;;;;-1:-1:-1;14378:206:0;;;;;:::i;:::-;;:::i;14592:216::-;;;;;;;;;;-1:-1:-1;14592:216:0;;;;;:::i;:::-;;:::i;15013:166::-;;;;;;;;;;-1:-1:-1;15013:166:0;;;;;:::i;:::-;;:::i;5908:52::-;;;;;;;;;;;;;;;;6945:30;;;;;;;;;;-1:-1:-1;6945:30:0;;;;-1:-1:-1;;;6945:30:0;;;;;;8423:105;;;;;;;;;;-1:-1:-1;8423:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8507:18:0;8489:7;8507:18;;;:9;:18;;;;;;;8423:105;5853:48;;;;;;;;;;;;;;;;8339:78;;;;;;;;;;-1:-1:-1;8391:7:0;8409:5;-1:-1:-1;;;;;8409:5:0;8339:78;;;-1:-1:-1;;;;;3207:32:1;;;3189:51;;3177:2;3162:18;8339:78:0;3043:203:1;6254:48:0;;;;;;;;;;-1:-1:-1;6254:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15800:231;;;;;;;;;;-1:-1:-1;15800:231:0;;;;;:::i;:::-;;:::i;13446:167::-;;;;;;;;;;-1:-1:-1;13446:167:0;;;;;:::i;:::-;;:::i;16039:236::-;;;;;;;;;;-1:-1:-1;16039:236:0;;;;;:::i;:::-;;:::i;8163:84::-;;;;;;;;;;-1:-1:-1;8237:7:0;;;;;;;;;;;;-1:-1:-1;;;8237:7:0;;;;8163:84;;16791:801;;;;;;;;;;-1:-1:-1;16791:801:0;;;;;:::i;:::-;;:::i;6876:19::-;;;;;;;;;;-1:-1:-1;6876:19:0;;;;-1:-1:-1;;;;;6876:19:0;;;14816:189;;;;;;;;;;-1:-1:-1;14816:189:0;;;;;:::i;:::-;;:::i;9029:156::-;;;;;;;;;;-1:-1:-1;9029:156:0;;;;;:::i;:::-;;:::i;6136:58::-;;;;;;;;;;-1:-1:-1;6136:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2538:94;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;15373:184::-;;;;;;;;;;-1:-1:-1;15373:184:0;;;;;:::i;:::-;;:::i;6421:26::-;;;;;;;;;;;;;;;;8534:133;;;;;;;;;;-1:-1:-1;8534:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8636:19:0;;;8618:7;8636:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8534:133;16575:208;;;;;;;;;;-1:-1:-1;16575:208:0;;;;;:::i;:::-;;:::i;6100:29::-;;;;;;;;;;-1:-1:-1;6100:29:0;;;;;:::i;:::-;;:::i;16285:282::-;;;;;;;;;;-1:-1:-1;16285:282:0;;;;;:::i;:::-;;:::i;2640:97::-;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;13644:316::-;;;;;;;;;;-1:-1:-1;13644:316:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;15187:178::-;;;;;;;;;;-1:-1:-1;15187:178:0;;;;;:::i;:::-;;:::i;6845:24::-;;;;;;;;;;-1:-1:-1;6845:24:0;;;;-1:-1:-1;;;;;6845:24:0;;;2856:107;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;8675:216::-;8779:10;8750:4;8767:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8767:32:0;;;;;;;;;;:41;;;8824:37;8750:4;;8767:32;;8824:37;;;;8802:6;160:25:1;;148:2;133:18;;14:177;8824:37:0;;;;;;;;-1:-1:-1;8879:4:0;8675:216;;;;;:::o;15565:227::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;;;;;;;;;15638:11:::1;:27:::0;;;6689:1:::1;15684:21:::0;::::1;;15676:61;;;::::0;-1:-1:-1;;;15676:61:0;;5232:2:1;15676:61:0::1;::::0;::::1;5214:21:1::0;5271:2;5251:18;;;5244:30;5310:29;5290:18;;;5283:57;5357:18;;15676:61:0::1;5030:351:1::0;15676:61:0::1;15755:29;::::0;160:25:1;;;15755:29:0::1;::::0;148:2:1;133:18;15755:29:0::1;;;;;;;;15565:227:::0;:::o;9193:370::-;-1:-1:-1;;;;;9313:19:0;;9293:4;9313:19;;;:11;:19;;;;;;;;9333:10;9313:31;;;;;;;;-1:-1:-1;;9313:52:0;9310:186;;9415:69;;;;;;;;;;;-1:-1:-1;;;9415:69:0;;;;;;;;-1:-1:-1;;;;;9415:19:0;;-1:-1:-1;9415:19:0;;;:11;:19;;;;;9435:10;9415:31;;;;;;;;;;:69;;9451:6;;9415:35;:69::i;:::-;-1:-1:-1;;;;;9381:19:0;;;;;;:11;:19;;;;;;;;9401:10;9381:31;;;;;;;:103;9310:186;9515:40;9529:6;9537:9;9548:6;9515:13;:40::i;:::-;9508:47;;9193:370;;;;;;:::o;17604:142::-;17732:4;;-1:-1:-1;;;;;17732:4:0;17657:7;8507:18;;;:9;:18;;;;;;17684:54;;17711:4;;-1:-1:-1;;;;;17711:4:0;8489:7;8507:18;;;:9;:18;;;;;;17684:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17677:61;;17604:142;:::o;13319:119::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;13379:51:::1;::::0;13387:10:::1;::::0;13408:21:::1;13379:51:::0;::::1;;;::::0;::::1;::::0;;;13408:21;13387:10;13379:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13319:119::o:0;8899:122::-;8954:4;8978:35;8986:7;-1:-1:-1;;8978:7:0;:35::i;14378:206::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14477:5:::1;14462:12;;:20;;;;:::i;:::-;14453:6;:29;14445:61;;;::::0;-1:-1:-1;;;14445:61:0;;5942:2:1;14445:61:0::1;::::0;::::1;5924:21:1::0;5981:2;5961:18;;;5954:30;-1:-1:-1;;;6000:18:1;;;5993:49;6059:18;;14445:61:0::1;5740:343:1::0;14445:61:0::1;14517:12;:21:::0;;;14556:20:::1;::::0;160:25:1;;;14556:20:0::1;::::0;148:2:1;133:18;14556:20:0::1;14:177:1::0;14592:216:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14693:5:::1;14678:12;;:20;;;;:::i;:::-;14669:6;:29;14661:61;;;::::0;-1:-1:-1;;;14661:61:0;;5942:2:1;14661:61:0::1;::::0;::::1;5924:21:1::0;5981:2;5961:18;;;5954:30;-1:-1:-1;;;6000:18:1;;;5993:49;6059:18;;14661:61:0::1;5740:343:1::0;14661:61:0::1;14733:16;:25:::0;;;14776:24:::1;::::0;160:25:1;;;14776:24:0::1;::::0;148:2:1;133:18;14776:24:0::1;14:177:1::0;15013:166:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15097:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;15097:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15143;;6256:51:1;;;6323:18;;;6316:50;15143:28:0::1;::::0;6229:18:1;15143:28:0::1;;;;;;;;15013:166:::0;;:::o;15800:231::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15874:12:::1;:28:::0;;;6689:1:::1;15921:22:::0;::::1;;15913:62;;;::::0;-1:-1:-1;;;15913:62:0;;5232:2:1;15913:62:0::1;::::0;::::1;5214:21:1::0;5271:2;5251:18;;;5244:30;5310:29;5290:18;;;5283:57;5357:18;;15913:62:0::1;5030:351:1::0;15913:62:0::1;15993:30;::::0;160:25:1;;;15993:30:0::1;::::0;148:2:1;133:18;15993:30:0::1;14:177:1::0;13446:167:0;13533:4;2835:5;;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13557:48:::1;::::0;-1:-1:-1;;;13557:48:0;;13586:10:::1;13557:48;::::0;::::1;6885:51:1::0;6952:18;;;6945:34;;;-1:-1:-1;;;;;13557:28:0;::::1;::::0;::::1;::::0;6858:18:1;;13557:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16039:236::-:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;6689:1:::1;16125:12;:21;16117:63;;;::::0;-1:-1:-1;;;16117:63:0;;7442:2:1;16117:63:0::1;::::0;::::1;7424:21:1::0;7481:2;7461:18;;;7454:30;7520:31;7500:18;;;7493:59;7569:18;;16117:63:0::1;7240:353:1::0;16117:63:0::1;16192:11;:26:::0;;;16234:32:::1;::::0;160:25:1;;;16234:32:0::1;::::0;148:2:1;133:18;16234:32:0::1;14:177:1::0;16791:801:0;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16896:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;:42;::::1;;:32;::::0;;::::1;:42;;::::0;16888:72:::1;;;::::0;-1:-1:-1;;;16888:72:0;;7800:2:1;16888:72:0::1;::::0;::::1;7782:21:1::0;7839:2;7819:18;;;7812:30;-1:-1:-1;;;7858:18:1;;;7851:47;7915:18;;16888:72:0::1;7598:341:1::0;16888:72:0::1;-1:-1:-1::0;;;;;16977:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;:41;;-1:-1:-1;;16977:41:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;17035:482:::1;;17064:12;:24:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;17064:24:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;17064:24:0::1;-1:-1:-1::0;;;;;17064:24:0;::::1;;::::0;;17035:482:::1;;;17135:12;:19:::0;17157:1:::1;-1:-1:-1::0;17127:51:0::1;;;::::0;-1:-1:-1;;;17127:51:0;;8146:2:1;17127:51:0::1;::::0;::::1;8128:21:1::0;8185:2;8165:18;;;8158:30;-1:-1:-1;;;8204:18:1;;;8197:45;8259:18;;17127:51:0::1;7944:339:1::0;17127:51:0::1;17202:9;17197:305;17221:12;:19:::0;17217:23;::::1;17197:305;;;17293:5;-1:-1:-1::0;;;;;17274:24:0::1;:12;17287:1;17274:15;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17274:15:0::1;:24:::0;17270:213:::1;;17345:12;17358:19:::0;;:23:::1;::::0;17380:1:::1;::::0;17358:23:::1;:::i;:::-;17345:37;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;17327:12:::1;:15:::0;;-1:-1:-1;;;;;17345:37:0;;::::1;::::0;17340:1;;17327:15;::::1;;;;;:::i;:::-;;;;;;;;;:55;;;;;-1:-1:-1::0;;;;;17327:55:0::1;;;;;-1:-1:-1::0;;;;;17327:55:0::1;;;;;;17409:12;:18;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;17409:18:0;;;;;-1:-1:-1;;;;;;17409:18:0::1;::::0;;;;;17454:5:::1;;17270:213;17242:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17197:305;;;;17035:482;17538:42;::::0;;::::1;;::::0;-1:-1:-1;;;;;17538:42:0;::::1;::::0;::::1;::::0;;;::::1;16791:801:::0;;:::o;14816:189::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;14899:1:::1;14889:7;:11;14881:42;;;::::0;-1:-1:-1;;;14881:42:0;;9024:2:1;14881:42:0::1;::::0;::::1;9006:21:1::0;9063:2;9043:18;;;9036:30;-1:-1:-1;;;9082:18:1;;;9075:48;9140:18;;14881:42:0::1;8822:342:1::0;14881:42:0::1;14934:10;:20:::0;;;14980:17:::1;::::0;160:25:1;;;14980:17:0::1;::::0;148:2:1;133:18;14980:17:0::1;14:177:1::0;9029:156:0;9109:4;9133:44;9147:10;9159:9;9170:6;9133:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;15373:184::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15463:25:0;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;;:34;;-1:-1:-1;;15463:34:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15515;;6256:51:1;;;6323:18;;;6316:50;15515:34:0::1;::::0;6229:18:1;15515:34:0::1;6088:284:1::0;16575:208:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;16667:11:::1;:22:::0;;-1:-1:-1;;;;16667:22:0::1;-1:-1:-1::0;;;16667:22:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;16700:13:::1;:23:::0;;;16741:34:::1;::::0;;9337:41:1;;;9409:2;9394:18;;9387:34;;;16741::0::1;::::0;9310:18:1;16741:34:0::1;9169:258:1::0;6100:29:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6100:29:0;;-1:-1:-1;6100:29:0;:::o;16285:282::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16380:35:0;::::1;16371:73;;;::::0;-1:-1:-1;;;16371:73:0;;9634:2:1;16371:73:0::1;::::0;::::1;9616:21:1::0;9673:2;9653:18;;;9646:30;9712:25;9692:18;;;9685:53;9755:18;;16371:73:0::1;9432:347:1::0;16371:73:0::1;16455:20;:44:::0;;-1:-1:-1;;;;;;16455:44:0::1;-1:-1:-1::0;;;;;16455:44:0;::::1;::::0;;::::1;::::0;;;16521:38:::1;::::0;3189:51:1;;;16521:38:0::1;::::0;3177:2:1;3162:18;16521:38:0::1;3043:203:1::0;2640:97:0;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;13644:316::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;13720:14:::1;::::0;-1:-1:-1;;;13720:14:0;::::1;;;:23;13711:56;;;::::0;-1:-1:-1;;;13711:56:0;;9986:2:1;13711:56:0::1;::::0;::::1;9968:21:1::0;10025:2;10005:18;;;9998:30;-1:-1:-1;;;10044:18:1;;;10037:49;10103:18;;13711:56:0::1;9784:343:1::0;13711:56:0::1;13778:14;:24:::0;;-1:-1:-1;;;;13778:24:0::1;-1:-1:-1::0;;;13778:24:0;::::1;;;;::::0;;13827:12:::1;13813:11;:26:::0;;;13887:10:::1;::::0;13870:28:::1;::::0;13827:12;13870:16:::1;:28::i;:::-;13850:17;:48:::0;13916:36:::1;::::0;1419:14:1;;1412:22;1394:41;;13916:36:0::1;::::0;1382:2:1;1367:18;13916:36:0::1;1254:187:1::0;2971:173:0;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;3189:51:1;;;3111:25:0::1;::::0;3162:18:1;3111:25:0::1;3043:203:1::0;15187:178:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15275:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;;;;:32;;-1:-1:-1;;15275:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15325;;6256:51:1;;;6323:18;;;6316:50;15325:32:0::1;::::0;6229:18:1;15325:32:0::1;6088:284:1::0;2856:107:0;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;9571:1759::-;9683:6;;9663:4;;9683:6;;9680:63;;;9699:41;9714:6;9722:9;9733:6;9699:14;:41::i;:::-;9692:48;;;;9680:63;-1:-1:-1;;;;;9759:19:0;;;;;;:11;:19;;;;;;;;9758:20;:47;;;;-1:-1:-1;;;;;;9783:22:0;;;;;;:11;:22;;;;;;;;9782:23;9758:47;9755:125;;;9829:14;;-1:-1:-1;;;9829:14:0;;;;9821:47;;;;-1:-1:-1;;;9821:47:0;;10550:2:1;9821:47:0;;;10532:21:1;10589:2;10569:18;;;10562:30;-1:-1:-1;;;10608:18:1;;;10601:51;10669:18;;9821:47:0;10348:345:1;9821:47:0;9895:16;:14;:16::i;:::-;9892:35;;;9914:10;:8;:10::i;:::-;-1:-1:-1;;;;;9989:33:0;;9941:22;9989:33;;;:25;:33;;;;;;9966:6;;9989:33;;9986:1108;;;-1:-1:-1;;;;;10049:22:0;;;;;;:11;:22;;;;;;;;10045:365;;10136:16;;-1:-1:-1;;;;;10100:20:0;;;;;;:9;:20;;;;;;:32;;10125:6;10100:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10156:28:0;;;;;;:17;:28;;;;;;;;10100:84;10092:128;;;;-1:-1:-1;;;10092:128:0;;10900:2:1;10092:128:0;;;10882:21:1;10939:2;10919:18;;;10912:30;10978:33;10958:18;;;10951:61;11029:18;;10092:128:0;10698:355:1;10092:128:0;10257:12;;10247:6;:22;;:52;;;-1:-1:-1;;;;;;10273:26:0;;;;;;:15;:26;;;;;;;;10247:52;10239:82;;;;-1:-1:-1;;;10239:82:0;;;;;;;:::i;:::-;10357:37;10368:6;10376:9;10387:6;10357:10;:37::i;:::-;10340:54;;10045:365;9986:1108;;;-1:-1:-1;;;;;10432:36:0;;;;;;:25;:36;;;;;;;;10429:665;;;-1:-1:-1;;;;;10496:19:0;;;;;;:11;:19;;;;;;;;10492:202;;10554:12;;10544:6;:22;;:49;;;-1:-1:-1;;;;;;10570:23:0;;;;;;:15;:23;;;;;;;;10544:49;10536:79;;;;-1:-1:-1;;;10536:79:0;;;;;;;:::i;:::-;10651:27;10663:6;10671;10651:11;:27::i;10429:665::-;-1:-1:-1;;;;;10732:19:0;;;;;;:11;:19;;;;;;;;10727:356;;10817:16;;-1:-1:-1;;;;;10781:20:0;;;;;;:9;:20;;;;;;:32;;10806:6;10781:24;:32::i;:::-;:52;;:84;;;-1:-1:-1;;;;;;10837:28:0;;;;;;:17;:28;;;;;;;;10781:84;10773:128;;;;-1:-1:-1;;;10773:128:0;;10900:2:1;10773:128:0;;;10882:21:1;10939:2;10919:18;;;10912:30;10978:33;10958:18;;;10951:61;11029:18;;10773:128:0;10698:355:1;10773:128:0;10938:12;;10928:6;:22;;:49;;;-1:-1:-1;;;;;;10954:23:0;;;;;;:15;:23;;;;;;;;10928:49;10920:79;;;;-1:-1:-1;;;10920:79:0;;;;;;;:::i;:::-;11035:31;11051:6;11059;11035:15;:31::i;:::-;11018:48;;10727:356;-1:-1:-1;;;;;11126:17:0;;;;;;:9;:17;;;;;;:29;;11148:6;11126:21;:29::i;:::-;-1:-1:-1;;;;;11106:17:0;;;;;;;:9;:17;;;;;;:49;;;;11189:20;;;;;;;:40;;11214:14;11189:24;:40::i;:::-;-1:-1:-1;;;;;11166:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11257:43;;;;;;-1:-1:-1;;;;;;;;;;;11257:43:0;;;11285:14;160:25:1;;148:2;133:18;;14:177;11257:43:0;;;;;;;;-1:-1:-1;11318:4:0;;9571:1759;-1:-1:-1;;;;9571:1759:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;11739:2:1;199:46:0;;;11721:21:1;11778:2;11758:18;;;11751:30;11817:29;11797:18;;;11790:57;11864:18;;199:46:0;11537:351:1;11342:330:0;11472:53;;;;;;;;;;;-1:-1:-1;;;11472:53:0;;;;;;;;-1:-1:-1;;;;;11472:17:0;;11435:4;11472:17;;;:9;:17;;;;;;;:53;;11494:6;;11472:21;:53::i;:::-;-1:-1:-1;;;;;11452:17:0;;;;;;;:9;:17;;;;;;:73;;;;11559:20;;;;;;;:32;;11584:6;11559:24;:32::i;:::-;-1:-1:-1;;;;;11536:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11607:35;;;;;;-1:-1:-1;;;;;;;;;;;11607:35:0;;;11635:6;160:25:1;;148:2;133:18;;14:177;11607:35:0;;;;;;;;-1:-1:-1;11660:4:0;11342:330;;;;;:::o;13085:226::-;13194:10;13134:4;13168:37;;;:25;:37;;;;;;;;13167:38;:58;;;;-1:-1:-1;13219:6:0;;;;13218:7;13167:58;:82;;;;-1:-1:-1;13238:11:0;;-1:-1:-1;;;13238:11:0;;;;13167:82;:136;;;;-1:-1:-1;;13290:13:0;;13280:4;13262:24;;;;:9;:24;;;;;;:41;;;13085:226::o;13968:376::-;7093:6;:13;;-1:-1:-1;;7093:13:0;7102:4;7093:13;;;14041:16:::1;::::0;;14055:1:::1;14041:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14041:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14041:16:0::1;14017:40;;14086:4;14068;14073:1;14068:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14068:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14112:4:::1;::::0;14102:7;;14112:4;::::1;::::0;14102;;14112;;14102:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14102:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;14129:6:::1;::::0;14219:4:::1;14129:6;14201:24:::0;;;:9:::1;:24:::0;;;;;;;;14275:20:::1;::::0;14129:207;;-1:-1:-1;;;14129:207:0;;:6;;::::1;::::0;:57:::1;::::0;:207:::1;::::0;14201:24;;14129:6;;14256:4;;14275:20;;;::::1;::::0;14310:15:::1;::::0;14129:207:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7111:6:0;:14;;-1:-1:-1;;7111:14:0;;;-1:-1:-1;;;13968:376:0:o;11693:578::-;11820:11;;11861:17;;11782:7;;11820:11;11846:12;:32;11842:171;;;11912:4;;-1:-1:-1;;;;;11899:17:0;;;11912:4;;11899:17;;;;:49;;-1:-1:-1;11941:6:0;;-1:-1:-1;;;;;11920:28:0;;;11941:6;;11920:28;;11899:49;11895:103;;;-1:-1:-1;11980:2:0;11895:103;12025:17;12045:40;6743:3;12045:20;:6;12056:8;12045:10;:20::i;:::-;:24;;:40::i;:::-;12143:4;12125:24;;;;:9;:24;;;;;;12025:60;;-1:-1:-1;12125:39:0;;12025:60;12125:28;:39::i;:::-;12116:4;12098:24;;;;:9;:24;;;;;;;:66;;;;12180:42;;-1:-1:-1;;;;;12180:42:0;;;-1:-1:-1;;;;;;;;;;;12180:42:0;;;12212:9;160:25:1;;148:2;133:18;;14:177;12180:42:0;;;;;;;;12242:21;:6;12253:9;12242:10;:21::i;:::-;12235:28;11693:578;-1:-1:-1;;;;;;11693:578:0:o;12279:354::-;12350:7;12369:17;12389:44;6743:3;12389:24;12400:12;;12389:6;:10;;:24;;;;:::i;:44::-;12491:4;12473:24;;;;:9;:24;;;;;;12369:64;;-1:-1:-1;12473:39:0;;12369:64;12473:28;:39::i;:::-;12464:4;12446:24;;;;:9;:24;;;;;;;:66;;;;12528:42;;-1:-1:-1;;;;;12528:42:0;;;-1:-1:-1;;;;;;;;;;;12528:42:0;;;12560:9;160:25:1;;148:2;133:18;;14:177;12528:42:0;;;;;;;;12590:21;:6;12601:9;12590:10;:21::i;:::-;12583:28;12279:354;-1:-1:-1;;;;12279:354:0:o;12641:432::-;12716:7;12735:17;12755:43;6743:3;12755:23;12766:11;;12755:6;:10;;:23;;;;:::i;:43::-;12735:63;-1:-1:-1;12839:13:0;;12835:176;;12914:4;12896:24;;;;:9;:24;;;;;;:39;;12925:9;12896:28;:39::i;12835:176::-;13043:21;:6;13054:9;13043:10;:21::i;620:250::-;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;13385:2:1;785:56:0;;;13367:21:1;13424:2;13404:18;;;13397:30;13463:34;13443:18;;;13436:62;-1:-1:-1;;;13514:18:1;;;13507:31;13555:19;;785:56:0;13183:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:247::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;1613:9;1600:23;1632:31;1657:5;1632:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2533:118::-;2619:5;2612:13;2605:21;2598:5;2595:32;2585:60;;2641:1;2638;2631:12;2656:382;2721:6;2729;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2837:9;2824:23;2856:31;2881:5;2856:31;:::i;:::-;2906:5;-1:-1:-1;2963:2:1;2948:18;;2935:32;2976:30;2935:32;2976:30;:::i;:::-;3025:7;3015:17;;;2656:382;;;;;:::o;3251:388::-;3319:6;3327;3380:2;3368:9;3359:7;3355:23;3351:32;3348:52;;;3396:1;3393;3386:12;3348:52;3435:9;3422:23;3454:31;3479:5;3454:31;:::i;:::-;3504:5;-1:-1:-1;3561:2:1;3546:18;;3533:32;3574:33;3533:32;3574:33;:::i;3644:309::-;3709:6;3717;3770:2;3758:9;3749:7;3745:23;3741:32;3738:52;;;3786:1;3783;3776:12;3738:52;3825:9;3812:23;3844:28;3866:5;3844:28;:::i;3958:241::-;4014:6;4067:2;4055:9;4046:7;4042:23;4038:32;4035:52;;;4083:1;4080;4073:12;4035:52;4122:9;4109:23;4141:28;4163:5;4141:28;:::i;4690:335::-;4892:2;4874:21;;;4931:2;4911:18;;;4904:30;-1:-1:-1;;;4965:2:1;4950:18;;4943:41;5016:2;5001:18;;4690:335::o;5386:127::-;5447:10;5442:3;5438:20;5435:1;5428:31;5478:4;5475:1;5468:15;5502:4;5499:1;5492:15;5518:217;5558:1;5584;5574:132;;5628:10;5623:3;5619:20;5616:1;5609:31;5663:4;5660:1;5653:15;5691:4;5688:1;5681:15;5574:132;-1:-1:-1;5720:9:1;;5518:217::o;6377:329::-;6579:2;6561:21;;;6618:1;6598:18;;;6591:29;-1:-1:-1;;;6651:2:1;6636:18;;6629:36;6697:2;6682:18;;6377:329::o;6990:245::-;7057:6;7110:2;7098:9;7089:7;7085:23;7081:32;7078:52;;;7126:1;7123;7116:12;7078:52;7158:9;7152:16;7177:28;7199:5;7177:28;:::i;8288:127::-;8349:10;8344:3;8340:20;8337:1;8330:31;8380:4;8377:1;8370:15;8404:4;8401:1;8394:15;8420:125;8460:4;8488:1;8485;8482:8;8479:34;;;8493:18;;:::i;:::-;-1:-1:-1;8530:9:1;;8420:125::o;8550:127::-;8611:10;8606:3;8602:20;8599:1;8592:31;8642:4;8639:1;8632:15;8666:4;8663:1;8656:15;8682:135;8721:3;8742:17;;;8739:43;;8762:18;;:::i;:::-;-1:-1:-1;8809:1:1;8798:13;;8682:135::o;11058:341::-;11260:2;11242:21;;;11299:2;11279:18;;;11272:30;-1:-1:-1;;;11333:2:1;11318:18;;11311:47;11390:2;11375:18;;11058:341::o;11404:128::-;11444:3;11475:1;11471:6;11468:1;11465:13;11462:39;;;11481:18;;:::i;:::-;-1:-1:-1;11517:9:1;;11404:128::o;12025:980::-;12287:4;12335:3;12324:9;12320:19;12366:6;12355:9;12348:25;12392:2;12430:6;12425:2;12414:9;12410:18;12403:34;12473:3;12468:2;12457:9;12453:18;12446:31;12497:6;12532;12526:13;12563:6;12555;12548:22;12601:3;12590:9;12586:19;12579:26;;12640:2;12632:6;12628:15;12614:29;;12661:1;12671:195;12685:6;12682:1;12679:13;12671:195;;;12750:13;;-1:-1:-1;;;;;12746:39:1;12734:52;;12841:15;;;;12806:12;;;;12782:1;12700:9;12671:195;;;-1:-1:-1;;;;;;;12922:32:1;;;;12917:2;12902:18;;12895:60;-1:-1:-1;;;12986:3:1;12971:19;12964:35;12883:3;12025:980;-1:-1:-1;;;12025:980:1:o;13010:168::-;13050:7;13116:1;13112;13108:6;13104:14;13101:1;13098:21;13093:1;13086:9;13079:17;13075:45;13072:71;;;13123:18;;:::i;:::-;-1:-1:-1;13163:9:1;;13010:168::o

Swarm Source

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