ETH Price: $2,359.16 (+1.57%)

Token

DozerInu (DOZER)
 

Overview

Max Total Supply

100,000,000,000,000 DOZER

Holders

108

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
427,973,054,869.858924232 DOZER

Value
$0.00
0x53dbfcb334aa7e7e07bee9843297ba0f22261968
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:
Dozer

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*


                                                          _____                    
 ____________          ____       _____  ______      _____\    \ ___________       
 \           \     ____\_  \__   /    / /     /|    /    / |    |\          \      
  \           \   /     /     \ |     |/     / |   /    /  /___/| \    /\    \     
   |    /\     | /     /\      ||\____\\    / /   |    |__ |___|/  |   \_\    |    
   |   |  |    ||     |  |     | \|___|/   / /    |       \        |      ___/     
   |    \/     ||     |  |     |    /     /_/____ |     __/ __     |      \  ____  
  /           /||     | /     /|   /     /\      ||\    \  /  \   /     /\ \/    \ 
 /___________/ ||\     \_____/ |  /_____/ /_____/|| \____\/    | /_____/ |\______| 
|           | / | \_____\   | /   |    |/|     | || |    |____/| |     | | |     | 
|___________|/   \ |    |___|/    |____| |_____|/  \|____|   | | |_____|/ \|_____| 
                  \|____|                                |___|/                    


t.me/DozerInu

*/

pragma solidity ^0.8.4;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract Dozer is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "DozerInu";
    string private constant _symbol = "DOZER";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 2;
    uint256 private _taxFeeOnBuy = 8;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 2;
    uint256 private _taxFeeOnSell = 8;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _opAddress = payable(0x52d860C9774F7b1b3FbD71afAbC93EF2a7FFE487);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 500000000000 * 10**9; //0.5
    uint256 public _maxWalletSize = 1000000000000 * 10**9; //1
    uint256 public _swapTokensAtAmount = 10000000000 * 10**9; //0.1

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        // Uniswap V2 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_opAddress] = true;
        
        preTrader[owner()] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    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
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        if (from != owner() && to != owner()) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 amount) private {
        _opAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _opAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _opAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }



    function blockBot(address isbot) public onlyOwner {
        bots[isbot] = true;
    }


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

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

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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) = _getCurrentSupply();

        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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        uint256 _totalbuy = redisFeeOnBuy + taxFeeOnBuy;
        uint256 _totalsell = redisFeeOnSell + taxFeeOnSell;
        require(_totalbuy <= 10);
        require(_totalsell <= 10);
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function liftMaxLimits() public onlyOwner {
     _maxTxAmount = _tTotal;
     _maxWalletSize = _tTotal;
    }


    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set max transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        require(maxTxAmount >= 500000000000);
        _maxTxAmount = maxTxAmount * 10**9 ;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        require(maxWalletSize >= 1000000000000);
        _maxWalletSize = maxWalletSize * 10**9 ;
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"isbot","type":"address"}],"name":"blockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"liftMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001c69152d02c7e14af6800000600019620003d1565b6200002a90600019620003ab565b600655600260088181556009819055600a829055600b819055600c829055600d819055600e91909155600f55601380546001600160a01b0319167352d860c9774f7b1b3fbd71afabc93ef2a7ffe4871790556015805461ffff60a81b1916600160b01b179055681b1ae4d6e2ef500000601655683635c9adc5dea00000601755678ac7230489e80000601855348015620000c357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200017c57600080fd5b505afa15801562000191573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b7919062000379565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020057600080fd5b505afa15801562000215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023b919062000379565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028457600080fd5b505af115801562000299573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bf919062000379565b601580546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556013548616855282852080548216831790558454909516845260118352818420805490951617909355915169152d02c7e14af6800000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620003f4565b6000602082840312156200038c57600080fd5b81516001600160a01b0381168114620003a457600080fd5b9392505050565b600082821015620003cc57634e487b7160e01b600052601160045260246000fd5b500390565b600082620003ef57634e487b7160e01b600052601260045260246000fd5b500690565b611bd280620004046000396000f3fe6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c3c8cd8011610064578063c3c8cd801461055a578063dd62ed3e1461056f578063e70ef8a4146105b5578063ea1644d5146105d557600080fd5b8063a9059cbb146104c5578063bd560f0d146104e5578063bdd795ef146104fa578063bfd792841461052a57600080fd5b80638f9a55c0116100d15780638f9a55c01461044157806395d89b411461045757806398a5c31514610485578063a2a957bb146104a557600080fd5b80637d1db4a5146103ed5780638da5cb5b146104035780638f70ccf71461042157600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038357806370a0823114610398578063715018a6146103b857806374010ece146103cd57600080fd5b8063313ce5671461030757806349bd5a5e146103235780636b999053146103435780636d8aa8f81461036357600080fd5b806318160ddd116101ab57806318160ddd1461028857806323b872dd146102af5780632f9c4569146102cf5780632fd689e3146102f157600080fd5b806306fdde03146101dd578063095ea7b3146102205780631694505e1461025057600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b50604080518082019091526008815267446f7a6572496e7560c01b60208201525b60405161021791906119c8565b60405180910390f35b34801561022c57600080fd5b5061024061023b366004611936565b6105f5565b6040519015158152602001610217565b34801561025c57600080fd5b50601454610270906001600160a01b031681565b6040516001600160a01b039091168152602001610217565b34801561029457600080fd5b5069152d02c7e14af68000005b604051908152602001610217565b3480156102bb57600080fd5b506102406102ca3660046118c0565b61060c565b3480156102db57600080fd5b506102ef6102ea366004611901565b610675565b005b3480156102fd57600080fd5b506102a160185481565b34801561031357600080fd5b5060405160098152602001610217565b34801561032f57600080fd5b50601554610270906001600160a01b031681565b34801561034f57600080fd5b506102ef61035e36600461184d565b610742565b34801561036f57600080fd5b506102ef61037e366004611962565b61078d565b34801561038f57600080fd5b506102ef6107d5565b3480156103a457600080fd5b506102a16103b336600461184d565b610802565b3480156103c457600080fd5b506102ef610824565b3480156103d957600080fd5b506102ef6103e836600461197d565b610898565b3480156103f957600080fd5b506102a160165481565b34801561040f57600080fd5b506000546001600160a01b0316610270565b34801561042d57600080fd5b506102ef61043c366004611962565b6108e8565b34801561044d57600080fd5b506102a160175481565b34801561046357600080fd5b506040805180820190915260058152642227ad22a960d91b602082015261020a565b34801561049157600080fd5b506102ef6104a036600461197d565b610930565b3480156104b157600080fd5b506102ef6104c0366004611996565b61095f565b3480156104d157600080fd5b506102406104e0366004611936565b6109d7565b3480156104f157600080fd5b506102ef6109e4565b34801561050657600080fd5b5061024061051536600461184d565b60116020526000908152604090205460ff1681565b34801561053657600080fd5b5061024061054536600461184d565b60106020526000908152604090205460ff1681565b34801561056657600080fd5b506102ef610a23565b34801561057b57600080fd5b506102a161058a366004611887565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c157600080fd5b506102ef6105d036600461184d565b610a59565b3480156105e157600080fd5b506102ef6105f036600461197d565b610aa7565b6000610602338484610af7565b5060015b92915050565b6000610619848484610c1b565b61066b843361066685604051806060016040528060288152602001611b75602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110f9565b610af7565b5060019392505050565b6000546001600160a01b031633146106a85760405162461bcd60e51b815260040161069f90611a1d565b60405180910390fd5b6001600160a01b03821660009081526011602052604090205460ff16151581151514156107175760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000604482015260640161069f565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461076c5760405162461bcd60e51b815260040161069f90611a1d565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107b75760405162461bcd60e51b815260040161069f90611a1d565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316146107f557600080fd5b476107ff81611133565b50565b6001600160a01b03811660009081526002602052604081205461060690611171565b6000546001600160a01b0316331461084e5760405162461bcd60e51b815260040161069f90611a1d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108c25760405162461bcd60e51b815260040161069f90611a1d565b64746a5288008110156108d457600080fd5b6108e281633b9aca00611afd565b60165550565b6000546001600160a01b031633146109125760405162461bcd60e51b815260040161069f90611a1d565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461095a5760405162461bcd60e51b815260040161069f90611a1d565b601855565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161069f90611a1d565b60006109958386611ac3565b905060006109a38386611ac3565b9050600a8211156109b357600080fd5b600a8111156109c157600080fd5b5050600893909355600a91909155600955600b55565b6000610602338484610c1b565b6000546001600160a01b03163314610a0e5760405162461bcd60e51b815260040161069f90611a1d565b69152d02c7e14af68000006016819055601755565b6013546001600160a01b0316336001600160a01b031614610a4357600080fd5b6000610a4e30610802565b90506107ff816111f5565b6000546001600160a01b03163314610a835760405162461bcd60e51b815260040161069f90611a1d565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b03163314610ad15760405162461bcd60e51b815260040161069f90611a1d565b64e8d4a51000811015610ae357600080fd5b610af181633b9aca00611afd565b60175550565b6001600160a01b038316610b595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161069f565b6001600160a01b038216610bba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161069f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c7f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161069f565b6001600160a01b038216610ce15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161069f565b60008111610d435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161069f565b6000546001600160a01b03848116911614801590610d6f57506000546001600160a01b03838116911614155b15610fec57601554600160a01b900460ff16610e13576001600160a01b03831660009081526011602052604090205460ff16610e135760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161069f565b601654811115610e655760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161069f565b6001600160a01b03821660009081526010602052604090205460ff1615610eda5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161069f565b6015546001600160a01b03838116911614610f5f5760175481610efc84610802565b610f069190611ac3565b10610f5f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161069f565b6000610f6a30610802565b601854601654919250821015908210610f835760165491505b808015610f9a5750601554600160a81b900460ff16155b8015610fb457506015546001600160a01b03868116911614155b8015610fc95750601554600160b01b900460ff165b15610fe957610fd7826111f5565b478015610fe757610fe747611133565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061102e57506001600160a01b03831660009081526005602052604090205460ff165b8061106057506015546001600160a01b0385811691161480159061106057506015546001600160a01b03848116911614155b1561106d575060006110e7565b6015546001600160a01b03858116911614801561109857506014546001600160a01b03848116911614155b156110aa57600854600c55600954600d555b6015546001600160a01b0384811691161480156110d557506014546001600160a01b03858116911614155b156110e757600a54600c55600b54600d555b6110f38484848461137e565b50505050565b6000818484111561111d5760405162461bcd60e51b815260040161069f91906119c8565b50600061112a8486611b1c565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561116d573d6000803e3d6000fd5b5050565b60006006548211156111d85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161069f565b60006111e26113ac565b90506111ee83826113cf565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061123d5761123d611b49565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561129157600080fd5b505afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c9919061186a565b816001815181106112dc576112dc611b49565b6001600160a01b0392831660209182029290920101526014546113029130911684610af7565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061133b908590600090869030904290600401611a52565b600060405180830381600087803b15801561135557600080fd5b505af1158015611369573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061138b5761138b611411565b61139684848461143f565b806110f3576110f3600e54600c55600f54600d55565b60008060006113b9611536565b90925090506113c882826113cf565b9250505090565b60006111ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061157a565b600c541580156114215750600d54155b1561142857565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611451876115a8565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114839087611605565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114b29086611647565b6001600160a01b0389166000908152600260205260409020556114d4816116a6565b6114de84836116f0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161152391815260200190565b60405180910390a3505050505050505050565b600654600090819069152d02c7e14af680000061155382826113cf565b8210156115715750506006549269152d02c7e14af680000092509050565b90939092509050565b6000818361159b5760405162461bcd60e51b815260040161069f91906119c8565b50600061112a8486611adb565b60008060008060008060008060006115c58a600c54600d54611714565b92509250925060006115d56113ac565b905060008060006115e88e878787611769565b919e509c509a509598509396509194505050505091939550919395565b60006111ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f9565b6000806116548385611ac3565b9050838110156111ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161069f565b60006116b06113ac565b905060006116be83836117b9565b306000908152600260205260409020549091506116db9082611647565b30600090815260026020526040902055505050565b6006546116fd9083611605565b60065560075461170d9082611647565b6007555050565b600080808061172e606461172889896117b9565b906113cf565b9050600061174160646117288a896117b9565b90506000611759826117538b86611605565b90611605565b9992985090965090945050505050565b600080808061177888866117b9565b9050600061178688876117b9565b9050600061179488886117b9565b905060006117a6826117538686611605565b939b939a50919850919650505050505050565b6000826117c857506000610606565b60006117d48385611afd565b9050826117e18583611adb565b146111ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161069f565b8035801515811461184857600080fd5b919050565b60006020828403121561185f57600080fd5b81356111ee81611b5f565b60006020828403121561187c57600080fd5b81516111ee81611b5f565b6000806040838503121561189a57600080fd5b82356118a581611b5f565b915060208301356118b581611b5f565b809150509250929050565b6000806000606084860312156118d557600080fd5b83356118e081611b5f565b925060208401356118f081611b5f565b929592945050506040919091013590565b6000806040838503121561191457600080fd5b823561191f81611b5f565b915061192d60208401611838565b90509250929050565b6000806040838503121561194957600080fd5b823561195481611b5f565b946020939093013593505050565b60006020828403121561197457600080fd5b6111ee82611838565b60006020828403121561198f57600080fd5b5035919050565b600080600080608085870312156119ac57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156119f5578581018301518582016040015282016119d9565b81811115611a07576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aa25784516001600160a01b031683529383019391830191600101611a7d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ad657611ad6611b33565b500190565b600082611af857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b1757611b17611b33565b500290565b600082821015611b2e57611b2e611b33565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146107ff57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075bda054a1a12a32ba3122f24e930a73a0931aa83a32e7e9e7a8f22eeaca8fef64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c3c8cd8011610064578063c3c8cd801461055a578063dd62ed3e1461056f578063e70ef8a4146105b5578063ea1644d5146105d557600080fd5b8063a9059cbb146104c5578063bd560f0d146104e5578063bdd795ef146104fa578063bfd792841461052a57600080fd5b80638f9a55c0116100d15780638f9a55c01461044157806395d89b411461045757806398a5c31514610485578063a2a957bb146104a557600080fd5b80637d1db4a5146103ed5780638da5cb5b146104035780638f70ccf71461042157600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461038357806370a0823114610398578063715018a6146103b857806374010ece146103cd57600080fd5b8063313ce5671461030757806349bd5a5e146103235780636b999053146103435780636d8aa8f81461036357600080fd5b806318160ddd116101ab57806318160ddd1461028857806323b872dd146102af5780632f9c4569146102cf5780632fd689e3146102f157600080fd5b806306fdde03146101dd578063095ea7b3146102205780631694505e1461025057600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b50604080518082019091526008815267446f7a6572496e7560c01b60208201525b60405161021791906119c8565b60405180910390f35b34801561022c57600080fd5b5061024061023b366004611936565b6105f5565b6040519015158152602001610217565b34801561025c57600080fd5b50601454610270906001600160a01b031681565b6040516001600160a01b039091168152602001610217565b34801561029457600080fd5b5069152d02c7e14af68000005b604051908152602001610217565b3480156102bb57600080fd5b506102406102ca3660046118c0565b61060c565b3480156102db57600080fd5b506102ef6102ea366004611901565b610675565b005b3480156102fd57600080fd5b506102a160185481565b34801561031357600080fd5b5060405160098152602001610217565b34801561032f57600080fd5b50601554610270906001600160a01b031681565b34801561034f57600080fd5b506102ef61035e36600461184d565b610742565b34801561036f57600080fd5b506102ef61037e366004611962565b61078d565b34801561038f57600080fd5b506102ef6107d5565b3480156103a457600080fd5b506102a16103b336600461184d565b610802565b3480156103c457600080fd5b506102ef610824565b3480156103d957600080fd5b506102ef6103e836600461197d565b610898565b3480156103f957600080fd5b506102a160165481565b34801561040f57600080fd5b506000546001600160a01b0316610270565b34801561042d57600080fd5b506102ef61043c366004611962565b6108e8565b34801561044d57600080fd5b506102a160175481565b34801561046357600080fd5b506040805180820190915260058152642227ad22a960d91b602082015261020a565b34801561049157600080fd5b506102ef6104a036600461197d565b610930565b3480156104b157600080fd5b506102ef6104c0366004611996565b61095f565b3480156104d157600080fd5b506102406104e0366004611936565b6109d7565b3480156104f157600080fd5b506102ef6109e4565b34801561050657600080fd5b5061024061051536600461184d565b60116020526000908152604090205460ff1681565b34801561053657600080fd5b5061024061054536600461184d565b60106020526000908152604090205460ff1681565b34801561056657600080fd5b506102ef610a23565b34801561057b57600080fd5b506102a161058a366004611887565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c157600080fd5b506102ef6105d036600461184d565b610a59565b3480156105e157600080fd5b506102ef6105f036600461197d565b610aa7565b6000610602338484610af7565b5060015b92915050565b6000610619848484610c1b565b61066b843361066685604051806060016040528060288152602001611b75602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110f9565b610af7565b5060019392505050565b6000546001600160a01b031633146106a85760405162461bcd60e51b815260040161069f90611a1d565b60405180910390fd5b6001600160a01b03821660009081526011602052604090205460ff16151581151514156107175760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000604482015260640161069f565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461076c5760405162461bcd60e51b815260040161069f90611a1d565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146107b75760405162461bcd60e51b815260040161069f90611a1d565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316146107f557600080fd5b476107ff81611133565b50565b6001600160a01b03811660009081526002602052604081205461060690611171565b6000546001600160a01b0316331461084e5760405162461bcd60e51b815260040161069f90611a1d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108c25760405162461bcd60e51b815260040161069f90611a1d565b64746a5288008110156108d457600080fd5b6108e281633b9aca00611afd565b60165550565b6000546001600160a01b031633146109125760405162461bcd60e51b815260040161069f90611a1d565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461095a5760405162461bcd60e51b815260040161069f90611a1d565b601855565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161069f90611a1d565b60006109958386611ac3565b905060006109a38386611ac3565b9050600a8211156109b357600080fd5b600a8111156109c157600080fd5b5050600893909355600a91909155600955600b55565b6000610602338484610c1b565b6000546001600160a01b03163314610a0e5760405162461bcd60e51b815260040161069f90611a1d565b69152d02c7e14af68000006016819055601755565b6013546001600160a01b0316336001600160a01b031614610a4357600080fd5b6000610a4e30610802565b90506107ff816111f5565b6000546001600160a01b03163314610a835760405162461bcd60e51b815260040161069f90611a1d565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b03163314610ad15760405162461bcd60e51b815260040161069f90611a1d565b64e8d4a51000811015610ae357600080fd5b610af181633b9aca00611afd565b60175550565b6001600160a01b038316610b595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161069f565b6001600160a01b038216610bba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161069f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c7f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161069f565b6001600160a01b038216610ce15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161069f565b60008111610d435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161069f565b6000546001600160a01b03848116911614801590610d6f57506000546001600160a01b03838116911614155b15610fec57601554600160a01b900460ff16610e13576001600160a01b03831660009081526011602052604090205460ff16610e135760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161069f565b601654811115610e655760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161069f565b6001600160a01b03821660009081526010602052604090205460ff1615610eda5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161069f565b6015546001600160a01b03838116911614610f5f5760175481610efc84610802565b610f069190611ac3565b10610f5f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161069f565b6000610f6a30610802565b601854601654919250821015908210610f835760165491505b808015610f9a5750601554600160a81b900460ff16155b8015610fb457506015546001600160a01b03868116911614155b8015610fc95750601554600160b01b900460ff165b15610fe957610fd7826111f5565b478015610fe757610fe747611133565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061102e57506001600160a01b03831660009081526005602052604090205460ff165b8061106057506015546001600160a01b0385811691161480159061106057506015546001600160a01b03848116911614155b1561106d575060006110e7565b6015546001600160a01b03858116911614801561109857506014546001600160a01b03848116911614155b156110aa57600854600c55600954600d555b6015546001600160a01b0384811691161480156110d557506014546001600160a01b03858116911614155b156110e757600a54600c55600b54600d555b6110f38484848461137e565b50505050565b6000818484111561111d5760405162461bcd60e51b815260040161069f91906119c8565b50600061112a8486611b1c565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561116d573d6000803e3d6000fd5b5050565b60006006548211156111d85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161069f565b60006111e26113ac565b90506111ee83826113cf565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061123d5761123d611b49565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561129157600080fd5b505afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c9919061186a565b816001815181106112dc576112dc611b49565b6001600160a01b0392831660209182029290920101526014546113029130911684610af7565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061133b908590600090869030904290600401611a52565b600060405180830381600087803b15801561135557600080fd5b505af1158015611369573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061138b5761138b611411565b61139684848461143f565b806110f3576110f3600e54600c55600f54600d55565b60008060006113b9611536565b90925090506113c882826113cf565b9250505090565b60006111ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061157a565b600c541580156114215750600d54155b1561142857565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611451876115a8565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114839087611605565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114b29086611647565b6001600160a01b0389166000908152600260205260409020556114d4816116a6565b6114de84836116f0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161152391815260200190565b60405180910390a3505050505050505050565b600654600090819069152d02c7e14af680000061155382826113cf565b8210156115715750506006549269152d02c7e14af680000092509050565b90939092509050565b6000818361159b5760405162461bcd60e51b815260040161069f91906119c8565b50600061112a8486611adb565b60008060008060008060008060006115c58a600c54600d54611714565b92509250925060006115d56113ac565b905060008060006115e88e878787611769565b919e509c509a509598509396509194505050505091939550919395565b60006111ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f9565b6000806116548385611ac3565b9050838110156111ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161069f565b60006116b06113ac565b905060006116be83836117b9565b306000908152600260205260409020549091506116db9082611647565b30600090815260026020526040902055505050565b6006546116fd9083611605565b60065560075461170d9082611647565b6007555050565b600080808061172e606461172889896117b9565b906113cf565b9050600061174160646117288a896117b9565b90506000611759826117538b86611605565b90611605565b9992985090965090945050505050565b600080808061177888866117b9565b9050600061178688876117b9565b9050600061179488886117b9565b905060006117a6826117538686611605565b939b939a50919850919650505050505050565b6000826117c857506000610606565b60006117d48385611afd565b9050826117e18583611adb565b146111ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161069f565b8035801515811461184857600080fd5b919050565b60006020828403121561185f57600080fd5b81356111ee81611b5f565b60006020828403121561187c57600080fd5b81516111ee81611b5f565b6000806040838503121561189a57600080fd5b82356118a581611b5f565b915060208301356118b581611b5f565b809150509250929050565b6000806000606084860312156118d557600080fd5b83356118e081611b5f565b925060208401356118f081611b5f565b929592945050506040919091013590565b6000806040838503121561191457600080fd5b823561191f81611b5f565b915061192d60208401611838565b90509250929050565b6000806040838503121561194957600080fd5b823561195481611b5f565b946020939093013593505050565b60006020828403121561197457600080fd5b6111ee82611838565b60006020828403121561198f57600080fd5b5035919050565b600080600080608085870312156119ac57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156119f5578581018301518582016040015282016119d9565b81811115611a07576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aa25784516001600160a01b031683529383019391830191600101611a7d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ad657611ad6611b33565b500190565b600082611af857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b1757611b17611b33565b500290565b600082821015611b2e57611b2e611b33565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146107ff57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075bda054a1a12a32ba3122f24e930a73a0931aa83a32e7e9e7a8f22eeaca8fef64736f6c63430008070033

Deployed Bytecode Sourcemap

4829:13891:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7435:83;;;;;;;;;;-1:-1:-1;7505:5:0;;;;;;;;;;;;-1:-1:-1;;;7505:5:0;;;;7435:83;;;;;;;:::i;:::-;;;;;;;;8360:193;;;;;;;;;;-1:-1:-1;8360:193:0;;;;;:::i;:::-;;:::i;:::-;;;3314:14:1;;3307:22;3289:41;;3277:2;3262:18;8360:193:0;3149:187:1;6186:41:0;;;;;;;;;;-1:-1:-1;6186:41:0;;;;-1:-1:-1;;;;;6186:41:0;;;;;;-1:-1:-1;;;;;3105:32:1;;;3087:51;;3075:2;3060:18;6186:41:0;2941:203:1;7712:95:0;;;;;;;;;;-1:-1:-1;5378:23:0;7712:95;;;9830:25:1;;;9818:2;9803:18;7712:95:0;9684:177:1;8561:446:0;;;;;;;;;;-1:-1:-1;8561:446:0;;;;;:::i;:::-;;:::i;18521:196::-;;;;;;;;;;-1:-1:-1;18521:196:0;;;;;:::i;:::-;;:::i;:::-;;6511:56;;;;;;;;;;;;;;;;7621:83;;;;;;;;;;-1:-1:-1;7621:83:0;;5052:1;10993:36:1;;10981:2;10966:18;7621:83:0;10851:184:1;6234:28:0;;;;;;;;;;-1:-1:-1;6234:28:0;;;;-1:-1:-1;;;;;6234:28:0;;;13648:92;;;;;;;;;;-1:-1:-1;13648:92:0;;;;;:::i;:::-;;:::i;18022:101::-;;;;;;;;;;-1:-1:-1;18022:101:0;;;;;:::i;:::-;;:::i;13350:189::-;;;;;;;;;;;;;:::i;7815:138::-;;;;;;;;;;-1:-1:-1;7815:138:0;;;;;:::i;:::-;;:::i;2570:148::-;;;;;;;;;;;;;:::i;18162:164::-;;;;;;;;;;-1:-1:-1;18162:164:0;;;;;:::i;:::-;;:::i;6384:50::-;;;;;;;;;;;;;;;;2356:79;;;;;;;;;;-1:-1:-1;2394:7:0;2421:6;-1:-1:-1;;;;;2421:6:0;2356:79;;13043:101;;;;;;;;;;-1:-1:-1;13043:101:0;;;;;:::i;:::-;;:::i;6447:53::-;;;;;;;;;;;;;;;;7526:87;;;;;;;;;;-1:-1:-1;7598:7:0;;;;;;;;;;;;-1:-1:-1;;;7598:7:0;;;;7526:87;;17827:139;;;;;;;;;;-1:-1:-1;17827:139:0;;;;;:::i;:::-;;:::i;17172:481::-;;;;;;;;;;-1:-1:-1;17172:481:0;;;;;:::i;:::-;;:::i;7961:199::-;;;;;;;;;;-1:-1:-1;7961:199:0;;;;;:::i;:::-;;:::i;17661:112::-;;;;;;;;;;;;;:::i;5979:42::-;;;;;;;;;;-1:-1:-1;5979:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5936:36;;;;;;;;;;-1:-1:-1;5936:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13152:190;;;;;;;;;;;;;:::i;8168:184::-;;;;;;;;;;-1:-1:-1;8168:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8317:18:0;;;8285:7;8317:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8168:184;13551:87;;;;;;;;;;-1:-1:-1;13551:87:0;;;;;:::i;:::-;;:::i;18338:174::-;;;;;;;;;;-1:-1:-1;18338:174:0;;;;;:::i;:::-;;:::i;8360:193::-;8462:4;8484:39;1195:10;8507:7;8516:6;8484:8;:39::i;:::-;-1:-1:-1;8541:4:0;8360:193;;;;;:::o;8561:446::-;8693:4;8710:36;8720:6;8728:9;8739:6;8710:9;:36::i;:::-;8757:220;8780:6;1195:10;8828:138;8884:6;8828:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8828:19:0;;;;;;:11;:19;;;;;;;;1195:10;8828:33;;;;;;;;;;:37;:138::i;:::-;8757:8;:220::i;:::-;-1:-1:-1;8995:4:0;8561:446;;;;;:::o;18521:196::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;18613:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:29;;::::0;::::1;;;;18605:65;;;::::0;-1:-1:-1;;;18605:65:0;;7146:2:1;18605:65:0::1;::::0;::::1;7128:21:1::0;7185:2;7165:18;;;7158:30;7224:25;7204:18;;;7197:53;7267:18;;18605:65:0::1;6944:347:1::0;18605:65:0::1;-1:-1:-1::0;;;;;18681:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;18681:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18521:196::o;13648:92::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13712:12:0::1;13727:5;13712:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13712:20:0::1;::::0;;13648:92::o;18022:101::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;18089:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18089:26:0::1;-1:-1:-1::0;;;;18089:26:0;;::::1;::::0;;;::::1;::::0;;18022:101::o;13350:189::-;13416:10;;-1:-1:-1;;;;;13416:10:0;1195;-1:-1:-1;;;;;13400:26:0;;13392:35;;;;;;13467:21;13499:32;13467:21;13499:12;:32::i;:::-;13381:158;13350:189::o;7815:138::-;-1:-1:-1;;;;;7928:16:0;;7881:7;7928:16;;;:7;:16;;;;;;7908:37;;:19;:37::i;2570:148::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;2677:1:::1;2661:6:::0;;2640:40:::1;::::0;-1:-1:-1;;;;;2661:6:0;;::::1;::::0;2640:40:::1;::::0;2677:1;;2640:40:::1;2708:1;2691:19:::0;;-1:-1:-1;;;;;;2691:19:0::1;::::0;;2570:148::o;18162:164::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;18259:12:::1;18244:11;:27;;18236:36;;;::::0;::::1;;18298:19;:11:::0;18312:5:::1;18298:19;:::i;:::-;18283:12;:34:::0;-1:-1:-1;18162:164:0:o;13043:101::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;13110:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13110:26:0::1;-1:-1:-1::0;;;;13110:26:0;;::::1;::::0;;;::::1;::::0;;13043:101::o;17827:139::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;17918:19:::1;:40:::0;17827:139::o;17172:481::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;17306:17:::1;17326:27;17342:11:::0;17326:13;:27:::1;:::i;:::-;17306:47:::0;-1:-1:-1;17364:18:0::1;17385:29;17402:12:::0;17385:14;:29:::1;:::i;:::-;17364:50;;17446:2;17433:9;:15;;17425:24;;;::::0;::::1;;17482:2;17468:10;:16;;17460:25;;;::::0;::::1;;-1:-1:-1::0;;17496:14:0::1;:30:::0;;;;17537:15:::1;:32:::0;;;;17580:12:::1;:26:::0;17617:13:::1;:28:::0;17172:481::o;7961:199::-;8066:4;8088:42;1195:10;8112:9;8123:6;8088:9;:42::i;17661:112::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;5378:23:::1;17711:12;:22:::0;;;17741:14:::1;:24:::0;17661:112::o;13152:190::-;13218:10;;-1:-1:-1;;;;;13218:10:0;1195;-1:-1:-1;;;;;13202:26:0;;13194:35;;;;;;13240:23;13266:24;13284:4;13266:9;:24::i;:::-;13240:50;;13301:33;13318:15;13301:16;:33::i;13551:87::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13612:11:0::1;;::::0;;;:4:::1;:11;::::0;;;;:18;;-1:-1:-1;;13612:18:0::1;13626:4;13612:18;::::0;;13551:87::o;18338:174::-;2483:6;;-1:-1:-1;;;;;2483:6:0;1195:10;2483:22;2475:67;;;;-1:-1:-1;;;2475:67:0;;;;;;;:::i;:::-;18440:13:::1;18423;:30;;18415:39;;;::::0;::::1;;18482:21;:13:::0;18498:5:::1;18482:21;:::i;:::-;18465:14;:38:::0;-1:-1:-1;18338:174:0:o;9710:369::-;-1:-1:-1;;;;;9837:19:0;;9829:68;;;;-1:-1:-1;;;9829:68:0;;9481:2:1;9829:68:0;;;9463:21:1;9520:2;9500:18;;;9493:30;9559:34;9539:18;;;9532:62;-1:-1:-1;;;9610:18:1;;;9603:34;9654:19;;9829:68:0;9279:400:1;9829:68:0;-1:-1:-1;;;;;9916:21:0;;9908:68;;;;-1:-1:-1;;;9908:68:0;;5983:2:1;9908:68:0;;;5965:21:1;6022:2;6002:18;;;5995:30;6061:34;6041:18;;;6034:62;-1:-1:-1;;;6112:18:1;;;6105:32;6154:19;;9908:68:0;5781:398:1;9908:68:0;-1:-1:-1;;;;;9987:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10039:32;;9830:25:1;;;10039:32:0;;9803:18:1;10039:32:0;;;;;;;9710:369;;;:::o;10087:2357::-;-1:-1:-1;;;;;10209:18:0;;10201:68;;;;-1:-1:-1;;;10201:68:0;;8671:2:1;10201:68:0;;;8653:21:1;8710:2;8690:18;;;8683:30;8749:34;8729:18;;;8722:62;-1:-1:-1;;;8800:18:1;;;8793:35;8845:19;;10201:68:0;8469:401:1;10201:68:0;-1:-1:-1;;;;;10288:16:0;;10280:64;;;;-1:-1:-1;;;10280:64:0;;4379:2:1;10280:64:0;;;4361:21:1;4418:2;4398:18;;;4391:30;4457:34;4437:18;;;4430:62;-1:-1:-1;;;4508:18:1;;;4501:33;4551:19;;10280:64:0;4177:399:1;10280:64:0;10372:1;10363:6;:10;10355:64;;;;-1:-1:-1;;;10355:64:0;;8261:2:1;10355:64:0;;;8243:21:1;8300:2;8280:18;;;8273:30;8339:34;8319:18;;;8312:62;-1:-1:-1;;;8390:18:1;;;8383:39;8439:19;;10355:64:0;8059:405:1;10355:64:0;2394:7;2421:6;-1:-1:-1;;;;;10436:15:0;;;2421:6;;10436:15;;;;:32;;-1:-1:-1;2394:7:0;2421:6;-1:-1:-1;;;;;10455:13:0;;;2421:6;;10455:13;;10436:32;10432:1250;;;10537:11;;-1:-1:-1;;;10537:11:0;;;;10532:144;;-1:-1:-1;;;;;10577:15:0;;;;;;:9;:15;;;;;;;;10569:91;;;;-1:-1:-1;;;10569:91:0;;4783:2:1;10569:91:0;;;4765:21:1;4822:2;4802:18;;;4795:30;4861:34;4841:18;;;4834:62;4932:33;4912:18;;;4905:61;4983:19;;10569:91:0;4581:427:1;10569:91:0;10724:12;;10714:6;:22;;10706:63;;;;-1:-1:-1;;;10706:63:0;;5626:2:1;10706:63:0;;;5608:21:1;5665:2;5645:18;;;5638:30;5704;5684:18;;;5677:58;5752:18;;10706:63:0;5424:352:1;10706:63:0;-1:-1:-1;;;;;10793:8:0;;;;;;:4;:8;;;;;;;;10792:9;10784:57;;;;-1:-1:-1;;;10784:57:0;;6386:2:1;10784:57:0;;;6368:21:1;6425:2;6405:18;;;6398:30;6464:34;6444:18;;;6437:62;-1:-1:-1;;;6515:18:1;;;6508:33;6558:19;;10784:57:0;6184:399:1;10784:57:0;10879:13;;-1:-1:-1;;;;;10873:19:0;;;10879:13;;10873:19;10870:146;;10946:14;;10937:6;10921:13;10931:2;10921:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10913:87;;;;-1:-1:-1;;;10913:87:0;;9077:2:1;10913:87:0;;;9059:21:1;9116:2;9096:18;;;9089:30;9155:34;9135:18;;;9128:62;-1:-1:-1;;;9206:18:1;;;9199:33;9249:19;;10913:87:0;8875:399:1;10913:87:0;11044:28;11075:24;11093:4;11075:9;:24::i;:::-;11153:19;;11216:12;;11044:55;;-1:-1:-1;11129:43:0;;;;11192:36;;11189:124;;11285:12;;11262:35;;11189:124;11345:7;:18;;;;-1:-1:-1;11357:6:0;;-1:-1:-1;;;11357:6:0;;;;11356:7;11345:18;:43;;;;-1:-1:-1;11375:13:0;;-1:-1:-1;;;;;11367:21:0;;;11375:13;;11367:21;;11345:43;:58;;;;-1:-1:-1;11392:11:0;;-1:-1:-1;;;11392:11:0;;;;11345:58;11341:330;;;11424:38;11441:20;11424:16;:38::i;:::-;11510:21;11554:22;;11550:106;;11601:35;11614:21;11601:12;:35::i;:::-;11405:266;11341:330;10470:1212;;10432:1250;-1:-1:-1;;;;;11766:24:0;;11702:12;11766:24;;;:18;:24;;;;;;11717:4;;11766:24;;;:50;;-1:-1:-1;;;;;;11794:22:0;;;;;;:18;:22;;;;;;;;11766:50;11765:102;;;-1:-1:-1;11830:13:0;;-1:-1:-1;;;;;11822:21:0;;;11830:13;;11822:21;;;;:44;;-1:-1:-1;11853:13:0;;-1:-1:-1;;;;;11847:19:0;;;11853:13;;11847:19;;11822:44;11761:622;;;-1:-1:-1;11894:5:0;11761:622;;;11989:13;;-1:-1:-1;;;;;11981:21:0;;;11989:13;;11981:21;:55;;;;-1:-1:-1;12020:15:0;;-1:-1:-1;;;;;12006:30:0;;;12020:15;;12006:30;;11981:55;11978:162;;;12069:14;;12057:9;:26;12112:12;;12102:7;:22;11978:162;12203:13;;-1:-1:-1;;;;;12197:19:0;;;12203:13;;12197:19;:55;;;;-1:-1:-1;12236:15:0;;-1:-1:-1;;;;;12220:32:0;;;12236:15;;12220:32;;12197:55;12193:165;;;12285:15;;12273:9;:27;12329:13;;12319:7;:23;12193:165;12395:41;12410:4;12416:2;12420:6;12428:7;12395:14;:41::i;:::-;10190:2254;10087:2357;;;:::o;3080:224::-;3200:7;3236:12;3228:6;;;;3220:29;;;;-1:-1:-1;;;3220:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3260:9:0;3272:5;3276:1;3272;:5;:::i;:::-;3260:17;3080:224;-1:-1:-1;;;;;3080:224:0:o;12943:92::-;13000:10;;:27;;-1:-1:-1;;;;;13000:10:0;;;;:27;;;;;13020:6;;13000:10;:27;:10;:27;13020:6;13000:10;:27;;;;;;;;;;;;;;;;;;;;;12943:92;:::o;9015:323::-;9110:7;9168;;9157;:18;;9135:110;;;;-1:-1:-1;;;9135:110:0;;5215:2:1;9135:110:0;;;5197:21:1;5254:2;5234:18;;;5227:30;5293:34;5273:18;;;5266:62;-1:-1:-1;;;5344:18:1;;;5337:40;5394:19;;9135:110:0;5013:406:1;9135:110:0;9256:19;9278:10;:8;:10::i;:::-;9256:32;-1:-1:-1;9306:24:0;:7;9256:32;9306:11;:24::i;:::-;9299:31;9015:323;-1:-1:-1;;;9015:323:0:o;12452:483::-;6667:6;:13;;-1:-1:-1;;;;6667:13:0;-1:-1:-1;;;6667:13:0;;;12554:16:::1;::::0;;12568:1:::1;12554:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12554:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12554:16:0::1;12530:40;;12599:4;12581;12586:1;12581:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12581:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12625:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12625:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12581:7;;12625:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12615:4;12620:1;12615:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12615:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12690:15:::1;::::0;12658:62:::1;::::0;12675:4:::1;::::0;12690:15:::1;12708:11:::0;12658:8:::1;:62::i;:::-;12731:15;::::0;:196:::1;::::0;-1:-1:-1;;;12731:196:0;;-1:-1:-1;;;;;12731:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12812:11;;12731:15:::1;::::0;12854:4;;12881::::1;::::0;12901:15:::1;::::0;12731:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6703:6:0;:14;;-1:-1:-1;;;;6703:14:0;;;-1:-1:-1;;;;12452:483:0:o;13748:282::-;13904:7;13899:28;;13913:14;:12;:14::i;:::-;13938:44;13956:6;13964:9;13975:6;13938:17;:44::i;:::-;13998:7;13993:29;;14007:15;9641:17;;9629:9;:29;9679:15;;9669:7;:25;9585:117;16723:166;16765:7;16786:15;16803;16822:19;:17;:19::i;:::-;16785:56;;-1:-1:-1;16785:56:0;-1:-1:-1;16861:20:0;16785:56;;16861:11;:20::i;:::-;16854:27;;;;16723:166;:::o;3566:132::-;3624:7;3651:39;3655:1;3658;3651:39;;;;;;;;;;;;;;;;;:3;:39::i;9346:231::-;9393:9;;:14;:30;;;;-1:-1:-1;9411:7:0;;:12;9393:30;9389:43;;;9346:231::o;9389:43::-;9468:9;;;9448:17;:29;9506:7;;;9488:15;:25;-1:-1:-1;9534:13:0;;;;9558:11;9346:231::o;14038:610::-;14185:15;14215:23;14253:12;14280:23;14318:12;14345:13;14372:19;14383:7;14372:10;:19::i;:::-;-1:-1:-1;;;;;14420:15:0;;;;;;:7;:15;;;;;;14170:221;;-1:-1:-1;14170:221:0;;-1:-1:-1;14170:221:0;;-1:-1:-1;14170:221:0;-1:-1:-1;14170:221:0;-1:-1:-1;14170:221:0;-1:-1:-1;14420:28:0;;14170:221;14420:19;:28::i;:::-;-1:-1:-1;;;;;14402:15:0;;;;;;;:7;:15;;;;;;:46;;;;14480:18;;;;;;;:39;;14503:15;14480:22;:39::i;:::-;-1:-1:-1;;;;;14459:18:0;;;;;;:7;:18;;;;;:60;14530:16;14540:5;14530:9;:16::i;:::-;14557:23;14569:4;14575;14557:11;:23::i;:::-;14613:9;-1:-1:-1;;;;;14596:44:0;14605:6;-1:-1:-1;;;;;14596:44:0;;14624:15;14596:44;;;;9830:25:1;;9818:2;9803:18;;9684:177;14596:44:0;;;;;;;;14159:489;;;;;;14038:610;;;:::o;16897:263::-;16995:7;;16948;;;;5378:23;17063:20;16995:7;5378:23;17063:11;:20::i;:::-;17053:7;:30;17049:61;;;-1:-1:-1;;17093:7:0;;;5378:23;;-1:-1:-1;16897:263:0;-1:-1:-1;16897:263:0:o;17049:61::-;17135:7;;17144;;-1:-1:-1;16897:263:0;-1:-1:-1;16897:263:0:o;3706:223::-;3826:7;3861:12;3854:5;3846:28;;;;-1:-1:-1;;;3846:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3885:9:0;3897:5;3901:1;3897;:5;:::i;15067:625::-;15167:7;15189;15211;15233;15255;15277;15313:23;15338:12;15352:13;15382:40;15394:7;15403:9;;15414:7;;15382:11;:40::i;:::-;15312:110;;;;;;15433:19;15455:10;:8;:10::i;:::-;15433:32;;15477:15;15494:23;15519:12;15548:46;15560:7;15569:4;15575:5;15582:11;15548;:46::i;:::-;15476:118;;-1:-1:-1;15476:118:0;-1:-1:-1;15476:118:0;-1:-1:-1;15655:15:0;;-1:-1:-1;15672:4:0;;-1:-1:-1;15678:5:0;;-1:-1:-1;;;;;15067:625:0;;;;;;;:::o;2936:136::-;2994:7;3021:43;3025:1;3028;3021:43;;;;;;;;;;;;;;;;;:3;:43::i;2749:179::-;2807:7;;2839:5;2843:1;2839;:5;:::i;:::-;2827:17;;2868:1;2863;:6;;2855:46;;;;-1:-1:-1;;;2855:46:0;;6790:2:1;2855:46:0;;;6772:21:1;6829:2;6809:18;;;6802:30;6868:29;6848:18;;;6841:57;6915:18;;2855:46:0;6588:351:1;14656:211:0;14709:19;14731:10;:8;:10::i;:::-;14709:32;-1:-1:-1;14752:13:0;14768:22;:5;14709:32;14768:9;:22::i;:::-;14842:4;14826:22;;;;:7;:22;;;;;;14752:38;;-1:-1:-1;14826:33:0;;14752:38;14826:26;:33::i;:::-;14817:4;14801:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14656:211:0:o;14875:147::-;14953:7;;:17;;14965:4;14953:11;:17::i;:::-;14943:7;:27;14994:10;;:20;;15009:4;14994:14;:20::i;:::-;14981:10;:33;-1:-1:-1;;14875:147:0:o;15700:471::-;15869:7;;;;15963:30;15989:3;15963:21;:7;15975:8;15963:11;:21::i;:::-;:25;;:30::i;:::-;15948:45;-1:-1:-1;16004:13:0;16020:28;16044:3;16020:19;:7;16032:6;16020:11;:19::i;:28::-;16004:44;-1:-1:-1;16059:23:0;16085:28;16004:44;16085:17;:7;16097:4;16085:11;:17::i;:::-;:21;;:28::i;:::-;16059:54;16151:4;;-1:-1:-1;16157:5:0;;-1:-1:-1;15700:471:0;;-1:-1:-1;;;;;15700:471:0:o;16179:536::-;16373:7;;;;16470:24;:7;16482:11;16470;:24::i;:::-;16452:42;-1:-1:-1;16505:12:0;16520:21;:4;16529:11;16520:8;:21::i;:::-;16505:36;-1:-1:-1;16552:13:0;16568:22;:5;16578:11;16568:9;:22::i;:::-;16552:38;-1:-1:-1;16601:23:0;16627:28;16552:38;16627:17;:7;16639:4;16627:11;:17::i;:28::-;16676:7;;;;-1:-1:-1;16702:4:0;;-1:-1:-1;16179:536:0;;-1:-1:-1;;;;;;;16179:536:0:o;3312:246::-;3370:7;3394:6;3390:47;;-1:-1:-1;3424:1:0;3417:8;;3390:47;3447:9;3459:5;3463:1;3459;:5;:::i;:::-;3447:17;-1:-1:-1;3492:1:0;3483:5;3487:1;3447:17;3483:5;:::i;:::-;:10;3475:56;;;;-1:-1:-1;;;3475:56:0;;7498:2:1;3475:56:0;;;7480:21:1;7537:2;7517:18;;;7510:30;7576:34;7556:18;;;7549:62;-1:-1:-1;;;7627:18:1;;;7620:31;7668:19;;3475:56:0;7296:397:1;14:160;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1606:6;1614;1667:2;1655:9;1646:7;1642:23;1638:32;1635:52;;;1683:1;1680;1673:12;1635:52;1722:9;1709:23;1741:31;1766:5;1741:31;:::i;:::-;1791:5;-1:-1:-1;1815:35:1;1846:2;1831:18;;1815:35;:::i;:::-;1805:45;;1541:315;;;;;:::o;1861:::-;1929:6;1937;1990:2;1978:9;1969:7;1965:23;1961:32;1958:52;;;2006:1;2003;1996:12;1958:52;2045:9;2032:23;2064:31;2089:5;2064:31;:::i;:::-;2114:5;2166:2;2151:18;;;;2138:32;;-1:-1:-1;;;1861:315:1:o;2181:180::-;2237:6;2290:2;2278:9;2269:7;2265:23;2261:32;2258:52;;;2306:1;2303;2296:12;2258:52;2329:26;2345:9;2329:26;:::i;2366:180::-;2425:6;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;-1:-1:-1;2517:23:1;;2366:180;-1:-1:-1;2366:180:1:o;2551:385::-;2637:6;2645;2653;2661;2714:3;2702:9;2693:7;2689:23;2685:33;2682:53;;;2731:1;2728;2721:12;2682:53;-1:-1:-1;;2754:23:1;;;2824:2;2809:18;;2796:32;;-1:-1:-1;2875:2:1;2860:18;;2847:32;;2926:2;2911:18;2898:32;;-1:-1:-1;2551:385:1;-1:-1:-1;2551:385:1:o;3575:597::-;3687:4;3716:2;3745;3734:9;3727:21;3777:6;3771:13;3820:6;3815:2;3804:9;3800:18;3793:34;3845:1;3855:140;3869:6;3866:1;3863:13;3855:140;;;3964:14;;;3960:23;;3954:30;3930:17;;;3949:2;3926:26;3919:66;3884:10;;3855:140;;;4013:6;4010:1;4007:13;4004:91;;;4083:1;4078:2;4069:6;4058:9;4054:22;4050:31;4043:42;4004:91;-1:-1:-1;4156:2:1;4135:15;-1:-1:-1;;4131:29:1;4116:45;;;;4163:2;4112:54;;3575:597;-1:-1:-1;;;3575:597:1:o;7698:356::-;7900:2;7882:21;;;7919:18;;;7912:30;7978:34;7973:2;7958:18;;7951:62;8045:2;8030:18;;7698:356::o;9866:980::-;10128:4;10176:3;10165:9;10161:19;10207:6;10196:9;10189:25;10233:2;10271:6;10266:2;10255:9;10251:18;10244:34;10314:3;10309:2;10298:9;10294:18;10287:31;10338:6;10373;10367:13;10404:6;10396;10389:22;10442:3;10431:9;10427:19;10420:26;;10481:2;10473:6;10469:15;10455:29;;10502:1;10512:195;10526:6;10523:1;10520:13;10512:195;;;10591:13;;-1:-1:-1;;;;;10587:39:1;10575:52;;10682:15;;;;10647:12;;;;10623:1;10541:9;10512:195;;;-1:-1:-1;;;;;;;10763:32:1;;;;10758:2;10743:18;;10736:60;-1:-1:-1;;;10827:3:1;10812:19;10805:35;10724:3;9866:980;-1:-1:-1;;;9866:980:1:o;11040:128::-;11080:3;11111:1;11107:6;11104:1;11101:13;11098:39;;;11117:18;;:::i;:::-;-1:-1:-1;11153:9:1;;11040:128::o;11173:217::-;11213:1;11239;11229:132;;11283:10;11278:3;11274:20;11271:1;11264:31;11318:4;11315:1;11308:15;11346:4;11343:1;11336:15;11229:132;-1:-1:-1;11375:9:1;;11173:217::o;11395:168::-;11435:7;11501:1;11497;11493:6;11489:14;11486:1;11483:21;11478:1;11471:9;11464:17;11460:45;11457:71;;;11508:18;;:::i;:::-;-1:-1:-1;11548:9:1;;11395:168::o;11568:125::-;11608:4;11636:1;11633;11630:8;11627:34;;;11641:18;;:::i;:::-;-1:-1:-1;11678:9:1;;11568:125::o;11698:127::-;11759:10;11754:3;11750:20;11747:1;11740:31;11790:4;11787:1;11780:15;11814:4;11811:1;11804:15;11830:127;11891:10;11886:3;11882:20;11879:1;11872:31;11922:4;11919:1;11912:15;11946:4;11943:1;11936:15;12094:131;-1:-1:-1;;;;;12169:31:1;;12159:42;;12149:70;;12215:1;12212;12205:12

Swarm Source

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