ETH Price: $3,202.91 (+5.08%)

Token

DogTag (DTAG)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 DTAG

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,467,404,595,304,275.507731059 DTAG

Value
$0.00
0x635540C2BBf977d940bFb2C392BEf54b5449a313
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:
DTAG

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT
pragma solidity 0.8.11;

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

} 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
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 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 DTAG is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint) private cooldown;
    mapping (address => bool) private bots;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e18 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _swapMin = _tTotal * 1 / 100000 ;
    uint256 private _nextSwap =  block.timestamp;
    uint256 private _DTAG_Fee = 8;
    uint256 private _DTAG_SellFee = 0;
    uint256 private _DTAGFee;
    uint256 private _LIQ_Fee = 4;
    uint256 private _LIQ_SellFee = 24;
    uint256 private _LIQFee;

    address payable private _DTAG_Wallet;

    string private constant _name = "DogTag";
    string private constant _symbol = "DTAG";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    bool botscantrade = false;

    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWallet = _tTotal;

    uint256 swapQty = _tTotal / 100 ;
    event MaxTxAmountUpdated(uint _maxTxAmount);

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

    constructor () {

        address deployer    = 0x90E69BFf53773e670242Ce7247eEA0d25CbC51dF;

        _DTAG_Wallet        = payable(0xE301DDE3c7Adc905Ea99A71a50290B2887B33d59);

        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_DTAG_Wallet] = true;
        _isExcludedFromFee[deployer] = true;

        emit Transfer(address(0), owner(), _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() public pure override returns (uint256) { return _tTotal; }
function balanceOf(address account) public view override returns (uint256) { 
//    return tokenFromReflection(_rOwned[account]); 

        require(_rOwned[account] <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return _rOwned[account].div(currentRate); 
}
    function transfer(address recipient, uint256 amount) public override returns (bool) {        
        _transfer(_msgSender(), recipient, amount);
        return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public 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 setCooldownEnabled(bool onoff) external onlyOwner() {

        cooldownEnabled = onoff;
}
/*        
function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate); }
*/
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(!bots[from] && !bots[to]);
        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 ( tradingOpen ) {
            if ( from == owner() || to == owner()) {
                _DTAGFee = 0;
                _LIQFee = 0;
            } else if (from == uniswapV2Pair) {
                _DTAGFee = _DTAG_Fee;
                _LIQFee = _LIQ_Fee;
            } else {
                _DTAGFee = _DTAG_SellFee;
                _LIQFee = _LIQ_SellFee;
            }
        }
        if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount +1e9, "Max Transaction Amount Exceeded" );
                require(amount + balanceOf(to) <= _maxWallet +1e9, "Max Wallet Amount Exceeded");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if ( _nextSwap < block.timestamp || contractTokenBalance > swapQty ) {

                    uint256 feeTokens = contractTokenBalance * _DTAG_Fee * _DTAG_SellFee / 20;
                                        
                    swapTokensForEth(feeTokens);

                    _DTAG_Wallet.transfer(address(this).balance);   

                    uint256 liqTokens = contractTokenBalance - feeTokens;

                    swapTokensForEth(liqTokens / 2);
                    liquify( liqTokens / 2);
                    
                _nextSwap = block.timestamp + 3600 + block.timestamp % 69 ;
                }
            }
        }	
        _tokenTransfer(from,to,amount);
        }
function manualLiquidity() external lockTheSwap onlyOwner(){

        uint256 _liqTokens = balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), _liqTokens);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _liqTokens / 2,
            0,
            path,
            address(this),
            block.timestamp
            );

        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            _liqTokens / 2,
            0,
            0,
            owner(),
            block.timestamp);
}    
function liquify(uint256 _tokens) internal lockTheSwap {

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

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

    uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            _tokens,
            0,
            0,
            owner(),
            block.timestamp);
    }

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 sendETHToFee(uint256 _eth) private {
        _DTAG_Wallet.transfer(_eth);   
}
    
function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Pair), _tTotal);

        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp);

//        swapEnabled = true;
        cooldownEnabled = true;
        _maxWallet =  _tTotal / 100;
        _maxTxAmount = _tTotal / 100; //1e16 * 10**9;
        tradingOpen = true;

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
}
function _tokenTransfer(address sender, address recipient, uint256 tAmount) private {

    if(bots[sender] || bots[recipient]){
        require(botscantrade, "bot Not allowed");
    }


//        _transferStandard(sender, recipient, amount);
//function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();

        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] -= rAmount;
        _rOwned[recipient] += rTransferAmount; 

//        _takeTeam(tTeam);
// function _takeTeam(uint256 tTeam) private {
//        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] += rTeam;
    
//      _reflectFee(rFee, tFee);
        _rTotal -= rFee;
        _tFeeTotal += tFee;

        emit Transfer(sender, recipient, tTransferAmount);
    }
/*
function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] += rTeam;
    }

function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal -= rFee;
        _tFeeTotal += tFee;
    }
*/
    receive() external payable {}

function setSwap() public onlyOwner(){
    swapEnabled = !swapEnabled;
}

function setMarketingWallet(address walletAddress) public onlyOwner {
    _DTAG_Wallet = payable(walletAddress);
}
function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        require(maxTxAmount > 69000000, "Max Tx Amount cannot be less than 69 Million");
        _maxTxAmount = maxTxAmount * 10**9;
    }
function setMaxWallet(uint256 maxTxWallet) external onlyOwner() {
        require(maxTxWallet > 69000000, "Max Tx Wallet cannot be less than 69 Million");
        _maxWallet = maxTxWallet * 10**9;
    }    
function setBuyFee(uint256 dtag_, uint256 liq_) external onlyOwner() {
        _DTAG_Fee =  dtag_;
        _LIQ_Fee = liq_;
}
function setSellFee(uint256 dtag_, uint256 liq_) external onlyOwner() {
        _DTAG_Fee =  dtag_;
        _LIQ_Fee = liq_;        
}    

function excludeFromFee( address _excludeAddy) public onlyOwner() {
    _isExcludedFromFee[_excludeAddy] = true;
}
function includeFromFee( address _includeAddy) public onlyOwner() {
    _isExcludedFromFee[_includeAddy] = false;
}
function manualswap(uint256 _tokens) external onlyOwner(){
        require(_tokens * 10**9 < balanceOf(address(this)));
        swapTokensForEth(_tokens * 10**9);
    }
    
function manualsend(uint256 _eth ) public onlyOwner(){
                _DTAG_Wallet.transfer(_eth);   

} 

function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
//        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, DTAG_Fee, _LIQFee);
    //function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(_DTAGFee).div(100);
        uint256 tTeam = tAmount.mul(_LIQFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        //return (tTransferAmount, tFee, tTeam);
    
        uint256 currentRate =  _getRate();
        //(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        //function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        //return (rAmount, rTransferAmount, rFee);

        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
/*
    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
}
*/
function _getRate() private view returns(uint256) {
        uint256 rSupply;
        uint256 tSupply;
//       (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();  
//function _getCurrentSupply() private view returns(uint256, uint256) {      
        if (_rTotal < _rTotal.div(_tTotal)) {
            rSupply = _rTotal;
            tSupply = _tTotal;
        } else {
            rSupply = _rTotal;
            tSupply = _tTotal;
        }
//
        return rSupply.div(tSupply);
    }
/*
function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
*/
function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
}
    
function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
}
function setQty(uint256 _qty) public {
    require(_msgSender() == _DTAG_Wallet);
    swapQty = _qty * 1**9 ;
}
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"_excludeAddy","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_includeAddy","type":"address"}],"name":"includeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eth","type":"uint256"}],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dtag_","type":"uint256"},{"internalType":"uint256","name":"liq_","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_qty","type":"uint256"}],"name":"setQty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dtag_","type":"uint256"},{"internalType":"uint256","name":"liq_","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

60806040526200001e6b033b2e3c9fd0803ce80000006000196200027e565b6200002c90600019620002ab565b600755620186a06200004c6b033b2e3c9fd0803ce80000006001620002c5565b620000589190620002e7565b60095542600a556008600b556000600c556004600e556018600f556013805463ffffffff60a81b191690556b033b2e3c9fd0803ce800000060148190556015819055620000a890606490620002e7565b601655348015620000b857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b03191673e301dde3c7adc905ea99a71a50290b2887b33d591790556007547390e69bff53773e670242ce7247eea0d25cbc51df9060026000620001453390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600460006200017f6200025960201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155601154821684528284208054861682179055908516835291208054909216179055620001f86000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce80000006040516200024a91815260200190565b60405180910390a350620002fe565b6000546001600160a01b031690565b634e487b7160e01b600052601260045260246000fd5b60008262000290576200029062000268565b500690565b634e487b7160e01b600052601160045260246000fd5b600082821015620002c057620002c062000295565b500390565b6000816000190483118215151615620002e257620002e262000295565b500290565b600082620002f957620002f962000268565b500490565b612992806200030e6000396000f3fe6080604052600436106101b05760003560e01c80636ac9a870116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e146104ed578063ec28438a14610533578063fb0ecfa4146103a0578063ff5118281461055357600080fd5b8063a9059cbb14610498578063b515566a146104b8578063c9567bf9146104d857600080fd5b806375150e01116100c657806375150e01146103f5578063881dce601461040a5780638da5cb5b1461042a57806395d89b411461045257600080fd5b80636ac9a870146103a057806370a08231146103c0578063715018a6146103e057600080fd5b806323b872dd11610159578063437823ec11610133578063437823ec146103205780635932ead1146103405780635d0044ca146103605780635d098b381461038057600080fd5b806323b872dd146102c4578063273123b7146102e4578063313ce5671461030457600080fd5b8063095ea7b31161018a578063095ea7b31461024b57806318160ddd1461027b5780631ad34a4f146102a457600080fd5b80630498213e146101bc57806306fdde03146101d3578063088130811461022b57600080fd5b366101b757005b600080fd5b3480156101c857600080fd5b506101d1610573565b005b3480156101df57600080fd5b5060408051808201909152600681527f446f67546167000000000000000000000000000000000000000000000000000060208201525b604051610222919061250a565b60405180910390f35b34801561023757600080fd5b506101d161024636600461255f565b61084b565b34801561025757600080fd5b5061026b61026636600461259d565b61087c565b6040519015158152602001610222565b34801561028757600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610222565b3480156102b057600080fd5b506101d16102bf36600461255f565b610893565b3480156102d057600080fd5b5061026b6102df3660046125c9565b61092b565b3480156102f057600080fd5b506101d16102ff36600461260a565b610994565b34801561031057600080fd5b5060405160098152602001610222565b34801561032c57600080fd5b506101d161033b36600461260a565b610a0f565b34801561034c57600080fd5b506101d161035b366004612635565b610a8d565b34801561036c57600080fd5b506101d161037b36600461255f565b610b34565b34801561038c57600080fd5b506101d161039b36600461260a565b610c1b565b3480156103ac57600080fd5b506101d16103bb366004612652565b610ca4565b3480156103cc57600080fd5b506102966103db36600461260a565b610d09565b3480156103ec57600080fd5b506101d1610dd2565b34801561040157600080fd5b506101d1610e83565b34801561041657600080fd5b506101d161042536600461255f565b610f2c565b34801561043657600080fd5b506000546040516001600160a01b039091168152602001610222565b34801561045e57600080fd5b5060408051808201909152600481527f44544147000000000000000000000000000000000000000000000000000000006020820152610215565b3480156104a457600080fd5b5061026b6104b336600461259d565b610fc0565b3480156104c457600080fd5b506101d16104d336600461268a565b610fcd565b3480156104e457600080fd5b506101d161108f565b3480156104f957600080fd5b5061029661050836600461274f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053f57600080fd5b506101d161054e36600461255f565b611576565b34801561055f57600080fd5b506101d161056e36600461260a565b61165d565b6013805460ff60a81b1916600160a81b17905561058d3390565b6000546001600160a01b039081169116146105ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60006105fa30610d09565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061063457610634612788565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561068d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b1919061279e565b816001815181106106c4576106c4612788565b6001600160a01b0392831660209182029290920101526012546106ea91309116846116d8565b6012546001600160a01b031663791ac9476107066002856127e7565b60008430426040518663ffffffff1660e01b815260040161072b9594939291906127fb565b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b50506012546001600160a01b0316915063f305d7199050473061077d6002876127e7565b6000806107926000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610812573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610837919061286c565b50506013805460ff60a81b19169055505050565b6011546001600160a01b0316336001600160a01b03161461086b57600080fd5b61087681600161289a565b60165550565b60006108893384846116d8565b5060015b92915050565b6000546001600160a01b031633146108ed5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610927573d6000803e3d6000fd5b5050565b6000610938848484611830565b61098a843361098585604051806060016040528060288152602001612935602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611d95565b6116d8565b5060019392505050565b6000546001600160a01b031633146109ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b03163314610a695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6013805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b63041cdb408111610c075760405162461bcd60e51b815260206004820152602c60248201527f4d61782054782057616c6c65742063616e6e6f74206265206c6573732074686160448201527f6e203639204d696c6c696f6e000000000000000000000000000000000000000060648201526084016105e6565b610c1581633b9aca0061289a565b60155550565b6000546001600160a01b03163314610c755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6011805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b600b91909155600e55565b6007546001600160a01b03821660009081526002602052604081205490911015610d9b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e730000000000000000000000000000000000000000000060648201526084016105e6565b6000610da5611dcf565b6001600160a01b038416600090815260026020526040902054909150610dcb9082611e39565b9392505050565b6000546001600160a01b03163314610e2c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610edd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b601380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff81167601000000000000000000000000000000000000000000009182900460ff1615909102179055565b6000546001600160a01b03163314610f865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b610f8f30610d09565b610f9d82633b9aca0061289a565b10610fa757600080fd5b610fbd610fb882633b9aca0061289a565b611e7b565b50565b6000610889338484611830565b6000546001600160a01b031633146110275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b60005b81518110156109275760016006600084848151811061104b5761104b612788565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611087816128b9565b91505061102a565b6000546001600160a01b031633146110e95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b60135474010000000000000000000000000000000000000000900460ff16156111545760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105e6565b6012805473ffffffffffffffffffffffffffffffffffffffff1916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556111a130826b033b2e3c9fd0803ce80000006116d8565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611203919061279e565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611265573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611289919061279e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611312919061279e565b6013805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691821790556113569030906b033b2e3c9fd0803ce80000006116d8565b6012546001600160a01b031663f305d719473061137281610d09565b6000806113876000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611407573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061142c919061286c565b5050601380547fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000001790555061148860646b033b2e3c9fd0803ce80000006127e7565b6015556114a260646b033b2e3c9fd0803ce80000006127e7565b60145560138054740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8216179091556012546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015611552573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092791906128d4565b6000546001600160a01b031633146115d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b63041cdb4081116116495760405162461bcd60e51b815260206004820152602c60248201527f4d617820547820416d6f756e742063616e6e6f74206265206c6573732074686160448201527f6e203639204d696c6c696f6e000000000000000000000000000000000000000060648201526084016105e6565b61165781633b9aca0061289a565b60145550565b6000546001600160a01b031633146116b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0383166117535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105e6565b6001600160a01b0382166117cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105e6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526006602052604090205460ff1615801561187257506001600160a01b03821660009081526006602052604090205460ff16155b61187b57600080fd5b6001600160a01b0383166118f75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105e6565b6001600160a01b0382166119735760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105e6565b600081116119e95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105e6565b60135474010000000000000000000000000000000000000000900460ff1615611a7d576000546001600160a01b0384811691161480611a3557506000546001600160a01b038381169116145b15611a49576000600d819055601055611a7d565b6013546001600160a01b0384811691161415611a7057600b54600d55600e54601055611a7d565b600c54600d55600f546010555b6000546001600160a01b03848116911614801590611aa957506000546001600160a01b03838116911614155b15611d85576013546001600160a01b038481169116148015611ad957506012546001600160a01b03838116911614155b8015611afe57506001600160a01b03821660009081526004602052604090205460ff16155b8015611b27575060135477010000000000000000000000000000000000000000000000900460ff165b15611c4757601454611b3d90633b9aca006128f1565b811115611b8c5760405162461bcd60e51b815260206004820152601f60248201527f4d6178205472616e73616374696f6e20416d6f756e742045786365656465640060448201526064016105e6565b601554611b9d90633b9aca006128f1565b611ba683610d09565b611bb090836128f1565b1115611bfe5760405162461bcd60e51b815260206004820152601a60248201527f4d61782057616c6c657420416d6f756e7420457863656564656400000000000060448201526064016105e6565b6001600160a01b0382166000908152600560205260409020544211611c2257600080fd5b611c2d42601e6128f1565b6001600160a01b0383166000908152600560205260409020555b601354600160a81b900460ff16158015611c6f57506013546001600160a01b03848116911614155b8015611c975750601354760100000000000000000000000000000000000000000000900460ff165b15611d85576000611ca730610d09565b905042600a541080611cba575060165481115b15611d835760006014600c54600b5484611cd4919061289a565b611cde919061289a565b611ce891906127e7565b9050611cf381611e7b565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611d2c573d6000803e3d6000fd5b506000611d398284612909565b9050611d49610fb86002836127e7565b611d5c611d576002836127e7565b61200e565b611d67604542612920565b611d7342610e106128f1565b611d7d91906128f1565b600a5550505b505b611d90838383612135565b505050565b60008184841115611db95760405162461bcd60e51b81526004016105e6919061250a565b506000611dc68486612909565b95945050505050565b6000806000611df56b033b2e3c9fd0803ce8000000600754611e3990919063ffffffff16565b6007541015611e155750506007546b033b2e3c9fd0803ce8000000611e28565b50506007546b033b2e3c9fd0803ce80000005b611e328282611e39565b9250505090565b6000610dcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061233c565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611ec357611ec3612788565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f40919061279e565b81600181518110611f5357611f53612788565b6001600160a01b039283166020918202929092010152601254611f7991309116846116d8565b6012546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790611fcb9085906000908690309042906004016127fb565b600060405180830381600087803b158015611fe557600080fd5b505af1158015611ff9573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061205657612056612788565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d3919061279e565b816001815181106120e6576120e6612788565b6001600160a01b03928316602091820292909201015260125461210c91309116846116d8565b6012546001600160a01b031663f305d7194730856000806107926000546001600160a01b031690565b6001600160a01b03831660009081526006602052604090205460ff168061217457506001600160a01b03821660009081526006602052604090205460ff165b156121e7576013547801000000000000000000000000000000000000000000000000900460ff166121e75760405162461bcd60e51b815260206004820152600f60248201527f626f74204e6f7420616c6c6f776564000000000000000000000000000000000060448201526064016105e6565b60006121f1611dcf565b90506000806000806000806122058861236a565b95509550955095509550955085600260008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546122469190612909565b90915550506001600160a01b038916600090815260026020526040812080548792906122739084906128f1565b9091555060009050612285828961242d565b306000908152600260205260408120805492935083929091906122a99084906128f1565b9250508190555084600760008282546122c29190612909565b9250508190555082600860008282546122db91906128f1565b92505081905550896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161232791815260200190565b60405180910390a35050505050505050505050565b6000818361235d5760405162461bcd60e51b81526004016105e6919061250a565b506000611dc684866127e7565b6000806000806000806000612395606461238f600d548b61242d90919063ffffffff16565b90611e39565b905060006123b3606461238f6010548c61242d90919063ffffffff16565b905060006123cb826123c58c866124c8565b906124c8565b905060006123d7611dcf565b905060006123e58c8361242d565b905060006123f3868461242d565b90506000612401868561242d565b90506000612413826123c586866124c8565b939f939e50919c50939a5094985092965091945050505050565b60008261243c5750600061088d565b6000612448838561289a565b90508261245585836127e7565b14610dcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105e6565b6000610dcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d95565b600060208083528351808285015260005b818110156125375785810183015185820160400152820161251b565b81811115612549576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561257157600080fd5b5035919050565b6001600160a01b0381168114610fbd57600080fd5b803561259881612578565b919050565b600080604083850312156125b057600080fd5b82356125bb81612578565b946020939093013593505050565b6000806000606084860312156125de57600080fd5b83356125e981612578565b925060208401356125f981612578565b929592945050506040919091013590565b60006020828403121561261c57600080fd5b8135610dcb81612578565b8015158114610fbd57600080fd5b60006020828403121561264757600080fd5b8135610dcb81612627565b6000806040838503121561266557600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561269d57600080fd5b823567ffffffffffffffff808211156126b557600080fd5b818501915085601f8301126126c957600080fd5b8135818111156126db576126db612674565b8060051b604051601f19603f8301168101818110858211171561270057612700612674565b60405291825284820192508381018501918883111561271e57600080fd5b938501935b82851015612743576127348561258d565b84529385019392850192612723565b98975050505050505050565b6000806040838503121561276257600080fd5b823561276d81612578565b9150602083013561277d81612578565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156127b057600080fd5b8151610dcb81612578565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826127f6576127f66127bb565b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561284b5784516001600160a01b031683529383019391830191600101612826565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561288157600080fd5b8351925060208401519150604084015190509250925092565b60008160001904831182151516156128b4576128b46127d1565b500290565b60006000198214156128cd576128cd6127d1565b5060010190565b6000602082840312156128e657600080fd5b8151610dcb81612627565b60008219821115612904576129046127d1565b500190565b60008282101561291b5761291b6127d1565b500390565b60008261292f5761292f6127bb565b50069056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122000e9e81b7eaae1d0333db15296f9f4f24c6e325ee0346497e142fd411fb0a7f464736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101b05760003560e01c80636ac9a870116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e146104ed578063ec28438a14610533578063fb0ecfa4146103a0578063ff5118281461055357600080fd5b8063a9059cbb14610498578063b515566a146104b8578063c9567bf9146104d857600080fd5b806375150e01116100c657806375150e01146103f5578063881dce601461040a5780638da5cb5b1461042a57806395d89b411461045257600080fd5b80636ac9a870146103a057806370a08231146103c0578063715018a6146103e057600080fd5b806323b872dd11610159578063437823ec11610133578063437823ec146103205780635932ead1146103405780635d0044ca146103605780635d098b381461038057600080fd5b806323b872dd146102c4578063273123b7146102e4578063313ce5671461030457600080fd5b8063095ea7b31161018a578063095ea7b31461024b57806318160ddd1461027b5780631ad34a4f146102a457600080fd5b80630498213e146101bc57806306fdde03146101d3578063088130811461022b57600080fd5b366101b757005b600080fd5b3480156101c857600080fd5b506101d1610573565b005b3480156101df57600080fd5b5060408051808201909152600681527f446f67546167000000000000000000000000000000000000000000000000000060208201525b604051610222919061250a565b60405180910390f35b34801561023757600080fd5b506101d161024636600461255f565b61084b565b34801561025757600080fd5b5061026b61026636600461259d565b61087c565b6040519015158152602001610222565b34801561028757600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610222565b3480156102b057600080fd5b506101d16102bf36600461255f565b610893565b3480156102d057600080fd5b5061026b6102df3660046125c9565b61092b565b3480156102f057600080fd5b506101d16102ff36600461260a565b610994565b34801561031057600080fd5b5060405160098152602001610222565b34801561032c57600080fd5b506101d161033b36600461260a565b610a0f565b34801561034c57600080fd5b506101d161035b366004612635565b610a8d565b34801561036c57600080fd5b506101d161037b36600461255f565b610b34565b34801561038c57600080fd5b506101d161039b36600461260a565b610c1b565b3480156103ac57600080fd5b506101d16103bb366004612652565b610ca4565b3480156103cc57600080fd5b506102966103db36600461260a565b610d09565b3480156103ec57600080fd5b506101d1610dd2565b34801561040157600080fd5b506101d1610e83565b34801561041657600080fd5b506101d161042536600461255f565b610f2c565b34801561043657600080fd5b506000546040516001600160a01b039091168152602001610222565b34801561045e57600080fd5b5060408051808201909152600481527f44544147000000000000000000000000000000000000000000000000000000006020820152610215565b3480156104a457600080fd5b5061026b6104b336600461259d565b610fc0565b3480156104c457600080fd5b506101d16104d336600461268a565b610fcd565b3480156104e457600080fd5b506101d161108f565b3480156104f957600080fd5b5061029661050836600461274f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053f57600080fd5b506101d161054e36600461255f565b611576565b34801561055f57600080fd5b506101d161056e36600461260a565b61165d565b6013805460ff60a81b1916600160a81b17905561058d3390565b6000546001600160a01b039081169116146105ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60006105fa30610d09565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061063457610634612788565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561068d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b1919061279e565b816001815181106106c4576106c4612788565b6001600160a01b0392831660209182029290920101526012546106ea91309116846116d8565b6012546001600160a01b031663791ac9476107066002856127e7565b60008430426040518663ffffffff1660e01b815260040161072b9594939291906127fb565b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b50506012546001600160a01b0316915063f305d7199050473061077d6002876127e7565b6000806107926000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610812573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610837919061286c565b50506013805460ff60a81b19169055505050565b6011546001600160a01b0316336001600160a01b03161461086b57600080fd5b61087681600161289a565b60165550565b60006108893384846116d8565b5060015b92915050565b6000546001600160a01b031633146108ed5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610927573d6000803e3d6000fd5b5050565b6000610938848484611830565b61098a843361098585604051806060016040528060288152602001612935602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611d95565b6116d8565b5060019392505050565b6000546001600160a01b031633146109ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b03163314610a695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6013805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b63041cdb408111610c075760405162461bcd60e51b815260206004820152602c60248201527f4d61782054782057616c6c65742063616e6e6f74206265206c6573732074686160448201527f6e203639204d696c6c696f6e000000000000000000000000000000000000000060648201526084016105e6565b610c1581633b9aca0061289a565b60155550565b6000546001600160a01b03163314610c755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6011805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b600b91909155600e55565b6007546001600160a01b03821660009081526002602052604081205490911015610d9b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e730000000000000000000000000000000000000000000060648201526084016105e6565b6000610da5611dcf565b6001600160a01b038416600090815260026020526040902054909150610dcb9082611e39565b9392505050565b6000546001600160a01b03163314610e2c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610edd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b601380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff81167601000000000000000000000000000000000000000000009182900460ff1615909102179055565b6000546001600160a01b03163314610f865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b610f8f30610d09565b610f9d82633b9aca0061289a565b10610fa757600080fd5b610fbd610fb882633b9aca0061289a565b611e7b565b50565b6000610889338484611830565b6000546001600160a01b031633146110275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b60005b81518110156109275760016006600084848151811061104b5761104b612788565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611087816128b9565b91505061102a565b6000546001600160a01b031633146110e95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b60135474010000000000000000000000000000000000000000900460ff16156111545760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105e6565b6012805473ffffffffffffffffffffffffffffffffffffffff1916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556111a130826b033b2e3c9fd0803ce80000006116d8565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611203919061279e565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611265573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611289919061279e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611312919061279e565b6013805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691821790556113569030906b033b2e3c9fd0803ce80000006116d8565b6012546001600160a01b031663f305d719473061137281610d09565b6000806113876000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611407573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061142c919061286c565b5050601380547fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000001790555061148860646b033b2e3c9fd0803ce80000006127e7565b6015556114a260646b033b2e3c9fd0803ce80000006127e7565b60145560138054740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8216179091556012546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015611552573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092791906128d4565b6000546001600160a01b031633146115d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b63041cdb4081116116495760405162461bcd60e51b815260206004820152602c60248201527f4d617820547820416d6f756e742063616e6e6f74206265206c6573732074686160448201527f6e203639204d696c6c696f6e000000000000000000000000000000000000000060648201526084016105e6565b61165781633b9aca0061289a565b60145550565b6000546001600160a01b031633146116b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0383166117535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105e6565b6001600160a01b0382166117cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105e6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526006602052604090205460ff1615801561187257506001600160a01b03821660009081526006602052604090205460ff16155b61187b57600080fd5b6001600160a01b0383166118f75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105e6565b6001600160a01b0382166119735760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105e6565b600081116119e95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105e6565b60135474010000000000000000000000000000000000000000900460ff1615611a7d576000546001600160a01b0384811691161480611a3557506000546001600160a01b038381169116145b15611a49576000600d819055601055611a7d565b6013546001600160a01b0384811691161415611a7057600b54600d55600e54601055611a7d565b600c54600d55600f546010555b6000546001600160a01b03848116911614801590611aa957506000546001600160a01b03838116911614155b15611d85576013546001600160a01b038481169116148015611ad957506012546001600160a01b03838116911614155b8015611afe57506001600160a01b03821660009081526004602052604090205460ff16155b8015611b27575060135477010000000000000000000000000000000000000000000000900460ff165b15611c4757601454611b3d90633b9aca006128f1565b811115611b8c5760405162461bcd60e51b815260206004820152601f60248201527f4d6178205472616e73616374696f6e20416d6f756e742045786365656465640060448201526064016105e6565b601554611b9d90633b9aca006128f1565b611ba683610d09565b611bb090836128f1565b1115611bfe5760405162461bcd60e51b815260206004820152601a60248201527f4d61782057616c6c657420416d6f756e7420457863656564656400000000000060448201526064016105e6565b6001600160a01b0382166000908152600560205260409020544211611c2257600080fd5b611c2d42601e6128f1565b6001600160a01b0383166000908152600560205260409020555b601354600160a81b900460ff16158015611c6f57506013546001600160a01b03848116911614155b8015611c975750601354760100000000000000000000000000000000000000000000900460ff165b15611d85576000611ca730610d09565b905042600a541080611cba575060165481115b15611d835760006014600c54600b5484611cd4919061289a565b611cde919061289a565b611ce891906127e7565b9050611cf381611e7b565b6011546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611d2c573d6000803e3d6000fd5b506000611d398284612909565b9050611d49610fb86002836127e7565b611d5c611d576002836127e7565b61200e565b611d67604542612920565b611d7342610e106128f1565b611d7d91906128f1565b600a5550505b505b611d90838383612135565b505050565b60008184841115611db95760405162461bcd60e51b81526004016105e6919061250a565b506000611dc68486612909565b95945050505050565b6000806000611df56b033b2e3c9fd0803ce8000000600754611e3990919063ffffffff16565b6007541015611e155750506007546b033b2e3c9fd0803ce8000000611e28565b50506007546b033b2e3c9fd0803ce80000005b611e328282611e39565b9250505090565b6000610dcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061233c565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611ec357611ec3612788565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f40919061279e565b81600181518110611f5357611f53612788565b6001600160a01b039283166020918202929092010152601254611f7991309116846116d8565b6012546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790611fcb9085906000908690309042906004016127fb565b600060405180830381600087803b158015611fe557600080fd5b505af1158015611ff9573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061205657612056612788565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d3919061279e565b816001815181106120e6576120e6612788565b6001600160a01b03928316602091820292909201015260125461210c91309116846116d8565b6012546001600160a01b031663f305d7194730856000806107926000546001600160a01b031690565b6001600160a01b03831660009081526006602052604090205460ff168061217457506001600160a01b03821660009081526006602052604090205460ff165b156121e7576013547801000000000000000000000000000000000000000000000000900460ff166121e75760405162461bcd60e51b815260206004820152600f60248201527f626f74204e6f7420616c6c6f776564000000000000000000000000000000000060448201526064016105e6565b60006121f1611dcf565b90506000806000806000806122058861236a565b95509550955095509550955085600260008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546122469190612909565b90915550506001600160a01b038916600090815260026020526040812080548792906122739084906128f1565b9091555060009050612285828961242d565b306000908152600260205260408120805492935083929091906122a99084906128f1565b9250508190555084600760008282546122c29190612909565b9250508190555082600860008282546122db91906128f1565b92505081905550896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161232791815260200190565b60405180910390a35050505050505050505050565b6000818361235d5760405162461bcd60e51b81526004016105e6919061250a565b506000611dc684866127e7565b6000806000806000806000612395606461238f600d548b61242d90919063ffffffff16565b90611e39565b905060006123b3606461238f6010548c61242d90919063ffffffff16565b905060006123cb826123c58c866124c8565b906124c8565b905060006123d7611dcf565b905060006123e58c8361242d565b905060006123f3868461242d565b90506000612401868561242d565b90506000612413826123c586866124c8565b939f939e50919c50939a5094985092965091945050505050565b60008261243c5750600061088d565b6000612448838561289a565b90508261245585836127e7565b14610dcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105e6565b6000610dcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d95565b600060208083528351808285015260005b818110156125375785810183015185820160400152820161251b565b81811115612549576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561257157600080fd5b5035919050565b6001600160a01b0381168114610fbd57600080fd5b803561259881612578565b919050565b600080604083850312156125b057600080fd5b82356125bb81612578565b946020939093013593505050565b6000806000606084860312156125de57600080fd5b83356125e981612578565b925060208401356125f981612578565b929592945050506040919091013590565b60006020828403121561261c57600080fd5b8135610dcb81612578565b8015158114610fbd57600080fd5b60006020828403121561264757600080fd5b8135610dcb81612627565b6000806040838503121561266557600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561269d57600080fd5b823567ffffffffffffffff808211156126b557600080fd5b818501915085601f8301126126c957600080fd5b8135818111156126db576126db612674565b8060051b604051601f19603f8301168101818110858211171561270057612700612674565b60405291825284820192508381018501918883111561271e57600080fd5b938501935b82851015612743576127348561258d565b84529385019392850192612723565b98975050505050505050565b6000806040838503121561276257600080fd5b823561276d81612578565b9150602083013561277d81612578565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156127b057600080fd5b8151610dcb81612578565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826127f6576127f66127bb565b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561284b5784516001600160a01b031683529383019391830191600101612826565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561288157600080fd5b8351925060208401519150604084015190509250925092565b60008160001904831182151516156128b4576128b46127d1565b500290565b60006000198214156128cd576128cd6127d1565b5060010190565b6000602082840312156128e657600080fd5b8151610dcb81612627565b60008219821115612904576129046127d1565b500190565b60008282101561291b5761291b6127d1565b500390565b60008261292f5761292f6127bb565b50069056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122000e9e81b7eaae1d0333db15296f9f4f24c6e325ee0346497e142fd411fb0a7f464736f6c634300080b0033

Deployed Bytecode Sourcemap

10129:15246:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16529:756;;;;;;;;;;;;;:::i;:::-;;12224:69;;;;;;;;;;-1:-1:-1;12285:5:0;;;;;;;;;;;;;;;;;12224:69;;;;;;;:::i;:::-;;;;;;;;25258:114;;;;;;;;;;-1:-1:-1;25258:114:0;;;;;:::i;:::-;;:::i;13185:155::-;;;;;;;;;;-1:-1:-1;13185:155:0;;;;;:::i;:::-;;:::i;:::-;;;1643:14:1;;1636:22;1618:41;;1606:2;1591:18;13185:155:0;1478:187:1;12453:81:0;;;;;;;;;;-1:-1:-1;10579:12:0;12453:81;;;1816:25:1;;;1804:2;1789:18;12453:81:0;1670:177:1;22084:108:0;;;;;;;;;;-1:-1:-1;22084:108:0;;;;;:::i;:::-;;:::i;13346:310::-;;;;;;;;;;-1:-1:-1;13346:310:0;;;;;:::i;:::-;;:::i;25172:84::-;;;;;;;;;;-1:-1:-1;25172:84:0;;;;;:::i;:::-;;:::i;12378:69::-;;;;;;;;;;-1:-1:-1;12378:69:0;;11181:1;2707:36:1;;2695:2;2680:18;12378:69:0;2565:184:1;21668:116:0;;;;;;;;;;-1:-1:-1;21668:116:0;;;;;:::i;:::-;;:::i;13662:101::-;;;;;;;;;;-1:-1:-1;13662:101:0;;;;;:::i;:::-;;:::i;21182:205::-;;;;;;;;;;-1:-1:-1;21182:205:0;;;;;:::i;:::-;;:::i;20853:116::-;;;;;;;;;;-1:-1:-1;20853:116:0;;;;;:::i;:::-;;:::i;21523:137::-;;;;;;;;;;-1:-1:-1;21523:137:0;;;;;:::i;:::-;;:::i;12536:325::-;;;;;;;;;;-1:-1:-1;12536:325:0;;;;;:::i;:::-;;:::i;2584:148::-;;;;;;;;;;;;;:::i;20775:74::-;;;;;;;;;;;;;:::i;21905:171::-;;;;;;;;;;-1:-1:-1;21905:171:0;;;;;:::i;:::-;;:::i;2370:79::-;;;;;;;;;;-1:-1:-1;2408:7:0;2435:6;2370:79;;-1:-1:-1;;;;;2435:6:0;;;3522:74:1;;3510:2;3495:18;2370:79:0;3376:226:1;12299:73:0;;;;;;;;;;-1:-1:-1;12362:7:0;;;;;;;;;;;;;;;;;12299:73;;12867:169;;;;;;;;;;-1:-1:-1;12867:169:0;;;;;:::i;:::-;;:::i;25004:160::-;;;;;;;;;;-1:-1:-1;25004:160:0;;;;;:::i;:::-;;:::i;18389:1031::-;;;;;;;;;;;;;:::i;13042:137::-;;;;;;;;;;-1:-1:-1;13042:137:0;;;;;:::i;:::-;-1:-1:-1;;;;;13150:18:0;;;13123:7;13150:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13042:137;20971:209;;;;;;;;;;-1:-1:-1;20971:209:0;;;;;:::i;:::-;;:::i;21786:117::-;;;;;;;;;;-1:-1:-1;21786:117:0;;;;;:::i;:::-;;:::i;16529:756::-;11674:6;:13;;-1:-1:-1;;;;11674:13:0;-1:-1:-1;;;11674:13:0;;;2507:12:::1;172:10:::0;;92:98;2507:12:::1;2497:6;::::0;-1:-1:-1;;;;;2497:6:0;;::::1;:22:::0;::::1;;2489:67;;;::::0;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0::1;::::0;::::1;5558:21:1::0;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0::1;;;;;;;;;16601:18:::2;16622:24;16640:4;16622:9;:24::i;:::-;16683:16;::::0;;16697:1:::2;16683:16:::0;;;;;::::2;::::0;;16601:45;;-1:-1:-1;16659:21:0::2;::::0;16683:16;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;16683:16:0::2;16659:40;;16728:4;16710;16715:1;16710:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16710:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;16754:15:::2;::::0;:22:::2;::::0;;-1:-1:-1;;;16754:22:0;;;;:15;;;::::2;::::0;:20:::2;::::0;:22:::2;::::0;;::::2;::::0;16710:7;;16754:22;;;;;:15;:22:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16744:4;16749:1;16744:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16744:32:0;;::::2;:7;::::0;;::::2;::::0;;;;;:32;16819:15:::2;::::0;16787:61:::2;::::0;16804:4:::2;::::0;16819:15:::2;16837:10:::0;16787:8:::2;:61::i;:::-;16861:15;::::0;-1:-1:-1;;;;;16861:15:0::2;:66;16942:14;16955:1;16942:10:::0;:14:::2;:::i;:::-;16971:1;16987:4;17014;17034:15;16861:203;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;17077:15:0::2;::::0;-1:-1:-1;;;;;17077:15:0::2;::::0;-1:-1:-1;17077:31:0::2;::::0;-1:-1:-1;17116:21:0::2;17162:4;17182:14;17195:1;17182:10:::0;:14:::2;:::i;:::-;17211:1;17227::::0;17243:7:::2;2408::::0;2435:6;-1:-1:-1;;;;;2435:6:0;;2370:79;17243:7:::2;17077:204;::::0;::::2;::::0;;;;;;;-1:-1:-1;;;;;8096:15:1;;;17077:204:0::2;::::0;::::2;8078:34:1::0;8128:18;;;8121:34;;;;8171:18;;;8164:34;;;;8214:18;;;8207:34;8278:15;;;8257:19;;;8250:44;17265:15:0::2;8310:19:1::0;;;8303:35;7989:19;;17077:204:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11710:6:0;:14;;-1:-1:-1;;;;11710:14:0;;;-1:-1:-1;;;16529:756:0:o;25258:114::-;25326:12;;-1:-1:-1;;;;;25326:12:0;172:10;-1:-1:-1;;;;;25310:28:0;;25302:37;;;;;;25356:11;:4;25363;25356:11;:::i;:::-;25346:7;:21;-1:-1:-1;25258:114:0:o;13185:155::-;13260:4;13277:39;172:10;13300:7;13309:6;13277:8;:39::i;:::-;-1:-1:-1;13334:4:0;13185:155;;;;;:::o;22084:108::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;22156:12:::1;::::0;:27:::1;::::0;-1:-1:-1;;;;;22156:12:0;;::::1;::::0;:27;::::1;;;::::0;22178:4;;22156:12:::1;:27:::0;:12;:27;22178:4;22156:12;:27;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22084:108:::0;:::o;13346:310::-;13446:4;13463:36;13473:6;13481:9;13492:6;13463:9;:36::i;:::-;13510:121;13519:6;172:10;13541:89;13579:6;13541:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13541:19:0;;;;;;:11;:19;;;;;;;;172:10;13541:33;;;;;;;;;;:37;:89::i;:::-;13510:8;:121::i;:::-;-1:-1:-1;13649:4:0;13346:310;;;;;:::o;25172:84::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;-1:-1:-1;;;;;25232:12:0::1;25247:5;25232:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;25232:20:0::1;::::0;;25172:84::o;21668:116::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;-1:-1:-1;;;;;21741:32:0::1;;::::0;;;:18:::1;:32;::::0;;;;:39;;-1:-1:-1;;21741:39:0::1;21776:4;21741:39;::::0;;21668:116::o;13662:101::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;13736:15:::1;:23:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;13662:101::o;21182:205::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;21279:8:::1;21265:11;:22;21257:79;;;::::0;-1:-1:-1;;;21257:79:0;;9095:2:1;21257:79:0::1;::::0;::::1;9077:21:1::0;9134:2;9114:18;;;9107:30;9173:34;9153:18;;;9146:62;9244:14;9224:18;;;9217:42;9276:19;;21257:79:0::1;8893:408:1::0;21257:79:0::1;21360:19;:11:::0;21374:5:::1;21360:19;:::i;:::-;21347:10;:32:::0;-1:-1:-1;21182:205:0:o;20853:116::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;20928:12:::1;:37:::0;;-1:-1:-1;;20928:37:0::1;-1:-1:-1::0;;;;;20928:37:0;;;::::1;::::0;;;::::1;::::0;;20853:116::o;21523:137::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;21604:9:::1;:18:::0;;;;21633:8:::1;:15:::0;21523:137::o;12536:325::-;12707:7;;-1:-1:-1;;;;;12687:16:0;;12602:7;12687:16;;;:7;:16;;;;;;12602:7;;-1:-1:-1;12687:27:0;12679:82;;;;-1:-1:-1;;;12679:82:0;;9508:2:1;12679:82:0;;;9490:21:1;9547:2;9527:18;;;9520:30;9586:34;9566:18;;;9559:62;9657:12;9637:18;;;9630:40;9687:19;;12679:82:0;9306:406:1;12679:82:0;12772:19;12795:10;:8;:10::i;:::-;-1:-1:-1;;;;;12823:16:0;;;;;;:7;:16;;;;;;12772:33;;-1:-1:-1;12823:33:0;;12772;12823:20;:33::i;:::-;12816:40;12536:325;-1:-1:-1;;;12536:325:0:o;2584:148::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;2691:1:::1;2675:6:::0;;2654:40:::1;::::0;-1:-1:-1;;;;;2675:6:0;;::::1;::::0;2654:40:::1;::::0;2691:1;;2654:40:::1;2722:1;2705:19:::0;;-1:-1:-1;;2705:19:0::1;::::0;;2584:148::o;20775:74::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;20834:11:::1;::::0;;20819:26;;::::1;20834:11:::0;;;;::::1;;;20833:12;20819:26:::0;;::::1;;::::0;;20775:74::o;21905:171::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;21999:24:::1;22017:4;21999:9;:24::i;:::-;21981:15;:7:::0;21991:5:::1;21981:15;:::i;:::-;:42;21973:51;;;::::0;::::1;;22035:33;22052:15;:7:::0;22062:5:::1;22052:15;:::i;:::-;22035:16;:33::i;:::-;21905:171:::0;:::o;12867:169::-;12945:4;12970:42;172:10;12994:9;13005:6;12970:9;:42::i;25004:160::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;25078:6:::1;25073:88;25094:5;:12;25090:1;:16;25073:88;;;25145:4;25128;:14;25133:5;25139:1;25133:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25128:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25128:14:0;:21;;-1:-1:-1;;25128:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25108:3;::::1;::::0;::::1;:::i;:::-;;;;25073:88;;18389:1031:::0;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;18453:11:::1;::::0;;;::::1;;;18452:12;18444:47;;;::::0;-1:-1:-1;;;18444:47:0;;10119:2:1;18444:47:0::1;::::0;::::1;10101:21:1::0;10158:2;10138:18;;;10131:30;10197:25;10177:18;;;10170:53;10240:18;;18444:47:0::1;9917:347:1::0;18444:47:0::1;18623:15;:34:::0;;-1:-1:-1;;18623:34:0::1;18569:42;18623:34:::0;;::::1;::::0;;;18668:58:::1;18685:4;18569:42:::0;10579:12:::1;18668:8;:58::i;:::-;18773:16;-1:-1:-1::0;;;;;18773:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18755:56:0::1;;18820:4;18827:15;;;;;;;;;-1:-1:-1::0;;;;;18827:15:0::1;-1:-1:-1::0;;;;;18827:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18755:95;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;10522:15:1;;;18755:95:0::1;::::0;::::1;10504:34:1::0;10574:15;;10554:18;;;10547:43;10416:18;;18755:95:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18739:13;:111:::0;;-1:-1:-1;;18739:111:0::1;-1:-1:-1::0;;;;;18739:111:0;;;::::1;::::0;;::::1;::::0;;18861:56:::1;::::0;18878:4:::1;::::0;10579:12:::1;18861:8;:56::i;:::-;18930:15;::::0;-1:-1:-1;;;;;18930:15:0::1;:31;18969:21;19015:4;19035:24;19015:4:::0;19035:9:::1;:24::i;:::-;19074:1;19090::::0;19106:7:::1;2408::::0;2435:6;-1:-1:-1;;;;;2435:6:0;;2370:79;19106:7:::1;18930:214;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;8096:15:1;;;18930:214:0::1;::::0;::::1;8078:34:1::0;8128:18;;;8121:34;;;;8171:18;;;8164:34;;;;8214:18;;;8207:34;8278:15;;;8257:19;;;8250:44;19128:15:0::1;8310:19:1::0;;;8303:35;7989:19;;18930:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19188:15:0::1;:22:::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;19235:13:0::1;19245:3;10579:12;19235:13;:::i;:::-;19221:10;:27:::0;19274:13:::1;19284:3;10579:12;19274:13;:::i;:::-;19259:12;:28:::0;19314:11:::1;:18:::0;;;;;::::1;;::::0;;;19383:15:::1;::::0;19345:71:::1;::::0;;;;-1:-1:-1;;;;;19383:15:0;;::::1;19345:71;::::0;::::1;10775:74:1::0;-1:-1:-1;;10865:18:1;;;10858:34;19352:13:0;;;19345:29:::1;::::0;10748:18:1;;19345:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20971:209::-:0;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;21070:8:::1;21056:11;:22;21048:79;;;::::0;-1:-1:-1;;;21048:79:0;;11355:2:1;21048:79:0::1;::::0;::::1;11337:21:1::0;11394:2;11374:18;;;11367:30;11433:34;11413:18;;;11406:62;11504:14;11484:18;;;11477:42;11536:19;;21048:79:0::1;11153:408:1::0;21048:79:0::1;21153:19;:11:::0;21167:5:::1;21153:19;:::i;:::-;21138:12;:34:::0;-1:-1:-1;20971:209:0:o;21786:117::-;2497:6;;-1:-1:-1;;;;;2497:6:0;172:10;2497:22;2489:67;;;;-1:-1:-1;;;2489:67:0;;5576:2:1;2489:67:0;;;5558:21:1;;;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;5706:18;;2489:67:0;5374:356:1;2489:67:0;-1:-1:-1;;;;;21859:32:0::1;21894:5;21859:32:::0;;;:18:::1;:32;::::0;;;;:40;;-1:-1:-1;;21859:40:0::1;::::0;;21786:117::o;14032:329::-;-1:-1:-1;;;;;14125:19:0;;14117:68;;;;-1:-1:-1;;;14117:68:0;;11768:2:1;14117:68:0;;;11750:21:1;11807:2;11787:18;;;11780:30;11846:34;11826:18;;;11819:62;11917:6;11897:18;;;11890:34;11941:19;;14117:68:0;11566:400:1;14117:68:0;-1:-1:-1;;;;;14204:21:0;;14196:68;;;;-1:-1:-1;;;14196:68:0;;12173:2:1;14196:68:0;;;12155:21:1;12212:2;12192:18;;;12185:30;12251:34;12231:18;;;12224:62;12322:4;12302:18;;;12295:32;12344:19;;14196:68:0;11971:398:1;14196:68:0;-1:-1:-1;;;;;14275:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14327:32;;1816:25:1;;;14327:32:0;;1789:18:1;14327:32:0;;;;;;;14032:329;;;:::o;14365:2162::-;-1:-1:-1;;;;;14454:10:0;;;;;;:4;:10;;;;;;;;14453:11;:24;;;;-1:-1:-1;;;;;;14469:8:0;;;;;;:4;:8;;;;;;;;14468:9;14453:24;14445:33;;;;;;-1:-1:-1;;;;;14497:18:0;;14489:68;;;;-1:-1:-1;;;14489:68:0;;12576:2:1;14489:68:0;;;12558:21:1;12615:2;12595:18;;;12588:30;12654:34;12634:18;;;12627:62;12725:7;12705:18;;;12698:35;12750:19;;14489:68:0;12374:401:1;14489:68:0;-1:-1:-1;;;;;14576:16:0;;14568:64;;;;-1:-1:-1;;;14568:64:0;;12982:2:1;14568:64:0;;;12964:21:1;13021:2;13001:18;;;12994:30;13060:34;13040:18;;;13033:62;13131:5;13111:18;;;13104:33;13154:19;;14568:64:0;12780:399:1;14568:64:0;14660:1;14651:6;:10;14643:64;;;;-1:-1:-1;;;14643:64:0;;13386:2:1;14643:64:0;;;13368:21:1;13425:2;13405:18;;;13398:30;13464:34;13444:18;;;13437:62;13535:11;13515:18;;;13508:39;13564:19;;14643:64:0;13184:405:1;14643:64:0;14744:11;;;;;;;14739:392;;;2408:7;2435:6;-1:-1:-1;;;;;14778:15:0;;;2435:6;;14778:15;;:32;;-1:-1:-1;2408:7:0;2435:6;-1:-1:-1;;;;;14797:13:0;;;2435:6;;14797:13;14778:32;14773:347;;;14842:1;14831:8;:12;;;14862:7;:11;14773:347;;;14907:13;;-1:-1:-1;;;;;14899:21:0;;;14907:13;;14899:21;14895:225;;;14952:9;;14941:8;:20;14990:8;;14980:7;:18;14895:225;;;15050:13;;15039:8;:24;15092:12;;15082:7;:22;14895:225;2408:7;2435:6;-1:-1:-1;;;;;15145:15:0;;;2435:6;;15145:15;;;;:32;;-1:-1:-1;2408:7:0;2435:6;-1:-1:-1;;;;;15164:13:0;;;2435:6;;15164:13;;15145:32;15141:1333;;;15206:13;;-1:-1:-1;;;;;15198:21:0;;;15206:13;;15198:21;:55;;;;-1:-1:-1;15237:15:0;;-1:-1:-1;;;;;15223:30:0;;;15237:15;;15223:30;;15198:55;:83;;;;-1:-1:-1;;;;;;15259:22:0;;;;;;:18;:22;;;;;;;;15257:24;15198:83;:102;;;;-1:-1:-1;15285:15:0;;;;;;;15198:102;15194:465;;;15368:12;;:17;;15382:3;15368:17;:::i;:::-;15358:6;:27;;15350:72;;;;-1:-1:-1;;;15350:72:0;;13929:2:1;15350:72:0;;;13911:21:1;13968:2;13948:18;;;13941:30;14007:33;13987:18;;;13980:61;14058:18;;15350:72:0;13727:355:1;15350:72:0;15475:10;;:15;;15487:3;15475:15;:::i;:::-;15458:13;15468:2;15458:9;:13::i;:::-;15449:22;;:6;:22;:::i;:::-;:41;;15441:80;;;;-1:-1:-1;;;15441:80:0;;14289:2:1;15441:80:0;;;14271:21:1;14328:2;14308:18;;;14301:30;14367:28;14347:18;;;14340:56;14413:18;;15441:80:0;14087:350:1;15441:80:0;-1:-1:-1;;;;;15548:12:0;;;;;;:8;:12;;;;;;15563:15;-1:-1:-1;15540:39:0;;;;;;15613:30;:15;15632:10;15613:30;:::i;:::-;-1:-1:-1;;;;;15598:12:0;;;;;;:8;:12;;;;;:45;15194:465;15678:6;;-1:-1:-1;;;15678:6:0;;;;15677:7;:32;;;;-1:-1:-1;15696:13:0;;-1:-1:-1;;;;;15688:21:0;;;15696:13;;15688:21;;15677:32;:47;;;;-1:-1:-1;15713:11:0;;;;;;;15677:47;15673:790;;;15745:28;15776:24;15794:4;15776:9;:24::i;:::-;15745:55;;15836:15;15824:9;;:27;:61;;;;15878:7;;15855:20;:30;15824:61;15819:629;;;15913:17;15984:2;15968:13;;15956:9;;15933:20;:32;;;;:::i;:::-;:48;;;;:::i;:::-;:53;;;;:::i;:::-;15913:73;;16051:27;16068:9;16051:16;:27::i;:::-;16103:12;;:44;;-1:-1:-1;;;;;16103:12:0;;;;16125:21;16103:44;;;;;:12;:44;:12;:44;16125:21;16103:12;:44;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16175:17:0;16195:32;16218:9;16195:20;:32;:::i;:::-;16175:52;-1:-1:-1;16252:31:0;16269:13;16281:1;16175:52;16269:13;:::i;16252:31::-;16306:23;16315:13;16327:1;16315:9;:13;:::i;:::-;16306:7;:23::i;:::-;16407:20;16425:2;16407:15;:20;:::i;:::-;16382:22;:15;16400:4;16382:22;:::i;:::-;:45;;;;:::i;:::-;16370:9;:57;-1:-1:-1;;15819:629:0;15726:737;15673:790;16485:30;16500:4;16505:2;16508:6;16485:14;:30::i;:::-;14365:2162;;;:::o;1227:190::-;1313:7;1349:12;1341:6;;;;1333:29;;;;-1:-1:-1;;;1333:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1373:9:0;1385:5;1389:1;1385;:5;:::i;:::-;1373:17;1227:190;-1:-1:-1;;;;;1227:190:0:o;24225:505::-;24266:7;24286:15;24312;24501:20;10579:12;24501:7;;:11;;:20;;;;:::i;:::-;24491:7;;:30;24487:194;;;-1:-1:-1;;24548:7:0;;10579:12;24487:194;;;-1:-1:-1;;24630:7:0;;10579:12;24487:194;24702:20;:7;24714;24702:11;:20::i;:::-;24695:27;;;;24225:505;:::o;1679:132::-;1737:7;1764:39;1768:1;1771;1764:39;;;;;;;;;;;;;;;;;:3;:39::i;17749:533::-;11674:6;:13;;-1:-1:-1;;;;11674:13:0;-1:-1:-1;;;11674:13:0;;;17857:16:::1;::::0;;17871:1:::1;17857:16:::0;;;;;::::1;::::0;;-1:-1:-1;;17857:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17857:16:0::1;17833:40;;17906:4;17888;17893:1;17888:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17888:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17936:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;17936:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;17888:7;;17936:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17926:4;17931:1;17926:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17926:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;18005:15:::1;::::0;17973:62:::1;::::0;17990:4:::1;::::0;18005:15:::1;18023:11:::0;17973:8:::1;:62::i;:::-;18050:15;::::0;:224:::1;::::0;;;;-1:-1:-1;;;;;18050:15:0;;::::1;::::0;:66:::1;::::0;:224:::1;::::0;18135:11;;18050:15:::1;::::0;18185:4;;18216::::1;::::0;18240:15:::1;::::0;18050:224:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11710:6:0;:14;;-1:-1:-1;;;;11710:14:0;;;-1:-1:-1;;;;17749:533:0:o;17291:454::-;11674:6;:13;;-1:-1:-1;;;;11674:13:0;-1:-1:-1;;;11674:13:0;;;17379:16:::1;::::0;;17393:1:::1;17379:16:::0;;;;;::::1;::::0;;-1:-1:-1;;17379:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17379:16:0::1;17355:40;;17420:4;17402;17407:1;17402:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17402:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17442:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;17442:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;17402:7;;17442:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17432:4;17437:1;17432:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17432:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;17505:15:::1;::::0;17473:58:::1;::::0;17490:4:::1;::::0;17505:15:::1;17523:7:::0;17473:8:::1;:58::i;:::-;17540:15;::::0;-1:-1:-1;;;;;17540:15:0::1;:31;17579:21;17625:4;17645:7:::0;17540:15:::1;::::0;17699:7:::1;2408::::0;2435:6;-1:-1:-1;;;;;2435:6:0;;2370:79;19422:995;-1:-1:-1;;;;;19518:12:0;;;;;;:4;:12;;;;;;;;;:31;;-1:-1:-1;;;;;;19534:15:0;;;;;;:4;:15;;;;;;;;19518:31;19515:94;;;19569:12;;;;;;;19561:40;;;;-1:-1:-1;;;19561:40:0;;14891:2:1;19561:40:0;;;14873:21:1;14930:2;14910:18;;;14903:30;14969:17;14949:18;;;14942:45;15004:18;;19561:40:0;14689:339:1;19561:40:0;19772:19;19795:10;:8;:10::i;:::-;19772:33;;19819:15;19836:23;19861:12;19875:23;19900:12;19914:13;19931:19;19942:7;19931:10;:19::i;:::-;19818:132;;;;;;;;;;;;19980:7;19961;:15;19969:6;-1:-1:-1;;;;;19961:15:0;-1:-1:-1;;;;;19961:15:0;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;19998:18:0;;;;;;:7;:18;;;;;:37;;20020:15;;19998:18;:37;;20020:15;;19998:37;:::i;:::-;;;;-1:-1:-1;20172:13:0;;-1:-1:-1;20188:22:0;:5;20198:11;20188:9;:22::i;:::-;20237:4;20221:22;;;;:7;:22;;;;;:31;;20172:38;;-1:-1:-1;20172:38:0;;20221:22;;;:31;;20172:38;;20221:31;:::i;:::-;;;;;;;;20314:4;20303:7;;:15;;;;;;;:::i;:::-;;;;;;;;20343:4;20329:10;;:18;;;;;;;:::i;:::-;;;;;;;;20382:9;-1:-1:-1;;;;;20365:44:0;20374:6;-1:-1:-1;;;;;20365:44:0;;20393:15;20365:44;;;;1816:25:1;;1804:2;1789:18;;1670:177;20365:44:0;;;;;;;;19506:911;;;;;;;;19422:995;;;:::o;1819:189::-;1905:7;1940:12;1933:5;1925:28;;;;-1:-1:-1;;;1925:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1964:9:0;1976:5;1980:1;1976;:5;:::i;22197:1252::-;22256:7;22265;22274;22283;22292;22301;22559:12;22574:30;22600:3;22574:21;22586:8;;22574:7;:11;;:21;;;;:::i;:::-;:25;;:30::i;:::-;22559:45;;22615:13;22631:29;22656:3;22631:20;22643:7;;22631;:11;;:20;;;;:::i;:29::-;22615:45;-1:-1:-1;22671:23:0;22697:28;22615:45;22697:17;:7;22709:4;22697:11;:17::i;:::-;:21;;:28::i;:::-;22671:54;;22792:19;22815:10;:8;:10::i;:::-;22792:33;-1:-1:-1;23104:15:0;23122:24;:7;22792:33;23122:11;:24::i;:::-;23104:42;-1:-1:-1;23157:12:0;23172:21;:4;23181:11;23172:8;:21::i;:::-;23157:36;-1:-1:-1;23204:13:0;23220:22;:5;23230:11;23220:9;:22::i;:::-;23204:38;-1:-1:-1;23253:23:0;23279:28;23204:38;23279:17;:7;23291:4;23279:11;:17::i;:28::-;23380:7;;;;-1:-1:-1;23406:4:0;;-1:-1:-1;23412:15:0;;-1:-1:-1;23429:4:0;;-1:-1:-1;23435:5:0;;-1:-1:-1;22197:1252:0;;-1:-1:-1;;;;;22197:1252:0:o;1425:246::-;1483:7;1507:6;1503:47;;-1:-1:-1;1537:1:0;1530:8;;1503:47;1560:9;1572:5;1576:1;1572;:5;:::i;:::-;1560:17;-1:-1:-1;1605:1:0;1596:5;1600:1;1560:17;1596:5;:::i;:::-;:10;1588:56;;;;-1:-1:-1;;;1588:56:0;;15235:2:1;1588:56:0;;;15217:21:1;15274:2;15254:18;;;15247:30;15313:34;15293:18;;;15286:62;15384:3;15364:18;;;15357:31;15405:19;;1588:56:0;15033:397:1;1083:136:0;1141:7;1168:43;1172:1;1175;1168:43;;;;;;;;;;;;;;;;;:3;:43::i;14:656: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:1;574:15;-1:-1:-1;;570:88:1;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:1:o;675:180::-;734:6;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;-1:-1:-1;826:23:1;;675:180;-1:-1:-1;675:180:1:o;860:154::-;-1:-1:-1;;;;;939:5:1;935:54;928:5;925:65;915:93;;1004:1;1001;994:12;1019:134;1087:20;;1116:31;1087:20;1116:31;:::i;:::-;1019:134;;;:::o;1158:315::-;1226:6;1234;1287:2;1275:9;1266:7;1262:23;1258:32;1255:52;;;1303:1;1300;1293:12;1255:52;1342:9;1329:23;1361:31;1386:5;1361:31;:::i;:::-;1411:5;1463:2;1448:18;;;;1435:32;;-1:-1:-1;;;1158:315:1:o;1852:456::-;1929:6;1937;1945;1998:2;1986:9;1977:7;1973:23;1969:32;1966:52;;;2014:1;2011;2004:12;1966:52;2053:9;2040:23;2072:31;2097:5;2072:31;:::i;:::-;2122:5;-1:-1:-1;2179:2:1;2164:18;;2151:32;2192:33;2151:32;2192:33;:::i;:::-;1852:456;;2244:7;;-1:-1:-1;;;2298:2:1;2283:18;;;;2270:32;;1852:456::o;2313:247::-;2372:6;2425:2;2413:9;2404:7;2400:23;2396:32;2393:52;;;2441:1;2438;2431:12;2393:52;2480:9;2467:23;2499:31;2524:5;2499:31;:::i;2754:118::-;2840:5;2833:13;2826:21;2819:5;2816:32;2806:60;;2862:1;2859;2852:12;2877:241;2933:6;2986:2;2974:9;2965:7;2961:23;2957:32;2954:52;;;3002:1;2999;2992:12;2954:52;3041:9;3028:23;3060:28;3082:5;3060:28;:::i;3123:248::-;3191:6;3199;3252:2;3240:9;3231:7;3227:23;3223:32;3220:52;;;3268:1;3265;3258:12;3220:52;-1:-1:-1;;3291:23:1;;;3361:2;3346:18;;;3333:32;;-1:-1:-1;3123:248:1:o;3607:184::-;-1:-1:-1;;;3656:1:1;3649:88;3756:4;3753:1;3746:15;3780:4;3777:1;3770:15;3796:1180;3880:6;3911:2;3954;3942:9;3933:7;3929:23;3925:32;3922:52;;;3970:1;3967;3960:12;3922:52;4010:9;3997:23;4039:18;4080:2;4072:6;4069:14;4066:34;;;4096:1;4093;4086:12;4066:34;4134:6;4123:9;4119:22;4109:32;;4179:7;4172:4;4168:2;4164:13;4160:27;4150:55;;4201:1;4198;4191:12;4150:55;4237:2;4224:16;4259:2;4255;4252:10;4249:36;;;4265:18;;:::i;:::-;4311:2;4308:1;4304:10;4343:2;4337:9;-1:-1:-1;;4397:2:1;4393;4389:11;4385:84;4377:6;4373:97;4520:6;4508:10;4505:22;4500:2;4488:10;4485:18;4482:46;4479:72;;;4531:18;;:::i;:::-;4567:2;4560:22;4617:18;;;4651:15;;;;-1:-1:-1;4693:11:1;;;4689:20;;;4721:19;;;4718:39;;;4753:1;4750;4743:12;4718:39;4777:11;;;;4797:148;4813:6;4808:3;4805:15;4797:148;;;4879:23;4898:3;4879:23;:::i;:::-;4867:36;;4830:12;;;;4923;;;;4797:148;;;4964:6;3796:1180;-1:-1:-1;;;;;;;;3796:1180:1:o;4981:388::-;5049:6;5057;5110:2;5098:9;5089:7;5085:23;5081:32;5078:52;;;5126:1;5123;5116:12;5078:52;5165:9;5152:23;5184:31;5209:5;5184:31;:::i;:::-;5234:5;-1:-1:-1;5291:2:1;5276:18;;5263:32;5304:33;5263:32;5304:33;:::i;:::-;5356:7;5346:17;;;4981:388;;;;;:::o;5735:184::-;-1:-1:-1;;;5784:1:1;5777:88;5884:4;5881:1;5874:15;5908:4;5905:1;5898:15;5924:251;5994:6;6047:2;6035:9;6026:7;6022:23;6018:32;6015:52;;;6063:1;6060;6053:12;6015:52;6095:9;6089:16;6114:31;6139:5;6114:31;:::i;6180:184::-;-1:-1:-1;;;6229:1:1;6222:88;6329:4;6326:1;6319:15;6353:4;6350:1;6343:15;6369:184;-1:-1:-1;;;6418:1:1;6411:88;6518:4;6515:1;6508:15;6542:4;6539:1;6532:15;6558:120;6598:1;6624;6614:35;;6629:18;;:::i;:::-;-1:-1:-1;6663:9:1;;6558:120::o;6683:1026::-;6945:4;6993:3;6982:9;6978:19;7024:6;7013:9;7006:25;7050:2;7088:6;7083:2;7072:9;7068:18;7061:34;7131:3;7126:2;7115:9;7111:18;7104:31;7155:6;7190;7184:13;7221:6;7213;7206:22;7259:3;7248:9;7244:19;7237:26;;7298:2;7290:6;7286:15;7272:29;;7319:1;7329:218;7343:6;7340:1;7337:13;7329:218;;;7408:13;;-1:-1:-1;;;;;7404:62:1;7392:75;;7522:15;;;;7487:12;;;;7365:1;7358:9;7329:218;;;-1:-1:-1;;;;;;;7603:55:1;;;;7598:2;7583:18;;7576:83;-1:-1:-1;;;7690:3:1;7675:19;7668:35;7564:3;6683:1026;-1:-1:-1;;;6683:1026:1:o;8349:306::-;8437:6;8445;8453;8506:2;8494:9;8485:7;8481:23;8477:32;8474:52;;;8522:1;8519;8512:12;8474:52;8551:9;8545:16;8535:26;;8601:2;8590:9;8586:18;8580:25;8570:35;;8645:2;8634:9;8630:18;8624:25;8614:35;;8349:306;;;;;:::o;8660:228::-;8700:7;8826:1;-1:-1:-1;;8754:74:1;8751:1;8748:81;8743:1;8736:9;8729:17;8725:105;8722:131;;;8833:18;;:::i;:::-;-1:-1:-1;8873:9:1;;8660:228::o;9717:195::-;9756:3;-1:-1:-1;;9780:5:1;9777:77;9774:103;;;9857:18;;:::i;:::-;-1:-1:-1;9904:1:1;9893:13;;9717:195::o;10903:245::-;10970:6;11023:2;11011:9;11002:7;10998:23;10994:32;10991:52;;;11039:1;11036;11029:12;10991:52;11071:9;11065:16;11090:28;11112:5;11090:28;:::i;13594:128::-;13634:3;13665:1;13661:6;13658:1;13655:13;13652:39;;;13671:18;;:::i;:::-;-1:-1:-1;13707:9:1;;13594:128::o;14442:125::-;14482:4;14510:1;14507;14504:8;14501:34;;;14515:18;;:::i;:::-;-1:-1:-1;14552:9:1;;14442:125::o;14572:112::-;14604:1;14630;14620:35;;14635:18;;:::i;:::-;-1:-1:-1;14669:9:1;;14572:112::o

Swarm Source

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