ETH Price: $3,178.43 (-7.66%)
Gas: 2 Gwei

Token

Shiba Bitcoin (SHIBTC)
 

Overview

Max Total Supply

10,000,000 SHIBTC

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
nhatkhanh.eth
Balance
45,800.795913193258049925 SHIBTC

Value
$0.00
0xef13b0272700ca22c57e055f0d2ad40d6c78155e
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:
SHIBTC

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-22
*/

// SPDX-License-Identifier: Unlicensed

/**
 * 
 */
pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

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

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

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


contract SHIBTC is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "Shiba Bitcoin";
    string private constant _symbol = "SHIBTC";
    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 10000000 * (10 ** _decimals);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private isFeeExempt;
            
    uint256 public buyFeeRate = 5;
    uint256 public sellFeeRate = 5;

    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x7e3883851F6cA94f8594433C7f36D5A23c21554B);

    IDEXRouter public router;
    address public pair;

    bool private tradingOpen;

    uint256 public numTokensSellToAddToLiquidity = _totalSupply * 3 / 10000; // 0.03%
    
    bool private inSwap;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingWallet] = true;

        _balances[msg.sender] = _totalSupply;
    
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(!authorizations[sender] && !authorizations[recipient]){ 
            require(tradingOpen, "Trading not yet enabled.");
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(numTokensSellToAddToLiquidity); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 transferFeeRate = recipient == pair ? sellFeeRate : buyFeeRate;
        uint256 feeAmount;
        feeAmount = amount.mul(transferFeeRate).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

    function swapBack(uint256 amount) internal swapping {
        swapTokensForEth(amount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function swapToken() public onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ 
            swapTokensForEth(numTokensSellToAddToLiquidity);
        }
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }    
    
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _sellFeeRate, uint256 _buyFeeRate) external onlyOwner {
        require (_buyFeeRate <= 5, "Fee can't exceed 5%");
        require (_sellFeeRate <= 5, "Fee can't exceed 5%");
        sellFeeRate = _sellFeeRate;
        buyFeeRate = _buyFeeRate;
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 
    
    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** 18;
    } 

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer(
            (amountETH * amountPercentage) / 100
        );
    }

    function rescueToken(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }
}

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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"buyFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFeeRate","type":"uint256"},{"internalType":"uint256","name":"_buyFeeRate","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToken","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a62000419565b62000041906298968062000431565b60058181556009819055600a556064600b55600c80546001600160a01b031916737e3883851f6ca94f8594433c7f36d5a23c21554b179055612710906200008a90600362000431565b62000096919062000453565b600f55348015620000a657600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155600d8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200012d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000153919062000476565b600280546001600160a01b0319166001600160a01b03928316179055600d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d8919062000476565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200022a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000250919062000476565b600e80546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600d5485168452825280832060001990553380845260088352818420805460ff199081166001908117909255600c5490961685528285208054909616179094556005548484526006835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620004a1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200035b5781600019048211156200033f576200033f62000304565b808516156200034d57918102915b93841c93908002906200031f565b509250929050565b600082620003745750600162000413565b81620003835750600062000413565b81600181146200039c5760028114620003a757620003c7565b600191505062000413565b60ff841115620003bb57620003bb62000304565b50506001821b62000413565b5060208310610133831016604e8410600b8410161715620003ec575081810a62000413565b620003f883836200031a565b80600019048211156200040f576200040f62000304565b0290505b92915050565b60006200042a60ff84168362000363565b9392505050565b60008160001904831182151516156200044e576200044e62000304565b500290565b6000826200047157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200048957600080fd5b81516001600160a01b03811681146200042a57600080fd5b6116fc80620004b16000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063c9567bf911610095578063f0b37c0411610064578063f0b37c041461058e578063f2fde38b146105ae578063f887ea40146105ce578063fe9fbb80146105ee57600080fd5b8063c9567bf914610508578063d12a76881461051d578063dc73e49c14610533578063dd62ed3e1461054857600080fd5b806395d89b41116100d157806395d89b4114610479578063a8aa1b31146104a8578063a9059cbb146104c8578063b6a5d7de146104e857600080fd5b806370a08231146103ed57806375f0a87414610423578063893d20e81461045b57600080fd5b806333f3d6281161016f5780635b149feb1161013e5780635b149feb146103815780635d098b3814610397578063658d4b7f146103b75780636b1b4987146103d757600080fd5b806333f3d6281461030157806352f7c9881461032157806356a227f214610341578063571ac8b01461036157600080fd5b806323b872dd116101ab57806323b872dd1461027457806329e04b4a146102945780632f54bf6e146102b6578063313ce567146102e557600080fd5b806306fdde03146101dd578063095ea7b31461022557806318160ddd1461025557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600d81526c29b434b130902134ba31b7b4b760991b60208201525b60405161021c91906113b0565b60405180910390f35b34801561023157600080fd5b5061024561024036600461141d565b610627565b604051901515815260200161021c565b34801561026157600080fd5b506005545b60405190815260200161021c565b34801561028057600080fd5b5061024561028f366004611449565b610694565b3480156102a057600080fd5b506102b46102af36600461148a565b610756565b005b3480156102c257600080fd5b506102456102d13660046114a3565b6000546001600160a01b0391821691161490565b3480156102f157600080fd5b506040516012815260200161021c565b34801561030d57600080fd5b5061024561031c36600461141d565b6107f0565b34801561032d57600080fd5b506102b461033c3660046114c0565b61088c565b34801561034d57600080fd5b506102b461035c3660046114e2565b61094f565b34801561036d57600080fd5b5061024561037c3660046114a3565b6109cb565b34801561038d57600080fd5b50610266600a5481565b3480156103a357600080fd5b506102b46103b23660046114a3565b6109d9565b3480156103c357600080fd5b506102b46103d2366004611520565b610a25565b3480156103e357600080fd5b5061026660095481565b3480156103f957600080fd5b506102666104083660046114a3565b6001600160a01b031660009081526006602052604090205490565b34801561042f57600080fd5b50600c54610443906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b34801561046757600080fd5b506000546001600160a01b0316610443565b34801561048557600080fd5b5060408051808201909152600681526553484942544360d01b602082015261020f565b3480156104b457600080fd5b50600e54610443906001600160a01b031681565b3480156104d457600080fd5b506102456104e336600461141d565b610a7a565b3480156104f457600080fd5b506102b46105033660046114a3565b610a87565b34801561051457600080fd5b506102b4610ad8565b34801561052957600080fd5b50610266600f5481565b34801561053f57600080fd5b506102b4610b17565b34801561055457600080fd5b5061026661056336600461154e565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561059a57600080fd5b506102b46105a93660046114a3565b610b8e565b3480156105ba57600080fd5b506102b46105c93660046114a3565b610bd9565b3480156105da57600080fd5b50600d54610443906001600160a01b031681565b3480156105fa57600080fd5b506102456106093660046114a3565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106829086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610741576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461071c918490610c6f565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61074c848484610ca9565b90505b9392505050565b6000546001600160a01b031633146107895760405162461bcd60e51b81526004016107809061157c565b60405180910390fd5b600554610797906064610ee4565b8111156107d85760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610780565b6107ea81670de0b6b3a76400006115b2565b600f5550565b600080546001600160a01b0316331461081b5760405162461bcd60e51b81526004016107809061157c565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906115d1565b6000546001600160a01b031633146108b65760405162461bcd60e51b81526004016107809061157c565b60058111156108fd5760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b6044820152606401610780565b60058211156109445760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b6044820152606401610780565b600a91909155600955565b6000546001600160a01b031633146109795760405162461bcd60e51b81526004016107809061157c565b476001600160a01b0382166108fc606461099386856115b2565b61099d91906115ee565b6040518115909202916000818181858888f193505050501580156109c5573d6000803e3d6000fd5b50505050565b600061068e82600019610627565b6000546001600160a01b03163314610a035760405162461bcd60e51b81526004016107809061157c565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a4f5760405162461bcd60e51b81526004016107809061157c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b600061074f338484610ca9565b6000546001600160a01b03163314610ab15760405162461bcd60e51b81526004016107809061157c565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610b025760405162461bcd60e51b81526004016107809061157c565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610b415760405162461bcd60e51b81526004016107809061157c565b30600090815260066020526040812054600f549091908210801591908290610b76575030600090815260066020526040812054115b90508015610b8957610b89600f54610f26565b505050565b6000546001600160a01b03163314610bb85760405162461bcd60e51b81526004016107809061157c565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610c035760405162461bcd60e51b81526004016107809061157c565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b60008184841115610c935760405162461bcd60e51b815260040161078091906113b0565b506000610ca08486611610565b95945050505050565b6001600160a01b03831660009081526001602052604081205460ff16158015610ceb57506001600160a01b03831660009081526001602052604090205460ff16155b15610d4957600e54600160a01b900460ff16610d495760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610780565b60105460ff1615610d6657610d5f84848461100e565b905061074f565b30600090815260066020526040812054600f549091908210801591908290610d9b5750600e546001600160a01b038781169116145b8015610db4575030600090815260066020526040812054115b90508015610dc757610dc7600f546110f4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a16600090815260069091529190912054610e19918790610c6f565b6001600160a01b038816600090815260066020526040812091909155610e3f8888611117565b610e495785610e54565b610e5488888861118c565b6001600160a01b038816600090815260066020526040902054909150610e7a908261125f565b6001600160a01b0380891660008181526006602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ece9085815260200190565b60405180910390a3506001979650505050505050565b600061074f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112be565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610f5b57610f5b611627565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610f8c57610f8c611627565b6001600160a01b039283166020918202929092010152600d54600c5460405163791ac94760e01b81529183169263791ac94792610fd8928792600092889290911690429060040161163d565b600060405180830381600087803b158015610ff257600080fd5b505af1158015611006573d6000803e3d6000fd5b505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461105f918490610c6f565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461108e908361125f565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e29086815260200190565b60405180910390a35060019392505050565b6010805460ff1916600117905561110a81610f26565b506010805460ff19169055565b6001600160a01b03821660009081526008602052604081205460ff168061115657506001600160a01b03821660009081526008602052604090205460ff165b15801561074f5750600e546001600160a01b038481169116148061074f575050600e546001600160a01b03908116911614919050565b600e5460009081906001600160a01b038581169116146111ae576009546111b2565b600a545b905060006111d5600b546111cf84876112ec90919063ffffffff16565b90610ee4565b306000908152600660205260409020549091506111f2908261125f565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112439085815260200190565b60405180910390a3611255848261136e565b9695505050505050565b60008061126c83856116ae565b90508381101561074f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610780565b600081836112df5760405162461bcd60e51b815260040161078091906113b0565b506000610ca084866115ee565b6000826000036112fe5750600061068e565b600061130a83856115b2565b90508261131785836115ee565b1461074f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610780565b600061074f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c6f565b600060208083528351808285015260005b818110156113dd578581018301518582016040015282016113c1565b818111156113ef576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461141a57600080fd5b50565b6000806040838503121561143057600080fd5b823561143b81611405565b946020939093013593505050565b60008060006060848603121561145e57600080fd5b833561146981611405565b9250602084013561147981611405565b929592945050506040919091013590565b60006020828403121561149c57600080fd5b5035919050565b6000602082840312156114b557600080fd5b813561074f81611405565b600080604083850312156114d357600080fd5b50508035926020909101359150565b600080604083850312156114f557600080fd5b82359150602083013561150781611405565b809150509250929050565b801515811461141a57600080fd5b6000806040838503121561153357600080fd5b823561153e81611405565b9150602083013561150781611512565b6000806040838503121561156157600080fd5b823561156c81611405565b9150602083013561150781611405565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156115cc576115cc61159c565b500290565b6000602082840312156115e357600080fd5b815161074f81611512565b60008261160b57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156116225761162261159c565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561168d5784516001600160a01b031683529383019391830191600101611668565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156116c1576116c161159c565b50019056fea2646970667358221220c8a5001ba7f98ce927e49f213678915ffa16086ea29fcf56d28a993feb6e187664736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806370a08231116100f7578063c9567bf911610095578063f0b37c0411610064578063f0b37c041461058e578063f2fde38b146105ae578063f887ea40146105ce578063fe9fbb80146105ee57600080fd5b8063c9567bf914610508578063d12a76881461051d578063dc73e49c14610533578063dd62ed3e1461054857600080fd5b806395d89b41116100d157806395d89b4114610479578063a8aa1b31146104a8578063a9059cbb146104c8578063b6a5d7de146104e857600080fd5b806370a08231146103ed57806375f0a87414610423578063893d20e81461045b57600080fd5b806333f3d6281161016f5780635b149feb1161013e5780635b149feb146103815780635d098b3814610397578063658d4b7f146103b75780636b1b4987146103d757600080fd5b806333f3d6281461030157806352f7c9881461032157806356a227f214610341578063571ac8b01461036157600080fd5b806323b872dd116101ab57806323b872dd1461027457806329e04b4a146102945780632f54bf6e146102b6578063313ce567146102e557600080fd5b806306fdde03146101dd578063095ea7b31461022557806318160ddd1461025557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600d81526c29b434b130902134ba31b7b4b760991b60208201525b60405161021c91906113b0565b60405180910390f35b34801561023157600080fd5b5061024561024036600461141d565b610627565b604051901515815260200161021c565b34801561026157600080fd5b506005545b60405190815260200161021c565b34801561028057600080fd5b5061024561028f366004611449565b610694565b3480156102a057600080fd5b506102b46102af36600461148a565b610756565b005b3480156102c257600080fd5b506102456102d13660046114a3565b6000546001600160a01b0391821691161490565b3480156102f157600080fd5b506040516012815260200161021c565b34801561030d57600080fd5b5061024561031c36600461141d565b6107f0565b34801561032d57600080fd5b506102b461033c3660046114c0565b61088c565b34801561034d57600080fd5b506102b461035c3660046114e2565b61094f565b34801561036d57600080fd5b5061024561037c3660046114a3565b6109cb565b34801561038d57600080fd5b50610266600a5481565b3480156103a357600080fd5b506102b46103b23660046114a3565b6109d9565b3480156103c357600080fd5b506102b46103d2366004611520565b610a25565b3480156103e357600080fd5b5061026660095481565b3480156103f957600080fd5b506102666104083660046114a3565b6001600160a01b031660009081526006602052604090205490565b34801561042f57600080fd5b50600c54610443906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b34801561046757600080fd5b506000546001600160a01b0316610443565b34801561048557600080fd5b5060408051808201909152600681526553484942544360d01b602082015261020f565b3480156104b457600080fd5b50600e54610443906001600160a01b031681565b3480156104d457600080fd5b506102456104e336600461141d565b610a7a565b3480156104f457600080fd5b506102b46105033660046114a3565b610a87565b34801561051457600080fd5b506102b4610ad8565b34801561052957600080fd5b50610266600f5481565b34801561053f57600080fd5b506102b4610b17565b34801561055457600080fd5b5061026661056336600461154e565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561059a57600080fd5b506102b46105a93660046114a3565b610b8e565b3480156105ba57600080fd5b506102b46105c93660046114a3565b610bd9565b3480156105da57600080fd5b50600d54610443906001600160a01b031681565b3480156105fa57600080fd5b506102456106093660046114a3565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106829086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610741576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461071c918490610c6f565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61074c848484610ca9565b90505b9392505050565b6000546001600160a01b031633146107895760405162461bcd60e51b81526004016107809061157c565b60405180910390fd5b600554610797906064610ee4565b8111156107d85760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610780565b6107ea81670de0b6b3a76400006115b2565b600f5550565b600080546001600160a01b0316331461081b5760405162461bcd60e51b81526004016107809061157c565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906115d1565b6000546001600160a01b031633146108b65760405162461bcd60e51b81526004016107809061157c565b60058111156108fd5760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b6044820152606401610780565b60058211156109445760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b6044820152606401610780565b600a91909155600955565b6000546001600160a01b031633146109795760405162461bcd60e51b81526004016107809061157c565b476001600160a01b0382166108fc606461099386856115b2565b61099d91906115ee565b6040518115909202916000818181858888f193505050501580156109c5573d6000803e3d6000fd5b50505050565b600061068e82600019610627565b6000546001600160a01b03163314610a035760405162461bcd60e51b81526004016107809061157c565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a4f5760405162461bcd60e51b81526004016107809061157c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b600061074f338484610ca9565b6000546001600160a01b03163314610ab15760405162461bcd60e51b81526004016107809061157c565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610b025760405162461bcd60e51b81526004016107809061157c565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610b415760405162461bcd60e51b81526004016107809061157c565b30600090815260066020526040812054600f549091908210801591908290610b76575030600090815260066020526040812054115b90508015610b8957610b89600f54610f26565b505050565b6000546001600160a01b03163314610bb85760405162461bcd60e51b81526004016107809061157c565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610c035760405162461bcd60e51b81526004016107809061157c565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b60008184841115610c935760405162461bcd60e51b815260040161078091906113b0565b506000610ca08486611610565b95945050505050565b6001600160a01b03831660009081526001602052604081205460ff16158015610ceb57506001600160a01b03831660009081526001602052604090205460ff16155b15610d4957600e54600160a01b900460ff16610d495760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610780565b60105460ff1615610d6657610d5f84848461100e565b905061074f565b30600090815260066020526040812054600f549091908210801591908290610d9b5750600e546001600160a01b038781169116145b8015610db4575030600090815260066020526040812054115b90508015610dc757610dc7600f546110f4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a16600090815260069091529190912054610e19918790610c6f565b6001600160a01b038816600090815260066020526040812091909155610e3f8888611117565b610e495785610e54565b610e5488888861118c565b6001600160a01b038816600090815260066020526040902054909150610e7a908261125f565b6001600160a01b0380891660008181526006602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ece9085815260200190565b60405180910390a3506001979650505050505050565b600061074f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112be565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610f5b57610f5b611627565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610f8c57610f8c611627565b6001600160a01b039283166020918202929092010152600d54600c5460405163791ac94760e01b81529183169263791ac94792610fd8928792600092889290911690429060040161163d565b600060405180830381600087803b158015610ff257600080fd5b505af1158015611006573d6000803e3d6000fd5b505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461105f918490610c6f565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461108e908361125f565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e29086815260200190565b60405180910390a35060019392505050565b6010805460ff1916600117905561110a81610f26565b506010805460ff19169055565b6001600160a01b03821660009081526008602052604081205460ff168061115657506001600160a01b03821660009081526008602052604090205460ff165b15801561074f5750600e546001600160a01b038481169116148061074f575050600e546001600160a01b03908116911614919050565b600e5460009081906001600160a01b038581169116146111ae576009546111b2565b600a545b905060006111d5600b546111cf84876112ec90919063ffffffff16565b90610ee4565b306000908152600660205260409020549091506111f2908261125f565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112439085815260200190565b60405180910390a3611255848261136e565b9695505050505050565b60008061126c83856116ae565b90508381101561074f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610780565b600081836112df5760405162461bcd60e51b815260040161078091906113b0565b506000610ca084866115ee565b6000826000036112fe5750600061068e565b600061130a83856115b2565b90508261131785836115ee565b1461074f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610780565b600061074f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c6f565b600060208083528351808285015260005b818110156113dd578581018301518582016040015282016113c1565b818111156113ef576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461141a57600080fd5b50565b6000806040838503121561143057600080fd5b823561143b81611405565b946020939093013593505050565b60008060006060848603121561145e57600080fd5b833561146981611405565b9250602084013561147981611405565b929592945050506040919091013590565b60006020828403121561149c57600080fd5b5035919050565b6000602082840312156114b557600080fd5b813561074f81611405565b600080604083850312156114d357600080fd5b50508035926020909101359150565b600080604083850312156114f557600080fd5b82359150602083013561150781611405565b809150509250929050565b801515811461141a57600080fd5b6000806040838503121561153357600080fd5b823561153e81611405565b9150602083013561150781611512565b6000806040838503121561156157600080fd5b823561156c81611405565b9150602083013561150781611405565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156115cc576115cc61159c565b500290565b6000602082840312156115e357600080fd5b815161074f81611512565b60008261160b57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156116225761162261159c565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561168d5784516001600160a01b031683529383019391830191600101611668565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156116c1576116c161159c565b50019056fea2646970667358221220c8a5001ba7f98ce927e49f213678915ffa16086ea29fcf56d28a993feb6e187664736f6c634300080d0033

Deployed Bytecode Sourcemap

5556:7752:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7571:80;;;;;;;;;;-1:-1:-1;7643:5:0;;;;;;;;;;;;-1:-1:-1;;;7643:5:0;;;;7571:80;;;;;;;:::i;:::-;;;;;;;;7993:216;;;;;;;;;;-1:-1:-1;7993:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;7993:216:0;1072:187:1;7301:88:0;;;;;;;;;;-1:-1:-1;7374:12:0;;7301:88;;;1410:25:1;;;1398:2;1383:18;7301:88:0;1264:177:1;8511:370:0;;;;;;;;;;-1:-1:-1;8511:370:0;;;;;:::i;:::-;;:::i;12636:207::-;;;;;;;;;;-1:-1:-1;12636:207:0;;;;;:::i;:::-;;:::i;:::-;;3449:103;;;;;;;;;;-1:-1:-1;3449:103:0;;;;;:::i;:::-;3504:4;3539:5;-1:-1:-1;;;;;3528:16:0;;;3539:5;;3528:16;;3449:103;7395:80;;;;;;;;;;-1:-1:-1;7395:80:0;;5942:2;2486:36:1;;2474:2;2459:18;7395:80:0;2344:184:1;13099:206:0;;;;;;;;;;-1:-1:-1;13099:206:0;;;;;:::i;:::-;;:::i;12200:280::-;;;;;;;;;;-1:-1:-1;12200:280:0;;;;;:::i;:::-;;:::i;12852:239::-;;;;;;;;;;-1:-1:-1;12852:239:0;;;;;:::i;:::-;;:::i;8217:122::-;;;;;;;;;;-1:-1:-1;8217:122:0;;;;;:::i;:::-;;:::i;6254:30::-;;;;;;;;;;;;;;;;12488:135;;;;;;;;;;-1:-1:-1;12488:135:0;;;;;:::i;:::-;;:::i;12073:119::-;;;;;;;;;;-1:-1:-1;12073:119:0;;;;;:::i;:::-;;:::i;6218:29::-;;;;;;;;;;;;;;;;7741:105;;;;;;;;;;-1:-1:-1;7741:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7825:18:0;7807:7;7825:18;;;:9;:18;;;;;;;7741:105;6338:92;;;;;;;;;;-1:-1:-1;6338:92:0;;;;-1:-1:-1;;;;;6338:92:0;;;;;;-1:-1:-1;;;;;3796:32:1;;;3778:51;;3766:2;3751:18;6338:92:0;3616:219:1;7657:78:0;;;;;;;;;;-1:-1:-1;7709:7:0;7727:5;-1:-1:-1;;;;;7727:5:0;7657:78;;7481:84;;;;;;;;;;-1:-1:-1;7555:7:0;;;;;;;;;;;;-1:-1:-1;;;7555:7:0;;;;7481:84;;6470:19;;;;;;;;;;-1:-1:-1;6470:19:0;;;;-1:-1:-1;;;;;6470:19:0;;;8347:156;;;;;;;;;;-1:-1:-1;8347:156:0;;;;;:::i;:::-;;:::i;3122:94::-;;;;;;;;;;-1:-1:-1;3122:94:0;;;;;:::i;:::-;;:::i;11978:79::-;;;;;;;;;;;;;:::i;6531:71::-;;;;;;;;;;;;;;;;11570:400;;;;;;;;;;;;;:::i;7852:133::-;;;;;;;;;;-1:-1:-1;7852:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7954:19:0;;;7936:7;7954:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7852:133;3292:97;;;;;;;;;;-1:-1:-1;3292:97:0;;;;;:::i;:::-;;:::i;3849:173::-;;;;;;;;;;-1:-1:-1;3849:173:0;;;;;:::i;:::-;;:::i;6439:24::-;;;;;;;;;;-1:-1:-1;6439:24:0;;;;-1:-1:-1;;;;;6439:24:0;;;3623:107;;;;;;;;;;-1:-1:-1;3623:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;3703:19:0;3679:4;3703:19;;;:14;:19;;;;;;;;;3623:107;7993:216;8097:10;8068:4;8085:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8085:32:0;;;;;;;;;;:41;;;8142:37;8068:4;;8085:32;;8142:37;;;;8120:6;1410:25:1;;1398:2;1383:18;;1264:177;8142:37:0;;;;;;;;-1:-1:-1;8197:4:0;7993:216;;;;;:::o;8511:370::-;-1:-1:-1;;;;;8631:19:0;;8611:4;8631:19;;;:11;:19;;;;;;;;8651:10;8631:31;;;;;;;;-1:-1:-1;;8631:52:0;8628:186;;8733:69;;;;;;;;;;;-1:-1:-1;;;8733:69:0;;;;;;;;-1:-1:-1;;;;;8733:19:0;;-1:-1:-1;8733:19:0;;;:11;:19;;;;;8753:10;8733:31;;;;;;;;;;:69;;8769:6;;8733:35;:69::i;:::-;-1:-1:-1;;;;;8699:19:0;;;;;;:11;:19;;;;;;;;8719:10;8699:31;;;;;;;:103;8628:186;8833:40;8847:6;8855:9;8866:6;8833:13;:40::i;:::-;8826:47;;8511:370;;;;;;:::o;12636:207::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;;;;;;;;;12734:12:::1;::::0;:21:::1;::::0;12751:3:::1;12734:16;:21::i;:::-;12724:6;:31;;12715:60;;;::::0;-1:-1:-1;;;12715:60:0;;5463:2:1;12715:60:0::1;::::0;::::1;5445:21:1::0;5502:2;5482:18;;;5475:30;-1:-1:-1;;;5521:18:1;;;5514:45;5576:18;;12715:60:0::1;5261:339:1::0;12715:60:0::1;12818:17;:6:::0;12827:8:::1;12818:17;:::i;:::-;12786:29;:49:::0;-1:-1:-1;12636:207:0:o;13099:206::-;13211:12;3539:5;;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;13248:49:::1;::::0;-1:-1:-1;;;13248:49:0;;13278:10:::1;13248:49;::::0;::::1;6084:51:1::0;6151:18;;;6144:34;;;-1:-1:-1;;;;;13248:29:0;::::1;::::0;::::1;::::0;6057:18:1;;13248:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12200:280::-:0;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;12314:1:::1;12299:11;:16;;12290:49;;;::::0;-1:-1:-1;;;12290:49:0;;6641:2:1;12290:49:0::1;::::0;::::1;6623:21:1::0;6680:2;6660:18;;;6653:30;-1:-1:-1;;;6699:18:1;;;6692:49;6758:18;;12290:49:0::1;6439:343:1::0;12290:49:0::1;12375:1;12359:12;:17;;12350:50;;;::::0;-1:-1:-1;;;12350:50:0;;6641:2:1;12350:50:0::1;::::0;::::1;6623:21:1::0;6680:2;6660:18;;;6653:30;-1:-1:-1;;;6699:18:1;;;6692:49;6758:18;;12350:50:0::1;6439:343:1::0;12350:50:0::1;12411:11;:26:::0;;;;12448:10:::1;:24:::0;12200:280::o;12852:239::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;12968:21:::1;-1:-1:-1::0;;;;;13000:21:0;::::1;:83;13069:3;13037:28;13049:16:::0;12968:21;13037:28:::1;:::i;:::-;13036:36;;;;:::i;:::-;13000:83;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12937:154;12852:239:::0;;:::o;8217:122::-;8272:4;8296:35;8304:7;-1:-1:-1;;8296:7:0;:35::i;12488:135::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;12572:15:::1;:43:::0;;-1:-1:-1;;;;;;12572:43:0::1;-1:-1:-1::0;;;;;12572:43:0;;;::::1;::::0;;;::::1;::::0;;12488:135::o;12073:119::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12156:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;12156:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12073:119::o;8347:156::-;8427:4;8451:44;8465:10;8477:9;8488:6;8451:13;:44::i;3122:94::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3182:19:0::1;;::::0;;;3204:4:::1;3182:19;::::0;;;;;;;:26;;-1:-1:-1;;3182:26:0::1;::::0;;::::1;::::0;;3122:94::o;11978:79::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;12031:11:::1;:18:::0;;-1:-1:-1;;;;12031:18:0::1;-1:-1:-1::0;;;12031:18:0::1;::::0;;11978:79::o;11570:400::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;11668:4:::1;11619:28;7825:18:::0;;;:9;:18;;;;;;11738:29:::1;::::0;7825:18;;11714:53;;::::1;::::0;::::1;::::0;11619:28;11714:53;;11807:51:::1;;-1:-1:-1::0;11848:4:0::1;11857:1;7825:18:::0;;;:9;:18;;;;;;11830:28:::1;11807:51;11784:75;;11873:14;11870:93;;;11904:47;11921:29;;11904:16;:47::i;:::-;11608:362;;;11570:400::o:0;3292:97::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3354:19:0::1;3376:5;3354:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3354:27:0::1;::::0;;3292:97::o;3849:173::-;3504:4;3539:5;-1:-1:-1;;;;;3539:5:0;2846:10;3528:16;2830:38;;;;-1:-1:-1;;;2830:38:0;;;;;;;:::i;:::-;3925:5:::1;:11:::0;;-1:-1:-1;;;;;;3925:11:0::1;-1:-1:-1::0;;;;;3925:11:0;::::1;::::0;;::::1;::::0;;3947:19;;;-1:-1:-1;3947:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3947:26:0::1;::::0;;::::1;::::0;;;3989:25;;3778:51:1;;;3989:25:0::1;::::0;3751:18:1;3989:25:0::1;;;;;;;3849:173:::0;:::o;508:192::-;594:7;630:12;622:6;;;;614:29;;;;-1:-1:-1;;;614:29:0;;;;;;;;:::i;:::-;-1:-1:-1;654:9:0;666:5;670:1;666;:5;:::i;:::-;654:17;508:192;-1:-1:-1;;;;;508:192:0:o;8889:1043::-;-1:-1:-1;;;;;9002:22:0;;8981:4;9002:22;;;:14;:22;;;;;;;;9001:23;:53;;;;-1:-1:-1;;;;;;9029:25:0;;;;;;:14;:25;;;;;;;;9028:26;9001:53;8998:133;;;9079:11;;-1:-1:-1;;;9079:11:0;;;;9071:48;;;;-1:-1:-1;;;9071:48:0;;7557:2:1;9071:48:0;;;7539:21:1;7596:2;7576:18;;;7569:30;7635:26;7615:18;;;7608:54;7679:18;;9071:48:0;7355:348:1;9071:48:0;9146:6;;;;9143:63;;;9162:41;9177:6;9185:9;9196:6;9162:14;:41::i;:::-;9155:48;;;;9143:63;9273:4;9224:28;7825:18;;;:9;:18;;;;;;9343:29;;7825:18;;9319:53;;;;;;9224:28;9319:53;;9412:38;;-1:-1:-1;9446:4:0;;-1:-1:-1;;;;;9435:15:0;;;9446:4;;9435:15;9412:38;:70;;;;-1:-1:-1;9472:4:0;9481:1;7825:18;;;:9;:18;;;;;;9454:28;9412:70;9389:94;;9497:14;9494:62;;;9514:39;9523:29;;9514:8;:39::i;:::-;9588:53;;;;;;;;;;;-1:-1:-1;;;9588:53:0;;;;;;;;-1:-1:-1;;;;;9588:17:0;;-1:-1:-1;9588:17:0;;;:9;:17;;;;;;;;:53;;9610:6;;9588:21;:53::i;:::-;-1:-1:-1;;;;;9568:17:0;;;;;;:9;:17;;;;;:73;;;;9679:32;9578:6;9701:9;9679:13;:32::i;:::-;:78;;9751:6;9679:78;;;9714:34;9722:6;9730:9;9741:6;9714:7;:34::i;:::-;-1:-1:-1;;;;;9801:20:0;;;;;;:9;:20;;;;;;9654:103;;-1:-1:-1;9801:40:0;;9654:103;9801:24;:40::i;:::-;-1:-1:-1;;;;;9778:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9859:43;;;;;;;;;;9887:14;1410:25:1;;1398:2;1383:18;;1264:177;9859:43:0;;;;;;;;-1:-1:-1;9920:4:0;;8889:1043;-1:-1:-1;;;;;;;8889:1043:0:o;962:132::-;1020:7;1047:39;1051:1;1054;1047:39;;;;;;;;;;;;;;;;;:3;:39::i;11073:489::-;11223:16;;;11237:1;11223:16;;;;;;;;11199:21;;11223:16;;;;;;;;;;-1:-1:-1;11223:16:0;11199:40;;11268:4;11250;11255:1;11250:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11250:23:0;;;:7;;;;;;;;;:23;11294:4;;11284:7;;11294:4;;;11284;;11294;;11284:7;;;;;;:::i;:::-;-1:-1:-1;;;;;11284:14:0;;;:7;;;;;;;;;:14;11337:6;;11498:15;;11337:217;;-1:-1:-1;;;11337:217:0;;:6;;;;:57;;:217;;11409:11;;11337:6;;11479:4;;11498:15;;;;11528;;11337:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11128:434;11073:489;:::o;9944:330::-;10074:53;;;;;;;;;;;-1:-1:-1;;;10074:53:0;;;;;;;;-1:-1:-1;;;;;10074:17:0;;10037:4;10074:17;;;:9;:17;;;;;;;:53;;10096:6;;10074:21;:53::i;:::-;-1:-1:-1;;;;;10054:17:0;;;;;;;:9;:17;;;;;;:73;;;;10161:20;;;;;;;:32;;10186:6;10161:24;:32::i;:::-;-1:-1:-1;;;;;10138:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10209:35;;;;;;;;;;10237:6;1410:25:1;;1398:2;1383:18;;1264:177;10209:35:0;;;;;;;;-1:-1:-1;10262:4:0;9944:330;;;;;:::o;10966:95::-;6674:6;:13;;-1:-1:-1;;6674:13:0;6683:4;6674:13;;;11029:24:::1;11046:6:::0;11029:16:::1;:24::i;:::-;-1:-1:-1::0;6692:6:0;:14;;-1:-1:-1;;6692:14:0;;;10966:95::o;10282:207::-;-1:-1:-1;;;;;10391:19:0;;10363:4;10391:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10414:22:0;;;;;;:11;:22;;;;;;;;10391:45;10389:48;:90;;;;-1:-1:-1;10453:4:0;;-1:-1:-1;;;;;10443:14:0;;;10453:4;;10443:14;;:35;;-1:-1:-1;;10474:4:0;;-1:-1:-1;;;;;10474:4:0;;;10461:17;;;;10282:207;-1:-1:-1;10282:207:0:o;10497:461::-;10642:4;;10583:7;;;;-1:-1:-1;;;;;10629:17:0;;;10642:4;;10629:17;:44;;10663:10;;10629:44;;;10649:11;;10629:44;10603:70;;10684:17;10724:47;10756:14;;10724:27;10735:15;10724:6;:10;;:27;;;;:::i;:::-;:31;;:47::i;:::-;10827:4;10809:24;;;;:9;:24;;;;;;10712:59;;-1:-1:-1;10809:39:0;;10712:59;10809:28;:39::i;:::-;10800:4;10782:24;;;;:9;:24;;;;;;;:66;;;;10864:42;;-1:-1:-1;;;;;10864:42:0;;;;;;;10896:9;1410:25:1;;1398:2;1383:18;;1264:177;10864:42:0;;;;;;;;10929:21;:6;10940:9;10929:10;:21::i;:::-;10922:28;10497:461;-1:-1:-1;;;;;;10497:461:0:o;179:181::-;237:7;;269:5;273:1;269;:5;:::i;:::-;257:17;;298:1;293;:6;;285:46;;;;-1:-1:-1;;;285:46:0;;9300:2:1;285:46:0;;;9282:21:1;9339:2;9319:18;;;9312:30;9378:29;9358:18;;;9351:57;9425:18;;285:46:0;9098:351:1;1100:345:0;1186:7;1288:12;1281:5;1273:28;;;;-1:-1:-1;;;1273:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1312:9:0;1324:5;1328:1;1324;:5;:::i;706:250::-;764:7;788:1;793;788:6;784:47;;-1:-1:-1;818:1:0;811:8;;784:47;843:9;855:5;859:1;855;:5;:::i;:::-;843:17;-1:-1:-1;888:1:0;879:5;883:1;843:17;879:5;:::i;:::-;:10;871:56;;;;-1:-1:-1;;;871:56:0;;9656:2:1;871:56:0;;;9638:21:1;9695:2;9675:18;;;9668:30;9734:34;9714:18;;;9707:62;-1:-1:-1;;;9785:18:1;;;9778:31;9826:19;;871:56:0;9454:397:1;366:136:0;424:7;451:43;455:1;458;451:43;;;;;;;;;;;;;;;;;:3;:43::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;1907:180::-;1966:6;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;-1:-1:-1;2058:23:1;;1907:180;-1:-1:-1;1907:180:1:o;2092:247::-;2151:6;2204:2;2192:9;2183:7;2179:23;2175:32;2172:52;;;2220:1;2217;2210:12;2172:52;2259:9;2246:23;2278:31;2303:5;2278:31;:::i;2533:248::-;2601:6;2609;2662:2;2650:9;2641:7;2637:23;2633:32;2630:52;;;2678:1;2675;2668:12;2630:52;-1:-1:-1;;2701:23:1;;;2771:2;2756:18;;;2743:32;;-1:-1:-1;2533:248:1:o;2786:315::-;2854:6;2862;2915:2;2903:9;2894:7;2890:23;2886:32;2883:52;;;2931:1;2928;2921:12;2883:52;2967:9;2954:23;2944:33;;3027:2;3016:9;3012:18;2999:32;3040:31;3065:5;3040:31;:::i;:::-;3090:5;3080:15;;;2786:315;;;;;:::o;3106:118::-;3192:5;3185:13;3178:21;3171:5;3168:32;3158:60;;3214:1;3211;3204:12;3229:382;3294:6;3302;3355:2;3343:9;3334:7;3330:23;3326:32;3323:52;;;3371:1;3368;3361:12;3323:52;3410:9;3397:23;3429:31;3454:5;3429:31;:::i;:::-;3479:5;-1:-1:-1;3536:2:1;3521:18;;3508:32;3549:30;3508:32;3549:30;:::i;4048:388::-;4116:6;4124;4177:2;4165:9;4156:7;4152:23;4148:32;4145:52;;;4193:1;4190;4183:12;4145:52;4232:9;4219:23;4251:31;4276:5;4251:31;:::i;:::-;4301:5;-1:-1:-1;4358:2:1;4343:18;;4330:32;4371:33;4330:32;4371:33;:::i;4927:329::-;5129:2;5111:21;;;5168:1;5148:18;;;5141:29;-1:-1:-1;;;5201:2:1;5186:18;;5179:36;5247:2;5232:18;;4927:329::o;5605:127::-;5666:10;5661:3;5657:20;5654:1;5647:31;5697:4;5694:1;5687:15;5721:4;5718:1;5711:15;5737:168;5777:7;5843:1;5839;5835:6;5831:14;5828:1;5825:21;5820:1;5813:9;5806:17;5802:45;5799:71;;;5850:18;;:::i;:::-;-1:-1:-1;5890:9:1;;5737:168::o;6189:245::-;6256:6;6309:2;6297:9;6288:7;6284:23;6280:32;6277:52;;;6325:1;6322;6315:12;6277:52;6357:9;6351:16;6376:28;6398:5;6376:28;:::i;6787:217::-;6827:1;6853;6843:132;;6897:10;6892:3;6888:20;6885:1;6878:31;6932:4;6929:1;6922:15;6960:4;6957:1;6950:15;6843:132;-1:-1:-1;6989:9:1;;6787:217::o;7225:125::-;7265:4;7293:1;7290;7287:8;7284:34;;;7298:18;;:::i;:::-;-1:-1:-1;7335:9:1;;7225:125::o;7840:127::-;7901:10;7896:3;7892:20;7889:1;7882:31;7932:4;7929:1;7922:15;7956:4;7953:1;7946:15;7972:988;8242:4;8290:3;8279:9;8275:19;8321:6;8310:9;8303:25;8347:2;8385:6;8380:2;8369:9;8365:18;8358:34;8428:3;8423:2;8412:9;8408:18;8401:31;8452:6;8487;8481:13;8518:6;8510;8503:22;8556:3;8545:9;8541:19;8534:26;;8595:2;8587:6;8583:15;8569:29;;8616:1;8626:195;8640:6;8637:1;8634:13;8626:195;;;8705:13;;-1:-1:-1;;;;;8701:39:1;8689:52;;8796:15;;;;8761:12;;;;8737:1;8655:9;8626:195;;;-1:-1:-1;;;;;;;8877:32:1;;;;8872:2;8857:18;;8850:60;-1:-1:-1;;;8941:3:1;8926:19;8919:35;8838:3;7972:988;-1:-1:-1;;;7972:988:1:o;8965:128::-;9005:3;9036:1;9032:6;9029:1;9026:13;9023:39;;;9042:18;;:::i;:::-;-1:-1:-1;9078:9:1;;8965:128::o

Swarm Source

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