ETH Price: $3,398.04 (-1.77%)
Gas: 6 Gwei

Token

StealthSwap (SWAP)
 

Overview

Max Total Supply

197,800,000 SWAP

Holders

148

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.66459116 SWAP

Value
$0.00
0xc24816af6cc336e9a0dc9bace3db8ad0c5bb13e3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
StealthSwap

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at Etherscan.io on 2022-05-15
*/

/*

$𝕊𝕎𝔸ℙ 𝔹𝕪 𝕊𝕥𝕖𝕒𝕝𝕥𝕙ℙ𝕒𝕕  
𝕎𝕖𝕓𝕤𝕚𝕥𝕖 𝕙𝕥𝕥𝕡𝕤://𝕤𝕥𝕖𝕒𝕝𝕥𝕙𝕤𝕨𝕒𝕡.𝕥𝕣𝕒𝕕𝕖 
𝕋𝕘 𝕙𝕥𝕥𝕡𝕤://𝕥.𝕞𝕖/𝕊𝕥𝕖𝕒𝕝𝕥𝕙𝕊𝕨𝕒𝕡𝕠𝕣𝕥𝕒𝕝 
𝕊𝕋𝔼𝔸𝕃𝕋ℍ 𝕙𝕥𝕥𝕡𝕤://𝕤𝕥𝕖𝕒𝕝𝕥𝕙𝕡𝕒𝕕.𝕩𝕪𝕫                                                                                                                                                                                                                                                   
*/


// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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 Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract StealthSwap is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "StealthSwap";
    string private _symbol = "SWAP";
    uint8 private _decimals = 8; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint _buydevelopmentTax = 0;
    uint _buyLpTax = 1;

    uint _selldevelopmentTax = 1;
    uint _sellLpTax = 0;

    uint256 public _totalbuyFee = 1;
    uint256 public _totalSellFee = 1;

    address public developmentWallet = address(0x287d3027E68f39756E44E80AaE98162faBCd45F1);
    address public lpReceiverWallet;
    
    uint256 feedenominator = 100;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 197_800_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(1).div(100);     // 1%
    uint256 public _walletMax = _totalSupply.mul(1).div(100);        // 1%

    uint256 public swapThreshold = 95_000 * 10**_decimals;

    bool public swapEnabled = true;
    bool public swapbylimit = false;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier onlyGuard() {
        require(msg.sender == lpReceiverWallet,"Invalid Caller");
        _;
    }

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory())
            .createPair(address(this), _dexRouter.WETH());

        dexRouter = _dexRouter;
        
        lpReceiverWallet = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexPair)] = ~uint256(0);
        _allowances[address(this)][address(dexRouter)] = ~uint256(0);

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

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
       return _balances[account];     
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_totalbuyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_totalSellFee).div(feedenominator);
            }

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

            return amount.sub(feeAmount);
        }
        
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 totalShares = _totalbuyFee.add(_totalSellFee);

        uint256 _liquidityShare = _buyLpTax.add(_sellLpTax);
        // uint256 _developmentShare = _buydevelopmentTax.add(_selldevelopmentTax);

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2));
        
        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHDevelopment = amountReceived.sub(amountETHLiquidity);

        if(amountETHDevelopment > 0)
            payable(developmentWallet).transfer(amountETHDevelopment);

        if(amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);

    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(dexRouter), tokenAmount);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            lpReceiverWallet,
            block.timestamp
        );
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setBuyFee(uint _developmentFee, uint _lpFee) external onlyOwner {    
        _buydevelopmentTax = _developmentFee;
        _buyLpTax = _lpFee;
        _totalbuyFee = _buydevelopmentTax.add(_buyLpTax);
    }

    function setSellFee(uint _developmentFee, uint _lpFee) external onlyOwner {
        _selldevelopmentTax = _developmentFee;
        _sellLpTax = _lpFee;
        _totalSellFee = _selldevelopmentTax.add(_sellLpTax);
    }

    function removeLimits() external onlyGuard {
        EnableTxLimit = false;
        checkWalletLimit =  false;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setLpWallet(address _newWallet) external onlyOwner {
        lpReceiverWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalbuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","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":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpReceiverWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","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":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600b60c09081526a0537465616c7468537761760ac1b60e0526001906200002d9082620006a3565b506040805180820190915260048152630535741560e41b6020820152600290620000589082620006a3565b506003805460ff1916600890811790915561dead6080525f60a08190526004819055600160058190556006819055600791909155808255600955600a80546001600160a01b03191673287d3027e68f39756e44e80aae98162fabcd45f11781556064600c55620000c9919062000878565b620000d990630bca304062000888565b6013819055620000fa90606490620000f39060016200049e565b9062000531565b6014556013546200011590606490620000f39060016200049e565b6015556003546200012b9060ff16600a62000878565b6200013a906201731862000888565b6016556017805463ffffffff191663010100011790553480156200015c575f80fd5b5062000168336200057a565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e39190620008a2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002559190620008a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c69190620008a2565b601880546001600160a01b03199081166001600160a01b0393841617825560178054600160201b600160c01b0319166401000000008686168102919091178255600b805433941684179055305f818152600f60209081526040808320805460ff199081166001908117909255888552828520805482168317905587548790048b168552828520805482168317905588855260118452828520805482168317905587548790048b168552828520805482168317905585855282852080548216831790556080518b16808652838620805483168417905560a0518c1680875284872080548416851790558b548d1687528487208054841685179055908652601285528386208054831684179055855282852080548216831790558885528285208054821683179055858552828520805482168317905587548790048b168552828520805482168317905589548b1685526010845282852080549091169091179055928252600e81528282209654881682529586528181205f1990819055935492909204909516815284812091909155601354828252600d84528482208190559351938452909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000937565b5f825f03620004af57505f6200052b565b5f620004bc838562000888565b905082620004cb8583620008ca565b14620005285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200052883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005c960201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183620005ec5760405162461bcd60e51b81526004016200051f9190620008ea565b505f620005fa8486620008ca565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200062c57607f821691505b6020821081036200064b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200069e575f81815260208120601f850160051c81016020861015620006795750805b601f850160051c820191505b818110156200069a5782815560010162000685565b5050505b505050565b81516001600160401b03811115620006bf57620006bf62000603565b620006d781620006d0845462000617565b8462000651565b602080601f8311600181146200070d575f8415620006f55750858301515b5f19600386901b1c1916600185901b1785556200069a565b5f85815260208120601f198616915b828110156200073d578886015182559484019460019091019084016200071c565b50858210156200075b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620007bf57815f1904821115620007a357620007a36200076b565b80851615620007b157918102915b93841c939080029062000784565b509250929050565b5f82620007d7575060016200052b565b81620007e557505f6200052b565b8160018114620007fe5760028114620008095762000829565b60019150506200052b565b60ff8411156200081d576200081d6200076b565b50506001821b6200052b565b5060208310610133831016604e8410600b84101617156200084e575081810a6200052b565b6200085a83836200077f565b805f19048211156200087057620008706200076b565b029392505050565b5f6200052860ff841683620007c7565b80820281158282048414176200052b576200052b6200076b565b5f60208284031215620008b3575f80fd5b81516001600160a01b038116811462000528575f80fd5b5f82620008e557634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020808352835180828501525f5b818110156200091757858101830151858201604001528201620008f9565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a0516124ab620009675f395f818161039a0152610b0e01525f818161042f0152610b4801526124ab5ff3fe6080604052600436106102f6575f3560e01c8063751039fc11610189578063c16dd4a4116100d8578063e9fd339411610092578063f2fde38b1161006d578063f2fde38b1461093a578063f71b9bbf14610959578063f872858a14610978578063fb0ecfa414610998575f80fd5b8063e9fd3394146108de578063ee828db3146108fc578063f242ab411461091b575f80fd5b8063c16dd4a4146107fb578063c867d60b1461081a578063cea9d26f14610848578063dd62ed3e14610867578063df8408fe146108ab578063e6b2603b146108ca575f80fd5b806395d89b4111610143578063a9059cbb1161011e578063a9059cbb1461077f578063ae85ade61461079e578063b94b0aef146107bd578063c04a5414146107dc575f80fd5b806395d89b4114610737578063a1c247801461074b578063a457c2d714610760575f80fd5b8063751039fc1461069a5780637d1db4a5146106ae578063807c2d9c146106c357806388f8df0a146106d85780638b42507f146106ed5780638da5cb5b1461071b575f80fd5b8063468c7ee211610245578063651a8987116101ff57806370a08231116101da57806370a0823114610614578063715018a614610648578063728d41c91461065c57806372ac24861461067b575f80fd5b8063651a8987146105bd5780636ac9a870146105dc5780636ddd1713146105fb575f80fd5b8063468c7ee2146104f25780634974d88f146105135780635342acb41461053257806359fac517146105605780635c85974f1461057f5780635e42358c1461059e575f80fd5b806323b872dd116102b05780632fb97b371161028b5780632fb97b3714610465578063313ce5671461048457806339509351146104a55780633ecad271146104c4575f80fd5b806323b872dd146103ff57806327c8f8351461041e5780632b112e4914610451575f80fd5b80630445b6671461030157806306fdde03146103295780630758d9241461034a5780630930907b14610389578063095ea7b3146103bc57806318160ddd146103eb575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b5061031660165481565b6040519081526020015b60405180910390f35b348015610334575f80fd5b5061033d6109b7565b6040516103209190612069565b348015610355575f80fd5b506017546103719064010000000090046001600160a01b031681565b6040516001600160a01b039091168152602001610320565b348015610394575f80fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c7575f80fd5b506103db6103d63660046120af565b610a47565b6040519015158152602001610320565b3480156103f6575f80fd5b50601354610316565b34801561040a575f80fd5b506103db6104193660046120d9565b610a5d565b348015610429575f80fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b34801561045c575f80fd5b50610316610b04565b348015610470575f80fd5b50600b54610371906001600160a01b031681565b34801561048f575f80fd5b5060035460405160ff9091168152602001610320565b3480156104b0575f80fd5b506103db6104bf3660046120af565b610b95565b3480156104cf575f80fd5b506103db6104de366004612117565b60106020525f908152604090205460ff1681565b3480156104fd575f80fd5b5061051161050c366004612117565b610bca565b005b34801561051e575f80fd5b5061051161052d366004612146565b610c1e565b34801561053d575f80fd5b506103db61054c366004612117565b600f6020525f908152604090205460ff1681565b34801561056b575f80fd5b5061051161057a366004612117565b610c65565b34801561058a575f80fd5b5061051161059936600461215f565b610cbc565b3480156105a9575f80fd5b506017546103db9062010000900460ff1681565b3480156105c8575f80fd5b506105116105d7366004612176565b610cea565b3480156105e7575f80fd5b506105116105f63660046121a9565b610d3d565b348015610606575f80fd5b506017546103db9060ff1681565b34801561061f575f80fd5b5061031661062e366004612117565b6001600160a01b03165f908152600d602052604090205490565b348015610653575f80fd5b50610511610d81565b348015610667575f80fd5b5061051161067636600461215f565b610db5565b348015610686575f80fd5b50610511610695366004612117565b610de3565b3480156106a5575f80fd5b50610511610e2e565b3480156106b9575f80fd5b5061031660145481565b3480156106ce575f80fd5b5061031660155481565b3480156106e3575f80fd5b5061031660085481565b3480156106f8575f80fd5b506103db610707366004612117565b60126020525f908152604090205460ff1681565b348015610726575f80fd5b505f546001600160a01b0316610371565b348015610742575f80fd5b5061033d610e67565b348015610756575f80fd5b5061031660095481565b34801561076b575f80fd5b506103db61077a3660046120af565b610e76565b34801561078a575f80fd5b506103db6107993660046120af565b610ec3565b3480156107a9575f80fd5b506105116107b8366004612176565b610ecf565b3480156107c8575f80fd5b506105116107d73660046121c9565b610f22565b3480156107e7575f80fd5b50600a54610371906001600160a01b031681565b348015610806575f80fd5b50610511610815366004612176565b610f73565b348015610825575f80fd5b506103db610834366004612117565b60116020525f908152604090205460ff1681565b348015610853575f80fd5b506105116108623660046120d9565b610ff0565b348015610872575f80fd5b50610316610881366004612202565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b3480156108b6575f80fd5b506105116108c5366004612176565b6110fe565b3480156108d5575f80fd5b50610511611151565b3480156108e9575f80fd5b506017546103db90610100900460ff1681565b348015610907575f80fd5b50610511610916366004612146565b61120a565b348015610926575f80fd5b50601854610371906001600160a01b031681565b348015610945575f80fd5b50610511610954366004612117565b61124f565b348015610964575f80fd5b50610511610973366004612117565b6112e6565b348015610983575f80fd5b506017546103db906301000000900460ff1681565b3480156109a3575f80fd5b506105116109b23660046121a9565b611331565b6060600180546109c690612239565b80601f01602080910402602001604051908101604052809291908181526020018280546109f290612239565b8015610a3d5780601f10610a1457610100808354040283529160200191610a3d565b820191905f5260205f20905b815481529060010190602001808311610a2057829003601f168201915b5050505050905090565b5f610a53338484611375565b5060015b92915050565b5f610a69848484611498565b50610af98433610af4856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600e5f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f610ad43390565b6001600160a01b0316815260208101919091526040015f205491906117fa565b611375565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f908152600d6020526040812054610b9090610b8a610b817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f908152600d602052604090205490565b60135490611832565b90611832565b905090565b335f818152600e602090815260408083206001600160a01b03871684529091528120549091610a53918590610af49086611873565b5f546001600160a01b03163314610bfc5760405162461bcd60e51b8152600401610bf390612271565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610c475760405162461bcd60e51b8152600401610bf390612271565b6017805491151563010000000263ff00000019909216919091179055565b5f546001600160a01b03163314610c8e5760405162461bcd60e51b8152600401610bf390612271565b601780546001600160a01b0390921664010000000002640100000000600160c01b0319909216919091179055565b5f546001600160a01b03163314610ce55760405162461bcd60e51b8152600401610bf390612271565b601455565b5f546001600160a01b03163314610d135760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d665760405162461bcd60e51b8152600401610bf390612271565b60068290556007819055610d7a8282611873565b6009555050565b5f546001600160a01b03163314610daa5760405162461bcd60e51b8152600401610bf390612271565b610db35f6118d1565b565b5f546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610bf390612271565b601555565b5f546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610bf390612271565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314610e585760405162461bcd60e51b8152600401610bf3906122a6565b6017805463ffff000019169055565b6060600280546109c690612239565b5f610a533384610af48560405180606001604052806025815260200161245160259139335f908152600e602090815260408083206001600160a01b038d16845290915290205491906117fa565b5f610af9338484611498565b5f546001600160a01b03163314610ef85760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b600b546001600160a01b03163314610f4c5760405162461bcd60e51b8152600401610bf3906122a6565b6017805461ffff191692151561ff0019169290921761010091151591909102179055601655565b5f546001600160a01b03163314610f9c5760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b0382165f908152601060205260409020805460ff19168215801591909117909155610fec576001600160a01b0382165f908152601160205260409020805460ff19168215151790555b5050565b600b546001600160a01b0316331461101a5760405162461bcd60e51b8152600401610bf3906122a6565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161107291906122ce565b5f604051808303815f865af19150503d805f81146110ab576040519150601f19603f3d011682016040523d82523d5f602084013e6110b0565b606091505b50509050806110f85760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610bf3565b50505050565b5f546001600160a01b031633146111275760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b600b546001600160a01b0316331461117b5760405162461bcd60e51b8152600401610bf3906122a6565b6040515f90339047908381818185875af1925050503d805f81146111ba576040519150601f19603f3d011682016040523d82523d5f602084013e6111bf565b606091505b50509050806112075760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610bf3565b50565b5f546001600160a01b031633146112335760405162461bcd60e51b8152600401610bf390612271565b60178054911515620100000262ff000019909216919091179055565b5f546001600160a01b031633146112785760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b0381166112dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bf3565b611207816118d1565b5f546001600160a01b0316331461130f5760405162461bcd60e51b8152600401610bf390612271565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461135a5760405162461bcd60e51b8152600401610bf390612271565b6004829055600581905561136e8282611873565b6008555050565b6001600160a01b0383166113d75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bf3565b6001600160a01b0382166114385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bf3565b6001600160a01b038381165f818152600e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166114ab575f80fd5b6001600160a01b0383166114bd575f80fd5b5f82116114c8575f80fd5b601854600160a01b900460ff16156114ec576114e5848484611920565b9050610afd565b305f908152600d6020526040902054601654811080159081906115195750601854600160a01b900460ff16155b801561153d57506001600160a01b0386165f9081526010602052604090205460ff16155b801561154b575060175460ff165b801561156f57506001600160a01b0386165f908152600f602052604090205460ff16155b801561159357506001600160a01b0385165f908152600f602052604090205460ff16155b156115a1576115a182611a03565b6001600160a01b0386165f9081526012602052604090205460ff161580156115e157506001600160a01b0385165f9081526012602052604090205460ff16155b80156115f5575060175462010000900460ff165b15611642576014548411156116425760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b6044820152606401610bf3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600d90915291909120546116939186906117fa565b6001600160a01b0387165f908152600d60205260408120919091556116b88787611b4b565b6116cc576116c7878787611be5565b6116ce565b845b6017549091506301000000900460ff16801561170257506001600160a01b0386165f9081526011602052604090205460ff16155b15611771576015546117328261172c896001600160a01b03165f908152600d602052604090205490565b90611873565b11156117715760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b6044820152606401610bf3565b6001600160a01b0386165f908152600d60205260409020546117939082611873565b6001600160a01b038088165f818152600d602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117e69085815260200190565b60405180910390a360019350505050610afd565b5f818484111561181d5760405162461bcd60e51b8152600401610bf39190612069565b505f61182984866122fd565b95945050505050565b5f610afd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117fa565b5f8061187f8385612310565b905083811015610afd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bf3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600d909152918220546119709184906117fa565b6001600160a01b038086165f908152600d6020526040808220939093559085168152205461199e9083611873565b6001600160a01b038085165f818152600d602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119f19086815260200190565b60405180910390a35060019392505050565b6018805460ff60a01b1916600160a01b179055601754610100900460ff1615611a2b57506016545b5f611a4360095460085461187390919063ffffffff16565b90505f611a5d60075460055461187390919063ffffffff16565b90505f611a776002611a7185818887611ce9565b90611d67565b90505f611a848583611832565b905047611a9082611da8565b5f611a9b4783611832565b90505f611ab3611aac876002611d67565b8890611832565b90505f611ac76002611a718481878c611ce9565b90505f611ad48483611832565b90508015611b1557600a546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611b13573d5f803e3d5ffd5b505b5f82118015611b2357505f87115b15611b3257611b328783611f5a565b50506018805460ff60a01b191690555050505050505050565b6001600160a01b0382165f908152600f602052604081205460ff1680611b8857506001600160a01b0382165f908152600f602052604090205460ff165b15611b9557506001610a57565b6001600160a01b0383165f9081526010602052604090205460ff1680611bd257506001600160a01b0382165f9081526010602052604090205460ff165b15611bde57505f610a57565b505f610a57565b6001600160a01b0383165f90815260106020526040812054819060ff1615611c2957611c22600c54611a7160085486611ce990919063ffffffff16565b9050611c67565b6001600160a01b0384165f9081526010602052604090205460ff1615611c6757611c64600c54611a7160095486611ce990919063ffffffff16565b90505b8015611cdf57305f908152600d6020526040902054611c869082611873565b305f818152600d6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd69085815260200190565b60405180910390a35b6118298382611832565b5f825f03611cf857505f610a57565b5f611d038385612323565b905082611d10858361233a565b14610afd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bf3565b5f610afd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061201b565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ddb57611ddb612359565b60200260200101906001600160a01b031690816001600160a01b031681525050601760049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e70919061236d565b81600181518110611e8357611e83612359565b6001600160a01b039283166020918202929092010152601754611eb191309164010000000090041684611375565b60175460405163791ac94760e01b81526401000000009091046001600160a01b03169063791ac94790611ef09085905f908690309042906004016123ca565b5f604051808303815f87803b158015611f07575f80fd5b505af1158015611f19573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611f4e929190612405565b60405180910390a15050565b601754611f7a90309064010000000090046001600160a01b031684611375565b601754600b5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a4820152640100000000909204169063f305d71990839060c40160606040518083038185885af1158015611fef573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120149190612425565b5050505050565b5f818361203b5760405162461bcd60e51b8152600401610bf39190612069565b505f611829848661233a565b5f5b83811015612061578181015183820152602001612049565b50505f910152565b602081525f8251806020840152612087816040850160208701612047565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611207575f80fd5b5f80604083850312156120c0575f80fd5b82356120cb8161209b565b946020939093013593505050565b5f805f606084860312156120eb575f80fd5b83356120f68161209b565b925060208401356121068161209b565b929592945050506040919091013590565b5f60208284031215612127575f80fd5b8135610afd8161209b565b80358015158114612141575f80fd5b919050565b5f60208284031215612156575f80fd5b610afd82612132565b5f6020828403121561216f575f80fd5b5035919050565b5f8060408385031215612187575f80fd5b82356121928161209b565b91506121a060208401612132565b90509250929050565b5f80604083850312156121ba575f80fd5b50508035926020909101359150565b5f805f606084860312156121db575f80fd5b833592506121eb60208501612132565b91506121f960408501612132565b90509250925092565b5f8060408385031215612213575f80fd5b823561221e8161209b565b9150602083013561222e8161209b565b809150509250929050565b600181811c9082168061224d57607f821691505b60208210810361226b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d24b73b30b634b21021b0b63632b960911b604082015260600190565b5f82516122df818460208701612047565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a5757610a576122e9565b80820180821115610a5757610a576122e9565b8082028115828204841417610a5757610a576122e9565b5f8261235457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561237d575f80fd5b8151610afd8161209b565b5f8151808452602080850194508084015f5b838110156123bf5781516001600160a01b03168752958201959082019060010161239a565b509495945050505050565b85815284602082015260a060408201525f6123e860a0830186612388565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f61241d6040830184612388565b949350505050565b5f805f60608486031215612437575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e5e46214a62cdc2c2606cd47e79a0222aa1d48fbcc552659e0692589eced553664736f6c63430008150033

Deployed Bytecode

0x6080604052600436106102f6575f3560e01c8063751039fc11610189578063c16dd4a4116100d8578063e9fd339411610092578063f2fde38b1161006d578063f2fde38b1461093a578063f71b9bbf14610959578063f872858a14610978578063fb0ecfa414610998575f80fd5b8063e9fd3394146108de578063ee828db3146108fc578063f242ab411461091b575f80fd5b8063c16dd4a4146107fb578063c867d60b1461081a578063cea9d26f14610848578063dd62ed3e14610867578063df8408fe146108ab578063e6b2603b146108ca575f80fd5b806395d89b4111610143578063a9059cbb1161011e578063a9059cbb1461077f578063ae85ade61461079e578063b94b0aef146107bd578063c04a5414146107dc575f80fd5b806395d89b4114610737578063a1c247801461074b578063a457c2d714610760575f80fd5b8063751039fc1461069a5780637d1db4a5146106ae578063807c2d9c146106c357806388f8df0a146106d85780638b42507f146106ed5780638da5cb5b1461071b575f80fd5b8063468c7ee211610245578063651a8987116101ff57806370a08231116101da57806370a0823114610614578063715018a614610648578063728d41c91461065c57806372ac24861461067b575f80fd5b8063651a8987146105bd5780636ac9a870146105dc5780636ddd1713146105fb575f80fd5b8063468c7ee2146104f25780634974d88f146105135780635342acb41461053257806359fac517146105605780635c85974f1461057f5780635e42358c1461059e575f80fd5b806323b872dd116102b05780632fb97b371161028b5780632fb97b3714610465578063313ce5671461048457806339509351146104a55780633ecad271146104c4575f80fd5b806323b872dd146103ff57806327c8f8351461041e5780632b112e4914610451575f80fd5b80630445b6671461030157806306fdde03146103295780630758d9241461034a5780630930907b14610389578063095ea7b3146103bc57806318160ddd146103eb575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b5061031660165481565b6040519081526020015b60405180910390f35b348015610334575f80fd5b5061033d6109b7565b6040516103209190612069565b348015610355575f80fd5b506017546103719064010000000090046001600160a01b031681565b6040516001600160a01b039091168152602001610320565b348015610394575f80fd5b506103717f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c7575f80fd5b506103db6103d63660046120af565b610a47565b6040519015158152602001610320565b3480156103f6575f80fd5b50601354610316565b34801561040a575f80fd5b506103db6104193660046120d9565b610a5d565b348015610429575f80fd5b506103717f000000000000000000000000000000000000000000000000000000000000dead81565b34801561045c575f80fd5b50610316610b04565b348015610470575f80fd5b50600b54610371906001600160a01b031681565b34801561048f575f80fd5b5060035460405160ff9091168152602001610320565b3480156104b0575f80fd5b506103db6104bf3660046120af565b610b95565b3480156104cf575f80fd5b506103db6104de366004612117565b60106020525f908152604090205460ff1681565b3480156104fd575f80fd5b5061051161050c366004612117565b610bca565b005b34801561051e575f80fd5b5061051161052d366004612146565b610c1e565b34801561053d575f80fd5b506103db61054c366004612117565b600f6020525f908152604090205460ff1681565b34801561056b575f80fd5b5061051161057a366004612117565b610c65565b34801561058a575f80fd5b5061051161059936600461215f565b610cbc565b3480156105a9575f80fd5b506017546103db9062010000900460ff1681565b3480156105c8575f80fd5b506105116105d7366004612176565b610cea565b3480156105e7575f80fd5b506105116105f63660046121a9565b610d3d565b348015610606575f80fd5b506017546103db9060ff1681565b34801561061f575f80fd5b5061031661062e366004612117565b6001600160a01b03165f908152600d602052604090205490565b348015610653575f80fd5b50610511610d81565b348015610667575f80fd5b5061051161067636600461215f565b610db5565b348015610686575f80fd5b50610511610695366004612117565b610de3565b3480156106a5575f80fd5b50610511610e2e565b3480156106b9575f80fd5b5061031660145481565b3480156106ce575f80fd5b5061031660155481565b3480156106e3575f80fd5b5061031660085481565b3480156106f8575f80fd5b506103db610707366004612117565b60126020525f908152604090205460ff1681565b348015610726575f80fd5b505f546001600160a01b0316610371565b348015610742575f80fd5b5061033d610e67565b348015610756575f80fd5b5061031660095481565b34801561076b575f80fd5b506103db61077a3660046120af565b610e76565b34801561078a575f80fd5b506103db6107993660046120af565b610ec3565b3480156107a9575f80fd5b506105116107b8366004612176565b610ecf565b3480156107c8575f80fd5b506105116107d73660046121c9565b610f22565b3480156107e7575f80fd5b50600a54610371906001600160a01b031681565b348015610806575f80fd5b50610511610815366004612176565b610f73565b348015610825575f80fd5b506103db610834366004612117565b60116020525f908152604090205460ff1681565b348015610853575f80fd5b506105116108623660046120d9565b610ff0565b348015610872575f80fd5b50610316610881366004612202565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b3480156108b6575f80fd5b506105116108c5366004612176565b6110fe565b3480156108d5575f80fd5b50610511611151565b3480156108e9575f80fd5b506017546103db90610100900460ff1681565b348015610907575f80fd5b50610511610916366004612146565b61120a565b348015610926575f80fd5b50601854610371906001600160a01b031681565b348015610945575f80fd5b50610511610954366004612117565b61124f565b348015610964575f80fd5b50610511610973366004612117565b6112e6565b348015610983575f80fd5b506017546103db906301000000900460ff1681565b3480156109a3575f80fd5b506105116109b23660046121a9565b611331565b6060600180546109c690612239565b80601f01602080910402602001604051908101604052809291908181526020018280546109f290612239565b8015610a3d5780601f10610a1457610100808354040283529160200191610a3d565b820191905f5260205f20905b815481529060010190602001808311610a2057829003601f168201915b5050505050905090565b5f610a53338484611375565b5060015b92915050565b5f610a69848484611498565b50610af98433610af4856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600e5f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f610ad43390565b6001600160a01b0316815260208101919091526040015f205491906117fa565b611375565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f908152600d6020526040812054610b9090610b8a610b817f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f908152600d602052604090205490565b60135490611832565b90611832565b905090565b335f818152600e602090815260408083206001600160a01b03871684529091528120549091610a53918590610af49086611873565b5f546001600160a01b03163314610bfc5760405162461bcd60e51b8152600401610bf390612271565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610c475760405162461bcd60e51b8152600401610bf390612271565b6017805491151563010000000263ff00000019909216919091179055565b5f546001600160a01b03163314610c8e5760405162461bcd60e51b8152600401610bf390612271565b601780546001600160a01b0390921664010000000002640100000000600160c01b0319909216919091179055565b5f546001600160a01b03163314610ce55760405162461bcd60e51b8152600401610bf390612271565b601455565b5f546001600160a01b03163314610d135760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610d665760405162461bcd60e51b8152600401610bf390612271565b60068290556007819055610d7a8282611873565b6009555050565b5f546001600160a01b03163314610daa5760405162461bcd60e51b8152600401610bf390612271565b610db35f6118d1565b565b5f546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610bf390612271565b601555565b5f546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610bf390612271565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314610e585760405162461bcd60e51b8152600401610bf3906122a6565b6017805463ffff000019169055565b6060600280546109c690612239565b5f610a533384610af48560405180606001604052806025815260200161245160259139335f908152600e602090815260408083206001600160a01b038d16845290915290205491906117fa565b5f610af9338484611498565b5f546001600160a01b03163314610ef85760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b600b546001600160a01b03163314610f4c5760405162461bcd60e51b8152600401610bf3906122a6565b6017805461ffff191692151561ff0019169290921761010091151591909102179055601655565b5f546001600160a01b03163314610f9c5760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b0382165f908152601060205260409020805460ff19168215801591909117909155610fec576001600160a01b0382165f908152601160205260409020805460ff19168215151790555b5050565b600b546001600160a01b0316331461101a5760405162461bcd60e51b8152600401610bf3906122a6565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161107291906122ce565b5f604051808303815f865af19150503d805f81146110ab576040519150601f19603f3d011682016040523d82523d5f602084013e6110b0565b606091505b50509050806110f85760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610bf3565b50505050565b5f546001600160a01b031633146111275760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b600b546001600160a01b0316331461117b5760405162461bcd60e51b8152600401610bf3906122a6565b6040515f90339047908381818185875af1925050503d805f81146111ba576040519150601f19603f3d011682016040523d82523d5f602084013e6111bf565b606091505b50509050806112075760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610bf3565b50565b5f546001600160a01b031633146112335760405162461bcd60e51b8152600401610bf390612271565b60178054911515620100000262ff000019909216919091179055565b5f546001600160a01b031633146112785760405162461bcd60e51b8152600401610bf390612271565b6001600160a01b0381166112dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bf3565b611207816118d1565b5f546001600160a01b0316331461130f5760405162461bcd60e51b8152600401610bf390612271565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461135a5760405162461bcd60e51b8152600401610bf390612271565b6004829055600581905561136e8282611873565b6008555050565b6001600160a01b0383166113d75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bf3565b6001600160a01b0382166114385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bf3565b6001600160a01b038381165f818152600e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166114ab575f80fd5b6001600160a01b0383166114bd575f80fd5b5f82116114c8575f80fd5b601854600160a01b900460ff16156114ec576114e5848484611920565b9050610afd565b305f908152600d6020526040902054601654811080159081906115195750601854600160a01b900460ff16155b801561153d57506001600160a01b0386165f9081526010602052604090205460ff16155b801561154b575060175460ff165b801561156f57506001600160a01b0386165f908152600f602052604090205460ff16155b801561159357506001600160a01b0385165f908152600f602052604090205460ff16155b156115a1576115a182611a03565b6001600160a01b0386165f9081526012602052604090205460ff161580156115e157506001600160a01b0385165f9081526012602052604090205460ff16155b80156115f5575060175462010000900460ff165b15611642576014548411156116425760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b6044820152606401610bf3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600d90915291909120546116939186906117fa565b6001600160a01b0387165f908152600d60205260408120919091556116b88787611b4b565b6116cc576116c7878787611be5565b6116ce565b845b6017549091506301000000900460ff16801561170257506001600160a01b0386165f9081526011602052604090205460ff16155b15611771576015546117328261172c896001600160a01b03165f908152600d602052604090205490565b90611873565b11156117715760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b6044820152606401610bf3565b6001600160a01b0386165f908152600d60205260409020546117939082611873565b6001600160a01b038088165f818152600d602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117e69085815260200190565b60405180910390a360019350505050610afd565b5f818484111561181d5760405162461bcd60e51b8152600401610bf39190612069565b505f61182984866122fd565b95945050505050565b5f610afd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117fa565b5f8061187f8385612310565b905083811015610afd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bf3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600d909152918220546119709184906117fa565b6001600160a01b038086165f908152600d6020526040808220939093559085168152205461199e9083611873565b6001600160a01b038085165f818152600d602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119f19086815260200190565b60405180910390a35060019392505050565b6018805460ff60a01b1916600160a01b179055601754610100900460ff1615611a2b57506016545b5f611a4360095460085461187390919063ffffffff16565b90505f611a5d60075460055461187390919063ffffffff16565b90505f611a776002611a7185818887611ce9565b90611d67565b90505f611a848583611832565b905047611a9082611da8565b5f611a9b4783611832565b90505f611ab3611aac876002611d67565b8890611832565b90505f611ac76002611a718481878c611ce9565b90505f611ad48483611832565b90508015611b1557600a546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611b13573d5f803e3d5ffd5b505b5f82118015611b2357505f87115b15611b3257611b328783611f5a565b50506018805460ff60a01b191690555050505050505050565b6001600160a01b0382165f908152600f602052604081205460ff1680611b8857506001600160a01b0382165f908152600f602052604090205460ff165b15611b9557506001610a57565b6001600160a01b0383165f9081526010602052604090205460ff1680611bd257506001600160a01b0382165f9081526010602052604090205460ff165b15611bde57505f610a57565b505f610a57565b6001600160a01b0383165f90815260106020526040812054819060ff1615611c2957611c22600c54611a7160085486611ce990919063ffffffff16565b9050611c67565b6001600160a01b0384165f9081526010602052604090205460ff1615611c6757611c64600c54611a7160095486611ce990919063ffffffff16565b90505b8015611cdf57305f908152600d6020526040902054611c869082611873565b305f818152600d6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd69085815260200190565b60405180910390a35b6118298382611832565b5f825f03611cf857505f610a57565b5f611d038385612323565b905082611d10858361233a565b14610afd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bf3565b5f610afd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061201b565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ddb57611ddb612359565b60200260200101906001600160a01b031690816001600160a01b031681525050601760049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e70919061236d565b81600181518110611e8357611e83612359565b6001600160a01b039283166020918202929092010152601754611eb191309164010000000090041684611375565b60175460405163791ac94760e01b81526401000000009091046001600160a01b03169063791ac94790611ef09085905f908690309042906004016123ca565b5f604051808303815f87803b158015611f07575f80fd5b505af1158015611f19573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611f4e929190612405565b60405180910390a15050565b601754611f7a90309064010000000090046001600160a01b031684611375565b601754600b5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a4820152640100000000909204169063f305d71990839060c40160606040518083038185885af1158015611fef573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120149190612425565b5050505050565b5f818361203b5760405162461bcd60e51b8152600401610bf39190612069565b505f611829848661233a565b5f5b83811015612061578181015183820152602001612049565b50505f910152565b602081525f8251806020840152612087816040850160208701612047565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611207575f80fd5b5f80604083850312156120c0575f80fd5b82356120cb8161209b565b946020939093013593505050565b5f805f606084860312156120eb575f80fd5b83356120f68161209b565b925060208401356121068161209b565b929592945050506040919091013590565b5f60208284031215612127575f80fd5b8135610afd8161209b565b80358015158114612141575f80fd5b919050565b5f60208284031215612156575f80fd5b610afd82612132565b5f6020828403121561216f575f80fd5b5035919050565b5f8060408385031215612187575f80fd5b82356121928161209b565b91506121a060208401612132565b90509250929050565b5f80604083850312156121ba575f80fd5b50508035926020909101359150565b5f805f606084860312156121db575f80fd5b833592506121eb60208501612132565b91506121f960408501612132565b90509250925092565b5f8060408385031215612213575f80fd5b823561221e8161209b565b9150602083013561222e8161209b565b809150509250929050565b600181811c9082168061224d57607f821691505b60208210810361226b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d24b73b30b634b21021b0b63632b960911b604082015260600190565b5f82516122df818460208701612047565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a5757610a576122e9565b80820180821115610a5757610a576122e9565b8082028115828204841417610a5757610a576122e9565b5f8261235457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561237d575f80fd5b8151610afd8161209b565b5f8151808452602080850194508084015f5b838110156123bf5781516001600160a01b03168752958201959082019060010161239a565b509495945050505050565b85815284602082015260a060408201525f6123e860a0830186612388565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f61241d6040830184612388565b949350505050565b5f805f60608486031215612437575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e5e46214a62cdc2c2606cd47e79a0222aa1d48fbcc552659e0692589eced553664736f6c63430008150033

Deployed Bytecode Sourcemap

7905:13950:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9240:53;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9240:53:0;;;;;;;;11233:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9460:31::-;;;;;;;;;;-1:-1:-1;9460:31:0;;;;;;;-1:-1:-1;;;;;9460:31:0;;;;;;-1:-1:-1;;;;;1038:32:1;;;1020:51;;1008:2;993:18;9460:31:0;852:225:1;8204:81:0;;;;;;;;;;;;;;;12571:161;;;;;;;;;;-1:-1:-1;12571:161:0;;;;;:::i;:::-;;:::i;:::-;;;1911:14:1;;1904:22;1886:41;;1874:2;1859:18;12571:161:0;1746:187:1;11510:100:0;;;;;;;;;;-1:-1:-1;11590:12:0;;11510:100;;13345:297;;;;;;;;;;-1:-1:-1;13345:297:0;;;;;:::i;:::-;;:::i;8116:81::-;;;;;;;;;;;;;;;11904:156;;;;;;;;;;;;;:::i;8590:31::-;;;;;;;;;;-1:-1:-1;8590:31:0;;;;-1:-1:-1;;;;;8590:31:0;;;11419:83;;;;;;;;;;-1:-1:-1;11485:9:0;;11419:83;;11485:9;;;;2541:36:1;;2529:2;2514:18;11419:83:0;2399:184:1;12068:218:0;;;;;;;;;;-1:-1:-1;12068:218:0;;;;;:::i;:::-;;:::i;8851:45::-;;;;;;;;;;-1:-1:-1;8851:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21069:108;;;;;;;;;;-1:-1:-1;21069:108:0;;;;;:::i;:::-;;:::i;:::-;;20209:105;;;;;;;;;;-1:-1:-1;20209:105:0;;;;;:::i;:::-;;:::i;8794:50::-;;;;;;;;;;-1:-1:-1;8794:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21634:115;;;;;;;;;;-1:-1:-1;21634:115:0;;;;;:::i;:::-;;:::i;20830:101::-;;;;;;;;;;-1:-1:-1;20830:101:0;;;;;:::i;:::-;;:::i;9377:32::-;;;;;;;;;;-1:-1:-1;9377:32:0;;;;;;;;;;;20452:128;;;;;;;;;;-1:-1:-1;20452:128:0;;;;;:::i;:::-;;:::i;19746:222::-;;;;;;;;;;-1:-1:-1;19746:222:0;;;;;:::i;:::-;;:::i;9302:30::-;;;;;;;;;;-1:-1:-1;9302:30:0;;;;;;;;11618:123;;;;;;;;;;-1:-1:-1;11618:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11710:18:0;11684:7;11710:18;;;:9;:18;;;;;;;11618:123;2573:94;;;;;;;;;;;;;:::i;20716:106::-;;;;;;;;;;-1:-1:-1;20716:106:0;;;;;:::i;:::-;;:::i;20943:118::-;;;;;;;;;;-1:-1:-1;20943:118:0;;;;;:::i;:::-;;:::i;19976:119::-;;;;;;;;;;;;;:::i;9086:59::-;;;;;;;;;;;;;;;;9162:56;;;;;;;;;;;;;;;;8418:31;;;;;;;;;;;;;;;;8962:48;;;;;;;;;;-1:-1:-1;8962:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2264:87;;;;;;;;;;-1:-1:-1;2310:7:0;2337:6;-1:-1:-1;;;;;2337:6:0;2264:87;;11324;;;;;;;;;;;;;:::i;8456:32::-;;;;;;;;;;;;;;;;12294:269;;;;;;;;;;-1:-1:-1;12294:269:0;;;;;:::i;:::-;;:::i;13170:167::-;;;;;;;;;;-1:-1:-1;13170:167:0;;;;;:::i;:::-;;:::i;20588:120::-;;;;;;;;;;-1:-1:-1;20588:120:0;;;;;:::i;:::-;;:::i;21397:229::-;;;;;;;;;;-1:-1:-1;21397:229:0;;;;;:::i;:::-;;:::i;8497:86::-;;;;;;;;;;-1:-1:-1;8497:86:0;;;;-1:-1:-1;;;;;8497:86:0;;;21185:204;;;;;;;;;;-1:-1:-1;21185:204:0;;;;;:::i;:::-;;:::i;8903:52::-;;;;;;;;;;-1:-1:-1;8903:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19238:272;;;;;;;;;;-1:-1:-1;19238:272:0;;;;;:::i;:::-;;:::i;11749:143::-;;;;;;;;;;-1:-1:-1;11749:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11857:18:0;;;11830:7;11857:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11749:143;20322:122;;;;;;;;;;-1:-1:-1;20322:122:0;;;;;:::i;:::-;;:::i;19052:178::-;;;;;;;;;;;;;:::i;9339:31::-;;;;;;;;;;-1:-1:-1;9339:31:0;;;;;;;;;;;20103:98;;;;;;;;;;-1:-1:-1;20103:98:0;;;;;:::i;:::-;;:::i;9498:22::-;;;;;;;;;;-1:-1:-1;9498:22:0;;;;-1:-1:-1;;;;;9498:22:0;;;2675:229;;;;;;;;;;-1:-1:-1;2675:229:0;;;;;:::i;:::-;;:::i;21757:91::-;;;;;;;;;;-1:-1:-1;21757:91:0;;;;;:::i;:::-;;:::i;9416:35::-;;;;;;;;;;-1:-1:-1;9416:35:0;;;;;;;;;;;19518:220;;;;;;;;;;-1:-1:-1;19518:220:0;;;;;:::i;:::-;;:::i;11233:83::-;11270:13;11303:5;11296:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11233:83;:::o;12571:161::-;12646:4;12663:39;911:10;12686:7;12695:6;12663:8;:39::i;:::-;-1:-1:-1;12720:4:0;12571:161;;;;;:::o;13345:297::-;13443:4;13460:36;13470:6;13478:9;13489:6;13460:9;:36::i;:::-;-1:-1:-1;13507:105:0;13516:6;911:10;13538:73;13576:6;13538:73;;;;;;;;;;;;;;;;;:11;:19;13550:6;-1:-1:-1;;;;;13538:19:0;-1:-1:-1;;;;;13538:19:0;;;;;;;;;;;;:33;13558:12;911:10;;831:98;13558:12;-1:-1:-1;;;;;13538:33:0;;;;;;;;;;;;-1:-1:-1;13538:33:0;;;:73;:37;:73::i;:::-;13507:8;:105::i;:::-;-1:-1:-1;13630:4:0;13345:297;;;;;;:::o;11904:156::-;-1:-1:-1;;;;;12039:11:0;11710:18;11957:7;11710:18;;;:9;:18;;;;;;11984:68;;:40;12001:22;12011:11;-1:-1:-1;;;;;11710:18:0;11684:7;11710:18;;;:9;:18;;;;;;;11618:123;12001:22;11984:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;11977:75;;11904:156;:::o;12068:218::-;911:10;12156:4;12205:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12205:34:0;;;;;;;;;;12156:4;;12173:83;;12196:7;;12205:50;;12244:10;12205:38;:50::i;21069:108::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;;;;;;;;;21140:16:::1;:29:::0;;-1:-1:-1;;;;;;21140:29:0::1;-1:-1:-1::0;;;;;21140:29:0;;;::::1;::::0;;;::::1;::::0;;21069:108::o;20209:105::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;20280:16:::1;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20280:26:0;;::::1;::::0;;;::::1;::::0;;20209:105::o;21634:115::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;21706:9:::1;:35:::0;;-1:-1:-1;;;;;21706:35:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;21706:35:0;;::::1;::::0;;;::::1;::::0;;21634:115::o;20830:101::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;20900:12:::1;:23:::0;20830:101::o;20452:128::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20537:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;20537:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20452:128::o;19746:222::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;19831:19:::1;:37:::0;;;19879:10:::1;:19:::0;;;19925:35:::1;19853:15:::0;19892:6;19925:23:::1;:35::i;:::-;19909:13;:51:::0;-1:-1:-1;;19746:222:0:o;2573:94::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;2638:21:::1;2656:1;2638:9;:21::i;:::-;2573:94::o:0;20716:106::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;20793:10:::1;:21:::0;20716:106::o;20943:118::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;21023:17:::1;:30:::0;;-1:-1:-1;;;;;;21023:30:0::1;-1:-1:-1::0;;;;;21023:30:0;;;::::1;::::0;;;::::1;::::0;;20943:118::o;19976:119::-;9603:16;;-1:-1:-1;;;;;9603:16:0;9589:10;:30;9581:56;;;;-1:-1:-1;;;9581:56:0;;;;;;;:::i;:::-;20030:13:::1;:21:::0;;-1:-1:-1;;20062:25:0;;;19976:119::o;11324:87::-;11363:13;11396:7;11389:14;;;;;:::i;12294:269::-;12387:4;12404:129;911:10;12427:7;12436:96;12475:15;12436:96;;;;;;;;;;;;;;;;;911:10;12436:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12436:34:0;;;;;;;;;;;;:38;:96::i;13170:167::-;13248:4;13265:42;911:10;13289:9;13300:6;13265:9;:42::i;20588:120::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20669:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;20669:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20588:120::o;21397:229::-;9603:16;;-1:-1:-1;;;;;9603:16:0;9589:10;:30;9581:56;;;;-1:-1:-1;;;9581:56:0;;;;;;;:::i;:::-;21526:11:::1;:22:::0;;-1:-1:-1;;21559:22:0;21526;::::1;;-1:-1:-1::0;;21559:22:0;;;;;21526::::1;21559::::0;::::1;;::::0;;;::::1;;::::0;;21592:13:::1;:26:::0;21397:229::o;21185:204::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21267:19:0;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;21267:29:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;21307:75:::1;;-1:-1:-1::0;;;;;21334:26:0;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;21334:36:0::1;::::0;::::1;;;::::0;;21307:75:::1;21185:204:::0;;:::o;19238:272::-;9603:16;;-1:-1:-1;;;;;9603:16:0;9589:10;:30;9581:56;;;;-1:-1:-1;;;9581:56:0;;;;;;;:::i;:::-;19377:73:::1;::::0;-1:-1:-1;;;;;5943:32:1;;;19377:73:0::1;::::0;::::1;5925:51:1::0;5992:18;;;5985:34;;;19338:12:0::1;::::0;19356:20;;::::1;::::0;5898:18:1;;19377:73:0::1;::::0;;-1:-1:-1;;19377:73:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;19377:73:0::1;-1:-1:-1::0;;;19377:73:0::1;::::0;;19356:95;::::1;::::0;19377:73;19356:95:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19337:114;;;19470:7;19462:40;;;::::0;-1:-1:-1;;;19462:40:0;;6524:2:1;19462:40:0::1;::::0;::::1;6506:21:1::0;6563:2;6543:18;;;6536:30;-1:-1:-1;;;6582:18:1;;;6575:50;6642:18;;19462:40:0::1;6322:344:1::0;19462:40:0::1;19326:184;19238:272:::0;;;:::o;20322:122::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20403:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;20403:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20322:122::o;19052:178::-;9603:16;;-1:-1:-1;;;;;9603:16:0;9589:10;:30;9581:56;;;;-1:-1:-1;;;9581:56:0;;;;;;;:::i;:::-;19119:58:::1;::::0;19107:7:::1;::::0;19127:10:::1;::::0;19151:21:::1;::::0;19107:7;19119:58;19107:7;19119:58;19151:21;19127:10;19119:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19106:71;;;19196:2;19188:34;;;::::0;-1:-1:-1;;;19188:34:0;;7083:2:1;19188:34:0::1;::::0;::::1;7065:21:1::0;7122:2;7102:18;;;7095:30;-1:-1:-1;;;7141:18:1;;;7134:50;7201:18;;19188:34:0::1;6881:344:1::0;19188:34:0::1;19094:136;19052:178::o:0;20103:98::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;20170:13:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20170:23:0;;::::1;::::0;;;::::1;::::0;;20103:98::o;2675:229::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2778:22:0;::::1;2756:110;;;::::0;-1:-1:-1;;;2756:110:0;;7432:2:1;2756:110:0::1;::::0;::::1;7414:21:1::0;7471:2;7451:18;;;7444:30;7510:34;7490:18;;;7483:62;-1:-1:-1;;;7561:18:1;;;7554:36;7607:19;;2756:110:0::1;7230:402:1::0;2756:110:0::1;2877:19;2887:8;2877:9;:19::i;21757:91::-:0;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;21825:7:::1;:15:::0;;-1:-1:-1;;;;;;21825:15:0::1;-1:-1:-1::0;;;;;21825:15:0;;;::::1;::::0;;;::::1;::::0;;21757:91::o;19518:220::-;2310:7;2337:6;-1:-1:-1;;;;;2337:6:0;911:10;2485:23;2477:68;;;;-1:-1:-1;;;2477:68:0;;;;;;;:::i;:::-;19606:18:::1;:36:::0;;;19653:9:::1;:18:::0;;;19697:33:::1;19627:15:::0;19665:6;19697:22:::1;:33::i;:::-;19682:12;:48:::0;-1:-1:-1;;19518:220:0:o;12740:337::-;-1:-1:-1;;;;;12833:19:0;;12825:68;;;;-1:-1:-1;;;12825:68:0;;7839:2:1;12825:68:0;;;7821:21:1;7878:2;7858:18;;;7851:30;7917:34;7897:18;;;7890:62;-1:-1:-1;;;7968:18:1;;;7961:34;8012:19;;12825:68:0;7637:400:1;12825:68:0;-1:-1:-1;;;;;12912:21:0;;12904:68;;;;-1:-1:-1;;;12904:68:0;;8244:2:1;12904:68:0;;;8226:21:1;8283:2;8263:18;;;8256:30;8322:34;8302:18;;;8295:62;-1:-1:-1;;;8373:18:1;;;8366:32;8415:19;;12904:68:0;8042:398:1;12904:68:0;-1:-1:-1;;;;;12985:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13037:32;;160:25:1;;;13037:32:0;;133:18:1;13037:32:0;;;;;;;12740:337;;;:::o;13650:1606::-;13737:4;-1:-1:-1;;;;;13764:20:0;;13756:29;;;;;;-1:-1:-1;;;;;13804:23:0;;13796:32;;;;;;13856:1;13847:6;:10;13839:19;;;;;;13879:6;;-1:-1:-1;;;13879:6:0;;;;13875:1372;;;13909:41;13924:6;13932:9;13943:6;13909:14;:41::i;:::-;13902:48;;;;13875:1372;14043:4;13994:28;11710:18;;;:9;:18;;;;;;14119:13;;14095:37;;;;;;;14171:52;;-1:-1:-1;14217:6:0;;-1:-1:-1;;;14217:6:0;;;;14216:7;14171:52;:95;;;;-1:-1:-1;;;;;;14246:20:0;;;;;;:12;:20;;;;;;;;14245:21;14171:95;:128;;;;-1:-1:-1;14288:11:0;;;;14171:128;:175;;;;-1:-1:-1;;;;;;14321:25:0;;;;;;:17;:25;;;;;;;;14320:26;14171:175;:225;;;;-1:-1:-1;;;;;;14368:28:0;;;;;;:17;:28;;;;;;;;14367:29;14171:225;14149:332;;;14435:30;14444:20;14435:8;:30::i;:::-;-1:-1:-1;;;;;14501:23:0;;;;;;:15;:23;;;;;;;;14500:24;:55;;;;-1:-1:-1;;;;;;14529:26:0;;;;;;:15;:26;;;;;;;;14528:27;14500:55;:72;;;;-1:-1:-1;14559:13:0;;;;;;;14500:72;14497:166;;;14611:12;;14601:6;:22;;14593:54;;;;-1:-1:-1;;;14593:54:0;;8647:2:1;14593:54:0;;;8629:21:1;8686:2;8666:18;;;8659:30;-1:-1:-1;;;8705:18:1;;;8698:49;8764:18;;14593:54:0;8445:343:1;14593:54:0;14712:53;;;;;;;;;;;-1:-1:-1;;;14712:53:0;;;;;;;;-1:-1:-1;;;;;14712:17:0;;-1:-1:-1;14712:17:0;;;:9;:17;;;;;;;;:53;;14734:6;;14712:21;:53::i;:::-;-1:-1:-1;;;;;14692:17:0;;;;;;:9;:17;;;;;:73;;;;14804:34;14702:6;14828:9;14804:16;:34::i;:::-;:80;;14850:34;14858:6;14866:9;14877:6;14850:7;:34::i;:::-;14804:80;;;14841:6;14804:80;14904:16;;14782:102;;-1:-1:-1;14904:16:0;;;;;:51;;;;-1:-1:-1;;;;;;14925:30:0;;;;;;:19;:30;;;;;;;;14924:31;14904:51;14901:168;;;15025:10;;14984:37;15009:11;14984:20;14994:9;-1:-1:-1;;;;;11710:18:0;11684:7;11710:18;;;:9;:18;;;;;;;11618:123;14984:20;:24;;:37::i;:::-;:51;;14976:77;;;;-1:-1:-1;;;14976:77:0;;8995:2:1;14976:77:0;;;8977:21:1;9034:2;9014:18;;;9007:30;-1:-1:-1;;;9053:18:1;;;9046:44;9107:18;;14976:77:0;8793:338:1;14976:77:0;-1:-1:-1;;;;;15108:20:0;;;;;;:9;:20;;;;;;:37;;15133:11;15108:24;:37::i;:::-;-1:-1:-1;;;;;15085:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15167:40;;;;;;;;;;15195:11;160:25:1;;148:2;133:18;;14:177;15167:40:0;;;;;;;;15229:4;15222:11;;;;;;;3451:192;3537:7;3573:12;3565:6;;;;3557:29;;;;-1:-1:-1;;;3557:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3597:9:0;3609:5;3613:1;3609;:5;:::i;:::-;3597:17;3451:192;-1:-1:-1;;;;;3451:192:0:o;3307:136::-;3365:7;3392:43;3396:1;3399;3392:43;;;;;;;;;;;;;;;;;:3;:43::i;3118:181::-;3176:7;;3208:5;3212:1;3208;:5;:::i;:::-;3196:17;;3237:1;3232;:6;;3224:46;;;;-1:-1:-1;;;3224:46:0;;9733:2:1;3224:46:0;;;9715:21:1;9772:2;9752:18;;;9745:30;9811:29;9791:18;;;9784:57;9858:18;;3224:46:0;9531:351:1;2912:173:0;2968:16;2987:6;;-1:-1:-1;;;;;3004:17:0;;;-1:-1:-1;;;;;;3004:17:0;;;;;;3037:40;;2987:6;;;;;;;3037:40;;2968:16;3037:40;2957:128;2912:173;:::o;15264:330::-;15394:53;;;;;;;;;;;-1:-1:-1;;;15394:53:0;;;;;;;;-1:-1:-1;;;;;15394:17:0;;15357:4;15394:17;;;:9;:17;;;;;;;:53;;15416:6;;15394:21;:53::i;:::-;-1:-1:-1;;;;;15374:17:0;;;;;;;:9;:17;;;;;;:73;;;;15481:20;;;;;;;:32;;15506:6;15481:24;:32::i;:::-;-1:-1:-1;;;;;15458:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15529:35;;;;;;;;;;15557:6;160:25:1;;148:2;133:18;;14:177;15529:35:0;;;;;;;;-1:-1:-1;15582:4:0;15264:330;;;;;:::o;16695:1175::-;9696:6;:13;;-1:-1:-1;;;;9696:13:0;-1:-1:-1;;;9696:13:0;;;16769:11:::1;::::0;9696:13;16769:11;::::1;9696:13:::0;16769:11:::1;16766:47;;;-1:-1:-1::0;16800:13:0::1;::::0;16766:47:::1;16826:19;16848:31;16865:13;;16848:12;;:16;;:31;;;;:::i;:::-;16826:53;;16892:23;16918:25;16932:10;;16918:9;;:13;;:25;;;;:::i;:::-;16892:51:::0;-1:-1:-1;17041:19:0::1;17063:60;17121:1;17063:53;17104:11:::0;17063:53;:15;16892:51;17063:19:::1;:36::i;:::-;:40:::0;::::1;:53::i;:60::-;17041:82:::0;-1:-1:-1;17134:21:0::1;17158:32;:15:::0;17041:82;17158:19:::1;:32::i;:::-;17134:56:::0;-1:-1:-1;17228:21:0::1;17260:31;17134:56:::0;17260:16:::1;:31::i;:::-;17302:22;17327:41;:21;17353:14:::0;17327:25:::1;:41::i;:::-;17302:66:::0;-1:-1:-1;17381:19:0::1;17403:39;17419:22;:15:::0;17439:1:::1;17419:19;:22::i;:::-;17403:11:::0;;:15:::1;:39::i;:::-;17381:61:::0;-1:-1:-1;17463:26:0::1;17492:59;17549:1;17492:52;17381:61:::0;17492:52;:14;17511:15;17492:18:::1;:35::i;:59::-;17463:88:::0;-1:-1:-1;17562:28:0::1;17593:38;:14:::0;17463:88;17593:18:::1;:38::i;:::-;17562:69:::0;-1:-1:-1;17647:24:0;;17644:99:::1;;17694:17;::::0;17686:57:::1;::::0;-1:-1:-1;;;;;17694:17:0;;::::1;::::0;17686:57;::::1;;;::::0;17722:20;;17694:17:::1;17686:57:::0;17694:17;17686:57;17722:20;17694:17;17686:57;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17644:99;17780:1;17759:18;:22;:41;;;;;17799:1;17785:11;:15;17759:41;17756:104;;;17815:45;17828:11;17841:18;17815:12;:45::i;:::-;-1:-1:-1::0;;9732:6:0;:14;;-1:-1:-1;;;;9732:14:0;;;-1:-1:-1;;;;;;;;16695:1175:0:o;15606:369::-;-1:-1:-1;;;;;15710:25:0;;15690:4;15710:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15739:28:0;;;;;;:17;:28;;;;;;;;15710:57;15707:261;;;-1:-1:-1;15791:4:0;15784:11;;15707:261;-1:-1:-1;;;;;15826:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15850:23:0;;;;;;:12;:23;;;;;;;;15826:47;15822:146;;;-1:-1:-1;15897:5:0;15890:12;;15822:146;-1:-1:-1;15951:5:0;15944:12;;15983:702;-1:-1:-1;;;;;16156:20:0;;16069:7;16156:20;;;:12;:20;;;;;;16069:7;;16156:20;;16153:258;;;16210:44;16239:14;;16210:24;16221:12;;16210:6;:10;;:24;;;;:::i;:44::-;16198:56;;16153:258;;;-1:-1:-1;;;;;16293:23:0;;;;;;:12;:23;;;;;;;;16290:121;;;16350:45;16380:14;;16350:25;16361:13;;16350:6;:10;;:25;;;;:::i;:45::-;16338:57;;16290:121;16430:13;;16427:185;;16509:4;16491:24;;;;:9;:24;;;;;;:39;;16520:9;16491:28;:39::i;:::-;16482:4;16464:24;;;;:9;:24;;;;;;;:66;;;;16554:42;;-1:-1:-1;;;;;16554:42:0;;;;;;;16586:9;160:25:1;;148:2;133:18;;14:177;16554:42:0;;;;;;;;16427:185;16635:21;:6;16646:9;16635:10;:21::i;3651:250::-;3709:7;3733:1;3738;3733:6;3729:47;;-1:-1:-1;3763:1:0;3756:8;;3729:47;3788:9;3800:5;3804:1;3800;:5;:::i;:::-;3788:17;-1:-1:-1;3833:1:0;3824:5;3828:1;3788:17;3824:5;:::i;:::-;:10;3816:56;;;;-1:-1:-1;;;3816:56:0;;10484:2:1;3816:56:0;;;10466:21:1;10523:2;10503:18;;;10496:30;10562:34;10542:18;;;10535:62;-1:-1:-1;;;10613:18:1;;;10606:31;10654:19;;3816:56:0;10282:397:1;3909:132:0;3967:7;3994:39;3998:1;4001;3994:39;;;;;;;;;;;;;;;;;:3;:39::i;18396:648::-;18546:16;;;18560:1;18546:16;;;;;;;;18522:21;;18546:16;;;;;;;;;;-1:-1:-1;18546:16:0;18522:40;;18591:4;18573;18578:1;18573:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18573:23:0;;;-1:-1:-1;;;;;18573:23:0;;;;;18617:9;;;;;;;;;-1:-1:-1;;;;;18617:9:0;-1:-1:-1;;;;;18617:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18607:4;18612:1;18607:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18607:26:0;;;:7;;;;;;;;;:26;18678:9;;18646:56;;18663:4;;18678:9;;;;18690:11;18646:8;:56::i;:::-;18741:9;;:234;;-1:-1:-1;;;18741:234:0;;:9;;;;-1:-1:-1;;;;;18741:9:0;;:60;;:234;;18816:11;;18842:1;;18886:4;;18913;;18949:15;;18741:9;:234;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19001:35;19018:11;19031:4;19001:35;;;;;;;:::i;:::-;;;;;;;;18451:593;18396:648;:::o;17878:510::-;18058:9;;18026:56;;18043:4;;18058:9;;;-1:-1:-1;;;;;18058:9:0;18070:11;18026:8;:56::i;:::-;18125:9;;18323:16;;18125:255;;-1:-1:-1;;;18125:255:0;;18191:4;18125:9;:255;;12935:34:1;12985:18;;;12978:34;;;18237:1:0;13028:18:1;;;13021:34;;;13071:18;;;13064:34;-1:-1:-1;;;;;18323:16:0;;;13114:19:1;;;13107:44;18354:15:0;13167:19:1;;;13160:35;18125:9:0;;;;;;:25;;18158:9;;12869:19:1;;18125:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17878:510;;:::o;4049:278::-;4135:7;4170:12;4163:5;4155:28;;;;-1:-1:-1;;;4155:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4194:9:0;4206:5;4210:1;4206;:5;:::i;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;1290:131::-;-1:-1:-1;;;;;1365:31:1;;1355:42;;1345:70;;1411:1;1408;1401:12;1426:315;1494:6;1502;1555:2;1543:9;1534:7;1530:23;1526:32;1523:52;;;1571:1;1568;1561:12;1523:52;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1426:315:1:o;1938:456::-;2015:6;2023;2031;2084:2;2072:9;2063:7;2059:23;2055:32;2052:52;;;2100:1;2097;2090:12;2052:52;2139:9;2126:23;2158:31;2183:5;2158:31;:::i;:::-;2208:5;-1:-1:-1;2265:2:1;2250:18;;2237:32;2278:33;2237:32;2278:33;:::i;:::-;1938:456;;2330:7;;-1:-1:-1;;;2384:2:1;2369:18;;;;2356:32;;1938:456::o;2588:247::-;2647:6;2700:2;2688:9;2679:7;2675:23;2671:32;2668:52;;;2716:1;2713;2706:12;2668:52;2755:9;2742:23;2774:31;2799:5;2774:31;:::i;2840:160::-;2905:20;;2961:13;;2954:21;2944:32;;2934:60;;2990:1;2987;2980:12;2934:60;2840:160;;;:::o;3005:180::-;3061:6;3114:2;3102:9;3093:7;3089:23;3085:32;3082:52;;;3130:1;3127;3120:12;3082:52;3153:26;3169:9;3153:26;:::i;3190:180::-;3249:6;3302:2;3290:9;3281:7;3277:23;3273:32;3270:52;;;3318:1;3315;3308:12;3270:52;-1:-1:-1;3341:23:1;;3190:180;-1:-1:-1;3190:180:1:o;3375:315::-;3440:6;3448;3501:2;3489:9;3480:7;3476:23;3472:32;3469:52;;;3517:1;3514;3507:12;3469:52;3556:9;3543:23;3575:31;3600:5;3575:31;:::i;:::-;3625:5;-1:-1:-1;3649:35:1;3680:2;3665:18;;3649:35;:::i;:::-;3639:45;;3375:315;;;;;:::o;3695:248::-;3763:6;3771;3824:2;3812:9;3803:7;3799:23;3795:32;3792:52;;;3840:1;3837;3830:12;3792:52;-1:-1:-1;;3863:23:1;;;3933:2;3918:18;;;3905:32;;-1:-1:-1;3695:248:1:o;3948:316::-;4019:6;4027;4035;4088:2;4076:9;4067:7;4063:23;4059:32;4056:52;;;4104:1;4101;4094:12;4056:52;4140:9;4127:23;4117:33;;4169:35;4200:2;4189:9;4185:18;4169:35;:::i;:::-;4159:45;;4223:35;4254:2;4243:9;4239:18;4223:35;:::i;:::-;4213:45;;3948:316;;;;;:::o;4269:388::-;4337:6;4345;4398:2;4386:9;4377:7;4373:23;4369:32;4366:52;;;4414:1;4411;4404:12;4366:52;4453:9;4440:23;4472:31;4497:5;4472:31;:::i;:::-;4522:5;-1:-1:-1;4579:2:1;4564:18;;4551:32;4592:33;4551:32;4592:33;:::i;:::-;4644:7;4634:17;;;4269:388;;;;;:::o;4662:380::-;4741:1;4737:12;;;;4784;;;4805:61;;4859:4;4851:6;4847:17;4837:27;;4805:61;4912:2;4904:6;4901:14;4881:18;4878:38;4875:161;;4958:10;4953:3;4949:20;4946:1;4939:31;4993:4;4990:1;4983:15;5021:4;5018:1;5011:15;4875:161;;4662:380;;;:::o;5047:356::-;5249:2;5231:21;;;5268:18;;;5261:30;5327:34;5322:2;5307:18;;5300:62;5394:2;5379:18;;5047:356::o;5408:338::-;5610:2;5592:21;;;5649:2;5629:18;;;5622:30;-1:-1:-1;;;5683:2:1;5668:18;;5661:44;5737:2;5722:18;;5408:338::o;6030:287::-;6159:3;6197:6;6191:13;6213:66;6272:6;6267:3;6260:4;6252:6;6248:17;6213:66;:::i;:::-;6295:16;;;;;6030:287;-1:-1:-1;;6030:287:1:o;9136:127::-;9197:10;9192:3;9188:20;9185:1;9178:31;9228:4;9225:1;9218:15;9252:4;9249:1;9242:15;9268:128;9335:9;;;9356:11;;;9353:37;;;9370:18;;:::i;9401:125::-;9466:9;;;9487:10;;;9484:36;;;9500:18;;:::i;9887:168::-;9960:9;;;9991;;10008:15;;;10002:22;;9988:37;9978:71;;10029:18;;:::i;10060:217::-;10100:1;10126;10116:132;;10170:10;10165:3;10161:20;10158:1;10151:31;10205:4;10202:1;10195:15;10233:4;10230:1;10223:15;10116:132;-1:-1:-1;10262:9:1;;10060:217::o;10816:127::-;10877:10;10872:3;10868:20;10865:1;10858:31;10908:4;10905:1;10898:15;10932:4;10929:1;10922:15;10948:251;11018:6;11071:2;11059:9;11050:7;11046:23;11042:32;11039:52;;;11087:1;11084;11077:12;11039:52;11119:9;11113:16;11138:31;11163:5;11138:31;:::i;11204:461::-;11257:3;11295:5;11289:12;11322:6;11317:3;11310:19;11348:4;11377:2;11372:3;11368:12;11361:19;;11414:2;11407:5;11403:14;11435:1;11445:195;11459:6;11456:1;11453:13;11445:195;;;11524:13;;-1:-1:-1;;;;;11520:39:1;11508:52;;11580:12;;;;11615:15;;;;11556:1;11474:9;11445:195;;;-1:-1:-1;11656:3:1;;11204:461;-1:-1:-1;;;;;11204:461:1:o;11670:582::-;11969:6;11958:9;11951:25;12012:6;12007:2;11996:9;11992:18;11985:34;12055:3;12050:2;12039:9;12035:18;12028:31;11932:4;12076:57;12128:3;12117:9;12113:19;12105:6;12076:57;:::i;:::-;-1:-1:-1;;;;;12169:32:1;;;;12164:2;12149:18;;12142:60;-1:-1:-1;12233:3:1;12218:19;12211:35;12068:65;11670:582;-1:-1:-1;;;11670:582:1:o;12257:332::-;12464:6;12453:9;12446:25;12507:2;12502;12491:9;12487:18;12480:30;12427:4;12527:56;12579:2;12568:9;12564:18;12556:6;12527:56;:::i;:::-;12519:64;12257:332;-1:-1:-1;;;;12257:332:1:o;13206:306::-;13294:6;13302;13310;13363:2;13351:9;13342:7;13338:23;13334:32;13331:52;;;13379:1;13376;13369:12;13331:52;13408:9;13402:16;13392:26;;13458:2;13447:9;13443:18;13437:25;13427:35;;13502:2;13491:9;13487:18;13481:25;13471:35;;13206:306;;;;;:::o

Swarm Source

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