ETH Price: $3,398.99 (+6.63%)
Gas: 16 Gwei

Token

DOOLY HOOLY (DLHL)
 

Overview

Max Total Supply

1,000,000,000 DLHL

Holders

48

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
DLHL

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-01
*/

/**
Our primary emphasis will be on fostering a resilient and devoted following, establishing connections with influential figures, and organizing diverse contests and giveaways to ensure the community's continuous prosperity.

Website: https://www.doolyhooly.vip
Twitter: https://twitter.com/doolyhooly_coin
Telegram: https://t.me/doolyhooly_erc
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.19;

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

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

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract DLHL is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;
    
    string private _name ="DOOLY HOOLY";
    string private _symbol = "DLHL";
    uint8 private _decimals = 9;

    address payable private devWallet = payable(0xb69F1a5c4B489a8936f80591B95Be562a4C63b4E);
    address payable private mktWallet = payable(0xb69F1a5c4B489a8936f80591B95Be562a4C63b4E);
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcluded;
    mapping (address => bool) public isWalletLimitExcluded;
    mapping (address => bool) public isTxLimitExcluded;
    mapping (address => bool) public ammPairs;

    uint256 public _buyLpFees = 0;
    uint256 public _buyMktFees = 1;
    uint256 public _buyDevFees = 0;
    uint256 public _sellLiquidityFees = 0;
    uint256 public _sellMarketingFees = 1;
    uint256 public _sellDevelopmentFees = 0;

    uint256 public _liquidityShares = 0;
    uint256 public _marketingShares = 10;
    uint256 public _developmentShares = 0;

    uint256 public _taxOnBuys = 1;
    uint256 public _taxOnSells = 1;
    uint256 public _totalDistributionShares = 10;

    uint256 private _totalSupply = 10**9 * 10**9;
    uint256 public _maxTxAmount = 2 * 10**7 * 10**9;
    uint256 public _walletMax = 2 * 10**7 * 10**9;
    uint256 private minimumTokensBeforeSwap = 10 ** 5 * 10**9; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcluded[owner()] = true;
        isExcluded[devWallet] = true;
        isExcluded[mktWallet] = true;
        
        _taxOnBuys = _buyLpFees.add(_buyMktFees).add(_buyDevFees);
        _taxOnSells = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees);
        _totalDistributionShares = _liquidityShares.add(_marketingShares).add(_developmentShares);

        isWalletLimitExcluded[owner()] = true;
        isWalletLimitExcluded[address(uniswapPair)] = true;
        isWalletLimitExcluded[address(this)] = true;
        
        isTxLimitExcluded[owner()] = true;
        isTxLimitExcluded[devWallet] = true;
        isTxLimitExcluded[mktWallet] = true;
        isTxLimitExcluded[address(this)] = true;

        ammPairs[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _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 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);
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

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

    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 swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShares).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

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

        uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShares.div(2));
        
        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShares).div(totalETHFee).div(2);
        uint256 amountETHDevelopment = amountReceived.mul(_developmentShares).div(totalETHFee);
        uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHDevelopment);

        if(amountETHMarketing > 0)
            transferToAddressETH(devWallet, amountETHMarketing);

        if(amountETHDevelopment > 0)
            transferToAddressETH(mktWallet, amountETHDevelopment);

        if(amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);
    }
    
    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] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }
    
    
    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        checkWalletLimit = false;
    }

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

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

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(ammPairs[sender]) {
            feeAmount = amount.mul(_taxOnBuys).div(100);
        }
        else if(ammPairs[recipient]) {
            feeAmount = amount.mul(_taxOnSells).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    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: transfer amount exceeds allowance"));
        return true;
    }

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

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExcluded[sender] && !isTxLimitExcluded[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && ammPairs[recipient] && swapAndLiquifyEnabled && !isExcluded[sender] && amount > minimumTokensBeforeSwap) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }


            uint256 finalAmount = (isExcluded[sender] || isExcluded[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExcluded[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);

            uint256 sAmount = (!checkWalletLimit && isExcluded[sender]) ? amount.sub(finalAmount) : amount;
            _balances[sender] = _balances[sender].sub(sAmount, "Insufficient Balance");
            _balances[recipient] = _balances[recipient].add(finalAmount);

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

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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","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":"_buyDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLpFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMktFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxOnBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxOnSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600b60a09081526a444f4f4c5920484f4f4c5960a81b60c0526002906200002c9082620006a9565b506040805180820190915260048152631113121360e21b6020820152600390620000579082620006a9565b50600480546001600160a81b03191674b69f1a5c4b489a8936f80591b95be562a4c63b4e091790556005805473b69f1a5c4b489a8936f80591b95be562a4c63b4e6001600160a01b031990911617905561dead6080526000600c8190556001600d819055600e829055600f829055601081905560118290556012829055600a60138190556014929092556015819055601655601755670de0b6b3a764000060185566470de4df8200006019819055601a55655af3107a4000601b55601d805462ffffff60a81b19166201000160a81b1790553480156200013657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f6919062000775565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026a919062000775565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002de919062000775565b601d80546001600160a01b039283166001600160a01b031991821617909155601c8054928416929091168217905560185430600090815260076020908152604080832094835293905291822055600190600890620003446000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556004546101009004821681526008909352818320805485166001908117909155600554909116835291208054909216179055600e54600d54600c54620003c69291620003bf919062000595565b9062000595565b601555601154601054600f54620003e49291620003bf919062000595565b601655601454601354601254620004029291620003bf919062000595565b6017556001600960006200041e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601d549091168152600990925280822080548416600190811790915530835290822080549093168117909255600a906200048e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600454610100900482168152600a84528281208054861660019081179091556005548316825283822080548716821790553082528382208054871682179055601d549092168152600b90935290822080549093161790915560185490600690620005233390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6018546040516200058691815260200190565b60405180910390a350620007c2565b600080620005a48385620007a0565b905083811015620005fb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062f57607f821691505b6020821081036200065057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006a457600081815260208120601f850160051c810160208610156200067f5750805b601f850160051c820191505b81811015620006a0578281556001016200068b565b5050505b505050565b81516001600160401b03811115620006c557620006c562000604565b620006dd81620006d684546200061a565b8462000656565b602080601f831160018114620007155760008415620006fc5750858301515b600019600386901b1c1916600185901b178555620006a0565b600085815260208120601f198616915b82811015620007465788860151825594840194600190910190840162000725565b5085821015620007655787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200078857600080fd5b81516001600160a01b0381168114620005fb57600080fd5b80820180821115620005fe57634e487b7160e01b600052601160045260246000fd5b608051611b42620007de60003960006103240152611b426000f3fe6080604052600436106102345760003560e01c806372edcc651161012e578063a72905a2116100ab578063d76e26a31161006f578063d76e26a31461067c578063da00097d14610692578063dd62ed3e146106b3578063f2fde38b146106f9578063f872858a1461071957600080fd5b8063a72905a2146105ac578063a9059cbb146105dc578063b7470a2f146105fc578063c816841b1461062c578063cba0e9961461064c57600080fd5b80638da5cb5b116100f25780638da5cb5b1461052d57806395d89b411461054b5780639e3fa32314610560578063a08e671f14610576578063a457c2d71461058c57600080fd5b806372edcc65146104a6578063751039fc146104bc5780637d1db4a5146104d15780637f523f79146104e7578063807c2d9c1461051757600080fd5b8063313ce567116101bc578063565cec3811610180578063565cec3814610417578063646d47001461042d578063661b6e361461044357806370a0823114610459578063715018a61461048f57600080fd5b8063313ce5671461038857806339509351146103aa5780634a728e24146103ca5780634a74bb02146103e057806351183af71461040157600080fd5b806323b872dd1161020357806323b872dd146102f257806327c8f835146103125780632bae0d32146103465780632ee035061461035c5780632f0a5fd41461037257600080fd5b806306fdde0314610240578063095ea7b31461026b5780631694505e1461029b57806318160ddd146102d357600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561073a565b60405161026291906117b0565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611816565b6107cc565b6040519015158152602001610262565b3480156102a757600080fd5b50601c546102bb906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b3480156102df57600080fd5b506018545b604051908152602001610262565b3480156102fe57600080fd5b5061028b61030d366004611842565b6107e3565b34801561031e57600080fd5b506102bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035257600080fd5b506102e4600c5481565b34801561036857600080fd5b506102e4600d5481565b34801561037e57600080fd5b506102e4600f5481565b34801561039457600080fd5b5060045460405160ff9091168152602001610262565b3480156103b657600080fd5b5061028b6103c5366004611816565b61084e565b3480156103d657600080fd5b506102e4600e5481565b3480156103ec57600080fd5b50601d5461028b90600160a81b900460ff1681565b34801561040d57600080fd5b506102e460155481565b34801561042357600080fd5b506102e460135481565b34801561043957600080fd5b506102e460115481565b34801561044f57600080fd5b506102e460105481565b34801561046557600080fd5b506102e4610474366004611883565b6001600160a01b031660009081526006602052604090205490565b34801561049b57600080fd5b506104a4610884565b005b3480156104b257600080fd5b506102e460165481565b3480156104c857600080fd5b506104a4610901565b3480156104dd57600080fd5b506102e460195481565b3480156104f357600080fd5b5061028b610502366004611883565b600a6020526000908152604090205460ff1681565b34801561052357600080fd5b506102e4601a5481565b34801561053957600080fd5b506000546001600160a01b03166102bb565b34801561055757600080fd5b50610255610940565b34801561056c57600080fd5b506102e460125481565b34801561058257600080fd5b506102e460175481565b34801561059857600080fd5b5061028b6105a7366004611816565b61094f565b3480156105b857600080fd5b5061028b6105c7366004611883565b600b6020526000908152604090205460ff1681565b3480156105e857600080fd5b5061028b6105f7366004611816565b61099e565b34801561060857600080fd5b5061028b610617366004611883565b60096020526000908152604090205460ff1681565b34801561063857600080fd5b50601d546102bb906001600160a01b031681565b34801561065857600080fd5b5061028b610667366004611883565b60086020526000908152604090205460ff1681565b34801561068857600080fd5b506102e460145481565b34801561069e57600080fd5b50601d5461028b90600160b01b900460ff1681565b3480156106bf57600080fd5b506102e46106ce3660046118a0565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561070557600080fd5b506104a4610714366004611883565b6109ab565b34801561072557600080fd5b50601d5461028b90600160b81b900460ff1681565b606060028054610749906118d9565b80601f0160208091040260200160405190810160405280929190818152602001828054610775906118d9565b80156107c25780601f10610797576101008083540402835291602001916107c2565b820191906000526020600020905b8154815290600101906020018083116107a557829003601f168201915b5050505050905090565b60006107d9338484610a95565b5060015b92915050565b60006107f0848484610bb9565b50610843843361083e85604051806060016040528060288152602001611ac0602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061101d565b610a95565b5060015b9392505050565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916107d991859061083e9086611057565b6000546001600160a01b031633146108b75760405162461bcd60e51b81526004016108ae90611913565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461092b5760405162461bcd60e51b81526004016108ae90611913565b601854601955601d805460ff60b81b19169055565b606060038054610749906118d9565b60006107d9338461083e85604051806060016040528060258152602001611ae8602591393360009081526007602090815260408083206001600160a01b038d168452909152902054919061101d565b6000610843338484610bb9565b6000546001600160a01b031633146109d55760405162461bcd60e51b81526004016108ae90611913565b6001600160a01b038116610a3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610af75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ae565b6001600160a01b038216610b585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ae565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610c1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ae565b6001600160a01b038316610c815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ae565b601d54600160a01b900460ff1615610ca557610c9e8484846110b6565b9050610847565b6001600160a01b0384166000908152600a602052604090205460ff16158015610ce757506001600160a01b0383166000908152600a602052604090205460ff16155b15610d4f57601954821115610d4f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108ae565b30600090815260066020526040902054601b5481108015908190610d7d5750601d54600160a01b900460ff16155b8015610da157506001600160a01b0385166000908152600b602052604090205460ff165b8015610db65750601d54600160a81b900460ff165b8015610ddb57506001600160a01b03861660009081526008602052604090205460ff16155b8015610de85750601b5484115b15610e0e57601d54600160b01b900460ff1615610e0557601b5491505b610e0e8261119c565b6001600160a01b03861660009081526008602052604081205460ff1680610e4d57506001600160a01b03861660009081526008602052604090205460ff165b610e6157610e5c8787876112d7565b610e63565b845b601d54909150600160b81b900460ff168015610e9857506001600160a01b03861660009081526009602052604090205460ff16155b15610ed457601a54610ec982610ec3896001600160a01b031660009081526006602052604090205490565b90611057565b1115610ed457600080fd5b601d54600090600160b81b900460ff16158015610f0957506001600160a01b03881660009081526008602052604090205460ff165b610f135785610f1d565b610f1d86836113d9565b9050610f858160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250600660008c6001600160a01b03166001600160a01b031681526020019081526020016000205461101d9092919063ffffffff16565b6001600160a01b03808a166000908152600660205260408082209390935590891681522054610fb49083611057565b6001600160a01b0380891660008181526006602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110089086815260200190565b60405180910390a36001945050505050610847565b600081848411156110415760405162461bcd60e51b81526004016108ae91906117b0565b50600061104e848661195e565b95945050505050565b6000806110648385611971565b9050838110156108475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ae565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461110791849061101d565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546111369083611057565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061118a9086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b1790556017546012546000916111d2916002916111cc918290879061141b565b9061149d565b905060006111e083836113d9565b90506111eb816114df565b601254479060009061120b9061120290600261149d565b601754906113d9565b9050600061122d60026111cc846111cc6012548861141b90919063ffffffff16565b9050600061124a836111cc6014548761141b90919063ffffffff16565b905060006112628261125c87866113d9565b906113d9565b90508015611285576004546112859061010090046001600160a01b031682611672565b81156112a1576005546112a1906001600160a01b031683611672565b6000831180156112b15750600087115b156112c0576112c087846116ad565b5050601d805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff161561131b5761131460646111cc6015548661141b90919063ffffffff16565b9050611359565b6001600160a01b0384166000908152600b602052604090205460ff16156113595761135660646111cc6016548661141b90919063ffffffff16565b90505b80156113d357306000908152600660205260409020546113799082611057565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ca9085815260200190565b60405180910390a35b61104e83825b600061084783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061101d565b60008260000361142d575060006107dd565b60006114398385611984565b905082611446858361199b565b146108475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ae565b600061084783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611782565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611514576115146119bd565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159191906119d3565b816001815181106115a4576115a46119bd565b6001600160a01b039283166020918202929092010152601c546115ca9130911684610a95565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611603908590600090869030904290600401611a34565b600060405180830381600087803b15801561161d57600080fd5b505af1158015611631573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611666929190611a70565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116a8573d6000803e3d6000fd5b505050565b601c546116c59030906001600160a01b031684610a95565b601c546001600160a01b031663f305d7198230856000806116ee6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611756573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177b9190611a91565b5050505050565b600081836117a35760405162461bcd60e51b81526004016108ae91906117b0565b50600061104e848661199b565b600060208083528351808285015260005b818110156117dd578581018301518582016040015282016117c1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461181357600080fd5b50565b6000806040838503121561182957600080fd5b8235611834816117fe565b946020939093013593505050565b60008060006060848603121561185757600080fd5b8335611862816117fe565b92506020840135611872816117fe565b929592945050506040919091013590565b60006020828403121561189557600080fd5b8135610847816117fe565b600080604083850312156118b357600080fd5b82356118be816117fe565b915060208301356118ce816117fe565b809150509250929050565b600181811c908216806118ed57607f821691505b60208210810361190d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107dd576107dd611948565b808201808211156107dd576107dd611948565b80820281158282048414176107dd576107dd611948565b6000826119b857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119e557600080fd5b8151610847816117fe565b600081518084526020808501945080840160005b83811015611a295781516001600160a01b031687529582019590820190600101611a04565b509495945050505050565b85815284602082015260a060408201526000611a5360a08301866119f0565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611a8960408301846119f0565b949350505050565b600080600060608486031215611aa657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ea3a77d33d88e65751bebcf849b0badbac56cb6106de65db3a069abd91a6cf0264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c806372edcc651161012e578063a72905a2116100ab578063d76e26a31161006f578063d76e26a31461067c578063da00097d14610692578063dd62ed3e146106b3578063f2fde38b146106f9578063f872858a1461071957600080fd5b8063a72905a2146105ac578063a9059cbb146105dc578063b7470a2f146105fc578063c816841b1461062c578063cba0e9961461064c57600080fd5b80638da5cb5b116100f25780638da5cb5b1461052d57806395d89b411461054b5780639e3fa32314610560578063a08e671f14610576578063a457c2d71461058c57600080fd5b806372edcc65146104a6578063751039fc146104bc5780637d1db4a5146104d15780637f523f79146104e7578063807c2d9c1461051757600080fd5b8063313ce567116101bc578063565cec3811610180578063565cec3814610417578063646d47001461042d578063661b6e361461044357806370a0823114610459578063715018a61461048f57600080fd5b8063313ce5671461038857806339509351146103aa5780634a728e24146103ca5780634a74bb02146103e057806351183af71461040157600080fd5b806323b872dd1161020357806323b872dd146102f257806327c8f835146103125780632bae0d32146103465780632ee035061461035c5780632f0a5fd41461037257600080fd5b806306fdde0314610240578063095ea7b31461026b5780631694505e1461029b57806318160ddd146102d357600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561073a565b60405161026291906117b0565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611816565b6107cc565b6040519015158152602001610262565b3480156102a757600080fd5b50601c546102bb906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b3480156102df57600080fd5b506018545b604051908152602001610262565b3480156102fe57600080fd5b5061028b61030d366004611842565b6107e3565b34801561031e57600080fd5b506102bb7f000000000000000000000000000000000000000000000000000000000000dead81565b34801561035257600080fd5b506102e4600c5481565b34801561036857600080fd5b506102e4600d5481565b34801561037e57600080fd5b506102e4600f5481565b34801561039457600080fd5b5060045460405160ff9091168152602001610262565b3480156103b657600080fd5b5061028b6103c5366004611816565b61084e565b3480156103d657600080fd5b506102e4600e5481565b3480156103ec57600080fd5b50601d5461028b90600160a81b900460ff1681565b34801561040d57600080fd5b506102e460155481565b34801561042357600080fd5b506102e460135481565b34801561043957600080fd5b506102e460115481565b34801561044f57600080fd5b506102e460105481565b34801561046557600080fd5b506102e4610474366004611883565b6001600160a01b031660009081526006602052604090205490565b34801561049b57600080fd5b506104a4610884565b005b3480156104b257600080fd5b506102e460165481565b3480156104c857600080fd5b506104a4610901565b3480156104dd57600080fd5b506102e460195481565b3480156104f357600080fd5b5061028b610502366004611883565b600a6020526000908152604090205460ff1681565b34801561052357600080fd5b506102e4601a5481565b34801561053957600080fd5b506000546001600160a01b03166102bb565b34801561055757600080fd5b50610255610940565b34801561056c57600080fd5b506102e460125481565b34801561058257600080fd5b506102e460175481565b34801561059857600080fd5b5061028b6105a7366004611816565b61094f565b3480156105b857600080fd5b5061028b6105c7366004611883565b600b6020526000908152604090205460ff1681565b3480156105e857600080fd5b5061028b6105f7366004611816565b61099e565b34801561060857600080fd5b5061028b610617366004611883565b60096020526000908152604090205460ff1681565b34801561063857600080fd5b50601d546102bb906001600160a01b031681565b34801561065857600080fd5b5061028b610667366004611883565b60086020526000908152604090205460ff1681565b34801561068857600080fd5b506102e460145481565b34801561069e57600080fd5b50601d5461028b90600160b01b900460ff1681565b3480156106bf57600080fd5b506102e46106ce3660046118a0565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561070557600080fd5b506104a4610714366004611883565b6109ab565b34801561072557600080fd5b50601d5461028b90600160b81b900460ff1681565b606060028054610749906118d9565b80601f0160208091040260200160405190810160405280929190818152602001828054610775906118d9565b80156107c25780601f10610797576101008083540402835291602001916107c2565b820191906000526020600020905b8154815290600101906020018083116107a557829003601f168201915b5050505050905090565b60006107d9338484610a95565b5060015b92915050565b60006107f0848484610bb9565b50610843843361083e85604051806060016040528060288152602001611ac0602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061101d565b610a95565b5060015b9392505050565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916107d991859061083e9086611057565b6000546001600160a01b031633146108b75760405162461bcd60e51b81526004016108ae90611913565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461092b5760405162461bcd60e51b81526004016108ae90611913565b601854601955601d805460ff60b81b19169055565b606060038054610749906118d9565b60006107d9338461083e85604051806060016040528060258152602001611ae8602591393360009081526007602090815260408083206001600160a01b038d168452909152902054919061101d565b6000610843338484610bb9565b6000546001600160a01b031633146109d55760405162461bcd60e51b81526004016108ae90611913565b6001600160a01b038116610a3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610af75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ae565b6001600160a01b038216610b585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ae565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610c1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ae565b6001600160a01b038316610c815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ae565b601d54600160a01b900460ff1615610ca557610c9e8484846110b6565b9050610847565b6001600160a01b0384166000908152600a602052604090205460ff16158015610ce757506001600160a01b0383166000908152600a602052604090205460ff16155b15610d4f57601954821115610d4f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108ae565b30600090815260066020526040902054601b5481108015908190610d7d5750601d54600160a01b900460ff16155b8015610da157506001600160a01b0385166000908152600b602052604090205460ff165b8015610db65750601d54600160a81b900460ff165b8015610ddb57506001600160a01b03861660009081526008602052604090205460ff16155b8015610de85750601b5484115b15610e0e57601d54600160b01b900460ff1615610e0557601b5491505b610e0e8261119c565b6001600160a01b03861660009081526008602052604081205460ff1680610e4d57506001600160a01b03861660009081526008602052604090205460ff165b610e6157610e5c8787876112d7565b610e63565b845b601d54909150600160b81b900460ff168015610e9857506001600160a01b03861660009081526009602052604090205460ff16155b15610ed457601a54610ec982610ec3896001600160a01b031660009081526006602052604090205490565b90611057565b1115610ed457600080fd5b601d54600090600160b81b900460ff16158015610f0957506001600160a01b03881660009081526008602052604090205460ff165b610f135785610f1d565b610f1d86836113d9565b9050610f858160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250600660008c6001600160a01b03166001600160a01b031681526020019081526020016000205461101d9092919063ffffffff16565b6001600160a01b03808a166000908152600660205260408082209390935590891681522054610fb49083611057565b6001600160a01b0380891660008181526006602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110089086815260200190565b60405180910390a36001945050505050610847565b600081848411156110415760405162461bcd60e51b81526004016108ae91906117b0565b50600061104e848661195e565b95945050505050565b6000806110648385611971565b9050838110156108475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ae565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461110791849061101d565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546111369083611057565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061118a9086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b1790556017546012546000916111d2916002916111cc918290879061141b565b9061149d565b905060006111e083836113d9565b90506111eb816114df565b601254479060009061120b9061120290600261149d565b601754906113d9565b9050600061122d60026111cc846111cc6012548861141b90919063ffffffff16565b9050600061124a836111cc6014548761141b90919063ffffffff16565b905060006112628261125c87866113d9565b906113d9565b90508015611285576004546112859061010090046001600160a01b031682611672565b81156112a1576005546112a1906001600160a01b031683611672565b6000831180156112b15750600087115b156112c0576112c087846116ad565b5050601d805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff161561131b5761131460646111cc6015548661141b90919063ffffffff16565b9050611359565b6001600160a01b0384166000908152600b602052604090205460ff16156113595761135660646111cc6016548661141b90919063ffffffff16565b90505b80156113d357306000908152600660205260409020546113799082611057565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ca9085815260200190565b60405180910390a35b61104e83825b600061084783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061101d565b60008260000361142d575060006107dd565b60006114398385611984565b905082611446858361199b565b146108475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ae565b600061084783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611782565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611514576115146119bd565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159191906119d3565b816001815181106115a4576115a46119bd565b6001600160a01b039283166020918202929092010152601c546115ca9130911684610a95565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611603908590600090869030904290600401611a34565b600060405180830381600087803b15801561161d57600080fd5b505af1158015611631573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611666929190611a70565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116a8573d6000803e3d6000fd5b505050565b601c546116c59030906001600160a01b031684610a95565b601c546001600160a01b031663f305d7198230856000806116ee6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611756573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177b9190611a91565b5050505050565b600081836117a35760405162461bcd60e51b81526004016108ae91906117b0565b50600061104e848661199b565b600060208083528351808285015260005b818110156117dd578581018301518582016040015282016117c1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461181357600080fd5b50565b6000806040838503121561182957600080fd5b8235611834816117fe565b946020939093013593505050565b60008060006060848603121561185757600080fd5b8335611862816117fe565b92506020840135611872816117fe565b929592945050506040919091013590565b60006020828403121561189557600080fd5b8135610847816117fe565b600080604083850312156118b357600080fd5b82356118be816117fe565b915060208301356118ce816117fe565b809150509250929050565b600181811c908216806118ed57607f821691505b60208210810361190d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107dd576107dd611948565b808201808211156107dd576107dd611948565b80820281158282048414176107dd576107dd611948565b6000826119b857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119e557600080fd5b8151610847816117fe565b600081518084526020808501945080840160005b83811015611a295781516001600160a01b031687529582019590820190600101611a04565b509495945050505050565b85815284602082015260a060408201526000611a5360a08301866119f0565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611a8960408301846119f0565b949350505050565b600080600060608486031215611aa657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ea3a77d33d88e65751bebcf849b0badbac56cb6106de65db3a069abd91a6cf0264736f6c63430008130033

Deployed Bytecode Sourcemap

12270:11321:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15957:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17123:161;;;;;;;;;;-1:-1:-1;17123:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;17123:161:0;1023:187:1;13866:41:0;;;;;;;;;;-1:-1:-1;13866:41:0;;;;-1:-1:-1;;;;;13866:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;13866:41:0;1215:230:1;16234:100:0;;;;;;;;;;-1:-1:-1;16314:12:0;;16234:100;;;1596:25:1;;;1584:2;1569:18;16234:100:0;1450:177:1;21401:313:0;;;;;;;;;;-1:-1:-1;21401:313:0;;;;;:::i;:::-;;:::i;12700:81::-;;;;;;;;;;;;;;;13139:29;;;;;;;;;;;;;;;;13175:30;;;;;;;;;;;;;;;;13249:37;;;;;;;;;;;;;;;;16143:83;;;;;;;;;;-1:-1:-1;16209:9:0;;16143:83;;16209:9;;;;2443:36:1;;2431:2;2416:18;16143:83:0;2301:184:1;16620:218:0;;;;;;;;;;-1:-1:-1;16620:218:0;;;;;:::i;:::-;;:::i;13212:30::-;;;;;;;;;;;;;;;;13981:40;;;;;;;;;;-1:-1:-1;13981:40:0;;;;-1:-1:-1;;;13981:40:0;;;;;;13516:29;;;;;;;;;;;;;;;;13427:36;;;;;;;;;;;;;;;;13337:39;;;;;;;;;;;;;;;;13293:37;;;;;;;;;;;;;;;;16342:119;;;;;;;;;;-1:-1:-1;16342:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;16435:18:0;16408:7;16435:18;;;:9;:18;;;;;;;16342:119;3639:148;;;;;;;;;;;;;:::i;:::-;;13552:30;;;;;;;;;;;;;;;;19965:124;;;;;;;;;;;;;:::i;13693:47::-;;;;;;;;;;;;;;;;13032:50;;;;;;;;;;-1:-1:-1;13032:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13747:45;;;;;;;;;;;;;;;;3414:79;;;;;;;;;;-1:-1:-1;3452:7:0;3479:6;-1:-1:-1;;;;;3479:6:0;3414:79;;16048:87;;;;;;;;;;;;;:::i;13385:35::-;;;;;;;;;;;;;;;;13589:44;;;;;;;;;;;;;;;;16846:269;;;;;;;;;;-1:-1:-1;16846:269:0;;;;;:::i;:::-;;:::i;13089:41::-;;;;;;;;;;-1:-1:-1;13089:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21226:167;;;;;;;;;;-1:-1:-1;21226:167:0;;;;;:::i;:::-;;:::i;12971:54::-;;;;;;;;;;-1:-1:-1;12971:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13914:26;;;;;;;;;;-1:-1:-1;13914:26:0;;;;-1:-1:-1;;;;;13914:26:0;;;12921:43;;;;;;;;;;-1:-1:-1;12921:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13470:37;;;;;;;;;;;;;;;;14028:45;;;;;;;;;;-1:-1:-1;14028:45:0;;;;-1:-1:-1;;;14028:45:0;;;;;;16469:143;;;;;;;;;;-1:-1:-1;16469:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16577:18:0;;;16550:7;16577:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16469:143;3795:244;;;;;;;;;;-1:-1:-1;3795:244:0;;;;;:::i;:::-;;:::i;14080:35::-;;;;;;;;;;-1:-1:-1;14080:35:0;;;;-1:-1:-1;;;14080:35:0;;;;;;15957:83;15994:13;16027:5;16020:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15957:83;:::o;17123:161::-;17198:4;17215:39;2790:10;17238:7;17247:6;17215:8;:39::i;:::-;-1:-1:-1;17272:4:0;17123:161;;;;;:::o;21401:313::-;21499:4;21516:36;21526:6;21534:9;21545:6;21516:9;:36::i;:::-;-1:-1:-1;21563:121:0;21572:6;2790:10;21594:89;21632:6;21594:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21594:19:0;;;;;;:11;:19;;;;;;;;2790:10;21594:33;;;;;;;;;;:37;:89::i;:::-;21563:8;:121::i;:::-;-1:-1:-1;21702:4:0;21401:313;;;;;;:::o;16620:218::-;2790:10;16708:4;16757:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16757:34:0;;;;;;;;;;16708:4;;16725:83;;16748:7;;16757:50;;16796:10;16757:38;:50::i;3639:148::-;3548:6;;-1:-1:-1;;;;;3548:6:0;2790:10;3548:22;3540:67;;;;-1:-1:-1;;;3540:67:0;;;;;;;:::i;:::-;;;;;;;;;3746:1:::1;3730:6:::0;;3709:40:::1;::::0;-1:-1:-1;;;;;3730:6:0;;::::1;::::0;3709:40:::1;::::0;3746:1;;3709:40:::1;3777:1;3760:19:::0;;-1:-1:-1;;;;;;3760:19:0::1;::::0;;3639:148::o;19965:124::-;3548:6;;-1:-1:-1;;;;;3548:6:0;2790:10;3548:22;3540:67;;;;-1:-1:-1;;;3540:67:0;;;;;;;:::i;:::-;20034:12:::1;::::0;20019::::1;:27:::0;20057:16:::1;:24:::0;;-1:-1:-1;;;;20057:24:0::1;::::0;;19965:124::o;16048:87::-;16087:13;16120:7;16113:14;;;;;:::i;16846:269::-;16939:4;16956:129;2790:10;16979:7;16988:96;17027:15;16988:96;;;;;;;;;;;;;;;;;2790:10;16988:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16988:34:0;;;;;;;;;;;;:38;:96::i;21226:167::-;21304:4;21321:42;2790:10;21345:9;21356:6;21321:9;:42::i;3795:244::-;3548:6;;-1:-1:-1;;;;;3548:6:0;2790:10;3548:22;3540:67;;;;-1:-1:-1;;;3540:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3884:22:0;::::1;3876:73;;;::::0;-1:-1:-1;;;3876:73:0;;4083:2:1;3876:73:0::1;::::0;::::1;4065:21:1::0;4122:2;4102:18;;;4095:30;4161:34;4141:18;;;4134:62;-1:-1:-1;;;4212:18:1;;;4205:36;4258:19;;3876:73:0::1;3881:402:1::0;3876:73:0::1;3986:6;::::0;;3965:38:::1;::::0;-1:-1:-1;;;;;3965:38:0;;::::1;::::0;3986:6;::::1;::::0;3965:38:::1;::::0;::::1;4014:6;:17:::0;;-1:-1:-1;;;;;;4014:17:0::1;-1:-1:-1::0;;;;;4014:17:0;;;::::1;::::0;;;::::1;::::0;;3795:244::o;17292:337::-;-1:-1:-1;;;;;17385:19:0;;17377:68;;;;-1:-1:-1;;;17377:68:0;;4490:2:1;17377:68:0;;;4472:21:1;4529:2;4509:18;;;4502:30;4568:34;4548:18;;;4541:62;-1:-1:-1;;;4619:18:1;;;4612:34;4663:19;;17377:68:0;4288:400:1;17377:68:0;-1:-1:-1;;;;;17464:21:0;;17456:68;;;;-1:-1:-1;;;17456:68:0;;4895:2:1;17456:68:0;;;4877:21:1;4934:2;4914:18;;;4907:30;4973:34;4953:18;;;4946:62;-1:-1:-1;;;5024:18:1;;;5017:32;5066:19;;17456:68:0;4693:398:1;17456:68:0;-1:-1:-1;;;;;17537:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17589:32;;1596:25:1;;;17589:32:0;;1569:18:1;17589:32:0;;;;;;;17292:337;;;:::o;21722:1866::-;21809:4;-1:-1:-1;;;;;21836:20:0;;21828:70;;;;-1:-1:-1;;;21828:70:0;;5298:2:1;21828:70:0;;;5280:21:1;5337:2;5317:18;;;5310:30;5376:34;5356:18;;;5349:62;-1:-1:-1;;;5427:18:1;;;5420:35;5472:19;;21828:70:0;5096:401:1;21828:70:0;-1:-1:-1;;;;;21917:23:0;;21909:71;;;;-1:-1:-1;;;21909:71:0;;5704:2:1;21909:71:0;;;5686:21:1;5743:2;5723:18;;;5716:30;5782:34;5762:18;;;5755:62;-1:-1:-1;;;5833:18:1;;;5826:33;5876:19;;21909:71:0;5502:399:1;21909:71:0;21996:16;;-1:-1:-1;;;21996:16:0;;;;21993:1588;;;22046:41;22061:6;22069:9;22080:6;22046:14;:41::i;:::-;22039:48;;;;21993:1588;-1:-1:-1;;;;;22143:25:0;;;;;;:17;:25;;;;;;;;22142:26;:59;;;;-1:-1:-1;;;;;;22173:28:0;;;;;;:17;:28;;;;;;;;22172:29;22142:59;22139:174;;;22240:12;;22230:6;:22;;22222:75;;;;-1:-1:-1;;;22222:75:0;;6108:2:1;22222:75:0;;;6090:21:1;6147:2;6127:18;;;6120:30;6186:34;6166:18;;;6159:62;-1:-1:-1;;;6237:18:1;;;6230:38;6285:19;;22222:75:0;5906:404:1;22222:75:0;22390:4;22341:28;16435:18;;;:9;:18;;;;;;22466:23;;22442:47;;;;;;;22522:44;;-1:-1:-1;22550:16:0;;-1:-1:-1;;;22550:16:0;;;;22549:17;22522:44;:67;;;;-1:-1:-1;;;;;;22570:19:0;;;;;;:8;:19;;;;;;;;22522:67;:92;;;;-1:-1:-1;22593:21:0;;-1:-1:-1;;;22593:21:0;;;;22522:92;:115;;;;-1:-1:-1;;;;;;22619:18:0;;;;;;:10;:18;;;;;;;;22618:19;22522:115;:151;;;;;22650:23;;22641:6;:32;22522:151;22518:362;;;22711:25;;-1:-1:-1;;;22711:25:0;;;;22708:97;;;22782:23;;22759:46;;22708:97;22824:36;22839:20;22824:14;:36::i;:::-;-1:-1:-1;;;;;22921:18:0;;22898:19;22921:18;;;:10;:18;;;;;;;;;:43;;-1:-1:-1;;;;;;22943:21:0;;;;;;:10;:21;;;;;;;;22921:43;22920:134;;23020:34;23028:6;23036:9;23047:6;23020:7;:34::i;:::-;22920:134;;;23011:6;22920:134;23074:16;;22898:156;;-1:-1:-1;;;;23074:16:0;;;;:53;;;;-1:-1:-1;;;;;;23095:32:0;;;;;;:21;:32;;;;;;;;23094:33;23074:53;23071:135;;;23195:10;;23154:37;23179:11;23154:20;23164:9;-1:-1:-1;;;;;16435:18:0;16408:7;16435:18;;;:9;:18;;;;;;;16342:119;23154:20;:24;;:37::i;:::-;:51;;23146:60;;;;;;23243:16;;23223:15;;-1:-1:-1;;;23243:16:0;;;;23242:17;:39;;;;-1:-1:-1;;;;;;23263:18:0;;;;;;:10;:18;;;;;;;;23242:39;23241:76;;23311:6;23241:76;;;23285:23;:6;23296:11;23285:10;:23::i;:::-;23223:94;;23352:54;23374:7;23352:54;;;;;;;;;;;;;-1:-1:-1;;;23352:54:0;;;:9;:17;23362:6;-1:-1:-1;;;;;23352:17:0;-1:-1:-1;;;;;23352:17:0;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;-1:-1:-1;;;;;23332:17:0;;;;;;;:9;:17;;;;;;:74;;;;23444:20;;;;;;;:37;;23469:11;23444:24;:37::i;:::-;-1:-1:-1;;;;;23421:20:0;;;;;;;:9;:20;;;;;;;:60;;;;23503:40;;;;;;;;;;23531:11;1596:25:1;;1584:2;1569:18;;1450:177;23503:40:0;;;;;;;;23565:4;23558:11;;;;;;;;1464:192;1550:7;1586:12;1578:6;;;;1570:29;;;;-1:-1:-1;;;1570:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1610:9:0;1622:5;1626:1;1622;:5;:::i;:::-;1610:17;1464:192;-1:-1:-1;;;;;1464:192:0:o;1131:181::-;1189:7;;1221:5;1225:1;1221;:5;:::i;:::-;1209:17;;1250:1;1245;:6;;1237:46;;;;-1:-1:-1;;;1237:46:0;;6912:2:1;1237:46:0;;;6894:21:1;6951:2;6931:18;;;6924:30;6990:29;6970:18;;;6963:57;7037:18;;1237:46:0;6710:351:1;17865:330:0;17995:53;;;;;;;;;;;-1:-1:-1;;;17995:53:0;;;;;;;;-1:-1:-1;;;;;17995:17:0;;17958:4;17995:17;;;:9;:17;;;;;;;:53;;18017:6;;17995:21;:53::i;:::-;-1:-1:-1;;;;;17975:17:0;;;;;;;:9;:17;;;;;;:73;;;;18082:20;;;;;;;:32;;18107:6;18082:24;:32::i;:::-;-1:-1:-1;;;;;18059:20:0;;;;;;;:9;:20;;;;;;;:55;;;;18130:35;;;;;;;;;;18158:6;1596:25:1;;1584:2;1569:18;;1450:177;18130:35:0;;;;;;;;-1:-1:-1;18183:4:0;17865:330;;;;;:::o;18203:1066::-;14538:16;:23;;-1:-1:-1;;;;14538:23:0;-1:-1:-1;;;14538:23:0;;;18341:24:::1;::::0;18319:16:::1;::::0;14538:23;;18307:66:::1;::::0;18371:1:::1;::::0;18307:59:::1;::::0;;;:7;;:11:::1;:29::i;:::-;:33:::0;::::1;:59::i;:66::-;18285:88:::0;-1:-1:-1;18384:21:0::1;18408:24;:7:::0;18285:88;18408:11:::1;:24::i;:::-;18384:48;;18445:31;18462:13;18445:16;:31::i;:::-;18597:16;::::0;18512:21:::1;::::0;18487:22:::1;::::0;18568:53:::1;::::0;18597:23:::1;::::0;18618:1:::1;18597:20;:23::i;:::-;18568:24;::::0;;:28:::1;:53::i;:::-;18546:75;;18642:26;18671:60;18729:1;18671:53;18712:11;18671:36;18690:16;;18671:14;:18;;:36;;;;:::i;:60::-;18642:89;;18742:28;18773:55;18816:11;18773:38;18792:18;;18773:14;:18;;:38;;;;:::i;:55::-;18742:86:::0;-1:-1:-1;18839:26:0::1;18868:64;18742:86:::0;18868:38:::1;:14:::0;18887:18;18868::::1;:38::i;:::-;:42:::0;::::1;:64::i;:::-;18839:93:::0;-1:-1:-1;18948:22:0;;18945:91:::1;;19006:9;::::0;18985:51:::1;::::0;19006:9:::1;::::0;::::1;-1:-1:-1::0;;;;;19006:9:0::1;19017:18:::0;18985:20:::1;:51::i;:::-;19052:24:::0;;19049:95:::1;;19112:9;::::0;19091:53:::1;::::0;-1:-1:-1;;;;;19112:9:0::1;19123:20:::0;19091::::1;:53::i;:::-;19181:1;19160:18;:22;:41;;;;;19200:1;19186:11;:15;19160:41;19157:104;;;19216:45;19229:11;19242:18;19216:12;:45::i;:::-;-1:-1:-1::0;;14584:16:0;:24;;-1:-1:-1;;;;14584:24:0;;;-1:-1:-1;;;;;;18203:1066:0:o;20618:600::-;-1:-1:-1;;;;;20779:16:0;;20704:7;20779:16;;;:8;:16;;;;;;20704:7;;20779:16;;20776:201;;;20824:31;20851:3;20824:22;20835:10;;20824:6;:10;;:22;;;;:::i;:31::-;20812:43;;20776:201;;;-1:-1:-1;;;;;20885:19:0;;;;;;:8;:19;;;;;;;;20882:95;;;20933:32;20961:3;20933:23;20944:11;;20933:6;:10;;:23;;;;:::i;:32::-;20921:44;;20882:95;21000:13;;20997:173;;21075:4;21057:24;;;;:9;:24;;;;;;:39;;21086:9;21057:28;:39::i;:::-;21048:4;21030:24;;;;:9;:24;;;;;;;:66;;;;21116:42;;-1:-1:-1;;;;;21116:42:0;;;;;;;21148:9;1596:25:1;;1584:2;1569:18;;1450:177;21116:42:0;;;;;;;;20997:173;21189:21;:6;21200:9;1320:136;1378:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;1664:250::-;1722:7;1746:1;1751;1746:6;1742:47;;-1:-1:-1;1776:1:0;1769:8;;1742:47;1801:9;1813:5;1817:1;1813;:5;:::i;:::-;1801:17;-1:-1:-1;1846:1:0;1837:5;1841:1;1801:17;1837:5;:::i;:::-;:10;1829:56;;;;-1:-1:-1;;;1829:56:0;;7663:2:1;1829:56:0;;;7645:21:1;7702:2;7682:18;;;7675:30;7741:34;7721:18;;;7714:62;-1:-1:-1;;;7792:18:1;;;7785:31;7833:19;;1829:56:0;7461:397:1;1922:132:0;1980:7;2007:39;2011:1;2014;2007:39;;;;;;;;;;;;;;;;;:3;:39::i;19281:666::-;19431:16;;;19445:1;19431:16;;;;;;;;19407:21;;19431:16;;;;;;;;;;-1:-1:-1;19431:16:0;19407:40;;19476:4;19458;19463:1;19458:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19458:23:0;;;:7;;;;;;;;;;:23;;;;19502:15;;:22;;;-1:-1:-1;;;19502:22:0;;;;:15;;;;;:20;;:22;;;;;19458:7;;19502:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19492:4;19497:1;19492:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19492:32:0;;;:7;;;;;;;;;:32;19569:15;;19537:62;;19554:4;;19569:15;19587:11;19537:8;:62::i;:::-;19638:15;;:240;;-1:-1:-1;;;19638:240:0;;-1:-1:-1;;;;;19638:15:0;;;;:66;;:240;;19719:11;;19638:15;;19789:4;;19816;;19852:15;;19638:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19904:35;19921:11;19934:4;19904:35;;;;;;;:::i;:::-;;;;;;;;19336:611;19281:666;:::o;17637:126::-;17729:26;;-1:-1:-1;;;;;17729:18:0;;;:26;;;;;17748:6;;17729:26;;;;17748:6;17729:18;:26;;;;;;;;;;;;;;;;;;;;;17637:126;;:::o;20097:513::-;20277:15;;20245:62;;20262:4;;-1:-1:-1;;;;;20277:15:0;20295:11;20245:8;:62::i;:::-;20350:15;;-1:-1:-1;;;;;20350:15:0;:31;20389:9;20422:4;20442:11;20350:15;;20554:7;3452;3479:6;-1:-1:-1;;;;;3479:6:0;;3414:79;20554:7;20350:252;;;;;;-1:-1:-1;;;;;;20350:252:0;;;-1:-1:-1;;;;;10132:15:1;;;20350:252:0;;;10114:34:1;10164:18;;;10157:34;;;;10207:18;;;10200:34;;;;10250:18;;;10243:34;10314:15;;;10293:19;;;10286:44;20576:15:0;10346:19:1;;;10339:35;10048:19;;20350:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20097:513;;:::o;2062:278::-;2148:7;2183:12;2176:5;2168:28;;;;-1:-1:-1;;;2168:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2207:9:0;2219:5;2223:1;2219;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2490:247::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;2742:388::-;2810:6;2818;2871:2;2859:9;2850:7;2846:23;2842:32;2839:52;;;2887:1;2884;2877:12;2839:52;2926:9;2913:23;2945:31;2970:5;2945:31;:::i;:::-;2995:5;-1:-1:-1;3052:2:1;3037:18;;3024:32;3065:33;3024:32;3065:33;:::i;:::-;3117:7;3107:17;;;2742:388;;;;;:::o;3135:380::-;3214:1;3210:12;;;;3257;;;3278:61;;3332:4;3324:6;3320:17;3310:27;;3278:61;3385:2;3377:6;3374:14;3354:18;3351:38;3348:161;;3431:10;3426:3;3422:20;3419:1;3412:31;3466:4;3463:1;3456:15;3494:4;3491:1;3484:15;3348:161;;3135:380;;;:::o;3520:356::-;3722:2;3704:21;;;3741:18;;;3734:30;3800:34;3795:2;3780:18;;3773:62;3867:2;3852:18;;3520:356::o;6315:127::-;6376:10;6371:3;6367:20;6364:1;6357:31;6407:4;6404:1;6397:15;6431:4;6428:1;6421:15;6447:128;6514:9;;;6535:11;;;6532:37;;;6549:18;;:::i;6580:125::-;6645:9;;;6666:10;;;6663:36;;;6679:18;;:::i;7066:168::-;7139:9;;;7170;;7187:15;;;7181:22;;7167:37;7157:71;;7208:18;;:::i;7239:217::-;7279:1;7305;7295:132;;7349:10;7344:3;7340:20;7337:1;7330:31;7384:4;7381:1;7374:15;7412:4;7409:1;7402:15;7295:132;-1:-1:-1;7441:9:1;;7239:217::o;7995:127::-;8056:10;8051:3;8047:20;8044:1;8037:31;8087:4;8084:1;8077:15;8111:4;8108:1;8101:15;8127:251;8197:6;8250:2;8238:9;8229:7;8225:23;8221:32;8218:52;;;8266:1;8263;8256:12;8218:52;8298:9;8292:16;8317:31;8342:5;8317:31;:::i;8383:461::-;8436:3;8474:5;8468:12;8501:6;8496:3;8489:19;8527:4;8556:2;8551:3;8547:12;8540:19;;8593:2;8586:5;8582:14;8614:1;8624:195;8638:6;8635:1;8632:13;8624:195;;;8703:13;;-1:-1:-1;;;;;8699:39:1;8687:52;;8759:12;;;;8794:15;;;;8735:1;8653:9;8624:195;;;-1:-1:-1;8835:3:1;;8383:461;-1:-1:-1;;;;;8383:461:1:o;8849:582::-;9148:6;9137:9;9130:25;9191:6;9186:2;9175:9;9171:18;9164:34;9234:3;9229:2;9218:9;9214:18;9207:31;9111:4;9255:57;9307:3;9296:9;9292:19;9284:6;9255:57;:::i;:::-;-1:-1:-1;;;;;9348:32:1;;;;9343:2;9328:18;;9321:60;-1:-1:-1;9412:3:1;9397:19;9390:35;9247:65;8849:582;-1:-1:-1;;;8849:582:1:o;9436:332::-;9643:6;9632:9;9625:25;9686:2;9681;9670:9;9666:18;9659:30;9606:4;9706:56;9758:2;9747:9;9743:18;9735:6;9706:56;:::i;:::-;9698:64;9436:332;-1:-1:-1;;;;9436:332:1:o;10385:306::-;10473:6;10481;10489;10542:2;10530:9;10521:7;10517:23;10513:32;10510:52;;;10558:1;10555;10548:12;10510:52;10587:9;10581:16;10571:26;;10637:2;10626:9;10622:18;10616:25;10606:35;;10681:2;10670:9;10666:18;10660:25;10650:35;;10385:306;;;;;:::o

Swarm Source

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