ETH Price: $3,090.67 (+0.09%)

Token

Kleetama Inu (KTAMA)
 

Overview

Max Total Supply

1,000,000,000,000 KTAMA

Holders

143

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
141,511.111302751 KTAMA

Value
$0.00
0xae2b17d0608372234e44bc327ee0aafad7032de9
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:
KleetamaInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-07
*/

/**
 *Submitted for verification at Etherscan.io on 2021-10-26
*/

/** 
 * https://t.me/kleetama
 * 
 * 
 * SPDX-License-Identifier: Unlicensed
 * */

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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

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

struct FirstPurchase {
    uint256 amount;
    uint256 timestamp;
}

struct Taxes {
    uint256 marketing;
    uint256 redistribution;
    uint256 earlySellPenalty;
}

contract KleetamaInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    Taxes _taxes = Taxes({
        marketing: 10,
        redistribution: 1,
        earlySellPenalty: 28
    });
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => FirstPurchase) private _buyMap;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Kleetama Inu";
    string private constant _symbol = "KTAMA";
    uint8 private constant _decimals = 9;   
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xe131049BbA6846AbcBEC82A4a8BC20Df915a43e8);
        _feeAddrWallet2 = payable(0xe131049BbA6846AbcBEC82A4a8BC20Df915a43e8);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

    function setMarketingWallets(address walletOne, address walletTwo) external onlyOwner {
        _feeAddrWallet1 = payable(walletOne);
        _feeAddrWallet2 = payable(walletTwo);
    }

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

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

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

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

    function excludeFromFee (address addy, bool excluded) external onlyOwner {
        _isExcludedFromFee[addy] = excluded;
    }
    
    function originalPurchase(address account) public  view returns (uint256, uint256) {
        return (_buyMap[account].timestamp, _buyMap[account].amount);
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }
    
    function setTaxes(uint256 marketingTax, uint256 redistributionTax, uint256 earlySellPenaltyTax) external onlyOwner {
        _taxes = Taxes({
            marketing: marketingTax,
            redistribution: redistributionTax,
            earlySellPenalty: earlySellPenaltyTax
        });
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        
        if (!_isBuy(from)) {
            // TAX SELLERS 25% WHO SELL WITHIN 24 HOURS
            if (_buyMap[from].timestamp != 0 &&
                (_buyMap[from].timestamp + (24 hours) >= block.timestamp))  {
                _feeAddr1 = _taxes.redistribution;
                _feeAddr2 = _taxes.earlySellPenalty;
            } else {
                _feeAddr1 = _taxes.redistribution;
                _feeAddr2 = _taxes.marketing;
            }
        } else {
            if (_buyMap[to].timestamp == 0) {
                _buyMap[to].timestamp = block.timestamp;
                _buyMap[to].amount = amount;
            }
            _feeAddr1 = _taxes.redistribution;
            _feeAddr2 = _taxes.marketing;
        }

        if (_isExcludedFromFee[to]) {
            _feeAddr1 = 0;
            _feeAddr2 = 0;
        }
        
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 20000000000 * 10 ** 9 / 4;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function setMaxTx(uint256 max) public onlyOwner {
        _maxTxAmount = max * 10 ** 9;
    }
    
    function removeStrictTxLimit() public onlyOwner {
        _maxTxAmount = 1e12 * 10**9;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
    
    function updateMaxTx (uint256 fee) public onlyOwner {
        _maxTxAmount = fee;
    }
    
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

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

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _isBuy(address _sender) private view returns (bool) {
        return _sender == uniswapV2Pair;
    }


	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"originalPurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletOne","type":"address"},{"internalType":"address","name":"walletTwo","type":"address"}],"name":"setMarketingWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"redistributionTax","type":"uint256"},{"internalType":"uint256","name":"earlySellPenaltyTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600a6080819052600160a0819052601c60c08190526002929092556003556004556200003c683635c9adc5dea000006000196200023a565b6200004a9060001962000214565b600c556013805462ffffff60a81b19169055683635c9adc5dea000006014553480156200007657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506010805473e131049bba6846abcbec82a4a8bc20df915a43e86001600160a01b03199182168117909255601180549091169091179055600c5460056000620000fd3390565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160096000620001376200020560201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526009909352818320805485166001908117909155601054821684528284208054861682179055601154909116835291208054909216179055620001a83390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001f791815260200190565b60405180910390a36200025d565b6000546001600160a01b031690565b6000828210156200023557634e487b7160e01b600052601160045260246000fd5b500390565b6000826200025857634e487b7160e01b600052601260045260246000fd5b500690565b611e0f806200026d6000396000f3fe60806040526004361061014f5760003560e01c806395d89b41116100b6578063c9567bf91161006f578063c9567bf9146103cb578063cc653b44146103e0578063dd62ed3e14610432578063df8408fe14610478578063e9dae5ed14610498578063ff872602146104b857600080fd5b806395d89b4114610308578063a9059cbb14610336578063b515566a14610356578063bc33718214610376578063c2d0ffca14610396578063c3c8cd80146103b657600080fd5b8063313ce56711610108578063313ce5671461025a5780635932ead1146102765780636fc3eaec1461029657806370a08231146102ab578063715018a6146102cb5780638da5cb5b146102e057600080fd5b806306fdde031461015b578063095ea7b3146101a257806318160ddd146101d257806323b872dd146101f8578063260065e714610218578063273123b71461023a57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600c81526b4b6c656574616d6120496e7560a01b60208201525b6040516101999190611bc6565b60405180910390f35b3480156101ae57600080fd5b506101c26101bd366004611a21565b6104cd565b6040519015158152602001610199565b3480156101de57600080fd5b50683635c9adc5dea000005b604051908152602001610199565b34801561020457600080fd5b506101c26102133660046119b2565b6104e4565b34801561022457600080fd5b50610238610233366004611979565b61054d565b005b34801561024657600080fd5b5061023861025536600461193f565b6105ae565b34801561026657600080fd5b5060405160098152602001610199565b34801561028257600080fd5b50610238610291366004611b19565b6105f9565b3480156102a257600080fd5b50610238610641565b3480156102b757600080fd5b506101ea6102c636600461193f565b61066e565b3480156102d757600080fd5b50610238610690565b3480156102ec57600080fd5b506000546040516001600160a01b039091168152602001610199565b34801561031457600080fd5b506040805180820190915260058152644b54414d4160d81b602082015261018c565b34801561034257600080fd5b506101c2610351366004611a21565b610704565b34801561036257600080fd5b50610238610371366004611a4d565b610711565b34801561038257600080fd5b50610238610391366004611b53565b6107a7565b3480156103a257600080fd5b506102386103b1366004611b53565b6107e5565b3480156103c257600080fd5b50610238610814565b3480156103d757600080fd5b5061023861084a565b3480156103ec57600080fd5b5061041d6103fb36600461193f565b6001600160a01b03166000908152600760205260409020600181015490549091565b60408051928352602083019190915201610199565b34801561043e57600080fd5b506101ea61044d366004611979565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561048457600080fd5b506102386104933660046119f3565b610c0d565b3480156104a457600080fd5b506102386104b3366004611b6c565b610c62565b3480156104c457600080fd5b50610238610cb2565b60006104da338484610ceb565b5060015b92915050565b60006104f1848484610e0f565b610543843361053e85604051806060016040528060288152602001611db2602891396001600160a01b038a16600090815260086020908152604080832033845290915290205491906111fc565b610ceb565b5060019392505050565b6000546001600160a01b031633146105805760405162461bcd60e51b815260040161057790611c1b565b60405180910390fd5b601080546001600160a01b039384166001600160a01b03199182161790915560118054929093169116179055565b6000546001600160a01b031633146105d85760405162461bcd60e51b815260040161057790611c1b565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b031633146106235760405162461bcd60e51b815260040161057790611c1b565b60138054911515600160b81b0260ff60b81b19909216919091179055565b6010546001600160a01b0316336001600160a01b03161461066157600080fd5b4761066b81611236565b50565b6001600160a01b0381166000908152600560205260408120546104de906112bb565b6000546001600160a01b031633146106ba5760405162461bcd60e51b815260040161057790611c1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104da338484610e0f565b6000546001600160a01b0316331461073b5760405162461bcd60e51b815260040161057790611c1b565b60005b81518110156107a3576001600a600084848151811061075f5761075f611d62565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061079b81611d31565b91505061073e565b5050565b6000546001600160a01b031633146107d15760405162461bcd60e51b815260040161057790611c1b565b6107df81633b9aca00611cfb565b60145550565b6000546001600160a01b0316331461080f5760405162461bcd60e51b815260040161057790611c1b565b601455565b6010546001600160a01b0316336001600160a01b03161461083457600080fd5b600061083f3061066e565b905061066b8161133f565b6000546001600160a01b031633146108745760405162461bcd60e51b815260040161057790611c1b565b601354600160a01b900460ff16156108ce5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610577565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561090b3082683635c9adc5dea00000610ceb565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561094457600080fd5b505afa158015610958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097c919061195c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c457600080fd5b505afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc919061195c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a4457600080fd5b505af1158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c919061195c565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d7194730610aac8161066e565b600080610ac16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b5d9190611b98565b505060138054674563918244f4000060145563ffff00ff60a01b198116630101000160a01b1790915560125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190611b36565b6000546001600160a01b03163314610c375760405162461bcd60e51b815260040161057790611c1b565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c8c5760405162461bcd60e51b815260040161057790611c1b565b604080516060810182528481526020810184905201819052600292909255600355600455565b6000546001600160a01b03163314610cdc5760405162461bcd60e51b815260040161057790611c1b565b683635c9adc5dea00000601455565b6001600160a01b038316610d4d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610577565b6001600160a01b038216610dae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610577565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610577565b6001600160a01b038216610ed55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610577565b60008111610f375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610577565b6013546001600160a01b03848116911614610fc6576001600160a01b03831660009081526007602052604090206001015415801590610f9f57506001600160a01b0383166000908152600760205260409020600101544290610f9c9062015180611cc1565b10155b15610fb557600354600e55600454600f55611015565b600354600e55600254600f55611015565b6001600160a01b038216600090815260076020526040902060010154611008576001600160a01b03821660009081526007602052604090204260018201558190555b600354600e55600254600f555b6001600160a01b03821660009081526009602052604090205460ff1615611041576000600e819055600f555b6000546001600160a01b0384811691161480159061106d57506000546001600160a01b03838116911614155b156111ec576001600160a01b0383166000908152600a602052604090205460ff161580156110b457506001600160a01b0382166000908152600a602052604090205460ff16155b6110bd57600080fd5b6013546001600160a01b0384811691161480156110e857506012546001600160a01b03838116911614155b801561110d57506001600160a01b03821660009081526009602052604090205460ff16155b80156111225750601354600160b81b900460ff165b1561117f5760145481111561113657600080fd5b6001600160a01b0382166000908152600b6020526040902054421161115a57600080fd5b61116542601e611cc1565b6001600160a01b0383166000908152600b60205260409020555b600061118a3061066e565b601354909150600160a81b900460ff161580156111b557506013546001600160a01b03858116911614155b80156111ca5750601354600160b01b900460ff165b156111ea576111d88161133f565b4780156111e8576111e847611236565b505b505b6111f78383836114c8565b505050565b600081848411156112205760405162461bcd60e51b81526004016105779190611bc6565b50600061122d8486611d1a565b95945050505050565b6010546001600160a01b03166108fc6112508360026114d3565b6040518115909202916000818181858888f19350505050158015611278573d6000803e3d6000fd5b506011546001600160a01b03166108fc6112938360026114d3565b6040518115909202916000818181858888f193505050501580156107a3573d6000803e3d6000fd5b6000600c548211156113225760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610577565b600061132c611515565b905061133883826114d3565b9392505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061138757611387611d62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113db57600080fd5b505afa1580156113ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611413919061195c565b8160018151811061142657611426611d62565b6001600160a01b03928316602091820292909201015260125461144c9130911684610ceb565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611485908590600090869030904290600401611c50565b600060405180830381600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6111f7838383611538565b600061133883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061162f565b600080600061152261165d565b909250905061153182826114d3565b9250505090565b60008060008060008061154a8761169f565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061157c90876116fc565b6001600160a01b03808b1660009081526005602052604080822093909355908a16815220546115ab908661173e565b6001600160a01b0389166000908152600560205260409020556115cd8161179d565b6115d784836117e7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161c91815260200190565b60405180910390a3505050505050505050565b600081836116505760405162461bcd60e51b81526004016105779190611bc6565b50600061122d8486611cd9565b600c546000908190683635c9adc5dea0000061167982826114d3565b821015611696575050600c5492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006116bc8a600e54600f5461180b565b92509250925060006116cc611515565b905060008060006116df8e878787611860565b919e509c509a509598509396509194505050505091939550919395565b600061133883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111fc565b60008061174b8385611cc1565b9050838110156113385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610577565b60006117a7611515565b905060006117b583836118b0565b306000908152600560205260409020549091506117d2908261173e565b30600090815260056020526040902055505050565b600c546117f490836116fc565b600c55600d54611804908261173e565b600d555050565b6000808080611825606461181f89896118b0565b906114d3565b90506000611838606461181f8a896118b0565b905060006118508261184a8b866116fc565b906116fc565b9992985090965090945050505050565b600080808061186f88866118b0565b9050600061187d88876118b0565b9050600061188b88886118b0565b9050600061189d8261184a86866116fc565b939b939a50919850919650505050505050565b6000826118bf575060006104de565b60006118cb8385611cfb565b9050826118d88583611cd9565b146113385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610577565b803561193a81611d8e565b919050565b60006020828403121561195157600080fd5b813561133881611d8e565b60006020828403121561196e57600080fd5b815161133881611d8e565b6000806040838503121561198c57600080fd5b823561199781611d8e565b915060208301356119a781611d8e565b809150509250929050565b6000806000606084860312156119c757600080fd5b83356119d281611d8e565b925060208401356119e281611d8e565b929592945050506040919091013590565b60008060408385031215611a0657600080fd5b8235611a1181611d8e565b915060208301356119a781611da3565b60008060408385031215611a3457600080fd5b8235611a3f81611d8e565b946020939093013593505050565b60006020808385031215611a6057600080fd5b823567ffffffffffffffff80821115611a7857600080fd5b818501915085601f830112611a8c57600080fd5b813581811115611a9e57611a9e611d78565b8060051b604051601f19603f83011681018181108582111715611ac357611ac3611d78565b604052828152858101935084860182860187018a1015611ae257600080fd5b600095505b83861015611b0c57611af88161192f565b855260019590950194938601938601611ae7565b5098975050505050505050565b600060208284031215611b2b57600080fd5b813561133881611da3565b600060208284031215611b4857600080fd5b815161133881611da3565b600060208284031215611b6557600080fd5b5035919050565b600080600060608486031215611b8157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611bad57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611bf357858101830151858201604001528201611bd7565b81811115611c05576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ca05784516001600160a01b031683529383019391830191600101611c7b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611cd457611cd4611d4c565b500190565b600082611cf657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d1557611d15611d4c565b500290565b600082821015611d2c57611d2c611d4c565b500390565b6000600019821415611d4557611d45611d4c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461066b57600080fd5b801515811461066b57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202d1d728f46909294a04d963af1a3286f91db177864cbd73825d1d5c3b87dba5564736f6c63430008070033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806395d89b41116100b6578063c9567bf91161006f578063c9567bf9146103cb578063cc653b44146103e0578063dd62ed3e14610432578063df8408fe14610478578063e9dae5ed14610498578063ff872602146104b857600080fd5b806395d89b4114610308578063a9059cbb14610336578063b515566a14610356578063bc33718214610376578063c2d0ffca14610396578063c3c8cd80146103b657600080fd5b8063313ce56711610108578063313ce5671461025a5780635932ead1146102765780636fc3eaec1461029657806370a08231146102ab578063715018a6146102cb5780638da5cb5b146102e057600080fd5b806306fdde031461015b578063095ea7b3146101a257806318160ddd146101d257806323b872dd146101f8578063260065e714610218578063273123b71461023a57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600c81526b4b6c656574616d6120496e7560a01b60208201525b6040516101999190611bc6565b60405180910390f35b3480156101ae57600080fd5b506101c26101bd366004611a21565b6104cd565b6040519015158152602001610199565b3480156101de57600080fd5b50683635c9adc5dea000005b604051908152602001610199565b34801561020457600080fd5b506101c26102133660046119b2565b6104e4565b34801561022457600080fd5b50610238610233366004611979565b61054d565b005b34801561024657600080fd5b5061023861025536600461193f565b6105ae565b34801561026657600080fd5b5060405160098152602001610199565b34801561028257600080fd5b50610238610291366004611b19565b6105f9565b3480156102a257600080fd5b50610238610641565b3480156102b757600080fd5b506101ea6102c636600461193f565b61066e565b3480156102d757600080fd5b50610238610690565b3480156102ec57600080fd5b506000546040516001600160a01b039091168152602001610199565b34801561031457600080fd5b506040805180820190915260058152644b54414d4160d81b602082015261018c565b34801561034257600080fd5b506101c2610351366004611a21565b610704565b34801561036257600080fd5b50610238610371366004611a4d565b610711565b34801561038257600080fd5b50610238610391366004611b53565b6107a7565b3480156103a257600080fd5b506102386103b1366004611b53565b6107e5565b3480156103c257600080fd5b50610238610814565b3480156103d757600080fd5b5061023861084a565b3480156103ec57600080fd5b5061041d6103fb36600461193f565b6001600160a01b03166000908152600760205260409020600181015490549091565b60408051928352602083019190915201610199565b34801561043e57600080fd5b506101ea61044d366004611979565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561048457600080fd5b506102386104933660046119f3565b610c0d565b3480156104a457600080fd5b506102386104b3366004611b6c565b610c62565b3480156104c457600080fd5b50610238610cb2565b60006104da338484610ceb565b5060015b92915050565b60006104f1848484610e0f565b610543843361053e85604051806060016040528060288152602001611db2602891396001600160a01b038a16600090815260086020908152604080832033845290915290205491906111fc565b610ceb565b5060019392505050565b6000546001600160a01b031633146105805760405162461bcd60e51b815260040161057790611c1b565b60405180910390fd5b601080546001600160a01b039384166001600160a01b03199182161790915560118054929093169116179055565b6000546001600160a01b031633146105d85760405162461bcd60e51b815260040161057790611c1b565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b031633146106235760405162461bcd60e51b815260040161057790611c1b565b60138054911515600160b81b0260ff60b81b19909216919091179055565b6010546001600160a01b0316336001600160a01b03161461066157600080fd5b4761066b81611236565b50565b6001600160a01b0381166000908152600560205260408120546104de906112bb565b6000546001600160a01b031633146106ba5760405162461bcd60e51b815260040161057790611c1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104da338484610e0f565b6000546001600160a01b0316331461073b5760405162461bcd60e51b815260040161057790611c1b565b60005b81518110156107a3576001600a600084848151811061075f5761075f611d62565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061079b81611d31565b91505061073e565b5050565b6000546001600160a01b031633146107d15760405162461bcd60e51b815260040161057790611c1b565b6107df81633b9aca00611cfb565b60145550565b6000546001600160a01b0316331461080f5760405162461bcd60e51b815260040161057790611c1b565b601455565b6010546001600160a01b0316336001600160a01b03161461083457600080fd5b600061083f3061066e565b905061066b8161133f565b6000546001600160a01b031633146108745760405162461bcd60e51b815260040161057790611c1b565b601354600160a01b900460ff16156108ce5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610577565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561090b3082683635c9adc5dea00000610ceb565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561094457600080fd5b505afa158015610958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097c919061195c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c457600080fd5b505afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc919061195c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a4457600080fd5b505af1158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c919061195c565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d7194730610aac8161066e565b600080610ac16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b5d9190611b98565b505060138054674563918244f4000060145563ffff00ff60a01b198116630101000160a01b1790915560125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190611b36565b6000546001600160a01b03163314610c375760405162461bcd60e51b815260040161057790611c1b565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c8c5760405162461bcd60e51b815260040161057790611c1b565b604080516060810182528481526020810184905201819052600292909255600355600455565b6000546001600160a01b03163314610cdc5760405162461bcd60e51b815260040161057790611c1b565b683635c9adc5dea00000601455565b6001600160a01b038316610d4d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610577565b6001600160a01b038216610dae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610577565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610577565b6001600160a01b038216610ed55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610577565b60008111610f375760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610577565b6013546001600160a01b03848116911614610fc6576001600160a01b03831660009081526007602052604090206001015415801590610f9f57506001600160a01b0383166000908152600760205260409020600101544290610f9c9062015180611cc1565b10155b15610fb557600354600e55600454600f55611015565b600354600e55600254600f55611015565b6001600160a01b038216600090815260076020526040902060010154611008576001600160a01b03821660009081526007602052604090204260018201558190555b600354600e55600254600f555b6001600160a01b03821660009081526009602052604090205460ff1615611041576000600e819055600f555b6000546001600160a01b0384811691161480159061106d57506000546001600160a01b03838116911614155b156111ec576001600160a01b0383166000908152600a602052604090205460ff161580156110b457506001600160a01b0382166000908152600a602052604090205460ff16155b6110bd57600080fd5b6013546001600160a01b0384811691161480156110e857506012546001600160a01b03838116911614155b801561110d57506001600160a01b03821660009081526009602052604090205460ff16155b80156111225750601354600160b81b900460ff165b1561117f5760145481111561113657600080fd5b6001600160a01b0382166000908152600b6020526040902054421161115a57600080fd5b61116542601e611cc1565b6001600160a01b0383166000908152600b60205260409020555b600061118a3061066e565b601354909150600160a81b900460ff161580156111b557506013546001600160a01b03858116911614155b80156111ca5750601354600160b01b900460ff165b156111ea576111d88161133f565b4780156111e8576111e847611236565b505b505b6111f78383836114c8565b505050565b600081848411156112205760405162461bcd60e51b81526004016105779190611bc6565b50600061122d8486611d1a565b95945050505050565b6010546001600160a01b03166108fc6112508360026114d3565b6040518115909202916000818181858888f19350505050158015611278573d6000803e3d6000fd5b506011546001600160a01b03166108fc6112938360026114d3565b6040518115909202916000818181858888f193505050501580156107a3573d6000803e3d6000fd5b6000600c548211156113225760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610577565b600061132c611515565b905061133883826114d3565b9392505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061138757611387611d62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113db57600080fd5b505afa1580156113ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611413919061195c565b8160018151811061142657611426611d62565b6001600160a01b03928316602091820292909201015260125461144c9130911684610ceb565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611485908590600090869030904290600401611c50565b600060405180830381600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6111f7838383611538565b600061133883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061162f565b600080600061152261165d565b909250905061153182826114d3565b9250505090565b60008060008060008061154a8761169f565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061157c90876116fc565b6001600160a01b03808b1660009081526005602052604080822093909355908a16815220546115ab908661173e565b6001600160a01b0389166000908152600560205260409020556115cd8161179d565b6115d784836117e7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161c91815260200190565b60405180910390a3505050505050505050565b600081836116505760405162461bcd60e51b81526004016105779190611bc6565b50600061122d8486611cd9565b600c546000908190683635c9adc5dea0000061167982826114d3565b821015611696575050600c5492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006116bc8a600e54600f5461180b565b92509250925060006116cc611515565b905060008060006116df8e878787611860565b919e509c509a509598509396509194505050505091939550919395565b600061133883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111fc565b60008061174b8385611cc1565b9050838110156113385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610577565b60006117a7611515565b905060006117b583836118b0565b306000908152600560205260409020549091506117d2908261173e565b30600090815260056020526040902055505050565b600c546117f490836116fc565b600c55600d54611804908261173e565b600d555050565b6000808080611825606461181f89896118b0565b906114d3565b90506000611838606461181f8a896118b0565b905060006118508261184a8b866116fc565b906116fc565b9992985090965090945050505050565b600080808061186f88866118b0565b9050600061187d88876118b0565b9050600061188b88886118b0565b9050600061189d8261184a86866116fc565b939b939a50919850919650505050505050565b6000826118bf575060006104de565b60006118cb8385611cfb565b9050826118d88583611cd9565b146113385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610577565b803561193a81611d8e565b919050565b60006020828403121561195157600080fd5b813561133881611d8e565b60006020828403121561196e57600080fd5b815161133881611d8e565b6000806040838503121561198c57600080fd5b823561199781611d8e565b915060208301356119a781611d8e565b809150509250929050565b6000806000606084860312156119c757600080fd5b83356119d281611d8e565b925060208401356119e281611d8e565b929592945050506040919091013590565b60008060408385031215611a0657600080fd5b8235611a1181611d8e565b915060208301356119a781611da3565b60008060408385031215611a3457600080fd5b8235611a3f81611d8e565b946020939093013593505050565b60006020808385031215611a6057600080fd5b823567ffffffffffffffff80821115611a7857600080fd5b818501915085601f830112611a8c57600080fd5b813581811115611a9e57611a9e611d78565b8060051b604051601f19603f83011681018181108582111715611ac357611ac3611d78565b604052828152858101935084860182860187018a1015611ae257600080fd5b600095505b83861015611b0c57611af88161192f565b855260019590950194938601938601611ae7565b5098975050505050505050565b600060208284031215611b2b57600080fd5b813561133881611da3565b600060208284031215611b4857600080fd5b815161133881611da3565b600060208284031215611b6557600080fd5b5035919050565b600080600060608486031215611b8157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611bad57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611bf357858101830151858201604001528201611bd7565b81811115611c05576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ca05784516001600160a01b031683529383019391830191600101611c7b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611cd457611cd4611d4c565b500190565b600082611cf657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d1557611d15611d4c565b500290565b600082821015611d2c57611d2c611d4c565b500390565b6000600019821415611d4557611d45611d4c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461066b57600080fd5b801515811461066b57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202d1d728f46909294a04d963af1a3286f91db177864cbd73825d1d5c3b87dba5564736f6c63430008070033

Deployed Bytecode Sourcemap

3818:12437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6081:83;;;;;;;;;;-1:-1:-1;6151:5:0;;;;;;;;;;;;-1:-1:-1;;;6151:5:0;;;;6081:83;;;;;;;:::i;:::-;;;;;;;;7242:161;;;;;;;;;;-1:-1:-1;7242:161:0;;;;;:::i;:::-;;:::i;:::-;;;6245:14:1;;6238:22;6220:41;;6208:2;6193:18;7242:161:0;6080:187:1;6358:95:0;;;;;;;;;;-1:-1:-1;4498:12:0;6358:95;;;10930:25:1;;;10918:2;10903:18;6358:95:0;10784:177:1;7411:313:0;;;;;;;;;;-1:-1:-1;7411:313:0;;;;;:::i;:::-;;:::i;5885:188::-;;;;;;;;;;-1:-1:-1;5885:188:0;;;;;:::i;:::-;;:::i;:::-;;12756:88;;;;;;;;;;-1:-1:-1;12756:88:0;;;;;:::i;:::-;;:::i;6267:83::-;;;;;;;;;;-1:-1:-1;6267:83:0;;4910:1;12346:36:1;;12334:2;12319:18;6267:83:0;12204:184:1;7732:103:0;;;;;;;;;;-1:-1:-1;7732:103:0;;;;;:::i;:::-;;:::i;14238:194::-;;;;;;;;;;;;;:::i;6770:138::-;;;;;;;;;;-1:-1:-1;6770:138:0;;;;;:::i;:::-;;:::i;2718:148::-;;;;;;;;;;;;;:::i;2504:79::-;;;;;;;;;;-1:-1:-1;2542:7:0;2569:6;2504:79;;-1:-1:-1;;;;;2569:6:0;;;4818:51:1;;4806:2;4791:18;2504:79:0;4672:203:1;6172:87:0;;;;;;;;;;-1:-1:-1;6244:7:0;;;;;;;;;;;;-1:-1:-1;;;6244:7:0;;;;6172:87;;6916:167;;;;;;;;;;-1:-1:-1;6916:167:0;;;;;:::i;:::-;;:::i;12371:164::-;;;;;;;;;;-1:-1:-1;12371:164:0;;;;;:::i;:::-;;:::i;12543:95::-;;;;;;;;;;-1:-1:-1;12543:95:0;;;;;:::i;:::-;;:::i;13734:89::-;;;;;;;;;;-1:-1:-1;13734:89:0;;;;;:::i;:::-;;:::i;14031:195::-;;;;;;;;;;;;;:::i;11537:822::-;;;;;;;;;;;;;:::i;6600:162::-;;;;;;;;;;-1:-1:-1;6600:162:0;;;;;:::i;:::-;-1:-1:-1;;;;;6702:16:0;6665:7;6702:16;;;:7;:16;;;;;:26;;;;6730:23;;6702:26;;6600:162;;;;;12125:25:1;;;12181:2;12166:18;;12159:34;;;;12098:18;6600:162:0;11951:248:1;7091:143:0;;;;;;;;;;-1:-1:-1;7091:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7199:18:0;;;7172:7;7199:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7091:143;6461:127;;;;;;;;;;-1:-1:-1;6461:127:0;;;;;:::i;:::-;;:::i;7847:299::-;;;;;;;;;;-1:-1:-1;7847:299:0;;;;;:::i;:::-;;:::i;12650:94::-;;;;;;;;;;;;;:::i;7242:161::-;7317:4;7334:39;302:10;7357:7;7366:6;7334:8;:39::i;:::-;-1:-1:-1;7391:4:0;7242:161;;;;;:::o;7411:313::-;7509:4;7526:36;7536:6;7544:9;7555:6;7526:9;:36::i;:::-;7573:121;7582:6;302:10;7604:89;7642:6;7604:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7604:19:0;;;;;;:11;:19;;;;;;;;302:10;7604:33;;;;;;;;;;:37;:89::i;:::-;7573:8;:121::i;:::-;-1:-1:-1;7712:4:0;7411:313;;;;;:::o;5885:188::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;;;;;;;;;5982:15:::1;:36:::0;;-1:-1:-1;;;;;5982:36:0;;::::1;-1:-1:-1::0;;;;;;5982:36:0;;::::1;;::::0;;;6029:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;5885:188::o;12756:88::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12816:12:0::1;12831:5;12816:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;12816:20:0::1;::::0;;12756:88::o;7732:103::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;7804:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7804:23:0::1;-1:-1:-1::0;;;;7804:23:0;;::::1;::::0;;;::::1;::::0;;7732:103::o;14238:194::-;14304:15;;-1:-1:-1;;;;;14304:15:0;302:10;-1:-1:-1;;;;;14288:31:0;;14280:40;;;;;;14360:21;14392:32;14360:21;14392:12;:32::i;:::-;14269:163;14238:194::o;6770:138::-;-1:-1:-1;;;;;6883:16:0;;6836:7;6883:16;;;:7;:16;;;;;;6863:37;;:19;:37::i;2718:148::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;2825:1:::1;2809:6:::0;;2788:40:::1;::::0;-1:-1:-1;;;;;2809:6:0;;::::1;::::0;2788:40:::1;::::0;2825:1;;2788:40:::1;2856:1;2839:19:::0;;-1:-1:-1;;;;;;2839:19:0::1;::::0;;2718:148::o;6916:167::-;6994:4;7011:42;302:10;7035:9;7046:6;7011:9;:42::i;12371:164::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;12445:6:::1;12440:88;12461:5;:12;12457:1;:16;12440:88;;;12512:4;12495;:14;12500:5;12506:1;12500:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12495:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12495:14:0;:21;;-1:-1:-1;;12495:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12475:3;::::1;::::0;::::1;:::i;:::-;;;;12440:88;;;;12371:164:::0;:::o;12543:95::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;12617:13:::1;:3:::0;12623:7:::1;12617:13;:::i;:::-;12602:12;:28:::0;-1:-1:-1;12543:95:0:o;13734:89::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;13797:12:::1;:18:::0;13734:89::o;14031:195::-;14097:15;;-1:-1:-1;;;;;14097:15:0;302:10;-1:-1:-1;;;;;14081:31:0;;14073:40;;;;;;14124:23;14150:24;14168:4;14150:9;:24::i;:::-;14124:50;;14185:33;14202:15;14185:16;:33::i;11537:822::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;11601:11:::1;::::0;-1:-1:-1;;;11601:11:0;::::1;;;11600:12;11592:47;;;::::0;-1:-1:-1;;;11592:47:0;;10634:2:1;11592:47:0::1;::::0;::::1;10616:21:1::0;10673:2;10653:18;;;10646:30;10712:25;10692:18;;;10685:53;10755:18;;11592:47:0::1;10432:347:1::0;11592:47:0::1;11761:15;:34:::0;;-1:-1:-1;;;;;;11761:34:0::1;11707:42;11761:34:::0;;::::1;::::0;;;11806:58:::1;11823:4;11707:42:::0;4498:12:::1;11806:8;:58::i;:::-;11909:16;-1:-1:-1::0;;;;;11909:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11891:56:0::1;;11956:4;11963:16;-1:-1:-1::0;;;;;11963:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11891:96;::::0;-1:-1:-1;;;;;;11891:96:0::1;::::0;;;;;;-1:-1:-1;;;;;5110:15:1;;;11891:96:0::1;::::0;::::1;5092:34:1::0;5162:15;;5142:18;;;5135:43;5027:18;;11891:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11875:13;:112:::0;;-1:-1:-1;;;;;;11875:112:0::1;-1:-1:-1::0;;;;;11875:112:0;;::::1;;::::0;;11998:15:::1;::::0;::::1;:31;12037:21;12068:4;12074:24;12068:4:::0;12074:9:::1;:24::i;:::-;12099:1;12101::::0;12103:7:::1;2542::::0;2569:6;-1:-1:-1;;;;;2569:6:0;;2504:79;12103:7:::1;11998:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11998:129:0;;;-1:-1:-1;;;;;5827:15:1;;;11998:129:0::1;::::0;::::1;5809:34:1::0;5859:18;;;5852:34;;;;5902:18;;;5895:34;;;;5945:18;;;5938:34;6009:15;;;5988:19;;;5981:44;12111:15:0::1;6041:19:1::0;;;6034:35;5743:19;;11998:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12138:11:0::1;:18:::0;;12215:25:::1;12200:12;:40:::0;-1:-1:-1;;;;12251:18:0;;-1:-1:-1;;;12251:18:0;;;;12318:15:::1;::::0;12280:71:::1;::::0;-1:-1:-1;;;12280:71:0;;-1:-1:-1;;;;;12318:15:0;;::::1;12280:71;::::0;::::1;5363:51:1::0;-1:-1:-1;;5430:18:1;;;5423:34;12287:13:0;;;-1:-1:-1;12280:29:0::1;::::0;5336:18:1;;12280:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6461:127::-:0;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6545:24:0;;;::::1;;::::0;;;:18:::1;:24;::::0;;;;:35;;-1:-1:-1;;6545:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6461:127::o;7847:299::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;7982:156:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;7973:6:::1;:165:::0;;;;;;;;7847:299::o;12650:94::-;2631:6;;-1:-1:-1;;;;;2631:6:0;302:10;2631:22;2623:67;;;;-1:-1:-1;;;2623:67:0;;;;;;;:::i;:::-;12724:12:::1;12709;:27:::0;12650:94::o;8416:335::-;-1:-1:-1;;;;;8509:19:0;;8501:68;;;;-1:-1:-1;;;8501:68:0;;10229:2:1;8501:68:0;;;10211:21:1;10268:2;10248:18;;;10241:30;10307:34;10287:18;;;10280:62;-1:-1:-1;;;10358:18:1;;;10351:34;10402:19;;8501:68:0;10027:400:1;8501:68:0;-1:-1:-1;;;;;8588:21:0;;8580:68;;;;-1:-1:-1;;;8580:68:0;;7891:2:1;8580:68:0;;;7873:21:1;7930:2;7910:18;;;7903:30;7969:34;7949:18;;;7942:62;-1:-1:-1;;;8020:18:1;;;8013:32;8062:19;;8580:68:0;7689:398:1;8580:68:0;-1:-1:-1;;;;;8659:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8711:32;;10930:25:1;;;8711:32:0;;10903:18:1;8711:32:0;;;;;;;8416:335;;;:::o;8759:2105::-;-1:-1:-1;;;;;8847:18:0;;8839:68;;;;-1:-1:-1;;;8839:68:0;;9823:2:1;8839:68:0;;;9805:21:1;9862:2;9842:18;;;9835:30;9901:34;9881:18;;;9874:62;-1:-1:-1;;;9952:18:1;;;9945:35;9997:19;;8839:68:0;9621:401:1;8839:68:0;-1:-1:-1;;;;;8926:16:0;;8918:64;;;;-1:-1:-1;;;8918:64:0;;7076:2:1;8918:64:0;;;7058:21:1;7115:2;7095:18;;;7088:30;7154:34;7134:18;;;7127:62;-1:-1:-1;;;7205:18:1;;;7198:33;7248:19;;8918:64:0;6874:399:1;8918:64:0;9010:1;9001:6;:10;8993:64;;;;-1:-1:-1;;;8993:64:0;;9413:2:1;8993:64:0;;;9395:21:1;9452:2;9432:18;;;9425:30;9491:34;9471:18;;;9464:62;-1:-1:-1;;;9542:18:1;;;9535:39;9591:19;;8993:64:0;9211:405:1;8993:64:0;15791:13;;-1:-1:-1;;;;;15780:24:0;;;15791:13;;15780:24;9084:733;;-1:-1:-1;;;;;9179:13:0;;;;;;:7;:13;;;;;:23;;;:28;;;;:106;;-1:-1:-1;;;;;;9229:13:0;;;;;;:7;:13;;;;;:23;;;9269:15;;9229:36;;9256:8;9229:36;:::i;:::-;:55;;9179:106;9175:356;;;9319:21;;9307:9;:33;9371:23;;9359:9;:35;9084:733;;9175:356;9447:21;;9435:9;:33;9447:6;9499:16;9487:9;:28;9084:733;;;-1:-1:-1;;;;;9567:11:0;;;;;;:7;:11;;;;;:21;;;9563:152;;-1:-1:-1;;;;;9614:11:0;;;;;;:7;:11;;;;;9638:15;9614:21;;;:39;9672:27;;;9563:152;9741:21;;9729:9;:33;9741:6;9789:16;9777:9;:28;9084:733;-1:-1:-1;;;;;9833:22:0;;;;;;:18;:22;;;;;;;;9829:96;;;9884:1;9872:9;:13;;;9900:9;:13;9829:96;2542:7;2569:6;-1:-1:-1;;;;;9949:15:0;;;2569:6;;9949:15;;;;:32;;-1:-1:-1;2542:7:0;2569:6;-1:-1:-1;;;;;9968:13:0;;;2569:6;;9968:13;;9949:32;9945:867;;;-1:-1:-1;;;;;10007:10:0;;;;;;:4;:10;;;;;;;;10006:11;:24;;;;-1:-1:-1;;;;;;10022:8:0;;;;;;:4;:8;;;;;;;;10021:9;10006:24;9998:33;;;;;;10058:13;;-1:-1:-1;;;;;10050:21:0;;;10058:13;;10050:21;:55;;;;-1:-1:-1;10089:15:0;;-1:-1:-1;;;;;10075:30:0;;;10089:15;;10075:30;;10050:55;:83;;;;-1:-1:-1;;;;;;10111:22:0;;;;;;:18;:22;;;;;;;;10109:24;10050:83;:102;;;;-1:-1:-1;10137:15:0;;-1:-1:-1;;;10137:15:0;;;;10050:102;10046:325;;;10220:12;;10210:6;:22;;10202:31;;;;;;-1:-1:-1;;;;;10260:12:0;;;;;;:8;:12;;;;;;10275:15;-1:-1:-1;10252:39:0;;;;;;10325:30;:15;10344:10;10325:30;:::i;:::-;-1:-1:-1;;;;;10310:12:0;;;;;;:8;:12;;;;;:45;10046:325;10413:28;10444:24;10462:4;10444:9;:24::i;:::-;10488:6;;10413:55;;-1:-1:-1;;;;10488:6:0;;;;10487:7;:32;;;;-1:-1:-1;10506:13:0;;-1:-1:-1;;;;;10498:21:0;;;10506:13;;10498:21;;10487:32;:47;;;;-1:-1:-1;10523:11:0;;-1:-1:-1;;;10523:11:0;;;;10487:47;10483:318;;;10555:38;10572:20;10555:16;:38::i;:::-;10641:21;10684:22;;10681:105;;10731:35;10744:21;10731:12;:35::i;:::-;10536:265;10483:318;9983:829;9945:867;10826:30;10841:4;10846:2;10849:6;10826:14;:30::i;:::-;8759:2105;;;:::o;1359:190::-;1445:7;1481:12;1473:6;;;;1465:29;;;;-1:-1:-1;;;1465:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1505:9:0;1517:5;1521:1;1517;:5;:::i;:::-;1505:17;1359:190;-1:-1:-1;;;;;1359:190:0:o;11371:154::-;11428:15;;-1:-1:-1;;;;;11428:15:0;:39;11453:13;:6;11464:1;11453:10;:13::i;:::-;11428:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11478:15:0;;-1:-1:-1;;;;;11478:15:0;:39;11503:13;:6;11514:1;11503:10;:13::i;:::-;11478:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8154:254;8221:7;8260;;8249;:18;;8241:73;;;;-1:-1:-1;;;8241:73:0;;7480:2:1;8241:73:0;;;7462:21:1;7519:2;7499:18;;;7492:30;7558:34;7538:18;;;7531:62;-1:-1:-1;;;7609:18:1;;;7602:40;7659:19;;8241:73:0;7278:406:1;8241:73:0;8325:19;8348:10;:8;:10::i;:::-;8325:33;-1:-1:-1;8376:24:0;:7;8325:33;8376:11;:24::i;:::-;8369:31;8154:254;-1:-1:-1;;;8154:254:0:o;10872:483::-;5286:6;:13;;-1:-1:-1;;;;5286:13:0;-1:-1:-1;;;5286:13:0;;;10974:16:::1;::::0;;10988:1:::1;10974:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10974:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10974:16:0::1;10950:40;;11019:4;11001;11006:1;11001:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11001:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11045:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11045:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11001:7;;11045:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11035:4;11040:1;11035:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11035:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11110:15:::1;::::0;11078:62:::1;::::0;11095:4:::1;::::0;11110:15:::1;11128:11:::0;11078:8:::1;:62::i;:::-;11151:15;::::0;:196:::1;::::0;-1:-1:-1;;;11151:196:0;;-1:-1:-1;;;;;11151:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11232:11;;11151:15:::1;::::0;11274:4;;11301::::1;::::0;11321:15:::1;::::0;11151:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5322:6:0;:14;;-1:-1:-1;;;;5322:14:0;;;-1:-1:-1;;;;10872:483:0:o;12860:146::-;12954:44;12972:6;12980:9;12991:6;12954:17;:44::i;1811:132::-;1869:7;1896:39;1900:1;1903;1896:39;;;;;;;;;;;;;;;;;:3;:39::i;15819:163::-;15860:7;15881:15;15898;15917:19;:17;:19::i;:::-;15880:56;;-1:-1:-1;15880:56:0;-1:-1:-1;15954:20:0;15880:56;;15954:11;:20::i;:::-;15947:27;;;;15819:163;:::o;13014:488::-;13113:15;13130:23;13155:12;13169:23;13194:12;13208:13;13225:19;13236:7;13225:10;:19::i;:::-;-1:-1:-1;;;;;13273:15:0;;;;;;:7;:15;;;;;;13112:132;;-1:-1:-1;13112:132:0;;-1:-1:-1;13112:132:0;;-1:-1:-1;13112:132:0;-1:-1:-1;13112:132:0;-1:-1:-1;13112:132:0;-1:-1:-1;13273:28:0;;13112:132;13273:19;:28::i;:::-;-1:-1:-1;;;;;13255:15:0;;;;;;;:7;:15;;;;;;:46;;;;13333:18;;;;;;;:39;;13356:15;13333:22;:39::i;:::-;-1:-1:-1;;;;;13312:18:0;;;;;;:7;:18;;;;;:60;13384:16;13394:5;13384:9;:16::i;:::-;13411:23;13423:4;13429;13411:11;:23::i;:::-;13467:9;-1:-1:-1;;;;;13450:44:0;13459:6;-1:-1:-1;;;;;13450:44:0;;13478:15;13450:44;;;;10930:25:1;;10918:2;10903:18;;10784:177;13450:44:0;;;;;;;;13101:401;;;;;;13014:488;;;:::o;1951:189::-;2037:7;2072:12;2065:5;2057:28;;;;-1:-1:-1;;;2057:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2096:9:0;2108:5;2112:1;2108;:5;:::i;15990:262::-;16087:7;;16040;;;;4498:12;16161:20;16087:7;4498:12;16161:11;:20::i;:::-;16151:7;:30;16147:61;;;-1:-1:-1;;16191:7:0;;;4498:12;;-1:-1:-1;15990:262:0;-1:-1:-1;15990:262:0:o;16147:61::-;16227:7;;16236;;-1:-1:-1;15990:262:0;-1:-1:-1;15990:262:0:o;14446:471::-;14505:7;14514;14523;14532;14541;14550;14571:23;14596:12;14610:13;14627:42;14639:7;14648:9;;14659;;14627:11;:42::i;:::-;14570:99;;;;;;14680:19;14703:10;:8;:10::i;:::-;14680:33;;14725:15;14742:23;14767:12;14783:46;14795:7;14804:4;14810:5;14817:11;14783;:46::i;:::-;14724:105;;-1:-1:-1;14724:105:0;-1:-1:-1;14724:105:0;-1:-1:-1;14880:15:0;;-1:-1:-1;14897:4:0;;-1:-1:-1;14903:5:0;;-1:-1:-1;;;;;14446:471:0;;;;;;;:::o;1215:136::-;1273:7;1300:43;1304:1;1307;1300:43;;;;;;;;;;;;;;;;;:3;:43::i;1028:179::-;1086:7;;1118:5;1122:1;1118;:5;:::i;:::-;1106:17;;1147:1;1142;:6;;1134:46;;;;-1:-1:-1;;;1134:46:0;;8294:2:1;1134:46:0;;;8276:21:1;8333:2;8313:18;;;8306:30;8372:29;8352:18;;;8345:57;8419:18;;1134:46:0;8092:351:1;13510:212:0;13563:19;13586:10;:8;:10::i;:::-;13563:33;-1:-1:-1;13607:13:0;13623:22;:5;13563:33;13623:9;:22::i;:::-;13697:4;13681:22;;;;:7;:22;;;;;;13607:38;;-1:-1:-1;13681:33:0;;13607:38;13681:26;:33::i;:::-;13672:4;13656:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13510:212:0:o;13835:147::-;13913:7;;:17;;13925:4;13913:11;:17::i;:::-;13903:7;:27;13954:10;;:20;;13969:4;13954:14;:20::i;:::-;13941:10;:33;-1:-1:-1;;13835:147:0:o;14925:351::-;15018:7;;;;15071:28;15095:3;15071:19;:7;15083:6;15071:11;:19::i;:::-;:23;;:28::i;:::-;15056:43;-1:-1:-1;15110:13:0;15126:29;15151:3;15126:20;:7;15138;15126:11;:20::i;:29::-;15110:45;-1:-1:-1;15166:23:0;15192:28;15110:45;15192:17;:7;15204:4;15192:11;:17::i;:::-;:21;;:28::i;:::-;15166:54;15256:4;;-1:-1:-1;15262:5:0;;-1:-1:-1;14925:351:0;;-1:-1:-1;;;;;14925:351:0:o;15284:409::-;15394:7;;;;15450:24;:7;15462:11;15450;:24::i;:::-;15432:42;-1:-1:-1;15485:12:0;15500:21;:4;15509:11;15500:8;:21::i;:::-;15485:36;-1:-1:-1;15532:13:0;15548:22;:5;15558:11;15548:9;:22::i;:::-;15532:38;-1:-1:-1;15581:23:0;15607:28;15532:38;15607:17;:7;15619:4;15607:11;:17::i;:28::-;15654:7;;;;-1:-1:-1;15680:4:0;;-1:-1:-1;15284:409:0;;-1:-1:-1;;;;;;;15284:409:0:o;1557:246::-;1615:7;1639:6;1635:47;;-1:-1:-1;1669:1:0;1662:8;;1635:47;1692:9;1704:5;1708:1;1704;:5;:::i;:::-;1692:17;-1:-1:-1;1737:1:0;1728:5;1732:1;1692:17;1728:5;:::i;:::-;:10;1720:56;;;;-1:-1:-1;;;1720:56:0;;8650:2:1;1720:56:0;;;8632:21:1;8689:2;8669:18;;;8662:30;8728:34;8708:18;;;8701:62;-1:-1:-1;;;8779:18:1;;;8772:31;8820:19;;1720:56:0;8448:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:382::-;1580:6;1588;1641:2;1629:9;1620:7;1616:23;1612:32;1609:52;;;1657:1;1654;1647:12;1609:52;1696:9;1683:23;1715:31;1740:5;1715:31;:::i;:::-;1765:5;-1:-1:-1;1822:2:1;1807:18;;1794:32;1835:30;1794:32;1835:30;:::i;1902:315::-;1970:6;1978;2031:2;2019:9;2010:7;2006:23;2002:32;1999:52;;;2047:1;2044;2037:12;1999:52;2086:9;2073:23;2105:31;2130:5;2105:31;:::i;:::-;2155:5;2207:2;2192:18;;;;2179:32;;-1:-1:-1;;;1902:315:1:o;2222:1132::-;2306:6;2337:2;2380;2368:9;2359:7;2355:23;2351:32;2348:52;;;2396:1;2393;2386:12;2348:52;2436:9;2423:23;2465:18;2506:2;2498:6;2495:14;2492:34;;;2522:1;2519;2512:12;2492:34;2560:6;2549:9;2545:22;2535:32;;2605:7;2598:4;2594:2;2590:13;2586:27;2576:55;;2627:1;2624;2617:12;2576:55;2663:2;2650:16;2685:2;2681;2678:10;2675:36;;;2691:18;;:::i;:::-;2737:2;2734:1;2730:10;2769:2;2763:9;2832:2;2828:7;2823:2;2819;2815:11;2811:25;2803:6;2799:38;2887:6;2875:10;2872:22;2867:2;2855:10;2852:18;2849:46;2846:72;;;2898:18;;:::i;:::-;2934:2;2927:22;2984:18;;;3018:15;;;;-1:-1:-1;3053:11:1;;;3083;;;3079:20;;3076:33;-1:-1:-1;3073:53:1;;;3122:1;3119;3112:12;3073:53;3144:1;3135:10;;3154:169;3168:2;3165:1;3162:9;3154:169;;;3225:23;3244:3;3225:23;:::i;:::-;3213:36;;3186:1;3179:9;;;;;3269:12;;;;3301;;3154:169;;;-1:-1:-1;3342:6:1;2222:1132;-1:-1:-1;;;;;;;;2222:1132:1:o;3359:241::-;3415:6;3468:2;3456:9;3447:7;3443:23;3439:32;3436:52;;;3484:1;3481;3474:12;3436:52;3523:9;3510:23;3542:28;3564:5;3542:28;:::i;3605:245::-;3672:6;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;3773:9;3767:16;3792:28;3814:5;3792:28;:::i;3855:180::-;3914:6;3967:2;3955:9;3946:7;3942:23;3938:32;3935:52;;;3983:1;3980;3973:12;3935:52;-1:-1:-1;4006:23:1;;3855:180;-1:-1:-1;3855:180:1:o;4040:316::-;4117:6;4125;4133;4186:2;4174:9;4165:7;4161:23;4157:32;4154:52;;;4202:1;4199;4192:12;4154:52;-1:-1:-1;;4225:23:1;;;4295:2;4280:18;;4267:32;;-1:-1:-1;4346:2:1;4331:18;;;4318:32;;4040:316;-1:-1:-1;4040:316:1:o;4361:306::-;4449:6;4457;4465;4518:2;4506:9;4497:7;4493:23;4489:32;4486:52;;;4534:1;4531;4524:12;4486:52;4563:9;4557:16;4547:26;;4613:2;4602:9;4598:18;4592:25;4582:35;;4657:2;4646:9;4642:18;4636:25;4626:35;;4361:306;;;;;:::o;6272:597::-;6384:4;6413:2;6442;6431:9;6424:21;6474:6;6468:13;6517:6;6512:2;6501:9;6497:18;6490:34;6542:1;6552:140;6566:6;6563:1;6560:13;6552:140;;;6661:14;;;6657:23;;6651:30;6627:17;;;6646:2;6623:26;6616:66;6581:10;;6552:140;;;6710:6;6707:1;6704:13;6701:91;;;6780:1;6775:2;6766:6;6755:9;6751:22;6747:31;6740:42;6701:91;-1:-1:-1;6853:2:1;6832:15;-1:-1:-1;;6828:29:1;6813:45;;;;6860:2;6809:54;;6272:597;-1:-1:-1;;;6272:597:1:o;8850:356::-;9052:2;9034:21;;;9071:18;;;9064:30;9130:34;9125:2;9110:18;;9103:62;9197:2;9182:18;;8850:356::o;10966:980::-;11228:4;11276:3;11265:9;11261:19;11307:6;11296:9;11289:25;11333:2;11371:6;11366:2;11355:9;11351:18;11344:34;11414:3;11409:2;11398:9;11394:18;11387:31;11438:6;11473;11467:13;11504:6;11496;11489:22;11542:3;11531:9;11527:19;11520:26;;11581:2;11573:6;11569:15;11555:29;;11602:1;11612:195;11626:6;11623:1;11620:13;11612:195;;;11691:13;;-1:-1:-1;;;;;11687:39:1;11675:52;;11782:15;;;;11747:12;;;;11723:1;11641:9;11612:195;;;-1:-1:-1;;;;;;;11863:32:1;;;;11858:2;11843:18;;11836:60;-1:-1:-1;;;11927:3:1;11912:19;11905:35;11824:3;10966:980;-1:-1:-1;;;10966:980:1:o;12393:128::-;12433:3;12464:1;12460:6;12457:1;12454:13;12451:39;;;12470:18;;:::i;:::-;-1:-1:-1;12506:9:1;;12393:128::o;12526:217::-;12566:1;12592;12582:132;;12636:10;12631:3;12627:20;12624:1;12617:31;12671:4;12668:1;12661:15;12699:4;12696:1;12689:15;12582:132;-1:-1:-1;12728:9:1;;12526:217::o;12748:168::-;12788:7;12854:1;12850;12846:6;12842:14;12839:1;12836:21;12831:1;12824:9;12817:17;12813:45;12810:71;;;12861:18;;:::i;:::-;-1:-1:-1;12901:9:1;;12748:168::o;12921:125::-;12961:4;12989:1;12986;12983:8;12980:34;;;12994:18;;:::i;:::-;-1:-1:-1;13031:9:1;;12921:125::o;13051:135::-;13090:3;-1:-1:-1;;13111:17:1;;13108:43;;;13131:18;;:::i;:::-;-1:-1:-1;13178:1:1;13167:13;;13051:135::o;13191:127::-;13252:10;13247:3;13243:20;13240:1;13233:31;13283:4;13280:1;13273:15;13307:4;13304:1;13297:15;13323:127;13384:10;13379:3;13375:20;13372:1;13365:31;13415:4;13412:1;13405:15;13439:4;13436:1;13429:15;13455:127;13516:10;13511:3;13507:20;13504:1;13497:31;13547:4;13544:1;13537:15;13571:4;13568:1;13561:15;13587:131;-1:-1:-1;;;;;13662:31:1;;13652:42;;13642:70;;13708:1;13705;13698:12;13723:118;13809:5;13802:13;13795:21;13788:5;13785:32;13775:60;;13831:1;13828;13821:12

Swarm Source

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