ETH Price: $3,399.55 (-0.52%)
Gas: 12 Gwei

Token

Ghost Of Ryoshi (TOSHI)
 

Overview

Max Total Supply

10,000,000 TOSHI

Holders

122

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
24,343.316652271 TOSHI

Value
$0.00
0x538781CA22e3904c6fD6E822c203Cf4583478739
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:
Toshi

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-07
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.7.0 <0.8.0;

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

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

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 IUniswapV2Pair {
    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 Mint(address indexed sender, uint amount0, uint amount1);
    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 mint(address to) external returns (uint liquidity);
    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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    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);
}

contract Toshi is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Ghost Of Ryoshi";
    string private constant _symbol = "TOSHI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _balances;
    mapping(address => uint256) private cooldown;
    mapping(address => bool) private bots;
    mapping (address => uint256) private _lastTX;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    
    uint256 private constant _tTotal = 100 * 1e5 * 1e9;
    uint256 public _maxWalletAmount = 1 * 1e5 * 1e9;

    // fees
    uint256 public _liquidityFeeOnBuy = 0; 
    uint256 public _marketingFeeOnBuy = 5; 

    uint256 public _liquidityFeeOnSell = 0; 
    uint256 public _marketingFeeOnSell = 25; 
    
    uint256 private _previousLiquidityFee = _liquidityFee;
    uint256 private _previousMarketingFee = _marketingFee;
    uint256 private _liquidityFee;
    uint256 private _marketingFee;
    
    struct FeeBreakdown {
        uint256 tLiquidity;
        uint256 tMarketing;
        uint256 tAmount;
    }

    address payable private dev = payable(0xd8553b5C4AB04214A6288C6FBaBe08332A487Db6);
    address payable private mktg = payable(0xd8553b5C4AB04214A6288C6FBaBe08332A487Db6);

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;

    uint256 public swapAmount;
    uint256 private _firstBlock;

    bool public botProtection = false;
    bool private inSwap = false;
    bool public cooldownEnabled = false;
    bool public swapEnabled = false;

    event FeesUpdated(uint256 _marketingFee, uint256 _liquidityFee);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
        swapAmount = 3 * 1e4 * 1e9;
        
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[dev] = true;
        _isExcludedFromFee[mktg] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() external pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) external view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

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

    function removeAllFee() private {
        if (_marketingFee == 0 && _liquidityFee == 0) return;
        _previousMarketingFee = _marketingFee;
        _previousLiquidityFee = _liquidityFee;

        _marketingFee = 0;
        _liquidityFee = 0;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }
    
    function restoreAllFee() private {
        
        _liquidityFee = _previousLiquidityFee;
        _marketingFee = _previousMarketingFee;
    }

    function toggleBotProtection(bool onoff) external onlyOwner() {
        botProtection = onoff;
    }

    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 _transfer(address from, address to, uint256 amount) private {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(!swapEnabled){
            require(from == dev); // only owner allowed to trade or add liquidity
        } 

        if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
            if (block.number <= (_firstBlock.add(4))) {
                bots[to] = true;
            } 
        }
        bool takeFee = true;
        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router)) {
                    require(_msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair, "ERR: Uniswap only");
                }
            
                if( to != owner() && to != address(this) && to != address(uniswapV2Router) && to != uniswapV2Pair) {
                    require(_lastTX[tx.origin] <= (block.timestamp + 5 minutes), "Cooldown in effect");
                    _lastTX[tx.origin] = block.timestamp;
                }
            }
                    
        }

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "wallet balance after transfer must be less than max wallet amount");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _liquidityFee = _liquidityFeeOnBuy;
                _marketingFee = _marketingFeeOnBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (botProtection) {
                require(!bots[to] && !bots[from]);
                }
                _liquidityFee = _liquidityFeeOnSell;
                _marketingFee = _marketingFeeOnSell;
            }
            
            if (!inSwap && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > swapAmount) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _tokenTransfer(from, to, amount, takeFee);
        restoreAllFee();
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
              address(this),
              tokenAmount,
              0, // slippage is unavoidable
              0, // slippage is unavoidable
              dev,
              block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 autoLPamount = _liquidityFee.mul(contractTokenBalance).div(_marketingFee.add(_liquidityFee));

        // split the contract balance into halves
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(otherHalf); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);

        addLiquidity(half, newBalance);
    }

    function sendETHToFee(uint256 amount) private {
        uint256 tfrAmt = amount.div(3);
        mktg.transfer(tfrAmt);
        dev.transfer(amount.sub(tfrAmt));

    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function manualSwap() external {
        require(_msgSender() == dev);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSwapandLiquify() public onlyOwner() {
        uint contractBalance = balanceOf(address(this));
        swapAndLiquify(contractBalance);
    }

    function setTaxRate(uint256 liqFee, uint256 mktgFee, uint256 buyliqFee, uint256 buymktgFee) public onlyOwner() {
        _liquidityFeeOnSell = liqFee;
        _marketingFeeOnSell = mktgFee;
        _liquidityFeeOnBuy = buyliqFee;
        _marketingFeeOnBuy = buymktgFee;
    }

    function manualSend() external {
        require(_msgSender() == dev);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        _transferStandard(sender, recipient, amount);
        restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 amount) private {
        FeeBreakdown memory fees;
        fees.tMarketing = amount.mul(_marketingFee).div(100);
        fees.tLiquidity = amount.mul(_liquidityFee).div(100);
        
        fees.tAmount = amount.sub(fees.tMarketing).sub(fees.tLiquidity);
        
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tMarketing.add(fees.tLiquidity));
        
        emit Transfer(sender, recipient, fees.tAmount);
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == dev);
        require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply");
        require(maxWalletAmount <= _tTotal, "Amount must be less than or equal to totalSupply");
        _maxWalletAmount = maxWalletAmount;
    }

    function setMktgaddress(address payable walletAddress) external {
        require(_msgSender() == dev);
        mktg = walletAddress;
    }

    function setSwapAmount(uint256 _swapAmount) external {
        require(_msgSender() == dev);
        swapAmount = _swapAmount;
    }

    function blacklistmany(address[] memory bots_) external {
        for (uint i = 0; i < bots_.length; i++) {
          bots[bots_[i]] = true;
        }
    }

    function removeFromBlacklist (address _address) external {
        require(_msgSender() == dev);
        bots[_address] = false;
    }
    
    function getIsBlacklistedStatus (address _address) external view returns (bool) {
        return bots[_address];
    }

    function openTrading() external onlyOwner() {
        require(!swapEnabled, "trading is already open");
        _firstBlock = block.number;
        cooldownEnabled = true;
        swapEnabled = true;
    }

    function claimETH (address walletaddress) external {
        require(_msgSender() == dev);
        payable(walletaddress).transfer(address(this).balance);
    }

    function claimAltTokens(IERC20 tokenAddress, address walletaddress) external {
        require(_msgSender() == dev);
        tokenAddress.transfer(walletaddress, tokenAddress.balanceOf(address(this)));
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_liquidityFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blacklistmany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"botProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"address","name":"walletaddress","type":"address"}],"name":"claimAltTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletaddress","type":"address"}],"name":"claimETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getIsBlacklistedStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"walletAddress","type":"address"}],"name":"setMktgaddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liqFee","type":"uint256"},{"internalType":"uint256","name":"mktgFee","type":"uint256"},{"internalType":"uint256","name":"buyliqFee","type":"uint256"},{"internalType":"uint256","name":"buymktgFee","type":"uint256"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleBotProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052655af3107a4000600855600060098190556005600a55600b556019600c55600f54600d55601054600e556011805473d8553b5c4ab04214a6288c6fbabe08332a487db66001600160a01b031991821681179092556012805490911690911790556017805463ffffffff191690553480156200007e57600080fd5b5060006200008b62000443565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811791829055906200011e9030906001600160a01b0316662386f26fc1000062000447565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200015857600080fd5b505afa1580156200016d573d6000803e3d6000fd5b505050506040513d60208110156200018457600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015620001d557600080fd5b505afa158015620001ea573d6000803e3d6000fd5b505050506040513d60208110156200020157600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200025457600080fd5b505af115801562000269573d6000803e3d6000fd5b505050506040513d60208110156200028057600080fd5b5051601480546001600160a01b0319166001600160a01b0392831617908190556013546040805163095ea7b360e01b81529184166004830152600019602483015251919092169163095ea7b39160448083019260209291908290030181600087803b158015620002ef57600080fd5b505af115801562000304573d6000803e3d6000fd5b505050506040513d60208110156200031b57600080fd5b5050651b48eb57e000601555662386f26fc10000600260006200033d62000443565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160076000620003776200053760201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556011548216815260079093528183208054851660019081179091556012549091168352818320805485168217905530835291208054909216179055620003ea62000443565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040518082815260200191505060405180910390a35062000546565b3390565b6001600160a01b0383166200048e5760405162461bcd60e51b8152600401808060200182810382526024815260200180620029826024913960400191505060405180910390fd5b6001600160a01b038216620004d55760405162461bcd60e51b8152600401808060200182810382526022815260200180620029606022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000546001600160a01b031690565b61240a80620005566000396000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063bdf4f831116100ab578063dd62ed3e1161006f578063dd62ed3e1461080e578063e581dc7114610849578063e632313c1461085e578063f2fde38b14610888578063f4293890146108bb57610230565b8063bdf4f83114610767578063c4066f2f14610793578063c9567bf9146107a8578063d3dc3ffb146107bd578063d52dfc14146107f957610230565b806395d89b41116100f257806395d89b41146106bc578063a0968680146106d1578063a9059cbb14610704578063a985ceef1461073d578063bb58a9731461075257610230565b8063715018a6146105af5780637e66c0b9146105c45780638cf01f6e146105f75780638da5cb5b146106a757610230565b80633c0a73ae116101b15780635932ead1116101755780635932ead11461051157806361bb0a0a1461053d5780636c0a24eb146105525780636ddd17131461056757806370a082311461057c57610230565b80633c0a73ae146104485780633f9b76071461045d57806349bd5a5e1461049857806351bc3c85146104c9578063537df3b6146104de57610230565b806323b872dd116101f857806323b872dd14610366578063273123b7146103a957806327a14fc2146103de5780632e8fa82114610408578063313ce5671461041d57610230565b806306fdde0314610235578063084e4f8a146102bf578063095ea7b31461030657806318160ddd1461033f57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028457818101518382015260200161026c565b50505050905090810190601f1680156102b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cb57600080fd5b506102f2600480360360208110156102e257600080fd5b50356001600160a01b03166108f9565b604080519115158252519081900360200190f35b34801561031257600080fd5b506102f26004803603604081101561032957600080fd5b506001600160a01b038135169060200135610917565b34801561034b57600080fd5b50610354610935565b60408051918252519081900360200190f35b34801561037257600080fd5b506102f26004803603606081101561038957600080fd5b506001600160a01b03813581169160208101359091169060400135610940565b3480156103b557600080fd5b506103dc600480360360208110156103cc57600080fd5b50356001600160a01b03166109c7565b005b3480156103ea57600080fd5b506103dc6004803603602081101561040157600080fd5b5035610a40565b34801561041457600080fd5b50610354610b01565b34801561042957600080fd5b50610432610b07565b6040805160ff9092168252519081900360200190f35b34801561045457600080fd5b50610354610b0c565b34801561046957600080fd5b506103dc6004803603604081101561048057600080fd5b506001600160a01b0381358116916020013516610b12565b3480156104a457600080fd5b506104ad610c41565b604080516001600160a01b039092168252519081900360200190f35b3480156104d557600080fd5b506103dc610c50565b3480156104ea57600080fd5b506103dc6004803603602081101561050157600080fd5b50356001600160a01b0316610c96565b34801561051d57600080fd5b506103dc6004803603602081101561053457600080fd5b50351515610cbd565b34801561054957600080fd5b506103dc610d31565b34801561055e57600080fd5b50610354610d9f565b34801561057357600080fd5b506102f2610da5565b34801561058857600080fd5b506103546004803603602081101561059f57600080fd5b50356001600160a01b0316610db5565b3480156105bb57600080fd5b506103dc610dd0565b3480156105d057600080fd5b506103dc600480360360208110156105e757600080fd5b50356001600160a01b0316610e72565b34801561060357600080fd5b506103dc6004803603602081101561061a57600080fd5b81019060208101813564010000000081111561063557600080fd5b82018360208201111561064757600080fd5b8035906020019184602083028401116401000000008311171561066957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ed2945050505050565b3480156106b357600080fd5b506104ad610f2a565b3480156106c857600080fd5b5061024a610f39565b3480156106dd57600080fd5b506103dc600480360360208110156106f457600080fd5b50356001600160a01b0316610f58565b34801561071057600080fd5b506102f26004803603604081101561072757600080fd5b506001600160a01b038135169060200135610fa1565b34801561074957600080fd5b506102f2610fb5565b34801561075e57600080fd5b506102f2610fc4565b34801561077357600080fd5b506103dc6004803603602081101561078a57600080fd5b50351515610fcd565b34801561079f57600080fd5b50610354611038565b3480156107b457600080fd5b506103dc61103e565b3480156107c957600080fd5b506103dc600480360360808110156107e057600080fd5b508035906020810135906040810135906060013561111b565b34801561080557600080fd5b50610354611187565b34801561081a57600080fd5b506103546004803603604081101561083157600080fd5b506001600160a01b038135811691602001351661118d565b34801561085557600080fd5b506103546111b8565b34801561086a57600080fd5b506103dc6004803603602081101561088157600080fd5b50356111be565b34801561089457600080fd5b506103dc600480360360208110156108ab57600080fd5b50356001600160a01b03166111ea565b3480156108c757600080fd5b506103dc6112e2565b60408051808201909152600f81526e47686f7374204f662052796f73686960881b602082015290565b6001600160a01b031660009081526004602052604090205460ff1690565b600061092b610924611319565b848461131d565b5060015b92915050565b662386f26fc1000090565b600061094d848484611409565b6109bd84610959611319565b6109b8856040518060600160405280602881526020016122eb602891396001600160a01b038a16600090815260066020526040812090610997611319565b6001600160a01b031681526020810191909152604001600020549190611a45565b61131d565b5060019392505050565b6109cf611319565b6000546001600160a01b03908116911614610a1f576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6011546001600160a01b0316610a54611319565b6001600160a01b031614610a6757600080fd5b610a79662386f26fc1000060c8611adc565b8111610ab65760405162461bcd60e51b815260040180806020018281038252602a8152602001806122a0602a913960400191505060405180910390fd5b662386f26fc10000811115610afc5760405162461bcd60e51b815260040180806020018281038252603081526020018061235c6030913960400191505060405180910390fd5b600855565b60155481565b600990565b60095481565b6011546001600160a01b0316610b26611319565b6001600160a01b031614610b3957600080fd5b816001600160a01b031663a9059cbb82846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d6020811015610bc057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050506040513d6020811015610c3b57600080fd5b50505050565b6014546001600160a01b031681565b6011546001600160a01b0316610c64611319565b6001600160a01b031614610c7757600080fd5b6000610c8230610db5565b90508015610c9357610c9381611b25565b50565b6011546001600160a01b0316610caa611319565b6001600160a01b031614610a1f57600080fd5b610cc5611319565b6000546001600160a01b03908116911614610d15576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b60178054911515620100000262ff000019909216919091179055565b610d39611319565b6000546001600160a01b03908116911614610d89576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6000610d9430610db5565b9050610c9381611cee565b60085481565b6017546301000000900460ff1681565b6001600160a01b031660009081526002602052604090205490565b610dd8611319565b6000546001600160a01b03908116911614610e28576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6011546001600160a01b0316610e86611319565b6001600160a01b031614610e9957600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ece573d6000803e3d6000fd5b5050565b60005b8151811015610ece57600160046000848481518110610ef057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610ed5565b6000546001600160a01b031690565b604080518082019091526005815264544f53484960d81b602082015290565b6011546001600160a01b0316610f6c611319565b6001600160a01b031614610f7f57600080fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600061092b610fae611319565b8484611409565b60175462010000900460ff1681565b60175460ff1681565b610fd5611319565b6000546001600160a01b03908116911614611025576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6017805460ff1916911515919091179055565b600c5481565b611046611319565b6000546001600160a01b03908116911614611096576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6017546301000000900460ff16156110f5576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b436016556017805463ff0000001962ff0000199091166201000017166301000000179055565b611123611319565b6000546001600160a01b03908116911614611173576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b600b93909355600c91909155600955600a55565b600b5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600a5481565b6011546001600160a01b03166111d2611319565b6001600160a01b0316146111e557600080fd5b601555565b6111f2611319565b6000546001600160a01b03908116911614611242576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6001600160a01b0381166112875760405162461bcd60e51b81526004018080602001828103825260268152602001806122176026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b03166112f6611319565b6001600160a01b03161461130957600080fd5b478015610c9357610c9381611d75565b3390565b6001600160a01b0383166113625760405162461bcd60e51b81526004018080602001828103825260248152602001806123b16024913960400191505060405180910390fd5b6001600160a01b0382166113a75760405162461bcd60e51b815260040180806020018281038252602281526020018061223d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661144e5760405162461bcd60e51b815260040180806020018281038252602581526020018061238c6025913960400191505060405180910390fd5b6001600160a01b0382166114935760405162461bcd60e51b81526004018080602001828103825260238152602001806121f46023913960400191505060405180910390fd5b600081116114d25760405162461bcd60e51b81526004018080602001828103825260298152602001806123336029913960400191505060405180910390fd5b6017546301000000900460ff166114fd576011546001600160a01b038481169116146114fd57600080fd5b6014546001600160a01b03848116911614801561152857506013546001600160a01b03838116911614155b156115655760165461153b906004611e04565b4311611565576001600160a01b0382166000908152600460205260409020805460ff191660011790555b600161156f610f2a565b6001600160a01b0316846001600160a01b0316141580156115a95750611593610f2a565b6001600160a01b0316836001600160a01b031614155b1561177d5760175462010000900460ff161561177d576001600160a01b03841630148015906115e157506001600160a01b0383163014155b80156115fb57506013546001600160a01b03858116911614155b801561161557506013546001600160a01b03848116911614155b156116a2576013546001600160a01b031661162e611319565b6001600160a01b0316148061165d57506014546001600160a01b0316611652611319565b6001600160a01b0316145b6116a2576040805162461bcd60e51b81526020600482015260116024820152704552523a20556e6973776170206f6e6c7960781b604482015290519081900360640190fd5b6116aa610f2a565b6001600160a01b0316836001600160a01b0316141580156116d457506001600160a01b0383163014155b80156116ee57506013546001600160a01b03848116911614155b801561170857506014546001600160a01b03848116911614155b1561177d573260009081526005602052604090205461012c4201101561176a576040805162461bcd60e51b815260206004820152601260248201527110dbdbdb191bdddb881a5b881959999958dd60721b604482015290519081900360640190fd5b3260009081526005602052604090204290555b611785610f2a565b6001600160a01b0316846001600160a01b0316141580156117bf57506117a9610f2a565b6001600160a01b0316836001600160a01b031614155b80156117d457506001600160a01b0384163014155b80156117e957506001600160a01b0383163014155b156119e9576014546001600160a01b03858116911614801561181957506013546001600160a01b03848116911614155b801561183e57506001600160a01b03841660009081526007602052604090205460ff16155b801561186357506001600160a01b03831660009081526007602052604090205460ff16155b156118bb5760085461187e8361187886610db5565b90611e04565b11156118bb5760405162461bcd60e51b815260040180806020018281038252604181526020018061225f6041913960600191505060405180910390fd5b6014546001600160a01b0385811691161480156118e657506013546001600160a01b03848116911614155b156118f857600954600f55600a546010555b6014546001600160a01b03848116911614801561192357506013546001600160a01b03858116911614155b1561198b5760175460ff161561197e576001600160a01b03831660009081526004602052604090205460ff1615801561197557506001600160a01b03841660009081526004602052604090205460ff16155b61197e57600080fd5b600b54600f55600c546010555b601754610100900460ff161580156119b157506014546001600160a01b03858116911614155b156119e95760006119c130610db5565b90506015548111156119d6576119d681611cee565b4780156119e6576119e647611d75565b50505b6001600160a01b03841660009081526007602052604090205460ff1680611a2857506001600160a01b03831660009081526007602052604090205460ff165b15611a31575060005b611a3d84848484611e5e565b610c3b611e76565b60008184841115611ad45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a99578181015183820152602001611a81565b50505050905090810190601f168015611ac65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000611b1e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b9392505050565b6017805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b6357fe5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611bb757600080fd5b505afa158015611bcb573d6000803e3d6000fd5b505050506040513d6020811015611be157600080fd5b5051815182906001908110611bf257fe5b6001600160a01b039283166020918202929092010152601354611c18913091168461131d565b60135460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611c9e578181015183820152602001611c86565b505050509050019650505050505050600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b50506017805461ff001916905550505050565b6017805461ff001916610100179055600f54601054600091611d2691611d1391611e04565b600f54611d209085611ee9565b90611adc565b90506000611d35826002611adc565b90506000611d438483611f42565b905047611d4f82611b25565b6000611d6983611d2086611d634787611f42565b90611ee9565b9050611cdb8482611f84565b6000611d82826003611adc565b6012546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611dbd573d6000803e3d6000fd5b506011546001600160a01b03166108fc611dd78484611f42565b6040518115909202916000818181858888f19350505050158015611dff573d6000803e3d6000fd5b505050565b600082820183811015611b1e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80611e6b57611e6b61203c565b611a3d84848461206e565b600d54600f55600e54601055565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a99578181015183820152602001611a81565b506000838581611edf57fe5b0495945050505050565b600082611ef85750600061092f565b82820282848281611f0557fe5b0414611b1e5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ca6021913960400191505060405180910390fd5b6000611b1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a45565b601354611f9c9030906001600160a01b03168461131d565b6013546011546040805163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b50505050506040513d6060811015610c3b57600080fd5b60105415801561204c5750600f54155b156120565761206c565b60108054600e55600f8054600d55600091829055555b565b6120766121d2565b6120906064611d2060105485611ee990919063ffffffff16565b6020820152600f546120aa90606490611d20908590611ee9565b80825260208201516120c891906120c2908590611f42565b90611f42565b6040808301919091526001600160a01b0385166000908152600260205220546120f19083611f42565b6001600160a01b0380861660009081526002602052604080822093909355838301519186168152919091205461212691611e04565b6001600160a01b03841660009081526002602090815260409091209190915581519082015161216f916121599190611e04565b3060009081526002602052604090205490611e04565b306000908152600260209081526040918290209290925582810151815190815290516001600160a01b0386811693908816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050565b6040518060600160405280600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737377616c6c65742062616c616e6365206166746572207472616e73666572206d757374206265206c657373207468616e206d61782077616c6c657420616d6f756e74416d6f756e74206d7573742062652067726561746572207468616e20302e3525206f6620737570706c79536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f416d6f756e74206d757374206265206c657373207468616e206f7220657175616c20746f20746f74616c537570706c7945524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220085d8b208a285737af75b71de2f34f1bebf00d14d532647aa38919d35bea0ec664736f6c6343000706003345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063bdf4f831116100ab578063dd62ed3e1161006f578063dd62ed3e1461080e578063e581dc7114610849578063e632313c1461085e578063f2fde38b14610888578063f4293890146108bb57610230565b8063bdf4f83114610767578063c4066f2f14610793578063c9567bf9146107a8578063d3dc3ffb146107bd578063d52dfc14146107f957610230565b806395d89b41116100f257806395d89b41146106bc578063a0968680146106d1578063a9059cbb14610704578063a985ceef1461073d578063bb58a9731461075257610230565b8063715018a6146105af5780637e66c0b9146105c45780638cf01f6e146105f75780638da5cb5b146106a757610230565b80633c0a73ae116101b15780635932ead1116101755780635932ead11461051157806361bb0a0a1461053d5780636c0a24eb146105525780636ddd17131461056757806370a082311461057c57610230565b80633c0a73ae146104485780633f9b76071461045d57806349bd5a5e1461049857806351bc3c85146104c9578063537df3b6146104de57610230565b806323b872dd116101f857806323b872dd14610366578063273123b7146103a957806327a14fc2146103de5780632e8fa82114610408578063313ce5671461041d57610230565b806306fdde0314610235578063084e4f8a146102bf578063095ea7b31461030657806318160ddd1461033f57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028457818101518382015260200161026c565b50505050905090810190601f1680156102b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cb57600080fd5b506102f2600480360360208110156102e257600080fd5b50356001600160a01b03166108f9565b604080519115158252519081900360200190f35b34801561031257600080fd5b506102f26004803603604081101561032957600080fd5b506001600160a01b038135169060200135610917565b34801561034b57600080fd5b50610354610935565b60408051918252519081900360200190f35b34801561037257600080fd5b506102f26004803603606081101561038957600080fd5b506001600160a01b03813581169160208101359091169060400135610940565b3480156103b557600080fd5b506103dc600480360360208110156103cc57600080fd5b50356001600160a01b03166109c7565b005b3480156103ea57600080fd5b506103dc6004803603602081101561040157600080fd5b5035610a40565b34801561041457600080fd5b50610354610b01565b34801561042957600080fd5b50610432610b07565b6040805160ff9092168252519081900360200190f35b34801561045457600080fd5b50610354610b0c565b34801561046957600080fd5b506103dc6004803603604081101561048057600080fd5b506001600160a01b0381358116916020013516610b12565b3480156104a457600080fd5b506104ad610c41565b604080516001600160a01b039092168252519081900360200190f35b3480156104d557600080fd5b506103dc610c50565b3480156104ea57600080fd5b506103dc6004803603602081101561050157600080fd5b50356001600160a01b0316610c96565b34801561051d57600080fd5b506103dc6004803603602081101561053457600080fd5b50351515610cbd565b34801561054957600080fd5b506103dc610d31565b34801561055e57600080fd5b50610354610d9f565b34801561057357600080fd5b506102f2610da5565b34801561058857600080fd5b506103546004803603602081101561059f57600080fd5b50356001600160a01b0316610db5565b3480156105bb57600080fd5b506103dc610dd0565b3480156105d057600080fd5b506103dc600480360360208110156105e757600080fd5b50356001600160a01b0316610e72565b34801561060357600080fd5b506103dc6004803603602081101561061a57600080fd5b81019060208101813564010000000081111561063557600080fd5b82018360208201111561064757600080fd5b8035906020019184602083028401116401000000008311171561066957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ed2945050505050565b3480156106b357600080fd5b506104ad610f2a565b3480156106c857600080fd5b5061024a610f39565b3480156106dd57600080fd5b506103dc600480360360208110156106f457600080fd5b50356001600160a01b0316610f58565b34801561071057600080fd5b506102f26004803603604081101561072757600080fd5b506001600160a01b038135169060200135610fa1565b34801561074957600080fd5b506102f2610fb5565b34801561075e57600080fd5b506102f2610fc4565b34801561077357600080fd5b506103dc6004803603602081101561078a57600080fd5b50351515610fcd565b34801561079f57600080fd5b50610354611038565b3480156107b457600080fd5b506103dc61103e565b3480156107c957600080fd5b506103dc600480360360808110156107e057600080fd5b508035906020810135906040810135906060013561111b565b34801561080557600080fd5b50610354611187565b34801561081a57600080fd5b506103546004803603604081101561083157600080fd5b506001600160a01b038135811691602001351661118d565b34801561085557600080fd5b506103546111b8565b34801561086a57600080fd5b506103dc6004803603602081101561088157600080fd5b50356111be565b34801561089457600080fd5b506103dc600480360360208110156108ab57600080fd5b50356001600160a01b03166111ea565b3480156108c757600080fd5b506103dc6112e2565b60408051808201909152600f81526e47686f7374204f662052796f73686960881b602082015290565b6001600160a01b031660009081526004602052604090205460ff1690565b600061092b610924611319565b848461131d565b5060015b92915050565b662386f26fc1000090565b600061094d848484611409565b6109bd84610959611319565b6109b8856040518060600160405280602881526020016122eb602891396001600160a01b038a16600090815260066020526040812090610997611319565b6001600160a01b031681526020810191909152604001600020549190611a45565b61131d565b5060019392505050565b6109cf611319565b6000546001600160a01b03908116911614610a1f576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6011546001600160a01b0316610a54611319565b6001600160a01b031614610a6757600080fd5b610a79662386f26fc1000060c8611adc565b8111610ab65760405162461bcd60e51b815260040180806020018281038252602a8152602001806122a0602a913960400191505060405180910390fd5b662386f26fc10000811115610afc5760405162461bcd60e51b815260040180806020018281038252603081526020018061235c6030913960400191505060405180910390fd5b600855565b60155481565b600990565b60095481565b6011546001600160a01b0316610b26611319565b6001600160a01b031614610b3957600080fd5b816001600160a01b031663a9059cbb82846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d6020811015610bc057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050506040513d6020811015610c3b57600080fd5b50505050565b6014546001600160a01b031681565b6011546001600160a01b0316610c64611319565b6001600160a01b031614610c7757600080fd5b6000610c8230610db5565b90508015610c9357610c9381611b25565b50565b6011546001600160a01b0316610caa611319565b6001600160a01b031614610a1f57600080fd5b610cc5611319565b6000546001600160a01b03908116911614610d15576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b60178054911515620100000262ff000019909216919091179055565b610d39611319565b6000546001600160a01b03908116911614610d89576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6000610d9430610db5565b9050610c9381611cee565b60085481565b6017546301000000900460ff1681565b6001600160a01b031660009081526002602052604090205490565b610dd8611319565b6000546001600160a01b03908116911614610e28576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6011546001600160a01b0316610e86611319565b6001600160a01b031614610e9957600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ece573d6000803e3d6000fd5b5050565b60005b8151811015610ece57600160046000848481518110610ef057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610ed5565b6000546001600160a01b031690565b604080518082019091526005815264544f53484960d81b602082015290565b6011546001600160a01b0316610f6c611319565b6001600160a01b031614610f7f57600080fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600061092b610fae611319565b8484611409565b60175462010000900460ff1681565b60175460ff1681565b610fd5611319565b6000546001600160a01b03908116911614611025576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6017805460ff1916911515919091179055565b600c5481565b611046611319565b6000546001600160a01b03908116911614611096576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6017546301000000900460ff16156110f5576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b436016556017805463ff0000001962ff0000199091166201000017166301000000179055565b611123611319565b6000546001600160a01b03908116911614611173576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b600b93909355600c91909155600955600a55565b600b5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600a5481565b6011546001600160a01b03166111d2611319565b6001600160a01b0316146111e557600080fd5b601555565b6111f2611319565b6000546001600160a01b03908116911614611242576040805162461bcd60e51b81526020600482018190526024820152600080516020612313833981519152604482015290519081900360640190fd5b6001600160a01b0381166112875760405162461bcd60e51b81526004018080602001828103825260268152602001806122176026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b03166112f6611319565b6001600160a01b03161461130957600080fd5b478015610c9357610c9381611d75565b3390565b6001600160a01b0383166113625760405162461bcd60e51b81526004018080602001828103825260248152602001806123b16024913960400191505060405180910390fd5b6001600160a01b0382166113a75760405162461bcd60e51b815260040180806020018281038252602281526020018061223d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661144e5760405162461bcd60e51b815260040180806020018281038252602581526020018061238c6025913960400191505060405180910390fd5b6001600160a01b0382166114935760405162461bcd60e51b81526004018080602001828103825260238152602001806121f46023913960400191505060405180910390fd5b600081116114d25760405162461bcd60e51b81526004018080602001828103825260298152602001806123336029913960400191505060405180910390fd5b6017546301000000900460ff166114fd576011546001600160a01b038481169116146114fd57600080fd5b6014546001600160a01b03848116911614801561152857506013546001600160a01b03838116911614155b156115655760165461153b906004611e04565b4311611565576001600160a01b0382166000908152600460205260409020805460ff191660011790555b600161156f610f2a565b6001600160a01b0316846001600160a01b0316141580156115a95750611593610f2a565b6001600160a01b0316836001600160a01b031614155b1561177d5760175462010000900460ff161561177d576001600160a01b03841630148015906115e157506001600160a01b0383163014155b80156115fb57506013546001600160a01b03858116911614155b801561161557506013546001600160a01b03848116911614155b156116a2576013546001600160a01b031661162e611319565b6001600160a01b0316148061165d57506014546001600160a01b0316611652611319565b6001600160a01b0316145b6116a2576040805162461bcd60e51b81526020600482015260116024820152704552523a20556e6973776170206f6e6c7960781b604482015290519081900360640190fd5b6116aa610f2a565b6001600160a01b0316836001600160a01b0316141580156116d457506001600160a01b0383163014155b80156116ee57506013546001600160a01b03848116911614155b801561170857506014546001600160a01b03848116911614155b1561177d573260009081526005602052604090205461012c4201101561176a576040805162461bcd60e51b815260206004820152601260248201527110dbdbdb191bdddb881a5b881959999958dd60721b604482015290519081900360640190fd5b3260009081526005602052604090204290555b611785610f2a565b6001600160a01b0316846001600160a01b0316141580156117bf57506117a9610f2a565b6001600160a01b0316836001600160a01b031614155b80156117d457506001600160a01b0384163014155b80156117e957506001600160a01b0383163014155b156119e9576014546001600160a01b03858116911614801561181957506013546001600160a01b03848116911614155b801561183e57506001600160a01b03841660009081526007602052604090205460ff16155b801561186357506001600160a01b03831660009081526007602052604090205460ff16155b156118bb5760085461187e8361187886610db5565b90611e04565b11156118bb5760405162461bcd60e51b815260040180806020018281038252604181526020018061225f6041913960600191505060405180910390fd5b6014546001600160a01b0385811691161480156118e657506013546001600160a01b03848116911614155b156118f857600954600f55600a546010555b6014546001600160a01b03848116911614801561192357506013546001600160a01b03858116911614155b1561198b5760175460ff161561197e576001600160a01b03831660009081526004602052604090205460ff1615801561197557506001600160a01b03841660009081526004602052604090205460ff16155b61197e57600080fd5b600b54600f55600c546010555b601754610100900460ff161580156119b157506014546001600160a01b03858116911614155b156119e95760006119c130610db5565b90506015548111156119d6576119d681611cee565b4780156119e6576119e647611d75565b50505b6001600160a01b03841660009081526007602052604090205460ff1680611a2857506001600160a01b03831660009081526007602052604090205460ff165b15611a31575060005b611a3d84848484611e5e565b610c3b611e76565b60008184841115611ad45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a99578181015183820152602001611a81565b50505050905090810190601f168015611ac65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000611b1e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b9392505050565b6017805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b6357fe5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611bb757600080fd5b505afa158015611bcb573d6000803e3d6000fd5b505050506040513d6020811015611be157600080fd5b5051815182906001908110611bf257fe5b6001600160a01b039283166020918202929092010152601354611c18913091168461131d565b60135460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611c9e578181015183820152602001611c86565b505050509050019650505050505050600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b50506017805461ff001916905550505050565b6017805461ff001916610100179055600f54601054600091611d2691611d1391611e04565b600f54611d209085611ee9565b90611adc565b90506000611d35826002611adc565b90506000611d438483611f42565b905047611d4f82611b25565b6000611d6983611d2086611d634787611f42565b90611ee9565b9050611cdb8482611f84565b6000611d82826003611adc565b6012546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611dbd573d6000803e3d6000fd5b506011546001600160a01b03166108fc611dd78484611f42565b6040518115909202916000818181858888f19350505050158015611dff573d6000803e3d6000fd5b505050565b600082820183811015611b1e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80611e6b57611e6b61203c565b611a3d84848461206e565b600d54600f55600e54601055565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a99578181015183820152602001611a81565b506000838581611edf57fe5b0495945050505050565b600082611ef85750600061092f565b82820282848281611f0557fe5b0414611b1e5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ca6021913960400191505060405180910390fd5b6000611b1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a45565b601354611f9c9030906001600160a01b03168461131d565b6013546011546040805163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b50505050506040513d6060811015610c3b57600080fd5b60105415801561204c5750600f54155b156120565761206c565b60108054600e55600f8054600d55600091829055555b565b6120766121d2565b6120906064611d2060105485611ee990919063ffffffff16565b6020820152600f546120aa90606490611d20908590611ee9565b80825260208201516120c891906120c2908590611f42565b90611f42565b6040808301919091526001600160a01b0385166000908152600260205220546120f19083611f42565b6001600160a01b0380861660009081526002602052604080822093909355838301519186168152919091205461212691611e04565b6001600160a01b03841660009081526002602090815260409091209190915581519082015161216f916121599190611e04565b3060009081526002602052604090205490611e04565b306000908152600260209081526040918290209290925582810151815190815290516001600160a01b0386811693908816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050565b6040518060600160405280600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737377616c6c65742062616c616e6365206166746572207472616e73666572206d757374206265206c657373207468616e206d61782077616c6c657420616d6f756e74416d6f756e74206d7573742062652067726561746572207468616e20302e3525206f6620737570706c79536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f416d6f756e74206d757374206265206c657373207468616e206f7220657175616c20746f20746f74616c537570706c7945524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220085d8b208a285737af75b71de2f34f1bebf00d14d532647aa38919d35bea0ec664736f6c63430007060033

Deployed Bytecode Sourcemap

7049:13804:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9702:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20119:120;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20119:120:0;-1:-1:-1;;;;;20119:120:0;;:::i;:::-;;;;;;;;;;;;;;;;;;10545:163;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10545:163:0;;;;;;;;:::i;9979:97::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10716:312;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10716:312:0;;;;;;;;;;;;;;;;;:::i;17146:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17146:88:0;-1:-1:-1;;;;;17146:88:0;;:::i;:::-;;19149:352;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19149:352:0;;:::i;8517:25::-;;;;;;;;;;;;;:::i;9888:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7743:37;;;;;;;;;;;;;:::i;20636:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20636:210:0;;;;;;;;;;:::i;8480:28::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8480:28:0;;;;;;;;;;;;;;17242:234;;;;;;;;;;;;;:::i;19970:137::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19970:137:0;-1:-1:-1;;;;;19970:137:0;;:::i;11301:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11301:103:0;;;;:::i;17484:159::-;;;;;;;;;;;;;:::i;7674:47::-;;;;;;;;;;;;;:::i;8701:31::-;;;;;;;;;;;;;:::i;10084:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10084:119:0;-1:-1:-1;;;;;10084:119:0;;:::i;2621:148::-;;;;;;;;;;;;;:::i;20465:163::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20465:163:0;-1:-1:-1;;;;;20465:163:0;;:::i;19802:160::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19802:160:0;;-1:-1:-1;19802:160:0;;-1:-1:-1;;;;;19802:160:0:i;2407:79::-;;;;;;;;;;;;;:::i;9793:87::-;;;;;;;;;;;;;:::i;19509:142::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19509:142:0;-1:-1:-1;;;;;19509:142:0;;:::i;10215:169::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10215:169:0;;;;;;;;:::i;8659:35::-;;;;;;;;;;;;;:::i;8585:33::-;;;;;;;;;;;;;:::i;11571:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11571:102:0;;;;:::i;7881:39::-;;;;;;;;;;;;;:::i;20247:210::-;;;;;;;;;;;;;:::i;17651:281::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17651:281:0;;;;;;;;;;;;;;;;;:::i;7835:38::-;;;;;;;;;;;;;:::i;10392:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10392:145:0;;;;;;;;;;:::i;7788:37::-;;;;;;;;;;;;;:::i;19659:135::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19659:135:0;;:::i;2777:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2777:244:0;-1:-1:-1;;;;;2777:244:0;;:::i;17940:236::-;;;;;;;;;;;;;:::i;9702:83::-;9772:5;;;;;;;;;;;;-1:-1:-1;;;9772:5:0;;;;9702:83;:::o;20119:120::-;-1:-1:-1;;;;;20217:14:0;20193:4;20217:14;;;:4;:14;;;;;;;;;20119:120::o;10545:163::-;10622:4;10639:39;10648:12;:10;:12::i;:::-;10662:7;10671:6;10639:8;:39::i;:::-;-1:-1:-1;10696:4:0;10545:163;;;;;:::o;9979:97::-;7652:15;9979:97;:::o;10716:312::-;10816:4;10833:36;10843:6;10851:9;10862:6;10833:9;:36::i;:::-;10880:118;10889:6;10896:12;:10;:12::i;:::-;10909:88;10947:6;10909:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10909:19:0;;;;;;:11;:19;;;;;;10929:12;:10;:12::i;:::-;-1:-1:-1;;;;;10909:33:0;;;;;;;;;;;;-1:-1:-1;10909:33:0;;;:88;:37;:88::i;:::-;10880:8;:118::i;:::-;-1:-1:-1;11016:4:0;10716:312;;;;;:::o;17146:88::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17206:12:0::1;17221:5;17206:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;17206:20:0::1;::::0;;17146:88::o;19149:352::-;19246:3;;-1:-1:-1;;;;;19246:3:0;19230:12;:10;:12::i;:::-;-1:-1:-1;;;;;19230:19:0;;19222:28;;;;;;19287:16;7652:15;19299:3;19287:11;:16::i;:::-;19269:15;:34;19261:89;;;;-1:-1:-1;;;19261:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7652:15;19369;:26;;19361:87;;;;-1:-1:-1;;;19361:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19459:16;:34;19149:352::o;8517:25::-;;;;:::o;9888:83::-;7271:1;9888:83;:::o;7743:37::-;;;;:::o;20636:210::-;20748:3;;-1:-1:-1;;;;;20748:3:0;20732:12;:10;:12::i;:::-;-1:-1:-1;;;;;20732:19:0;;20724:28;;;;;;20763:12;-1:-1:-1;;;;;20763:21:0;;20785:13;20800:12;-1:-1:-1;;;;;20800:22:0;;20831:4;20800:37;;;;;;;;;;;;;-1:-1:-1;;;;;20800:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20800:37:0;20763:75;;;-1:-1:-1;;;;;;20763:75:0;;;;;;;-1:-1:-1;;;;;20763:75:0;;;;;;;;;;;;;;;;;;;;20800:37;;20763:75;;;;;;;-1:-1:-1;20763:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20636:210:0:o;8480:28::-;;;-1:-1:-1;;;;;8480:28:0;;:::o;17242:234::-;17308:3;;-1:-1:-1;;;;;17308:3:0;17292:12;:10;:12::i;:::-;-1:-1:-1;;;;;17292:19:0;;17284:28;;;;;;17323:23;17349:24;17367:4;17349:9;:24::i;:::-;17323:50;-1:-1:-1;17388:19:0;;17384:85;;17424:33;17441:15;17424:16;:33::i;:::-;17242:234;:::o;19970:137::-;20062:3;;-1:-1:-1;;;;;20062:3:0;20046:12;:10;:12::i;:::-;-1:-1:-1;;;;;20046:19:0;;20038:28;;;;;11301:103;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;11373:15:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;11373:23:0;;::::1;::::0;;;::::1;::::0;;11301:103::o;17484:159::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;17546:20:::1;17569:24;17587:4;17569:9;:24::i;:::-;17546:47;;17604:31;17619:15;17604:14;:31::i;7674:47::-:0;;;;:::o;8701:31::-;;;;;;;;;:::o;10084:119::-;-1:-1:-1;;;;;10177:18:0;10150:7;10177:18;;;:9;:18;;;;;;;10084:119::o;2621:148::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;2728:1:::1;2712:6:::0;;2691:40:::1;::::0;-1:-1:-1;;;;;2712:6:0;;::::1;::::0;2691:40:::1;::::0;2728:1;;2691:40:::1;2759:1;2742:19:::0;;-1:-1:-1;;;;;;2742:19:0::1;::::0;;2621:148::o;20465:163::-;20551:3;;-1:-1:-1;;;;;20551:3:0;20535:12;:10;:12::i;:::-;-1:-1:-1;;;;;20535:19:0;;20527:28;;;;;;20566:54;;-1:-1:-1;;;;;20566:31:0;;;20598:21;20566:54;;;;;;;;;20598:21;20566:31;:54;;;;;;;;;;;;;;;;;;;;;20465:163;:::o;19802:160::-;19874:6;19869:86;19890:5;:12;19886:1;:16;19869:86;;;19939:4;19922;:14;19927:5;19933:1;19927:8;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19922:14:0;;;;;;;;;;;-1:-1:-1;19922:14:0;:21;;-1:-1:-1;;19922:21:0;;;;;;;;;;-1:-1:-1;19904:3:0;19869:86;;2407:79;2445:7;2472:6;-1:-1:-1;;;;;2472:6:0;2407:79;:::o;9793:87::-;9865:7;;;;;;;;;;;;-1:-1:-1;;;9865:7:0;;;;9793:87;:::o;19509:142::-;19608:3;;-1:-1:-1;;;;;19608:3:0;19592:12;:10;:12::i;:::-;-1:-1:-1;;;;;19592:19:0;;19584:28;;;;;;19623:4;:20;;-1:-1:-1;;;;;;19623:20:0;-1:-1:-1;;;;;19623:20:0;;;;;;;;;;19509:142::o;10215:169::-;10295:4;10312:42;10322:12;:10;:12::i;:::-;10336:9;10347:6;10312:9;:42::i;8659:35::-;;;;;;;;;:::o;8585:33::-;;;;;;:::o;11571:102::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;11644:13:::1;:21:::0;;-1:-1:-1;;11644:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11571:102::o;7881:39::-;;;;:::o;20247:210::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;20311:11:::1;::::0;;;::::1;;;20310:12;20302:48;;;::::0;;-1:-1:-1;;;20302:48:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;20375:12;20361:11;:26:::0;20398:15:::1;:22:::0;;-1:-1:-1;;;;20398:22:0;;::::1;::::0;::::1;20431:18;::::0;::::1;::::0;;20247:210::o;17651:281::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;17773:19:::1;:28:::0;;;;17812:19:::1;:29:::0;;;;17852:18:::1;:30:::0;17893:18:::1;:31:::0;17651:281::o;7835:38::-;;;;:::o;10392:145::-;-1:-1:-1;;;;;10502:18:0;;;10475:7;10502:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10392:145::o;7788:37::-;;;;:::o;19659:135::-;19747:3;;-1:-1:-1;;;;;19747:3:0;19731:12;:10;:12::i;:::-;-1:-1:-1;;;;;19731:19:0;;19723:28;;;;;;19762:10;:24;19659:135::o;2777:244::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2866:22:0;::::1;2858:73;;;;-1:-1:-1::0;;;2858:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2968:6;::::0;;2947:38:::1;::::0;-1:-1:-1;;;;;2947:38:0;;::::1;::::0;2968:6;::::1;::::0;2947:38:::1;::::0;::::1;2996:6;:17:::0;;-1:-1:-1;;;;;;2996:17:0::1;-1:-1:-1::0;;;;;2996:17:0;;;::::1;::::0;;;::::1;::::0;;2777:244::o;17940:236::-;18006:3;;-1:-1:-1;;;;;18006:3:0;17990:12;:10;:12::i;:::-;-1:-1:-1;;;;;17990:19:0;;17982:28;;;;;;18050:21;18086:22;;18082:87;;18125:32;18138:18;18125:12;:32::i;103:98::-;183:10;103:98;:::o;11681:335::-;-1:-1:-1;;;;;11774:19:0;;11766:68;;;;-1:-1:-1;;;11766:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11853:21:0;;11845:68;;;;-1:-1:-1;;;11845:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11924:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11976:32;;;;;;;;;;;;;;;;;11681:335;;;:::o;12028:3023::-;-1:-1:-1;;;;;12118:18:0;;12110:68;;;;-1:-1:-1;;;12110:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12197:16:0;;12189:64;;;;-1:-1:-1;;;12189:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12281:1;12272:6;:10;12264:64;;;;-1:-1:-1;;;12264:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12345:11;;;;;;;12341:111;;12388:3;;-1:-1:-1;;;;;12380:11:0;;;12388:3;;12380:11;12372:20;;;;;;12477:13;;-1:-1:-1;;;;;12469:21:0;;;12477:13;;12469:21;:55;;;;-1:-1:-1;12508:15:0;;-1:-1:-1;;;;;12494:30:0;;;12508:15;;12494:30;;12469:55;12465:180;;;12562:11;;:18;;12578:1;12562:15;:18::i;:::-;12545:12;:36;12541:92;;-1:-1:-1;;;;;12602:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;12602:15:0;12613:4;12602:15;;;12541:92;12670:4;12697:7;:5;:7::i;:::-;-1:-1:-1;;;;;12689:15:0;:4;-1:-1:-1;;;;;12689:15:0;;;:32;;;;;12714:7;:5;:7::i;:::-;-1:-1:-1;;;;;12708:13:0;:2;-1:-1:-1;;;;;12708:13:0;;;12689:32;12685:722;;;12742:15;;;;;;;12738:636;;;-1:-1:-1;;;;;12782:21:0;;12798:4;12782:21;;;;:44;;-1:-1:-1;;;;;;12807:19:0;;12821:4;12807:19;;12782:44;:80;;;;-1:-1:-1;12846:15:0;;-1:-1:-1;;;;;12830:32:0;;;12846:15;;12830:32;;12782:80;:114;;;;-1:-1:-1;12880:15:0;;-1:-1:-1;;;;;12866:30:0;;;12880:15;;12866:30;;12782:114;12778:266;;;12953:15;;-1:-1:-1;;;;;12953:15:0;12929:12;:10;:12::i;:::-;-1:-1:-1;;;;;12929:40:0;;:73;;;-1:-1:-1;12989:13:0;;-1:-1:-1;;;;;12989:13:0;12973:12;:10;:12::i;:::-;-1:-1:-1;;;;;12973:29:0;;12929:73;12921:103;;;;;-1:-1:-1;;;12921:103:0;;;;;;;;;;;;-1:-1:-1;;;12921:103:0;;;;;;;;;;;;;;;13086:7;:5;:7::i;:::-;-1:-1:-1;;;;;13080:13:0;:2;-1:-1:-1;;;;;13080:13:0;;;:36;;;;-1:-1:-1;;;;;;13097:19:0;;13111:4;13097:19;;13080:36;:70;;;;-1:-1:-1;13134:15:0;;-1:-1:-1;;;;;13120:30:0;;;13134:15;;13120:30;;13080:70;:93;;;;-1:-1:-1;13160:13:0;;-1:-1:-1;;;;;13154:19:0;;;13160:13;;13154:19;;13080:93;13076:283;;;13214:9;13206:18;;;;:7;:18;;;;;;13247:9;13229:15;:27;-1:-1:-1;13206:51:0;13198:82;;;;;-1:-1:-1;;;13198:82:0;;;;;;;;;;;;-1:-1:-1;;;13198:82:0;;;;;;;;;;;;;;;13311:9;13303:18;;;;:7;:18;;;;;13324:15;13303:36;;13076:283;13431:7;:5;:7::i;:::-;-1:-1:-1;;;;;13423:15:0;:4;-1:-1:-1;;;;;13423:15:0;;;:32;;;;;13448:7;:5;:7::i;:::-;-1:-1:-1;;;;;13442:13:0;:2;-1:-1:-1;;;;;13442:13:0;;;13423:32;:57;;;;-1:-1:-1;;;;;;13459:21:0;;13475:4;13459:21;;13423:57;:80;;;;-1:-1:-1;;;;;;13484:19:0;;13498:4;13484:19;;13423:80;13419:1427;;;13534:13;;-1:-1:-1;;;;;13526:21:0;;;13534:13;;13526:21;:55;;;;-1:-1:-1;13565:15:0;;-1:-1:-1;;;;;13551:30:0;;;13565:15;;13551:30;;13526:55;:84;;;;-1:-1:-1;;;;;;13586:24:0;;;;;;:18;:24;;;;;;;;13585:25;13526:84;:111;;;;-1:-1:-1;;;;;;13615:22:0;;;;;;:18;:22;;;;;;;;13614:23;13526:111;13522:275;;;13695:16;;13666:25;13684:6;13666:13;13676:2;13666:9;:13::i;:::-;:17;;:25::i;:::-;:45;;13658:123;;;;-1:-1:-1;;;13658:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13825:13;;-1:-1:-1;;;;;13817:21:0;;;13825:13;;13817:21;:55;;;;-1:-1:-1;13856:15:0;;-1:-1:-1;;;;;13842:30:0;;;13856:15;;13842:30;;13817:55;13813:183;;;13909:18;;13893:13;:34;13962:18;;13946:13;:34;13813:183;14038:13;;-1:-1:-1;;;;;14032:19:0;;;14038:13;;14032:19;:55;;;;-1:-1:-1;14071:15:0;;-1:-1:-1;;;;;14055:32:0;;;14071:15;;14055:32;;14032:55;14028:294;;;14112:13;;;;14108:91;;;-1:-1:-1;;;;;14155:8:0;;;;;;:4;:8;;;;;;;;14154:9;:24;;;;-1:-1:-1;;;;;;14168:10:0;;;;;;:4;:10;;;;;;;;14167:11;14154:24;14146:33;;;;;;14233:19;;14217:13;:35;14287:19;;14271:13;:35;14028:294;14355:6;;;;;;;14354:7;:32;;;;-1:-1:-1;14373:13:0;;-1:-1:-1;;;;;14365:21:0;;;14373:13;;14365:21;;14354:32;14350:485;;;14409:28;14440:24;14458:4;14440:9;:24::i;:::-;14409:55;;14512:10;;14489:20;:33;14485:118;;;14547:36;14562:20;14547:14;:36::i;:::-;14652:21;14696:22;;14692:106;;14743:35;14756:21;14743:12;:35::i;:::-;14350:485;;;-1:-1:-1;;;;;14862:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;14890:22:0;;;;;;:18;:22;;;;;;;;14862:50;14858:98;;;-1:-1:-1;14939:5:0;14858:98;14976:41;14991:4;14997:2;15001:6;15009:7;14976:14;:41::i;:::-;15028:15;:13;:15::i;1240:190::-;1326:7;1362:12;1354:6;;;;1346:29;;;;-1:-1:-1;;;1346:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1398:5:0;;;1240:190::o;1692:132::-;1750:7;1777:39;1781:1;1784;1777:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1770:46;1692:132;-1:-1:-1;;;1692:132:0:o;15059:407::-;8845:6;:13;;-1:-1:-1;;8845:13:0;;;;;15161:16:::1;::::0;;15175:1:::1;15161:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15161:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15161:16:0::1;15137:40;;15206:4;15188;15193:1;15188:7;;;;;;;;-1:-1:-1::0;;;;;15188:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15232:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15232:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15188:7;;15232:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15232:22:0;15222:7;;:4;;15227:1:::1;::::0;15222:7;::::1;;;;;-1:-1:-1::0;;;;;15222:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15297:15:::1;::::0;15265:62:::1;::::0;15282:4:::1;::::0;15297:15:::1;15315:11:::0;15265:8:::1;:62::i;:::-;15338:15;::::0;:120:::1;::::0;-1:-1:-1;;;15338:120:0;;::::1;::::0;::::1;::::0;;;:15:::1;:120:::0;;;;;;15435:4:::1;15338:120:::0;;;;;;15442:15:::1;15338:120:::0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15338:15:0;;::::1;::::0;:66:::1;::::0;15405:11;;15421:4;;15435;15442:15;15338:120;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:15;:120:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8881:6:0;:14;;-1:-1:-1;;8881:14:0;;;-1:-1:-1;;;;15059:407:0:o;15944:1014::-;8845:6;:13;;-1:-1:-1;;8845:13:0;;;;;16114::::1;::::0;16096::::1;::::0;8845;;16052:77:::1;::::0;16096:32:::1;::::0;:17:::1;:32::i;:::-;16052:13;::::0;:39:::1;::::0;16070:20;16052:17:::1;:39::i;:::-;:43:::0;::::1;:77::i;:::-;16029:100:::0;-1:-1:-1;16193:12:0::1;16209:19;16029:100:::0;16226:1:::1;16209:16;:19::i;:::-;16193:35:::0;-1:-1:-1;16239:17:0::1;16259:30;:20:::0;16193:35;16259:24:::1;:30::i;:::-;16239:50:::0;-1:-1:-1;16592:21:0::1;16658:27;16239:50:::0;16658:16:::1;:27::i;:::-;16816:18;16837:70;16897:9:::0;16838:53:::1;16886:4:::0;16839:41:::1;:21;16865:14:::0;16839:25:::1;:41::i;:::-;16838:47:::0;::::1;:53::i;16837:70::-;16816:91;;16920:30;16933:4;16939:10;16920:12;:30::i;16966:172::-:0;17023:14;17040:13;:6;17051:1;17040:10;:13::i;:::-;17064:4;;:21;;17023:30;;-1:-1:-1;;;;;;17064:4:0;;:21;;;;;17023:30;;17064:4;:21;:4;:21;17023:30;17064:4;:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17096:3:0;;-1:-1:-1;;;;;17096:3:0;:32;17109:18;:6;17120;17109:10;:18::i;:::-;17096:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16966:172;;:::o;909:179::-;967:7;999:5;;;1023:6;;;;1015:46;;;;;-1:-1:-1;;;1015:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;18184:256;18297:7;18292:60;;18326:14;:12;:14::i;:::-;18362:44;18380:6;18388:9;18399:6;18362:17;:44::i;11416:147::-;11486:21;;11470:13;:37;11534:21;;11518:13;:37;11416:147::o;1832:189::-;1918:7;1953:12;1946:5;1938:28;;;;-1:-1:-1;;;1938:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1977:9;1993:1;1989;:5;;;;;;;1832:189;-1:-1:-1;;;;;1832:189:0:o;1438:246::-;1496:7;1520:6;1516:47;;-1:-1:-1;1550:1:0;1543:8;;1516:47;1585:5;;;1589:1;1585;:5;:1;1609:5;;;;;:10;1601:56;;;;-1:-1:-1;;;1601:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1096:136;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;15478:456::-;15591:15;;15559:62;;15576:4;;-1:-1:-1;;;;;15591:15:0;15609:11;15559:8;:62::i;:::-;15664:15;;15878:3;;15664:262;;;-1:-1:-1;;;15664:262:0;;15738:4;15664:262;;;;;;;;;;:15;:262;;;;;;;;;;-1:-1:-1;;;;;15878:3:0;;;15664:262;;;;15898:15;15664:262;;;;;;:15;;;;;:31;;15703:9;;15664:262;;;;;;;;;;;;;;;15703:9;15664:15;:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11036:257;11083:13;;:18;:40;;;;-1:-1:-1;11105:13:0;;:18;11083:40;11079:53;;;11125:7;;11079:53;11166:13;;;11142:21;:37;11214:13;;;11190:21;:37;-1:-1:-1;11240:17:0;;;;11268;11036:257;:::o;18448:652::-;18545:24;;:::i;:::-;18598:34;18628:3;18598:25;18609:13;;18598:6;:10;;:25;;;;:::i;:34::-;18580:15;;;:52;18672:13;;18661:34;;18691:3;;18661:25;;:6;;:10;:25::i;:34::-;18643:52;;;18742:15;;;;18731:48;;18643:52;18731:27;;:6;;:10;:27::i;:::-;:31;;:48::i;:::-;18716:12;;;;:63;;;;-1:-1:-1;;;;;18820:17:0;;;;;;:9;:17;;;;:29;;18842:6;18820:21;:29::i;:::-;-1:-1:-1;;;;;18800:17:0;;;;;;;:9;:17;;;;;;:49;;;;18908:12;;;;18883:20;;;;;;;;;;:38;;:24;:38::i;:::-;-1:-1:-1;;;;;18860:20:0;;;;;;:9;:20;;;;;;;;:61;;;;19008:15;;18988;;;;18959:66;;18988:36;;:15;:19;:36::i;:::-;18977:4;18959:24;;;;:9;:24;;;;;;;:28;:66::i;:::-;18950:4;18932:24;;;;:9;:24;;;;;;;;;:93;;;;19079:12;;;;19051:41;;;;;;;-1:-1:-1;;;;;19051:41:0;;;;;;;;;;;;;;;;;;;18448:652;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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