ETH Price: $2,646.49 (-0.19%)

Token

Fk Teh Feds (FTF)
 

Overview

Max Total Supply

10,000,000 FTF

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
mikotopapi.eth
Balance
16,332.761732947 FTF

Value
$0.00
0x2656961632339e44274a89ceabd4e7785b2351fd
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:
FKtehFeds

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

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

}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
} 

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

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

contract FKtehFeds is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 1e4 * 1e9; //10,000,000
    uint256 public _maxWalletSize;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _sellTax;
    uint256 private _buyTax;
    uint256 public SWAPamount = 7 * 1e4 * 1e9; // .7%
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private dev;
    address payable private mktg;


    event maxWalletSizeamountUpdated(uint _maxWalletSize);
    event SWAPamountUpdated(uint SWAPamount);

    string private constant _name = "Fk Teh Feds";
    string private constant _symbol = "FTF";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
   
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        dev = payable(0xa0b5C9eef27A597c0857aC8EE21d2c0bb7b9fdE5);
        mktg = payable(0xa0b5C9eef27A597c0857aC8EE21d2c0bb7b9fdE5);

        _rOwned[address(this)] = _rTotal;
        _sellTax =20;
        _buyTax = 5;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[dev] = true;
        _isExcludedFromFee[address(0)] = true;


        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return 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 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(!bots[from] && !bots[to]);
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if (! _isExcludedFromFee[to] && ! _isExcludedFromFee[from]) {
            _feeAddr1 = 0;
            _feeAddr2 = _buyTax;
        }

        if (to != uniswapV2Pair && ! _isExcludedFromFee[to] && ! _isExcludedFromFee[from]) {
            require(amount + balanceOf(to) <= _maxWalletSize, "Over max wallet size.");
        }
        

        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = _sellTax;
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            _feeAddr1 = 0;
            _feeAddr2 = 0;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (!inSwap && from != uniswapV2Pair && swapEnabled) {
            if (contractTokenBalance > SWAPamount) {
                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 updateFees(uint256 sellTax, uint256 reflections, uint256 buyTax) external onlyOwner {
        _feeAddr1 = reflections;
        _sellTax = sellTax;
        _buyTax = buyTax;
        require(reflections <= 5, "Must keep fees at 5% or less");
        require(sellTax <= 10, "Must keep fees at 18% or less");
        require(buyTax <= 10, "Must keep fees at 10% or less");
    }
    
    function liftMax() external {
        require(_msgSender() == dev);
        _maxWalletSize = _tTotal;
        
    }

    function sendETHToFee(uint256 amount) private {
        dev.transfer((amount).div(5).mul(3));
        mktg.transfer((amount).div(5).mul(2));

    }

    function setMarketingWallet(address payable walletAddress) public onlyOwner {
        mktg = walletAddress;
    }

    function updateSWAPamount(uint256 newNum) external {
        require(_msgSender() == dev);
        SWAPamount = newNum;
    }

    function updateMaxWalletamount(uint256 newNum) external onlyOwner {
        _maxWalletSize = newNum;
    }

    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;
        _maxWalletSize = 30 * 1e4 * 1e9; //2%

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    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 _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == dev);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == dev);
        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 _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);
    }

    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"SWAPamount","type":"uint256"}],"name":"SWAPamountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"maxWalletSizeamountUpdated","type":"event"},{"inputs":[],"name":"SWAPamount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liftMax","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"address payable","name":"walletAddress","type":"address"}],"name":"setMarketingWallet","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTax","type":"uint256"},{"internalType":"uint256","name":"reflections","type":"uint256"},{"internalType":"uint256","name":"buyTax","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletamount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateSWAPamount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000019662386f26fc100006000196200020e565b6200002790600019620001ea565b600755653faa25226000600b556011805461ffff60a81b191690553480156200004f57600080fd5b506200005b336200019a565b600e805473a0b5c9eef27a597c0857ac8ee21d2c0bb7b9fde56001600160a01b03199182168117909255600f8054909116909117905560075430600090815260016020819052604082209290925560146009556005600a55600490620000c96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308082526004909452828120805486166001908117909155600e54909216815282812080548616831790558080527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec8054909516909117909355519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200018c90662386f26fc10000815260200190565b60405180910390a36200022f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828210156200020957634e487b7160e01b81526011600452602481fd5b500390565b6000826200022a57634e487b7160e01b81526012600452602481fd5b500690565b611d85806200023f6000396000f3fe60806040526004361061014f5760003560e01c8063753e3aa9116100b6578063c3c8cd801161006f578063c3c8cd80146103bd578063c9567bf9146103d2578063dd62ed3e146103e7578063e13071d71461042d578063ea3105d91461044d578063f2fde38b1461046257600080fd5b8063753e3aa9146102f35780638da5cb5b146103135780638f9a55c01461033b57806395d89b4114610351578063a9059cbb1461037d578063b515566a1461039d57600080fd5b8063313ce56711610108578063313ce567146102575780635cbde150146102735780635d098b38146102895780636fc3eaec146102a957806370a08231146102be578063715018a6146102de57600080fd5b806306fdde031461015b578063095ea7b3146101a157806318160ddd146101d157806322429085146101f557806323b872dd14610217578063273123b71461023757600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600b81526a466b20546568204665647360a81b60208201525b6040516101989190611b65565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc3660046119e3565b610482565b6040519015158152602001610198565b3480156101dd57600080fd5b50662386f26fc100005b604051908152602001610198565b34801561020157600080fd5b50610215610210366004611b0d565b610499565b005b34801561022357600080fd5b506101c16102323660046119a3565b6105d3565b34801561024357600080fd5b50610215610252366004611933565b61063c565b34801561026357600080fd5b5060405160098152602001610198565b34801561027f57600080fd5b506101e7600b5481565b34801561029557600080fd5b506102156102a4366004611933565b610687565b3480156102b557600080fd5b506102156106d3565b3480156102ca57600080fd5b506101e76102d9366004611933565b610700565b3480156102ea57600080fd5b50610215610722565b3480156102ff57600080fd5b5061021561030e366004611af5565b610758565b34801561031f57600080fd5b506000546040516001600160a01b039091168152602001610198565b34801561034757600080fd5b506101e760065481565b34801561035d57600080fd5b50604080518082019091526003815262232a2360e91b602082015261018b565b34801561038957600080fd5b506101c16103983660046119e3565b610787565b3480156103a957600080fd5b506102156103b8366004611a0e565b610794565b3480156103c957600080fd5b50610215610838565b3480156103de57600080fd5b5061021561086e565b3480156103f357600080fd5b506101e761040236600461196b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561043957600080fd5b50610215610448366004611af5565b610c2c565b34801561045957600080fd5b50610215610c51565b34801561046e57600080fd5b5061021561047d366004611933565b610c7e565b600061048f338484610d16565b5060015b92915050565b6000546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c390611bb8565b60405180910390fd5b600c8290556009839055600a819055600582111561052c5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016104c3565b600a83111561057d5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313825206f72206c65737300000060448201526064016104c3565b600a8111156105ce5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016104c3565b505050565b60006105e0848484610e3a565b610632843361062d85604051806060016040528060288152602001611d28602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611178565b610d16565b5060019392505050565b6000546001600160a01b031633146106665760405162461bcd60e51b81526004016104c390611bb8565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016104c390611bb8565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b600e546001600160a01b0316336001600160a01b0316146106f357600080fd5b476106fd816111b2565b50565b6001600160a01b03811660009081526001602052604081205461049390611247565b6000546001600160a01b0316331461074c5760405162461bcd60e51b81526004016104c390611bb8565b61075660006112cb565b565b6000546001600160a01b031633146107825760405162461bcd60e51b81526004016104c390611bb8565b600655565b600061048f338484610e3a565b6000546001600160a01b031633146107be5760405162461bcd60e51b81526004016104c390611bb8565b60005b8151811015610834576001600560008484815181106107f057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061082c81611ccb565b9150506107c1565b5050565b600e546001600160a01b0316336001600160a01b03161461085857600080fd5b600061086330610700565b90506106fd8161131b565b6000546001600160a01b031633146108985760405162461bcd60e51b81526004016104c390611bb8565b601154600160a01b900460ff16156108f25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561092d3082662386f26fc10000610d16565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561096657600080fd5b505afa15801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e919061194f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e919061194f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a6657600080fd5b505af1158015610a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9e919061194f565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610ace81610700565b600080610ae36000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b4657600080fd5b505af1158015610b5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b7f9190611b38565b505060118054660110d9316ec00060065562ff00ff60a01b1981166201000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610bf457600080fd5b505af1158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611ad5565b600e546001600160a01b0316336001600160a01b031614610c4c57600080fd5b600b55565b600e546001600160a01b0316336001600160a01b031614610c7157600080fd5b662386f26fc10000600655565b6000546001600160a01b03163314610ca85760405162461bcd60e51b81526004016104c390611bb8565b6001600160a01b038116610d0d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c3565b6106fd816112cb565b6001600160a01b038316610d785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610dd95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526005602052604090205460ff16158015610e7c57506001600160a01b03821660009081526005602052604090205460ff16155b610e8557600080fd5b60008111610ee75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b6001600160a01b03821660009081526004602052604090205460ff16158015610f2957506001600160a01b03831660009081526004602052604090205460ff16155b15610f3a576000600c55600a54600d555b6011546001600160a01b03838116911614801590610f7157506001600160a01b03821660009081526004602052604090205460ff16155b8015610f9657506001600160a01b03831660009081526004602052604090205460ff16155b15610ff757600654610fa783610700565b610fb19083611c5d565b1115610ff75760405162461bcd60e51b815260206004820152601560248201527427bb32b91036b0bc103bb0b63632ba1039b4bd329760591b60448201526064016104c3565b6011546001600160a01b03838116911614801561102257506010546001600160a01b03848116911614155b801561104757506001600160a01b03831660009081526004602052604090205460ff16155b156110a3576001600160a01b03831660009081526005602052604090205460ff1615801561108e57506001600160a01b03821660009081526005602052604090205460ff16155b61109757600080fd5b6000600c55600954600d555b6001600160a01b03831660009081526004602052604090205460ff16806110e257506001600160a01b03821660009081526004602052604090205460ff165b156110f2576000600c819055600d555b60006110fd30610700565b601154909150600160a81b900460ff1615801561112857506011546001600160a01b03858116911614155b801561113d5750601154600160b01b900460ff165b1561116757600b54811115611155576111558161131b565b47801561116557611165476111b2565b505b6111728484846114c0565b50505050565b6000818484111561119c5760405162461bcd60e51b81526004016104c39190611b65565b5060006111a98486611cb4565b95945050505050565b600e546001600160a01b03166108fc6111d760036111d18560056114cb565b9061150d565b6040518115909202916000818181858888f193505050501580156111ff573d6000803e3d6000fd5b50600f546001600160a01b03166108fc61121f60026111d18560056114cb565b6040518115909202916000818181858888f19350505050158015610834573d6000803e3d6000fd5b60006007548211156112ae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104c3565b60006112b861158c565b90506112c483826114cb565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061137157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113c557600080fd5b505afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd919061194f565b8160018151811061141e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526010546114449130911684610d16565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061147d908590600090869030904290600401611bed565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b6105ce8383836115af565b60006112c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116a6565b60008261151c57506000610493565b60006115288385611c95565b9050826115358583611c75565b146112c45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b60008060006115996116d4565b90925090506115a882826114cb565b9250505090565b6000806000806000806115c187611712565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506115f3908761176f565b6001600160a01b03808b1660009081526001602052604080822093909355908a168152205461162290866117b1565b6001600160a01b03891660009081526001602052604090205561164481611810565b61164e848361185a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161169391815260200190565b60405180910390a3505050505050505050565b600081836116c75760405162461bcd60e51b81526004016104c39190611b65565b5060006111a98486611c75565b6007546000908190662386f26fc100006116ee82826114cb565b82101561170957505060075492662386f26fc1000092509050565b90939092509050565b600080600080600080600080600061172f8a600c54600d5461187e565b925092509250600061173f61158c565b905060008060006117528e8787876118d3565b919e509c509a509598509396509194505050505091939550919395565b60006112c483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611178565b6000806117be8385611c5d565b9050838110156112c45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b600061181a61158c565b90506000611828838361150d565b3060009081526001602052604090205490915061184590826117b1565b30600090815260016020526040902055505050565b600754611867908361176f565b60075560085461187790826117b1565b6008555050565b60008080806118986064611892898961150d565b906114cb565b905060006118ab60646118928a8961150d565b905060006118c3826118bd8b8661176f565b9061176f565b9992985090965090945050505050565b60008080806118e2888661150d565b905060006118f0888761150d565b905060006118fe888861150d565b90506000611910826118bd868661176f565b939b939a50919850919650505050505050565b803561192e81611d12565b919050565b600060208284031215611944578081fd5b81356112c481611d12565b600060208284031215611960578081fd5b81516112c481611d12565b6000806040838503121561197d578081fd5b823561198881611d12565b9150602083013561199881611d12565b809150509250929050565b6000806000606084860312156119b7578081fd5b83356119c281611d12565b925060208401356119d281611d12565b929592945050506040919091013590565b600080604083850312156119f5578182fd5b8235611a0081611d12565b946020939093013593505050565b60006020808385031215611a20578182fd5b823567ffffffffffffffff80821115611a37578384fd5b818501915085601f830112611a4a578384fd5b813581811115611a5c57611a5c611cfc565b8060051b604051601f19603f83011681018181108582111715611a8157611a81611cfc565b604052828152858101935084860182860187018a1015611a9f578788fd5b8795505b83861015611ac857611ab481611923565b855260019590950194938601938601611aa3565b5098975050505050505050565b600060208284031215611ae6578081fd5b815180151581146112c4578182fd5b600060208284031215611b06578081fd5b5035919050565b600080600060608486031215611b21578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215611b4c578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611b9157858101830151858201604001528201611b75565b81811115611ba25783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611c3c5784516001600160a01b031683529383019391830191600101611c17565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611c7057611c70611ce6565b500190565b600082611c9057634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611caf57611caf611ce6565b500290565b600082821015611cc657611cc6611ce6565b500390565b6000600019821415611cdf57611cdf611ce6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146106fd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203093e24a5108a2fda198653ae5d3ab76966622634a744ccf1ed47368df25a64364736f6c63430008040033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063753e3aa9116100b6578063c3c8cd801161006f578063c3c8cd80146103bd578063c9567bf9146103d2578063dd62ed3e146103e7578063e13071d71461042d578063ea3105d91461044d578063f2fde38b1461046257600080fd5b8063753e3aa9146102f35780638da5cb5b146103135780638f9a55c01461033b57806395d89b4114610351578063a9059cbb1461037d578063b515566a1461039d57600080fd5b8063313ce56711610108578063313ce567146102575780635cbde150146102735780635d098b38146102895780636fc3eaec146102a957806370a08231146102be578063715018a6146102de57600080fd5b806306fdde031461015b578063095ea7b3146101a157806318160ddd146101d157806322429085146101f557806323b872dd14610217578063273123b71461023757600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600b81526a466b20546568204665647360a81b60208201525b6040516101989190611b65565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc3660046119e3565b610482565b6040519015158152602001610198565b3480156101dd57600080fd5b50662386f26fc100005b604051908152602001610198565b34801561020157600080fd5b50610215610210366004611b0d565b610499565b005b34801561022357600080fd5b506101c16102323660046119a3565b6105d3565b34801561024357600080fd5b50610215610252366004611933565b61063c565b34801561026357600080fd5b5060405160098152602001610198565b34801561027f57600080fd5b506101e7600b5481565b34801561029557600080fd5b506102156102a4366004611933565b610687565b3480156102b557600080fd5b506102156106d3565b3480156102ca57600080fd5b506101e76102d9366004611933565b610700565b3480156102ea57600080fd5b50610215610722565b3480156102ff57600080fd5b5061021561030e366004611af5565b610758565b34801561031f57600080fd5b506000546040516001600160a01b039091168152602001610198565b34801561034757600080fd5b506101e760065481565b34801561035d57600080fd5b50604080518082019091526003815262232a2360e91b602082015261018b565b34801561038957600080fd5b506101c16103983660046119e3565b610787565b3480156103a957600080fd5b506102156103b8366004611a0e565b610794565b3480156103c957600080fd5b50610215610838565b3480156103de57600080fd5b5061021561086e565b3480156103f357600080fd5b506101e761040236600461196b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561043957600080fd5b50610215610448366004611af5565b610c2c565b34801561045957600080fd5b50610215610c51565b34801561046e57600080fd5b5061021561047d366004611933565b610c7e565b600061048f338484610d16565b5060015b92915050565b6000546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c390611bb8565b60405180910390fd5b600c8290556009839055600a819055600582111561052c5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702066656573206174203525206f72206c6573730000000060448201526064016104c3565b600a83111561057d5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313825206f72206c65737300000060448201526064016104c3565b600a8111156105ce5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016104c3565b505050565b60006105e0848484610e3a565b610632843361062d85604051806060016040528060288152602001611d28602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611178565b610d16565b5060019392505050565b6000546001600160a01b031633146106665760405162461bcd60e51b81526004016104c390611bb8565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016104c390611bb8565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b600e546001600160a01b0316336001600160a01b0316146106f357600080fd5b476106fd816111b2565b50565b6001600160a01b03811660009081526001602052604081205461049390611247565b6000546001600160a01b0316331461074c5760405162461bcd60e51b81526004016104c390611bb8565b61075660006112cb565b565b6000546001600160a01b031633146107825760405162461bcd60e51b81526004016104c390611bb8565b600655565b600061048f338484610e3a565b6000546001600160a01b031633146107be5760405162461bcd60e51b81526004016104c390611bb8565b60005b8151811015610834576001600560008484815181106107f057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061082c81611ccb565b9150506107c1565b5050565b600e546001600160a01b0316336001600160a01b03161461085857600080fd5b600061086330610700565b90506106fd8161131b565b6000546001600160a01b031633146108985760405162461bcd60e51b81526004016104c390611bb8565b601154600160a01b900460ff16156108f25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561092d3082662386f26fc10000610d16565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561096657600080fd5b505afa15801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e919061194f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e919061194f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a6657600080fd5b505af1158015610a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9e919061194f565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610ace81610700565b600080610ae36000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610b4657600080fd5b505af1158015610b5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b7f9190611b38565b505060118054660110d9316ec00060065562ff00ff60a01b1981166201000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610bf457600080fd5b505af1158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611ad5565b600e546001600160a01b0316336001600160a01b031614610c4c57600080fd5b600b55565b600e546001600160a01b0316336001600160a01b031614610c7157600080fd5b662386f26fc10000600655565b6000546001600160a01b03163314610ca85760405162461bcd60e51b81526004016104c390611bb8565b6001600160a01b038116610d0d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c3565b6106fd816112cb565b6001600160a01b038316610d785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610dd95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526005602052604090205460ff16158015610e7c57506001600160a01b03821660009081526005602052604090205460ff16155b610e8557600080fd5b60008111610ee75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b6001600160a01b03821660009081526004602052604090205460ff16158015610f2957506001600160a01b03831660009081526004602052604090205460ff16155b15610f3a576000600c55600a54600d555b6011546001600160a01b03838116911614801590610f7157506001600160a01b03821660009081526004602052604090205460ff16155b8015610f9657506001600160a01b03831660009081526004602052604090205460ff16155b15610ff757600654610fa783610700565b610fb19083611c5d565b1115610ff75760405162461bcd60e51b815260206004820152601560248201527427bb32b91036b0bc103bb0b63632ba1039b4bd329760591b60448201526064016104c3565b6011546001600160a01b03838116911614801561102257506010546001600160a01b03848116911614155b801561104757506001600160a01b03831660009081526004602052604090205460ff16155b156110a3576001600160a01b03831660009081526005602052604090205460ff1615801561108e57506001600160a01b03821660009081526005602052604090205460ff16155b61109757600080fd5b6000600c55600954600d555b6001600160a01b03831660009081526004602052604090205460ff16806110e257506001600160a01b03821660009081526004602052604090205460ff165b156110f2576000600c819055600d555b60006110fd30610700565b601154909150600160a81b900460ff1615801561112857506011546001600160a01b03858116911614155b801561113d5750601154600160b01b900460ff165b1561116757600b54811115611155576111558161131b565b47801561116557611165476111b2565b505b6111728484846114c0565b50505050565b6000818484111561119c5760405162461bcd60e51b81526004016104c39190611b65565b5060006111a98486611cb4565b95945050505050565b600e546001600160a01b03166108fc6111d760036111d18560056114cb565b9061150d565b6040518115909202916000818181858888f193505050501580156111ff573d6000803e3d6000fd5b50600f546001600160a01b03166108fc61121f60026111d18560056114cb565b6040518115909202916000818181858888f19350505050158015610834573d6000803e3d6000fd5b60006007548211156112ae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104c3565b60006112b861158c565b90506112c483826114cb565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061137157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113c557600080fd5b505afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd919061194f565b8160018151811061141e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526010546114449130911684610d16565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061147d908590600090869030904290600401611bed565b600060405180830381600087803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b6105ce8383836115af565b60006112c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116a6565b60008261151c57506000610493565b60006115288385611c95565b9050826115358583611c75565b146112c45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b60008060006115996116d4565b90925090506115a882826114cb565b9250505090565b6000806000806000806115c187611712565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506115f3908761176f565b6001600160a01b03808b1660009081526001602052604080822093909355908a168152205461162290866117b1565b6001600160a01b03891660009081526001602052604090205561164481611810565b61164e848361185a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161169391815260200190565b60405180910390a3505050505050505050565b600081836116c75760405162461bcd60e51b81526004016104c39190611b65565b5060006111a98486611c75565b6007546000908190662386f26fc100006116ee82826114cb565b82101561170957505060075492662386f26fc1000092509050565b90939092509050565b600080600080600080600080600061172f8a600c54600d5461187e565b925092509250600061173f61158c565b905060008060006117528e8787876118d3565b919e509c509a509598509396509194505050505091939550919395565b60006112c483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611178565b6000806117be8385611c5d565b9050838110156112c45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b600061181a61158c565b90506000611828838361150d565b3060009081526001602052604090205490915061184590826117b1565b30600090815260016020526040902055505050565b600754611867908361176f565b60075560085461187790826117b1565b6008555050565b60008080806118986064611892898961150d565b906114cb565b905060006118ab60646118928a8961150d565b905060006118c3826118bd8b8661176f565b9061176f565b9992985090965090945050505050565b60008080806118e2888661150d565b905060006118f0888761150d565b905060006118fe888861150d565b90506000611910826118bd868661176f565b939b939a50919850919650505050505050565b803561192e81611d12565b919050565b600060208284031215611944578081fd5b81356112c481611d12565b600060208284031215611960578081fd5b81516112c481611d12565b6000806040838503121561197d578081fd5b823561198881611d12565b9150602083013561199881611d12565b809150509250929050565b6000806000606084860312156119b7578081fd5b83356119c281611d12565b925060208401356119d281611d12565b929592945050506040919091013590565b600080604083850312156119f5578182fd5b8235611a0081611d12565b946020939093013593505050565b60006020808385031215611a20578182fd5b823567ffffffffffffffff80821115611a37578384fd5b818501915085601f830112611a4a578384fd5b813581811115611a5c57611a5c611cfc565b8060051b604051601f19603f83011681018181108582111715611a8157611a81611cfc565b604052828152858101935084860182860187018a1015611a9f578788fd5b8795505b83861015611ac857611ab481611923565b855260019590950194938601938601611aa3565b5098975050505050505050565b600060208284031215611ae6578081fd5b815180151581146112c4578182fd5b600060208284031215611b06578081fd5b5035919050565b600080600060608486031215611b21578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215611b4c578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611b9157858101830151858201604001528201611b75565b81811115611ba25783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611c3c5784516001600160a01b031683529383019391830191600101611c17565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611c7057611c70611ce6565b500190565b600082611c9057634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611caf57611caf611ce6565b500290565b600082821015611cc657611cc6611ce6565b500390565b6000600019821415611cdf57611cdf611ce6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146106fd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203093e24a5108a2fda198653ae5d3ab76966622634a744ccf1ed47368df25a64364736f6c63430008040033

Deployed Bytecode Sourcemap

3773:11080:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5703:83;;;;;;;;;;-1:-1:-1;5773:5:0;;;;;;;;;;;;-1:-1:-1;;;5773:5:0;;;;5703:83;;;;;;;:::i;:::-;;;;;;;;6555:161;;;;;;;;;;-1:-1:-1;6555:161:0;;;;;:::i;:::-;;:::i;:::-;;;6059:14:1;;6052:22;6034:41;;6022:2;6007:18;6555:161:0;5989:92:1;5980:95:0;;;;;;;;;;-1:-1:-1;4228:16:0;5980:95;;;11770:25:1;;;11758:2;11743:18;5980:95:0;11725:76:1;9575:390:0;;;;;;;;;;-1:-1:-1;9575:390:0;;;;;:::i;:::-;;:::i;:::-;;6724:313;;;;;;;;;;-1:-1:-1;6724:313:0;;;;;:::i;:::-;;:::i;14762:88::-;;;;;;;;;;-1:-1:-1;14762:88:0;;;;;:::i;:::-;;:::i;5889:83::-;;;;;;;;;;-1:-1:-1;5889:83:0;;4892:1;12936:36:1;;12924:2;12909:18;5889:83:0;12891:87:1;4452:41:0;;;;;;;;;;;;;;;;10264:115;;;;;;;;;;-1:-1:-1;10264:115:0;;;;;:::i;:::-;;:::i;12699:182::-;;;;;;;;;;;;;:::i;6083:138::-;;;;;;;;;;-1:-1:-1;6083:138:0;;;;;:::i;:::-;;:::i;2492:103::-;;;;;;;;;;;;;:::i;10523:108::-;;;;;;;;;;-1:-1:-1;10523:108:0;;;;;:::i;:::-;;:::i;2269:87::-;;;;;;;;;;-1:-1:-1;2315:7:0;2342:6;2269:87;;-1:-1:-1;;;;;2342:6:0;;;4632:51:1;;4620:2;4605:18;2269:87:0;4587:102:1;4264:29:0;;;;;;;;;;;;;;;;5794:87;;;;;;;;;;-1:-1:-1;5866:7:0;;;;;;;;;;;;-1:-1:-1;;;5866:7:0;;;;5794:87;;6229:167;;;;;;;;;;-1:-1:-1;6229:167:0;;;;;:::i;:::-;;:::i;14586:164::-;;;;;;;;;;-1:-1:-1;14586:164:0;;;;;:::i;:::-;;:::i;12504:183::-;;;;;;;;;;;;;:::i;10639:787::-;;;;;;;;;;;;;:::i;6404:143::-;;;;;;;;;;-1:-1:-1;6404:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6512:18:0;;;6485:7;6512:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6404:143;10387:128;;;;;;;;;;-1:-1:-1;10387:128:0;;;;;:::i;:::-;;:::i;9977:120::-;;;;;;;;;;;;;:::i;2603:201::-;;;;;;;;;;-1:-1:-1;2603:201:0;;;;;:::i;:::-;;:::i;6555:161::-;6630:4;6647:39;182:10;6670:7;6679:6;6647:8;:39::i;:::-;-1:-1:-1;6704:4:0;6555:161;;;;;:::o;9575:390::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;;;;;;;;;9679:9:::1;:23:::0;;;9713:8:::1;:18:::0;;;9742:7:::1;:16:::0;;;9792:1:::1;9777:16:::0;::::1;;9769:57;;;::::0;-1:-1:-1;;;9769:57:0;;10004:2:1;9769:57:0::1;::::0;::::1;9986:21:1::0;10043:2;10023:18;;;10016:30;10082;10062:18;;;10055:58;10130:18;;9769:57:0::1;9976:178:1::0;9769:57:0::1;9856:2;9845:7;:13;;9837:55;;;::::0;-1:-1:-1;;;9837:55:0;;10711:2:1;9837:55:0::1;::::0;::::1;10693:21:1::0;10750:2;10730:18;;;10723:30;10789:31;10769:18;;;10762:59;10838:18;;9837:55:0::1;10683:179:1::0;9837:55:0::1;9921:2;9911:6;:12;;9903:54;;;::::0;-1:-1:-1;;;9903:54:0;;6896:2:1;9903:54:0::1;::::0;::::1;6878:21:1::0;6935:2;6915:18;;;6908:30;6974:31;6954:18;;;6947:59;7023:18;;9903:54:0::1;6868:179:1::0;9903:54:0::1;9575:390:::0;;;:::o;6724:313::-;6822:4;6839:36;6849:6;6857:9;6868:6;6839:9;:36::i;:::-;6886:121;6895:6;182:10;6917:89;6955:6;6917:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:19:0;;;;;;:11;:19;;;;;;;;182:10;6917:33;;;;;;;;;;:37;:89::i;:::-;6886:8;:121::i;:::-;-1:-1:-1;7025:4:0;6724:313;;;;;:::o;14762:88::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14822:12:0::1;14837:5;14822:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14822:20:0::1;::::0;;14762:88::o;10264:115::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;10351:4:::1;:20:::0;;-1:-1:-1;;;;;;10351:20:0::1;-1:-1:-1::0;;;;;10351:20:0;;;::::1;::::0;;;::::1;::::0;;10264:115::o;12699:182::-;12765:3;;-1:-1:-1;;;;;12765:3:0;182:10;-1:-1:-1;;;;;12749:19:0;;12741:28;;;;;;12809:21;12841:32;12809:21;12841:12;:32::i;:::-;12699:182;:::o;6083:138::-;-1:-1:-1;;;;;6196:16:0;;6149:7;6196:16;;;:7;:16;;;;;;6176:37;;:19;:37::i;2492:103::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;2557:30:::1;2584:1;2557:18;:30::i;:::-;2492:103::o:0;10523:108::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;10600:14:::1;:23:::0;10523:108::o;6229:167::-;6307:4;6324:42;182:10;6348:9;6359:6;6324:9;:42::i;14586:164::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;14660:6:::1;14655:88;14676:5;:12;14672:1;:16;14655:88;;;14727:4;14710;:14;14715:5;14721:1;14715:8;;;;;;-1:-1:-1::0;;;14715:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14710:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14710:14:0;:21;;-1:-1:-1;;14710:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14690:3;::::1;::::0;::::1;:::i;:::-;;;;14655:88;;;;14586:164:::0;:::o;12504:183::-;12570:3;;-1:-1:-1;;;;;12570:3:0;182:10;-1:-1:-1;;;;;12554:19:0;;12546:28;;;;;;12585:23;12611:24;12629:4;12611:9;:24::i;:::-;12585:50;;12646:33;12663:15;12646:16;:33::i;10639:787::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;10703:11:::1;::::0;-1:-1:-1;;;10703:11:0;::::1;;;10702:12;10694:47;;;::::0;-1:-1:-1;;;10694:47:0;;11474:2:1;10694:47:0::1;::::0;::::1;11456:21:1::0;11513:2;11493:18;;;11486:30;11552:25;11532:18;;;11525:53;11595:18;;10694:47:0::1;11446:173:1::0;10694:47:0::1;10863:15;:34:::0;;-1:-1:-1;;;;;;10863:34:0::1;10809:42;10863:34:::0;;::::1;::::0;;;10908:58:::1;10925:4;10809:42:::0;4228:16:::1;10908:8;:58::i;:::-;11011:16;-1:-1:-1::0;;;;;11011:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10993:56:0::1;;11058:4;11065:16;-1:-1:-1::0;;;;;11065:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10993:96;::::0;-1:-1:-1;;;;;;10993:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4924:15:1;;;10993:96:0::1;::::0;::::1;4906:34:1::0;4976:15;;4956:18;;;4949:43;4841:18;;10993:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10977:13;:112:::0;;-1:-1:-1;;;;;;10977:112:0::1;-1:-1:-1::0;;;;;10977:112:0;;::::1;;::::0;;11100:15:::1;::::0;::::1;:31;11139:21;11170:4;11176:24;11170:4:::0;11176:9:::1;:24::i;:::-;11201:1;11203::::0;11205:7:::1;2315::::0;2342:6;-1:-1:-1;;;;;2342:6:0;;2269:87;11205:7:::1;11100:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11100:129:0;;;-1:-1:-1;;;;;5641:15:1;;;11100:129:0::1;::::0;::::1;5623:34:1::0;5673:18;;;5666:34;;;;5716:18;;;5709:34;;;;5759:18;;;5752:34;5823:15;;;5802:19;;;5795:44;11213:15:0::1;5855:19:1::0;;;5848:35;5557:19;;11100:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11240:11:0::1;:18:::0;;11286:14:::1;11269;:31:::0;-1:-1:-1;;;;11318:18:0;;-1:-1:-1;;;11318:18:0;;;;11385:15:::1;::::0;11347:71:::1;::::0;-1:-1:-1;;;11347:71:0;;-1:-1:-1;;;;;11385:15:0;;::::1;11347:71;::::0;::::1;5177:51:1::0;-1:-1:-1;;5244:18:1;;;5237:34;11354:13:0;;;-1:-1:-1;11347:29:0::1;::::0;5150:18:1;;11347:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10387:128::-:0;10473:3;;-1:-1:-1;;;;;10473:3:0;182:10;-1:-1:-1;;;;;10457:19:0;;10449:28;;;;;;10488:10;:19;10387:128::o;9977:120::-;10040:3;;-1:-1:-1;;;;;10040:3:0;182:10;-1:-1:-1;;;;;10024:19:0;;10016:28;;;;;;4228:16;10055:14;:24;9977:120::o;2603:201::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2692:22:0;::::1;2684:73;;;::::0;-1:-1:-1;;;2684:73:0;;7665:2:1;2684:73:0::1;::::0;::::1;7647:21:1::0;7704:2;7684:18;;;7677:30;7743:34;7723:18;;;7716:62;-1:-1:-1;;;7794:18:1;;;7787:36;7840:19;;2684:73:0::1;7637:228:1::0;2684:73:0::1;2768:28;2787:8;2768:18;:28::i;7307:335::-:0;-1:-1:-1;;;;;7400:19:0;;7392:68;;;;-1:-1:-1;;;7392:68:0;;11069:2:1;7392:68:0;;;11051:21:1;11108:2;11088:18;;;11081:30;11147:34;11127:18;;;11120:62;-1:-1:-1;;;11198:18:1;;;11191:34;11242:19;;7392:68:0;11041:226:1;7392:68:0;-1:-1:-1;;;;;7479:21:0;;7471:68;;;;-1:-1:-1;;;7471:68:0;;8072:2:1;7471:68:0;;;8054:21:1;8111:2;8091:18;;;8084:30;8150:34;8130:18;;;8123:62;-1:-1:-1;;;8201:18:1;;;8194:32;8243:19;;7471:68:0;8044:224:1;7471:68:0;-1:-1:-1;;;;;7550:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7602:32;;11770:25:1;;;7602:32:0;;11743:18:1;7602:32:0;;;;;;;7307:335;;;:::o;7650:1426::-;-1:-1:-1;;;;;7739:10:0;;;;;;:4;:10;;;;;;;;7738:11;:24;;;;-1:-1:-1;;;;;;7754:8:0;;;;;;:4;:8;;;;;;;;7753:9;7738:24;7730:33;;;;;;7791:1;7782:6;:10;7774:64;;;;-1:-1:-1;;;7774:64:0;;9594:2:1;7774:64:0;;;9576:21:1;9633:2;9613:18;;;9606:30;9672:34;9652:18;;;9645:62;-1:-1:-1;;;9723:18:1;;;9716:39;9772:19;;7774:64:0;9566:231:1;7774:64:0;-1:-1:-1;;;;;7865:22:0;;;;;;:18;:22;;;;;;;;7863:24;:54;;;;-1:-1:-1;;;;;;7893:24:0;;;;;;:18;:24;;;;;;;;7891:26;7863:54;7859:134;;;7946:1;7934:9;:13;7974:7;;7962:9;:19;7859:134;8015:13;;-1:-1:-1;;;;;8009:19:0;;;8015:13;;8009:19;;;;:47;;-1:-1:-1;;;;;;8034:22:0;;;;;;:18;:22;;;;;;;;8032:24;8009:47;:77;;;;-1:-1:-1;;;;;;8062:24:0;;;;;;:18;:24;;;;;;;;8060:26;8009:77;8005:184;;;8137:14;;8120:13;8130:2;8120:9;:13::i;:::-;8111:22;;:6;:22;:::i;:::-;:40;;8103:74;;;;-1:-1:-1;;;8103:74:0;;10361:2:1;8103:74:0;;;10343:21:1;10400:2;10380:18;;;10373:30;-1:-1:-1;;;10419:18:1;;;10412:51;10480:18;;8103:74:0;10333:171:1;8103:74:0;8221:13;;-1:-1:-1;;;;;8215:19:0;;;8221:13;;8215:19;:55;;;;-1:-1:-1;8254:15:0;;-1:-1:-1;;;;;8238:32:0;;;8254:15;;8238:32;;8215:55;:85;;;;-1:-1:-1;;;;;;8276:24:0;;;;;;:18;:24;;;;;;;;8274:26;8215:85;8211:214;;;-1:-1:-1;;;;;8326:10:0;;;;;;:4;:10;;;;;;;;8325:11;:24;;;;-1:-1:-1;;;;;;8341:8:0;;;;;;:4;:8;;;;;;;;8340:9;8325:24;8317:33;;;;;;8377:1;8365:9;:13;8405:8;;8393:9;:20;8211:214;-1:-1:-1;;;;;8441:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8469:22:0;;;;;;:18;:22;;;;;;;;8441:50;8437:124;;;8520:1;8508:9;:13;;;8536:9;:13;8437:124;8573:28;8604:24;8622:4;8604:9;:24::i;:::-;8644:6;;8573:55;;-1:-1:-1;;;;8644:6:0;;;;8643:7;:32;;;;-1:-1:-1;8662:13:0;;-1:-1:-1;;;;;8654:21:0;;;8662:13;;8654:21;;8643:32;:47;;;;-1:-1:-1;8679:11:0;;-1:-1:-1;;;8679:11:0;;;;8643:47;8639:381;;;8734:10;;8711:20;:33;8707:112;;;8765:38;8782:20;8765:16;:38::i;:::-;8876:21;8915:22;;8912:97;;8958:35;8971:21;8958:12;:35::i;:::-;8639:381;;9038:30;9053:4;9058:2;9061:6;9038:14;:30::i;:::-;7650:1426;;;;:::o;1239:190::-;1325:7;1361:12;1353:6;;;;1345:29;;;;-1:-1:-1;;;1345:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1385:9:0;1397:5;1401:1;1397;:5;:::i;:::-;1385:17;1239:190;-1:-1:-1;;;;;1239:190:0:o;10105:151::-;10162:3;;-1:-1:-1;;;;;10162:3:0;:36;10175:22;10195:1;10175:15;10176:6;10188:1;10175:12;:15::i;:::-;:19;;:22::i;:::-;10162:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10209:4:0;;-1:-1:-1;;;;;10209:4:0;:37;10223:22;10243:1;10223:15;10224:6;10236:1;10223:12;:15::i;:22::-;10209:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7045:254;7112:7;7151;;7140;:18;;7132:73;;;;-1:-1:-1;;;7132:73:0;;7254:2:1;7132:73:0;;;7236:21:1;7293:2;7273:18;;;7266:30;7332:34;7312:18;;;7305:62;-1:-1:-1;;;7383:18:1;;;7376:40;7433:19;;7132:73:0;7226:232:1;7132:73:0;7216:19;7239:10;:8;:10::i;:::-;7216:33;-1:-1:-1;7267:24:0;:7;7216:33;7267:11;:24::i;:::-;7260:31;7045:254;-1:-1:-1;;;7045:254:0:o;2812:191::-;2886:16;2905:6;;-1:-1:-1;;;;;2922:17:0;;;-1:-1:-1;;;;;;2922:17:0;;;;;;2955:40;;2905:6;;;;;;;2955:40;;2886:16;2955:40;2812:191;;:::o;9084:483::-;5132:6;:13;;-1:-1:-1;;;;5132:13:0;-1:-1:-1;;;5132:13:0;;;9186:16:::1;::::0;;9200:1:::1;9186:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9186:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9186:16:0::1;9162:40;;9231:4;9213;9218:1;9213:7;;;;;;-1:-1:-1::0;;;9213:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9213:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9257:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9257:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9213:7;;9257:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9247:4;9252:1;9247:7;;;;;;-1:-1:-1::0;;;9247:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9247:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9322:15:::1;::::0;9290:62:::1;::::0;9307:4:::1;::::0;9322:15:::1;9340:11:::0;9290:8:::1;:62::i;:::-;9363:15;::::0;:196:::1;::::0;-1:-1:-1;;;9363:196:0;;-1:-1:-1;;;;;9363:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9444:11;;9363:15:::1;::::0;9486:4;;9513::::1;::::0;9533:15:::1;::::0;9363:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5168:6:0;:14;;-1:-1:-1;;;;5168:14:0;;;-1:-1:-1;;;;9084:483:0:o;11438:146::-;11532:44;11550:6;11558:9;11569:6;11532:17;:44::i;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;1437:246::-;1495:7;1519:6;1515:47;;-1:-1:-1;1549:1:0;1542:8;;1515:47;1572:9;1584:5;1588:1;1584;:5;:::i;:::-;1572:17;-1:-1:-1;1617:1:0;1608:5;1612:1;1572:17;1608:5;:::i;:::-;:10;1600:56;;;;-1:-1:-1;;;1600:56:0;;8831:2:1;1600:56:0;;;8813:21:1;8870:2;8850:18;;;8843:30;8909:34;8889:18;;;8882:62;-1:-1:-1;;;8960:18:1;;;8953:31;9001:19;;1600:56:0;8803:223:1;14145:163:0;14186:7;14207:15;14224;14243:19;:17;:19::i;:::-;14206:56;;-1:-1:-1;14206:56:0;-1:-1:-1;14280:20:0;14206:56;;14280:11;:20::i;:::-;14273:27;;;;14145:163;:::o;11592:488::-;11691:15;11708:23;11733:12;11747:23;11772:12;11786:13;11803:19;11814:7;11803:10;:19::i;:::-;-1:-1:-1;;;;;11851:15:0;;;;;;:7;:15;;;;;;11690:132;;-1:-1:-1;11690:132:0;;-1:-1:-1;11690:132:0;;-1:-1:-1;11690:132:0;-1:-1:-1;11690:132:0;-1:-1:-1;11690:132:0;-1:-1:-1;11851:28:0;;11690:132;11851:19;:28::i;:::-;-1:-1:-1;;;;;11833:15:0;;;;;;;:7;:15;;;;;;:46;;;;11911:18;;;;;;;:39;;11934:15;11911:22;:39::i;:::-;-1:-1:-1;;;;;11890:18:0;;;;;;:7;:18;;;;;:60;11962:16;11972:5;11962:9;:16::i;:::-;11989:23;12001:4;12007;11989:11;:23::i;:::-;12045:9;-1:-1:-1;;;;;12028:44:0;12037:6;-1:-1:-1;;;;;12028:44:0;;12056:15;12028:44;;;;11770:25:1;;11758:2;11743:18;;11725:76;12028:44:0;;;;;;;;11592:488;;;;;;;;;:::o;1831:189::-;1917:7;1952:12;1945:5;1937:28;;;;-1:-1:-1;;;1937:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1976:9:0;1988:5;1992:1;1988;:5;:::i;14316:262::-;14413:7;;14366;;;;4228:16;14487:20;14413:7;4228:16;14487:11;:20::i;:::-;14477:7;:30;14473:61;;;-1:-1:-1;;14517:7:0;;;4228:16;;-1:-1:-1;14316:262:0;-1:-1:-1;14316:262:0:o;14473:61::-;14553:7;;14562;;-1:-1:-1;14316:262:0;-1:-1:-1;14316:262:0:o;12893:471::-;12952:7;12961;12970;12979;12988;12997;13018:23;13043:12;13057:13;13074:42;13086:7;13095:9;;13106;;13074:11;:42::i;:::-;13017:99;;;;;;13127:19;13150:10;:8;:10::i;:::-;13127:33;;13172:15;13189:23;13214:12;13230:46;13242:7;13251:4;13257:5;13264:11;13230;:46::i;:::-;13171:105;;-1:-1:-1;13171:105:0;-1:-1:-1;13171:105:0;-1:-1:-1;13327:15:0;;-1:-1:-1;13344:4:0;;-1:-1:-1;13350:5:0;;-1:-1:-1;;;;;12893:471:0;;;;;;;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;908:179::-;966:7;;998:5;1002:1;998;:5;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;-1:-1:-1;;;1014:46:0;;8475:2:1;1014:46:0;;;8457:21:1;8514:2;8494:18;;;8487:30;8553:29;8533:18;;;8526:57;8600:18;;1014:46:0;8447:177:1;12088:212:0;12141:19;12164:10;:8;:10::i;:::-;12141:33;-1:-1:-1;12185:13:0;12201:22;:5;12141:33;12201:9;:22::i;:::-;12275:4;12259:22;;;;:7;:22;;;;;;12185:38;;-1:-1:-1;12259:33:0;;12185:38;12259:26;:33::i;:::-;12250:4;12234:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12088:212:0:o;12308:147::-;12386:7;;:17;;12398:4;12386:11;:17::i;:::-;12376:7;:27;12427:10;;:20;;12442:4;12427:14;:20::i;:::-;12414:10;:33;-1:-1:-1;;12308:147:0:o;13372:351::-;13465:7;;;;13518:28;13542:3;13518:19;:7;13530:6;13518:11;:19::i;:::-;:23;;:28::i;:::-;13503:43;-1:-1:-1;13557:13:0;13573:29;13598:3;13573:20;:7;13585;13573:11;:20::i;:29::-;13557:45;-1:-1:-1;13613:23:0;13639:28;13557:45;13639:17;:7;13651:4;13639:11;:17::i;:::-;:21;;:28::i;:::-;13613:54;13703:4;;-1:-1:-1;13709:5:0;;-1:-1:-1;13372:351:0;;-1:-1:-1;;;;;13372:351:0:o;13731:409::-;13841:7;;;;13897:24;:7;13909:11;13897;:24::i;:::-;13879:42;-1:-1:-1;13932:12:0;13947:21;:4;13956:11;13947:8;:21::i;:::-;13932:36;-1:-1:-1;13979:13:0;13995:22;:5;14005:11;13995:9;:22::i;:::-;13979:38;-1:-1:-1;14028:23:0;14054:28;13979:38;14054:17;:7;14066:4;14054:11;:17::i;:28::-;14101:7;;;;-1:-1:-1;14127:4:0;;-1:-1:-1;13731:409:0;;-1:-1:-1;;;;;;;13731:409:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;951:398::-;1019:6;1027;1080:2;1068:9;1059:7;1055:23;1051:32;1048:2;;;1101:6;1093;1086:22;1048:2;1145:9;1132:23;1164:31;1189:5;1164:31;:::i;:::-;1214:5;-1:-1:-1;1271:2:1;1256:18;;1243:32;1284:33;1243:32;1284:33;:::i;:::-;1336:7;1326:17;;;1038:311;;;;;:::o;1354:466::-;1431:6;1439;1447;1500:2;1488:9;1479:7;1475:23;1471:32;1468:2;;;1521:6;1513;1506:22;1468:2;1565:9;1552:23;1584:31;1609:5;1584:31;:::i;:::-;1634:5;-1:-1:-1;1691:2:1;1676:18;;1663:32;1704:33;1663:32;1704:33;:::i;:::-;1458:362;;1756:7;;-1:-1:-1;;;1810:2:1;1795:18;;;;1782:32;;1458:362::o;1825:325::-;1893:6;1901;1954:2;1942:9;1933:7;1929:23;1925:32;1922:2;;;1975:6;1967;1960:22;1922:2;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;2140:2;2125:18;;;;2112:32;;-1:-1:-1;;;1912:238:1:o;2155:1177::-;2239:6;2270:2;2313;2301:9;2292:7;2288:23;2284:32;2281:2;;;2334:6;2326;2319:22;2281:2;2379:9;2366:23;2408:18;2449:2;2441:6;2438:14;2435:2;;;2470:6;2462;2455:22;2435:2;2513:6;2502:9;2498:22;2488:32;;2558:7;2551:4;2547:2;2543:13;2539:27;2529:2;;2585:6;2577;2570:22;2529:2;2626;2613:16;2648:2;2644;2641:10;2638:2;;;2654:18;;:::i;:::-;2700:2;2697:1;2693:10;2732:2;2726:9;2795:2;2791:7;2786:2;2782;2778:11;2774:25;2766:6;2762:38;2850:6;2838:10;2835:22;2830:2;2818:10;2815:18;2812:46;2809:2;;;2861:18;;:::i;:::-;2897:2;2890:22;2947:18;;;2981:15;;;;-1:-1:-1;3016:11:1;;;3046;;;3042:20;;3039:33;-1:-1:-1;3036:2:1;;;3090:6;3082;3075:22;3036:2;3117:6;3108:15;;3132:169;3146:2;3143:1;3140:9;3132:169;;;3203:23;3222:3;3203:23;:::i;:::-;3191:36;;3164:1;3157:9;;;;;3247:12;;;;3279;;3132:169;;;-1:-1:-1;3320:6:1;2250:1082;-1:-1:-1;;;;;;;;2250:1082:1:o;3337:297::-;3404:6;3457:2;3445:9;3436:7;3432:23;3428:32;3425:2;;;3478:6;3470;3463:22;3425:2;3515:9;3509:16;3568:5;3561:13;3554:21;3547:5;3544:32;3534:2;;3595:6;3587;3580:22;3639:190;3698:6;3751:2;3739:9;3730:7;3726:23;3722:32;3719:2;;;3772:6;3764;3757:22;3719:2;-1:-1:-1;3800:23:1;;3709:120;-1:-1:-1;3709:120:1:o;3834:326::-;3911:6;3919;3927;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;4001:6;3993;3986:22;3948:2;-1:-1:-1;;4029:23:1;;;4099:2;4084:18;;4071:32;;-1:-1:-1;4150:2:1;4135:18;;;4122:32;;3938:222;-1:-1:-1;3938:222:1:o;4165:316::-;4253:6;4261;4269;4322:2;4310:9;4301:7;4297:23;4293:32;4290:2;;;4343:6;4335;4328:22;4290:2;4377:9;4371:16;4361:26;;4427:2;4416:9;4412:18;4406:25;4396:35;;4471:2;4460:9;4456:18;4450:25;4440:35;;4280:201;;;;;:::o;6086:603::-;6198:4;6227:2;6256;6245:9;6238:21;6288:6;6282:13;6331:6;6326:2;6315:9;6311:18;6304:34;6356:4;6369:140;6383:6;6380:1;6377:13;6369:140;;;6478:14;;;6474:23;;6468:30;6444:17;;;6463:2;6440:26;6433:66;6398:10;;6369:140;;;6527:6;6524:1;6521:13;6518:2;;;6597:4;6592:2;6583:6;6572:9;6568:22;6564:31;6557:45;6518:2;-1:-1:-1;6673:2:1;6652:15;-1:-1:-1;;6648:29:1;6633:45;;;;6680:2;6629:54;;6207:482;-1:-1:-1;;;6207:482:1:o;9031:356::-;9233:2;9215:21;;;9252:18;;;9245:30;9311:34;9306:2;9291:18;;9284:62;9378:2;9363:18;;9205:182::o;11806:983::-;12068:4;12116:3;12105:9;12101:19;12147:6;12136:9;12129:25;12173:2;12211:6;12206:2;12195:9;12191:18;12184:34;12254:3;12249:2;12238:9;12234:18;12227:31;12278:6;12313;12307:13;12344:6;12336;12329:22;12382:3;12371:9;12367:19;12360:26;;12421:2;12413:6;12409:15;12395:29;;12442:4;12455:195;12469:6;12466:1;12463:13;12455:195;;;12534:13;;-1:-1:-1;;;;;12530:39:1;12518:52;;12625:15;;;;12590:12;;;;12566:1;12484:9;12455:195;;;-1:-1:-1;;;;;;;12706:32:1;;;;12701:2;12686:18;;12679:60;-1:-1:-1;;;12770:3:1;12755:19;12748:35;12667:3;12077:712;-1:-1:-1;;;12077:712:1:o;12983:128::-;13023:3;13054:1;13050:6;13047:1;13044:13;13041:2;;;13060:18;;:::i;:::-;-1:-1:-1;13096:9:1;;13031:80::o;13116:217::-;13156:1;13182;13172:2;;-1:-1:-1;;;13207:31:1;;13261:4;13258:1;13251:15;13289:4;13214:1;13279:15;13172:2;-1:-1:-1;13318:9:1;;13162:171::o;13338:168::-;13378:7;13444:1;13440;13436:6;13432:14;13429:1;13426:21;13421:1;13414:9;13407:17;13403:45;13400:2;;;13451:18;;:::i;:::-;-1:-1:-1;13491:9:1;;13390:116::o;13511:125::-;13551:4;13579:1;13576;13573:8;13570:2;;;13584:18;;:::i;:::-;-1:-1:-1;13621:9:1;;13560:76::o;13641:135::-;13680:3;-1:-1:-1;;13701:17:1;;13698:2;;;13721:18;;:::i;:::-;-1:-1:-1;13768:1:1;13757:13;;13688:88::o;13781:127::-;13842:10;13837:3;13833:20;13830:1;13823:31;13873:4;13870:1;13863:15;13897:4;13894:1;13887:15;13913:127;13974:10;13969:3;13965:20;13962:1;13955:31;14005:4;14002:1;13995:15;14029:4;14026:1;14019:15;14045:131;-1:-1:-1;;;;;14120:31:1;;14110:42;;14100:2;;14166:1;14163;14156:12

Swarm Source

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