ETH Price: $3,468.49 (+2.38%)
Gas: 10 Gwei

Token

BlockBot (BOT)
 

Overview

Max Total Supply

1,000,000,000 BOT

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,498,822.065960702 BOT

Value
$0.00
0x58747cacedd5a961bef6b0fc384270d41d8c9334
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:
BLOCKBOT

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-29
*/

// SPDX-License-Identifier: MIT

// Telegram: https://t.me/BlockBotETH

// Twitter: https://twitter.com/BlockBotErc

// Website: https://blockboterc.com/

// Ai Platform: https://www.blockbot.chat/

pragma solidity 0.8.21;

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

contract BLOCKBOT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"BlockBot";
    string private constant _symbol = unicode"BOT";
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1e9 * 10**_decimals;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=1;
    uint256 private _buyCount=0;

    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 private _taxSwapThreshold= _tTotal / 200;
    uint256 private _maxTaxSwap= _tTotal / 200;

    IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private tradingEnabled;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _approve(msg.sender, address(this), type(uint256).max);
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        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 _balances[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 _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(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradingEnabled, "trading not enabled");
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function enableTrading() external onlyOwner() {
        require(!tradingEnabled,"trading is already open");
        swapEnabled = true;
        tradingEnabled = true;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    receive() external payable {}

}

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":[{"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":[],"name":"enableTrading","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

60806040526019600555601960065560046007556004600855600a6009556019600a556001600b555f600c5560646009600a6200003d9190620006a9565b6200004d90633b9aca00620006c0565b6200005a906002620006c0565b620000669190620006da565b600d556064620000796009600a620006a9565b6200008990633b9aca00620006c0565b62000096906002620006c0565b620000a29190620006da565b600e5560c8620000b56009600a620006a9565b620000c590633b9aca00620006c0565b620000d19190620006da565b600f5560c8620000e46009600a620006a9565b620000f490633b9aca00620006c0565b620001009190620006da565b601055601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556012805461ffff60a81b1916905534801562000143575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fb9190620006fa565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002819190620006fa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002cc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f29190620006fa565b601280546001600160a01b0319166001600160a01b03929092169190911790556200031a3390565b600480546001600160a01b0319166001600160a01b0392909216919091179055620003486009600a620006a9565b6200035890633b9aca00620006c0565b335f908152600160208190526040822092909255600390620003815f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308082526003909452828120805486166001908117909155600454831682528382208054871682179055601154909216815291909120805490931617909155620003fc9033905f196200046f565b601154620004179030906001600160a01b03165f196200046f565b335f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004486009600a620006a9565b6200045890633b9aca00620006c0565b60405190815260200160405180910390a362000722565b6001600160a01b038316620004d75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200053a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004ce565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005ee57815f1904821115620005d257620005d26200059a565b80851615620005e057918102915b93841c9390800290620005b3565b509250929050565b5f826200060657506001620006a3565b816200061457505f620006a3565b81600181146200062d5760028114620006385762000658565b6001915050620006a3565b60ff8411156200064c576200064c6200059a565b50506001821b620006a3565b5060208310610133831016604e8410600b84101617156200067d575081810a620006a3565b620006898383620005ae565b805f19048211156200069f576200069f6200059a565b0290505b92915050565b5f620006b960ff841683620005f6565b9392505050565b8082028115828204841417620006a357620006a36200059a565b5f82620006f557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200070b575f80fd5b81516001600160a01b0381168114620006b9575f80fd5b61130f80620007305f395ff3fe6080604052600436106100e7575f3560e01c8063751039fc116100875780638f9a55c0116100575780638f9a55c01461026c57806395d89b4114610281578063a9059cbb146102ac578063dd62ed3e146102cb575f80fd5b8063751039fc146102095780637d1db4a51461021d5780638a8c523c146102325780638da5cb5b14610246575f80fd5b806323b872dd116100c257806323b872dd14610185578063313ce567146101a457806370a08231146101bf578063715018a6146101f3575f80fd5b806306fdde03146100f2578063095ea7b31461013457806318160ddd14610163575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b50604080518082019091526008815267109b1bd8dad09bdd60c21b60208201525b60405161012b9190610f4c565b60405180910390f35b34801561013f575f80fd5b5061015361014e366004610fae565b61030f565b604051901515815260200161012b565b34801561016e575f80fd5b50610177610325565b60405190815260200161012b565b348015610190575f80fd5b5061015361019f366004610fd8565b610345565b3480156101af575f80fd5b506040516009815260200161012b565b3480156101ca575f80fd5b506101776101d9366004611016565b6001600160a01b03165f9081526001602052604090205490565b3480156101fe575f80fd5b506102076103ac565b005b348015610214575f80fd5b50610207610426565b348015610228575f80fd5b50610177600d5481565b34801561023d575f80fd5b506102076104d7565b348015610251575f80fd5b505f546040516001600160a01b03909116815260200161012b565b348015610277575f80fd5b50610177600e5481565b34801561028c575f80fd5b506040805180820190915260038152621093d560ea1b602082015261011e565b3480156102b7575f80fd5b506101536102c6366004610fae565b610573565b3480156102d6575f80fd5b506101776102e5366004611031565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61031b33848461057f565b5060015b92915050565b5f6103326009600a61115c565b61034090633b9aca0061116a565b905090565b5f6103518484846106a2565b6103a2843361039d856040518060600160405280602881526020016112b2602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610bdd565b61057f565b5060019392505050565b5f546001600160a01b031633146103de5760405162461bcd60e51b81526004016103d590611181565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461044f5760405162461bcd60e51b81526004016103d590611181565b61045b6009600a61115c565b61046990633b9aca0061116a565b600d556104786009600a61115c565b61048690633b9aca0061116a565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104b66009600a61115c565b6104c490633b9aca0061116a565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105005760405162461bcd60e51b81526004016103d590611181565b601254600160a01b900460ff161561055a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103d5565b6012805462ff00ff60a01b19166201000160a01b179055565b5f61031b3384846106a2565b6001600160a01b0383166105e15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d5565b6001600160a01b0382166106425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d5565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116107035760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103d5565b6001600160a01b0383165f9081526003602052604081205460ff1615801561074357506001600160a01b0383165f9081526003602052604090205460ff16155b15610aa057601254600160a01b900460ff166107975760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103d5565b6107c360646107bd600954600c54116107b2576005546107b6565b6007545b8590610c15565b90610c9a565b6012549091506001600160a01b0385811691161480156107f157506011546001600160a01b03848116911614155b801561081557506001600160a01b0383165f9081526003602052604090205460ff16155b156108fb57600d5482111561086c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103d5565b600e548261088e856001600160a01b03165f9081526001602052604090205490565b61089891906111b6565b11156108e65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103d5565b600c8054905f6108f5836111c9565b91905055505b6012546001600160a01b0384811691161480159061093157506001600160a01b0383165f9081526003602052604090205460ff16155b156109b057600e5482610958856001600160a01b03165f9081526001602052604090205490565b61096291906111b6565b11156109b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103d5565b6012546001600160a01b0384811691161480156109d657506001600160a01b0384163014155b15610a0357610a0060646107bd600a54600c54116109f6576006546107b6565b6008548590610c15565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610a3957506012546001600160a01b038581169116145b8015610a4e5750601254600160b01b900460ff165b8015610a5b5750600f5481115b8015610a6a5750600b54600c54115b15610a9e57610a8c610a8784610a8284601054610cdb565b610cdb565b610cef565b478015610a9c57610a9c47610e46565b505b505b8015610b1857305f90815260016020526040902054610abf9082610e81565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b0f9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610b3a9083610edf565b6001600160a01b0385165f90815260016020526040902055610b7d610b5f8383610edf565b6001600160a01b0385165f9081526001602052604090205490610e81565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bc68585610edf565b60405190815260200160405180910390a350505050565b5f8184841115610c005760405162461bcd60e51b81526004016103d59190610f4c565b505f610c0c84866111e1565b95945050505050565b5f825f03610c2457505f61031f565b5f610c2f838561116a565b905082610c3c85836111f4565b14610c935760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103d5565b9392505050565b5f610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f20565b5f818311610ce95782610c93565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d3557610d35611213565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db09190611227565b81600181518110610dc357610dc3611213565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790610e089085905f90869030904290600401611242565b5f604051808303815f87803b158015610e1f575f80fd5b505af1158015610e31573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610e7d573d5f803e3d5ffd5b5050565b5f80610e8d83856111b6565b905083811015610c935760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103d5565b5f610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bdd565b5f8183610f405760405162461bcd60e51b81526004016103d59190610f4c565b505f610c0c84866111f4565b5f6020808352835180828501525f5b81811015610f7757858101830151858201604001528201610f5b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fab575f80fd5b50565b5f8060408385031215610fbf575f80fd5b8235610fca81610f97565b946020939093013593505050565b5f805f60608486031215610fea575f80fd5b8335610ff581610f97565b9250602084013561100581610f97565b929592945050506040919091013590565b5f60208284031215611026575f80fd5b8135610c9381610f97565b5f8060408385031215611042575f80fd5b823561104d81610f97565b9150602083013561105d81610f97565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156110b657815f190482111561109c5761109c611068565b808516156110a957918102915b93841c9390800290611081565b509250929050565b5f826110cc5750600161031f565b816110d857505f61031f565b81600181146110ee57600281146110f857611114565b600191505061031f565b60ff84111561110957611109611068565b50506001821b61031f565b5060208310610133831016604e8410600b8410161715611137575081810a61031f565b611141838361107c565b805f190482111561115457611154611068565b029392505050565b5f610c9360ff8416836110be565b808202811582820484141761031f5761031f611068565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561031f5761031f611068565b5f600182016111da576111da611068565b5060010190565b8181038181111561031f5761031f611068565b5f8261120e57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611237575f80fd5b8151610c9381610f97565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112905784516001600160a01b03168352938301939183019160010161126b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c7a8693fa27f57e65fd3ce5bdc71aa64600aff30c8892d540a17af901f6991f364736f6c63430008150033

Deployed Bytecode

0x6080604052600436106100e7575f3560e01c8063751039fc116100875780638f9a55c0116100575780638f9a55c01461026c57806395d89b4114610281578063a9059cbb146102ac578063dd62ed3e146102cb575f80fd5b8063751039fc146102095780637d1db4a51461021d5780638a8c523c146102325780638da5cb5b14610246575f80fd5b806323b872dd116100c257806323b872dd14610185578063313ce567146101a457806370a08231146101bf578063715018a6146101f3575f80fd5b806306fdde03146100f2578063095ea7b31461013457806318160ddd14610163575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b50604080518082019091526008815267109b1bd8dad09bdd60c21b60208201525b60405161012b9190610f4c565b60405180910390f35b34801561013f575f80fd5b5061015361014e366004610fae565b61030f565b604051901515815260200161012b565b34801561016e575f80fd5b50610177610325565b60405190815260200161012b565b348015610190575f80fd5b5061015361019f366004610fd8565b610345565b3480156101af575f80fd5b506040516009815260200161012b565b3480156101ca575f80fd5b506101776101d9366004611016565b6001600160a01b03165f9081526001602052604090205490565b3480156101fe575f80fd5b506102076103ac565b005b348015610214575f80fd5b50610207610426565b348015610228575f80fd5b50610177600d5481565b34801561023d575f80fd5b506102076104d7565b348015610251575f80fd5b505f546040516001600160a01b03909116815260200161012b565b348015610277575f80fd5b50610177600e5481565b34801561028c575f80fd5b506040805180820190915260038152621093d560ea1b602082015261011e565b3480156102b7575f80fd5b506101536102c6366004610fae565b610573565b3480156102d6575f80fd5b506101776102e5366004611031565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61031b33848461057f565b5060015b92915050565b5f6103326009600a61115c565b61034090633b9aca0061116a565b905090565b5f6103518484846106a2565b6103a2843361039d856040518060600160405280602881526020016112b2602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610bdd565b61057f565b5060019392505050565b5f546001600160a01b031633146103de5760405162461bcd60e51b81526004016103d590611181565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461044f5760405162461bcd60e51b81526004016103d590611181565b61045b6009600a61115c565b61046990633b9aca0061116a565b600d556104786009600a61115c565b61048690633b9aca0061116a565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104b66009600a61115c565b6104c490633b9aca0061116a565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105005760405162461bcd60e51b81526004016103d590611181565b601254600160a01b900460ff161561055a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103d5565b6012805462ff00ff60a01b19166201000160a01b179055565b5f61031b3384846106a2565b6001600160a01b0383166105e15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d5565b6001600160a01b0382166106425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d5565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116107035760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103d5565b6001600160a01b0383165f9081526003602052604081205460ff1615801561074357506001600160a01b0383165f9081526003602052604090205460ff16155b15610aa057601254600160a01b900460ff166107975760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103d5565b6107c360646107bd600954600c54116107b2576005546107b6565b6007545b8590610c15565b90610c9a565b6012549091506001600160a01b0385811691161480156107f157506011546001600160a01b03848116911614155b801561081557506001600160a01b0383165f9081526003602052604090205460ff16155b156108fb57600d5482111561086c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103d5565b600e548261088e856001600160a01b03165f9081526001602052604090205490565b61089891906111b6565b11156108e65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103d5565b600c8054905f6108f5836111c9565b91905055505b6012546001600160a01b0384811691161480159061093157506001600160a01b0383165f9081526003602052604090205460ff16155b156109b057600e5482610958856001600160a01b03165f9081526001602052604090205490565b61096291906111b6565b11156109b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103d5565b6012546001600160a01b0384811691161480156109d657506001600160a01b0384163014155b15610a0357610a0060646107bd600a54600c54116109f6576006546107b6565b6008548590610c15565b90505b305f90815260016020526040902054601254600160a81b900460ff16158015610a3957506012546001600160a01b038581169116145b8015610a4e5750601254600160b01b900460ff165b8015610a5b5750600f5481115b8015610a6a5750600b54600c54115b15610a9e57610a8c610a8784610a8284601054610cdb565b610cdb565b610cef565b478015610a9c57610a9c47610e46565b505b505b8015610b1857305f90815260016020526040902054610abf9082610e81565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b0f9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610b3a9083610edf565b6001600160a01b0385165f90815260016020526040902055610b7d610b5f8383610edf565b6001600160a01b0385165f9081526001602052604090205490610e81565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bc68585610edf565b60405190815260200160405180910390a350505050565b5f8184841115610c005760405162461bcd60e51b81526004016103d59190610f4c565b505f610c0c84866111e1565b95945050505050565b5f825f03610c2457505f61031f565b5f610c2f838561116a565b905082610c3c85836111f4565b14610c935760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103d5565b9392505050565b5f610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f20565b5f818311610ce95782610c93565b50919050565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d3557610d35611213565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db09190611227565b81600181518110610dc357610dc3611213565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790610e089085905f90869030904290600401611242565b5f604051808303815f87803b158015610e1f575f80fd5b505af1158015610e31573d5f803e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610e7d573d5f803e3d5ffd5b5050565b5f80610e8d83856111b6565b905083811015610c935760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103d5565b5f610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bdd565b5f8183610f405760405162461bcd60e51b81526004016103d59190610f4c565b505f610c0c84866111f4565b5f6020808352835180828501525f5b81811015610f7757858101830151858201604001528201610f5b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fab575f80fd5b50565b5f8060408385031215610fbf575f80fd5b8235610fca81610f97565b946020939093013593505050565b5f805f60608486031215610fea575f80fd5b8335610ff581610f97565b9250602084013561100581610f97565b929592945050506040919091013590565b5f60208284031215611026575f80fd5b8135610c9381610f97565b5f8060408385031215611042575f80fd5b823561104d81610f97565b9150602083013561105d81610f97565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156110b657815f190482111561109c5761109c611068565b808516156110a957918102915b93841c9390800290611081565b509250929050565b5f826110cc5750600161031f565b816110d857505f61031f565b81600181146110ee57600281146110f857611114565b600191505061031f565b60ff84111561110957611109611068565b50506001821b61031f565b5060208310610133831016604e8410600b8410161715611137575081810a61031f565b611141838361107c565b805f190482111561115457611154611068565b029392505050565b5f610c9360ff8416836110be565b808202811582820484141761031f5761031f611068565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561031f5761031f611068565b5f600182016111da576111da611068565b5060010190565b8181038181111561031f5761031f611068565b5f8261120e57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611237575f80fd5b8151610c9381610f97565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112905784516001600160a01b03168352938301939183019160010161126b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c7a8693fa27f57e65fd3ce5bdc71aa64600aff30c8892d540a17af901f6991f364736f6c63430008150033

Deployed Bytecode Sourcemap

3648:6792:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:83;;;;;;;;;;-1:-1:-1;5841:5:0;;;;;;;;;;;;-1:-1:-1;;;5841:5:0;;;;5771:83;;;;;;;:::i;:::-;;;;;;;;6604:161;;;;;;;;;;-1:-1:-1;6604:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6604:161:0;1023:187:1;6048:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6048:95:0;1215:177:1;6773:313:0;;;;;;;;;;-1:-1:-1;6773:313:0;;;;;:::i;:::-;;:::i;5957:83::-;;;;;;;;;;-1:-1:-1;5957:83:0;;4109:1;2000:36:1;;1988:2;1973:18;5957:83:0;1858:184:1;6151:119:0;;;;;;;;;;-1:-1:-1;6151:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6244:18:0;6217:7;6244:18;;;:9;:18;;;;;;;6151:119;2729:148;;;;;;;;;;;;;:::i;:::-;;10139:159;;;;;;;;;;;;;:::i;4498:47::-;;;;;;;;;;;;;;;;9955:176;;;;;;;;;;;;;:::i;2515:79::-;;;;;;;;;;-1:-1:-1;2553:7:0;2580:6;2515:79;;-1:-1:-1;;;;;2580:6:0;;;2445:51:1;;2433:2;2418:18;2515:79:0;2299:203:1;4552:49:0;;;;;;;;;;;;;;;;5862:87;;;;;;;;;;-1:-1:-1;5934:7:0;;;;;;;;;;;;-1:-1:-1;;;5934:7:0;;;;5862:87;;6278:167;;;;;;;;;;-1:-1:-1;6278:167:0;;;;;:::i;:::-;;:::i;6453:143::-;;;;;;;;;;-1:-1:-1;6453:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6561:18:0;;;6534:7;6561:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6453:143;6604:161;6679:4;6696:39;349:10;6719:7;6728:6;6696:8;:39::i;:::-;-1:-1:-1;6753:4:0;6604:161;;;;;:::o;6048:95::-;6101:7;4158:13;4109:1;4158:2;:13;:::i;:::-;4152:19;;:3;:19;:::i;:::-;6121:14;;6048:95;:::o;6773:313::-;6871:4;6888:36;6898:6;6906:9;6917:6;6888:9;:36::i;:::-;6935:121;6944:6;349:10;6966:89;7004:6;6966:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6966:19:0;;;;;;:11;:19;;;;;;;;349:10;6966:33;;;;;;;;;;:37;:89::i;:::-;6935:8;:121::i;:::-;-1:-1:-1;7074:4:0;6773:313;;;;;:::o;2729:148::-;2642:6;;-1:-1:-1;;;;;2642:6:0;349:10;2642:22;2634:67;;;;-1:-1:-1;;;2634:67:0;;;;;;;:::i;:::-;;;;;;;;;2836:1:::1;2820:6:::0;;2799:40:::1;::::0;-1:-1:-1;;;;;2820:6:0;;::::1;::::0;2799:40:::1;::::0;2836:1;;2799:40:::1;2867:1;2850:19:::0;;-1:-1:-1;;;;;;2850:19:0::1;::::0;;2729:148::o;10139:159::-;2642:6;;-1:-1:-1;;;;;2642:6:0;349:10;2642:22;2634:67;;;;-1:-1:-1;;;2634:67:0;;;;;;;:::i;:::-;4158:13:::1;4109:1;4158:2;:13;:::i;:::-;4152:19;::::0;:3:::1;:19;:::i;:::-;10192:12;:22:::0;4158:13:::1;4109:1;4158:2;:13;:::i;:::-;4152:19;::::0;:3:::1;:19;:::i;:::-;10225:14;:22:::0;10263:27:::1;4158:13;4109:1;4158:2;:13;:::i;:::-;4152:19;::::0;:3:::1;:19;:::i;:::-;10263:27;::::0;1361:25:1;;;1349:2;1334:18;10263:27:0::1;;;;;;;10139:159::o:0;9955:176::-;2642:6;;-1:-1:-1;;;;;2642:6:0;349:10;2642:22;2634:67;;;;-1:-1:-1;;;2634:67:0;;;;;;;:::i;:::-;10021:14:::1;::::0;-1:-1:-1;;;10021:14:0;::::1;;;10020:15;10012:50;;;::::0;-1:-1:-1;;;10012:50:0;;5151:2:1;10012:50:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;10012:50:0::1;4949:347:1::0;10012:50:0::1;10073:11;:18:::0;;-1:-1:-1;;;;10102:21:0;-1:-1:-1;;;10102:21:0;;;9955:176::o;6278:167::-;6356:4;6373:42;349:10;6397:9;6408:6;6373:9;:42::i;7094:335::-;-1:-1:-1;;;;;7187:19:0;;7179:68;;;;-1:-1:-1;;;7179:68:0;;5503:2:1;7179:68:0;;;5485:21:1;5542:2;5522:18;;;5515:30;5581:34;5561:18;;;5554:62;-1:-1:-1;;;5632:18:1;;;5625:34;5676:19;;7179:68:0;5301:400:1;7179:68:0;-1:-1:-1;;;;;7266:21:0;;7258:68;;;;-1:-1:-1;;;7258:68:0;;5908:2:1;7258:68:0;;;5890:21:1;5947:2;5927:18;;;5920:30;5986:34;5966:18;;;5959:62;-1:-1:-1;;;6037:18:1;;;6030:32;6079:19;;7258:68:0;5706:398:1;7258:68:0;-1:-1:-1;;;;;7337:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7389:32;;1361:25:1;;;7389:32:0;;1334:18:1;7389:32:0;;;;;;;7094:335;;;:::o;7437:1984::-;7534:1;7525:6;:10;7517:64;;;;-1:-1:-1;;;7517:64:0;;6311:2:1;7517:64:0;;;6293:21:1;6350:2;6330:18;;;6323:30;6389:34;6369:18;;;6362:62;-1:-1:-1;;;6440:18:1;;;6433:39;6489:19;;7517:64:0;6109:405:1;7517:64:0;-1:-1:-1;;;;;7627:24:0;;7592:17;7627:24;;;:18;:24;;;;;;;;7626:25;:52;;;;-1:-1:-1;;;;;;7656:22:0;;;;;;:18;:22;;;;;;;;7655:23;7626:52;7622:1443;;;7703:14;;-1:-1:-1;;;7703:14:0;;;;7695:46;;;;-1:-1:-1;;;7695:46:0;;6721:2:1;7695:46:0;;;6703:21:1;6760:2;6740:18;;;6733:30;-1:-1:-1;;;6779:18:1;;;6772:49;6838:18;;7695:46:0;6519:343:1;7695:46:0;7768:76;7840:3;7768:67;7790:15;;7780:9;;:25;7779:55;;7820:14;;7779:55;;;7807:12;;7779:55;7768:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7873:13;;7756:88;;-1:-1:-1;;;;;;7865:21:0;;;7873:13;;7865:21;:55;;;;-1:-1:-1;7904:15:0;;-1:-1:-1;;;;;7890:30:0;;;7904:15;;7890:30;;7865:55;:83;;;;-1:-1:-1;;;;;;7926:22:0;;;;;;:18;:22;;;;;;;;7924:24;7865:83;7861:313;;;7988:12;;7978:6;:22;;7970:60;;;;-1:-1:-1;;;7970:60:0;;7069:2:1;7970:60:0;;;7051:21:1;7108:2;7088:18;;;7081:30;7147:27;7127:18;;;7120:55;7192:18;;7970:60:0;6867:349:1;7970:60:0;8083:14;;8073:6;8057:13;8067:2;-1:-1:-1;;;;;6244:18:0;6217:7;6244:18;;;:9;:18;;;;;;;6151:119;8057:13;:22;;;;:::i;:::-;:40;;8049:79;;;;-1:-1:-1;;;8049:79:0;;7553:2:1;8049:79:0;;;7535:21:1;7592:2;7572:18;;;7565:30;7631:28;7611:18;;;7604:56;7677:18;;8049:79:0;7351:350:1;8049:79:0;8147:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7861:313;8200:13;;-1:-1:-1;;;;;8194:19:0;;;8200:13;;8194:19;;;;:47;;-1:-1:-1;;;;;;8219:22:0;;;;;;:18;:22;;;;;;;;8217:24;8194:47;8190:167;;;8296:14;;8286:6;8270:13;8280:2;-1:-1:-1;;;;;6244:18:0;6217:7;6244:18;;;:9;:18;;;;;;;6151:119;8270:13;:22;;;;:::i;:::-;:40;;8262:79;;;;-1:-1:-1;;;8262:79:0;;7553:2:1;8262:79:0;;;7535:21:1;7592:2;7572:18;;;7565:30;7631:28;7611:18;;;7604:56;7677:18;;8262:79:0;7351:350:1;8262:79:0;8382:13;;-1:-1:-1;;;;;8376:19:0;;;8382:13;;8376:19;:43;;;;-1:-1:-1;;;;;;8399:20:0;;8414:4;8399:20;;8376:43;8373:174;;;8452:79;8527:3;8452:70;8474:16;;8464:9;;:26;8463:58;;8506:15;;8463:58;;;8492:13;;8452:6;;:10;:70::i;:79::-;8440:91;;8373:174;8612:4;8563:28;6244:18;;;:9;:18;;;;;;8638:6;;-1:-1:-1;;;8638:6:0;;;;8637:7;:32;;;;-1:-1:-1;8656:13:0;;-1:-1:-1;;;;;8648:21:0;;;8656:13;;8648:21;8637:32;:47;;;;-1:-1:-1;8673:11:0;;-1:-1:-1;;;8673:11:0;;;;8637:47;:89;;;;;8709:17;;8688:20;:38;8637:89;:121;;;;;8740:18;;8730:9;;:28;8637:121;8633:421;;;8779:67;8796:49;8800:6;8807:37;8811:20;8832:11;;8807:3;:37::i;:::-;8796:3;:49::i;:::-;8779:16;:67::i;:::-;8894:21;8937:22;;8934:105;;8984:35;8997:21;8984:12;:35::i;:::-;8760:294;8633:421;7680:1385;7622:1443;9080:11;;9077:161;;9148:4;9130:24;;;;:9;:24;;;;;;:39;;9159:9;9130:28;:39::i;:::-;9123:4;9105:24;;;;:9;:24;;;;;;;:64;;;;9187:39;;-1:-1:-1;;;;;9187:39:0;;;;;;;9216:9;1361:25:1;;1349:2;1334:18;;1215:177;9187:39:0;;;;;;;;9077:161;-1:-1:-1;;;;;9264:15:0;;;;;;:9;:15;;;;;;:27;;9284:6;9264:19;:27::i;:::-;-1:-1:-1;;;;;9248:15:0;;;;;;:9;:15;;;;;:43;9316:40;9334:21;:6;9345:9;9334:10;:21::i;:::-;-1:-1:-1;;;;;9316:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9302:13:0;;;;;;;:9;:13;;;;;:54;;;;9372:41;;;9391:21;:6;9402:9;9391:10;:21::i;:::-;9372:41;;1361:25:1;;;1349:2;1334:18;9372:41:0;;;;;;;7506:1915;7437:1984;;;:::o;1407:190::-;1493:7;1529:12;1521:6;;;;1513:29;;;;-1:-1:-1;;;1513:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1553:9:0;1565:5;1569:1;1565;:5;:::i;:::-;1553:17;1407:190;-1:-1:-1;;;;;1407:190:0:o;1605:246::-;1663:7;1687:1;1692;1687:6;1683:47;;-1:-1:-1;1717:1:0;1710:8;;1683:47;1740:9;1752:5;1756:1;1752;:5;:::i;:::-;1740:17;-1:-1:-1;1785:1:0;1776:5;1780:1;1740:17;1776:5;:::i;:::-;:10;1768:56;;;;-1:-1:-1;;;1768:56:0;;8403:2:1;1768:56:0;;;8385:21:1;8442:2;8422:18;;;8415:30;8481:34;8461:18;;;8454:62;-1:-1:-1;;;8532:18:1;;;8525:31;8573:19;;1768:56:0;8201:397:1;1768:56:0;1842:1;1605:246;-1:-1:-1;;;1605:246:0:o;1859:132::-;1917:7;1944:39;1948:1;1951;1944:39;;;;;;;;;;;;;;;;;:3;:39::i;9431:98::-;9488:7;9515:1;9513;:3;9512:9;;9520:1;9512:9;;;-1:-1:-1;9518:1:0;9431:98;-1:-1:-1;9431:98:0:o;9537:410::-;5055:6;:13;;-1:-1:-1;;;;5055:13:0;-1:-1:-1;;;5055:13:0;;;9639:16:::1;::::0;;9653:1:::1;9639:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9639:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9639:16:0::1;9615:40;;9684:4;9666;9671:1;9666:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9666:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9710:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9710:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9666:7;;9710:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9700:4;9705:1;9700:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9700:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9743:15:::1;::::0;:196:::1;::::0;-1:-1:-1;;;9743:196:0;;:15;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9824:11;;9743:15:::1;::::0;9866:4;;9893::::1;::::0;9913:15:::1;::::0;9743:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5091:6:0;:14;;-1:-1:-1;;;;5091:14:0;;;-1:-1:-1;;;;9537:410:0:o;10306:92::-;10363:10;;:27;;-1:-1:-1;;;;;10363:10:0;;;;:27;;;;;10383:6;;10363:10;:27;:10;:27;10383:6;10363:10;:27;;;;;;;;;;;;;;;;;;;;;10306:92;:::o;1076:179::-;1134:7;;1166:5;1170:1;1166;:5;:::i;:::-;1154:17;;1195:1;1190;:6;;1182:46;;;;-1:-1:-1;;;1182:46:0;;10310:2:1;1182:46:0;;;10292:21:1;10349:2;10329:18;;;10322:30;10388:29;10368:18;;;10361:57;10435:18;;1182:46:0;10108:351:1;1263:136:0;1321:7;1348:43;1352:1;1355;1348:43;;;;;;;;;;;;;;;;;:3;:43::i;1999:189::-;2085:7;2120:12;2113:5;2105:28;;;;-1:-1:-1;;;2105:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2144:9:0;2156:5;2160:1;2156;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;7221:125::-;7286:9;;;7307:10;;;7304:36;;;7320:18;;:::i;7706:135::-;7745:3;7766:17;;;7763:43;;7786:18;;:::i;:::-;-1:-1:-1;7833:1:1;7822:13;;7706:135::o;7846:128::-;7913:9;;;7934:11;;;7931:37;;;7948:18;;:::i;7979:217::-;8019:1;8045;8035:132;;8089:10;8084:3;8080:20;8077:1;8070:31;8124:4;8121:1;8114:15;8152:4;8149:1;8142:15;8035:132;-1:-1:-1;8181:9:1;;7979:217::o;8735:127::-;8796:10;8791:3;8787:20;8784:1;8777:31;8827:4;8824:1;8817:15;8851:4;8848:1;8841:15;8867:251;8937:6;8990:2;8978:9;8969:7;8965:23;8961:32;8958:52;;;9006:1;9003;8996:12;8958:52;9038:9;9032:16;9057:31;9082:5;9057:31;:::i;9123:980::-;9385:4;9433:3;9422:9;9418:19;9464:6;9453:9;9446:25;9490:2;9528:6;9523:2;9512:9;9508:18;9501:34;9571:3;9566:2;9555:9;9551:18;9544:31;9595:6;9630;9624:13;9661:6;9653;9646:22;9699:3;9688:9;9684:19;9677:26;;9738:2;9730:6;9726:15;9712:29;;9759:1;9769:195;9783:6;9780:1;9777:13;9769:195;;;9848:13;;-1:-1:-1;;;;;9844:39:1;9832:52;;9939:15;;;;9904:12;;;;9880:1;9798:9;9769:195;;;-1:-1:-1;;;;;;;10020:32:1;;;;10015:2;10000:18;;9993:60;-1:-1:-1;;;10084:3:1;10069:19;10062:35;9981:3;9123:980;-1:-1:-1;;;9123:980:1:o

Swarm Source

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