ETH Price: $2,506.27 (+0.18%)

Token

Camel Race (CAMEL)
 

Overview

Max Total Supply

10,000,000 CAMEL

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 CAMEL

Value
$0.00
0xc9c57ce3c51d44eaa1fee1d01cd4a930671e59c1
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:
CAMEL

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-21
*/

/**


_____________¶¶¶¶¶¶_______________________________
____________¶¶¶¶¶¶¶¶¶_____________________________
___________¶¶¶¶¶¶¶¶¶¶¶________________¶¶¶¶¶_______
__________¶¶¶¶¶¶¶¶¶¶¶¶¶______________¶¶¶¶¶¶¶¶¶¶¶__
_________¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_____________¶¶¶¶¶¶¶¶¶¶¶¶_
________¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_______¶¶¶¶¶¶¶¶¶¶¶__
______¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_____¶¶¶¶¶¶¶¶¶_____
_____¶¶¶¶¶¶¶¶¶¶¶¶¶CAMELRACE¶¶¶¶¶¶¶___¶¶¶¶¶¶¶¶______
____¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_______
___¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_______
___¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶________
___¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶________
__¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶__________
_¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶___¶¶¶¶¶¶____________
_¶_¶¶¶¶¶¶¶____________¶¶¶¶¶¶______________________
___¶¶¶¶¶¶_____________¶¶¶¶¶_______________________
___¶¶¶¶¶______________¶¶¶¶¶_______________________
__¶¶¶¶¶¶______________¶¶¶¶________________________
__¶¶¶_¶¶______________¶¶¶¶________________________
___¶¶_¶¶______________¶¶¶_________________________
___¶¶_¶¶______________¶¶__________________________
___¶¶__¶¶_____________¶¶__________________________
___¶¶¶__¶¶¶¶__________¶¶¶¶________________________
___¶¶¶¶__¶¶¶_________¶¶¶¶¶¶_______________________
____¶¶¶______________¶¶¶__________________________
______________________¶¶¶¶________________________

Telegram:https://t.me/Camelrace

**/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

contract CAMEL is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address payable private _taxWallet;
    uint256 private firstBlock;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 1;
    uint256 private _finalSellTax = 2;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 20;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal =  10000000 * 10**_decimals;
    string private constant _name = "Camel Race";
    string private constant _symbol = "CAMEL";
    uint256 public _maxTxAmount = _tTotal.mul(20).div(1000);
    uint256 public _maxWalletSize = _tTotal.mul(20).div(1000);
    uint256 public _taxSwapThreshold = _tTotal.mul(1).div(1000);
    uint256 public _maxTaxSwap = _tTotal.mul(20).div(1000);

    IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event _maxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        _balances[address(this)] = _tTotal;
        emit Transfer(address(0), address(this), _tTotal);

        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    }

    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 _balances[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 buyCount() public view returns (uint256) {
        return _buyCount;
    }

    function sellTax() public view returns (uint256) {
        return (_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax;
    }

    function buyTax() public view returns (uint256) {
        return (_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax;
    }

    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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }

                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
    }

    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 {
        _taxWallet.transfer(amount);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit _maxTxAmountUpdated(_tTotal);
    }

    function openTrading() external payable onlyOwner {
        require(!tradingOpen,"trading is already open");

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

    function manualSwap() external onlyOwner {
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function rescueTokens(address token) external {
        IERC20(token).transfer(_taxWallet, IERC20(token).balanceOf(address(this)));
    }
}

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":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":"_maxTxAmount","type":"uint256"}],"name":"_maxTxAmountUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526014600755601460085560016009556002600a556014600b556014600c556014600d556000600e55620000806103e86200006c60146009600a62000049919062000766565b62000058906298968062000777565b6200041160201b620009881790919060201c565b620004a560201b62000a0e1790919060201c565b600f556200009e6103e86200006c6014620000496009600a62000766565b601055620000bc6103e86200006c6001620000496009600a62000766565b601155620000da6103e86200006c6014620000496009600a62000766565b601255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556014805462ffffff60a01b191690553480156200011f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633178155600080546001600160a01b03908116825260036020526040808320805460ff1990811660019081179092553085528285208054821683179055945490921683529091208054909216179055620001cc6009600a62000766565b620001db906298968062000777565b30600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021e6009600a62000766565b6200022d906298968062000777565b60405190815260200160405180910390a3601354620002749030906001600160a01b03166200025f6009600a62000766565b6200026e906298968062000777565b620004ef565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ee919062000799565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000377919062000799565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003eb919062000799565b601480546001600160a01b0319166001600160a01b03929092169190911790556200083f565b60008262000422575060006200049f565b600062000430838562000777565b9050826200043f8583620007c4565b146200049c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200049c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200061760201b60201c565b6001600160a01b038316620005535760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000493565b6001600160a01b038216620005b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000493565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081836200063b5760405162461bcd60e51b8152600401620004939190620007e7565b5060006200064a8486620007c4565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006aa5781600019048211156200068e576200068e62000653565b808516156200069c57918102915b93841c93908002906200066e565b509250929050565b600082620006c3575060016200049f565b81620006d2575060006200049f565b8160018114620006eb5760028114620006f65762000716565b60019150506200049f565b60ff8411156200070a576200070a62000653565b50506001821b6200049f565b5060208310610133831016604e8410600b84101617156200073b575081810a6200049f565b62000747838362000669565b80600019048211156200075e576200075e62000653565b029392505050565b60006200049c60ff841683620006b2565b600081600019048311821515161562000794576200079462000653565b500290565b600060208284031215620007ac57600080fd5b81516001600160a01b03811681146200049c57600080fd5b600082620007e257634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b818110156200081657858101830151858201604001528201620007f8565b8181111562000829576000604083870101525b50601f01601f1916929092016040019392505050565b6117c1806200084f6000396000f3fe6080604052600436106101435760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610395578063bf474bed146103b5578063c9567bf9146103cb578063ca703075146103d3578063cc1776d3146103e8578063dd62ed3e146103fd57600080fd5b8063715018a6146102f3578063751039fc146103085780637d1db4a51461031d5780638da5cb5b146103335780638f9a55c01461035157806395d89b411461036757600080fd5b806323b872dd1161010857806323b872dd1461021f578063313ce5671461023f57806349bd5a5e1461025b5780634f7041a51461029357806351bc3c85146102a857806370a08231146102bd57600080fd5b8062ae3bf81461014f57806306fdde0314610171578063095ea7b3146101b65780630faee56f146101e657806318160ddd1461020a57600080fd5b3661014a57005b600080fd5b34801561015b57600080fd5b5061016f61016a366004611375565b610443565b005b34801561017d57600080fd5b5060408051808201909152600a81526943616d656c205261636560b01b60208201525b6040516101ad9190611392565b60405180910390f35b3480156101c257600080fd5b506101d66101d13660046113e7565b61052d565b60405190151581526020016101ad565b3480156101f257600080fd5b506101fc60125481565b6040519081526020016101ad565b34801561021657600080fd5b506101fc610544565b34801561022b57600080fd5b506101d661023a366004611413565b610564565b34801561024b57600080fd5b50604051600981526020016101ad565b34801561026757600080fd5b5060145461027b906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b34801561029f57600080fd5b506101fc6105cd565b3480156102b457600080fd5b5061016f6105e8565b3480156102c957600080fd5b506101fc6102d8366004611375565b6001600160a01b031660009081526001602052604090205490565b3480156102ff57600080fd5b5061016f61064a565b34801561031457600080fd5b5061016f6106be565b34801561032957600080fd5b506101fc600f5481565b34801561033f57600080fd5b506000546001600160a01b031661027b565b34801561035d57600080fd5b506101fc60105481565b34801561037357600080fd5b5060408051808201909152600581526410d053515360da1b60208201526101a0565b3480156103a157600080fd5b506101d66103b03660046113e7565b61076d565b3480156103c157600080fd5b506101fc60115481565b61016f61077a565b3480156103df57600080fd5b50600e546101fc565b3480156103f457600080fd5b506101fc61096d565b34801561040957600080fd5b506101fc610418366004611454565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6005546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba919061148d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052991906114a6565b5050565b600061053a338484610a50565b5060015b92915050565b60006105526009600a6115c2565b61055f90629896806115d1565b905090565b6000610571848484610b74565b6105c384336105be85604051806060016040528060288152602001611764602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061108b565b610a50565b5060019392505050565b6000600b54600e54116105e1575060075490565b5060095490565b6000546001600160a01b0316331461061b5760405162461bcd60e51b8152600401610612906115f0565b60405180910390fd5b30600090815260016020526040902054801561063a5761063a816110c5565b478015610529576105298161123f565b6000546001600160a01b031633146106745760405162461bcd60e51b8152600401610612906115f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106e85760405162461bcd60e51b8152600401610612906115f0565b6106f46009600a6115c2565b61070190629896806115d1565b600f556107106009600a6115c2565b61071d90629896806115d1565b6010557f9db9a6bb34668471bb42c5125336636b21681b762cc518e445a94386af2d443761074d6009600a6115c2565b61075a90629896806115d1565b60405190815260200160405180910390a1565b600061053a338484610b74565b6000546001600160a01b031633146107a45760405162461bcd60e51b8152600401610612906115f0565b601454600160a01b900460ff16156107fe5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610612565b6013546001600160a01b031663f305d7194730610830816001600160a01b031660009081526001602052604090205490565b6000806108456000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d29190611625565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561092b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094f91906114a6565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b6000600c54600e5411610981575060085490565b50600a5490565b6000826109975750600061053e565b60006109a383856115d1565b9050826109b08583611653565b14610a075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610612565b9392505050565b6000610a0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611279565b6001600160a01b038316610ab25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610612565b6001600160a01b038216610b135760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610612565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610612565b6001600160a01b038216610c3a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610612565b60008111610c9c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610612565b600080546001600160a01b03858116911614801590610cc957506000546001600160a01b03848116911614155b15610f4857610cfa6064610cf4600b54600e5411610ce957600754610ced565b6009545b8590610988565b90610a0e565b6014549091506001600160a01b038581169116148015610d2857506013546001600160a01b03848116911614155b8015610d4d57506001600160a01b03831660009081526003602052604090205460ff16155b15610e5757600f54821115610da45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610612565b60105482610dc7856001600160a01b031660009081526001602052604090205490565b610dd19190611675565b1115610e1f5760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610612565b436006546003610e2f9190611675565b1115610e4157823b15610e4157600080fd5b600e8054906000610e518361168d565b91905055505b6014546001600160a01b038481169116148015610e7d57506001600160a01b0384163014155b15610eaa57610ea76064610cf4600c54600e5411610e9d57600854610ced565b600a548590610988565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610ee157506014546001600160a01b038581169116145b8015610ef65750601454600160b01b900460ff165b8015610f03575060115481115b8015610f125750600d54600e54115b15610f4657610f34610f2f84610f2a846012546112a7565b6112a7565b6110c5565b478015610f4457610f444761123f565b505b505b8015610fc25730600090815260016020526040902054610f6890826112bc565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb99085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610fe5908361131b565b6001600160a01b03851660009081526001602052604090205561102a61100b838361131b565b6001600160a01b038516600090815260016020526040902054906112bc565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611074858561131b565b60405190815260200160405180910390a350505050565b600081848411156110af5760405162461bcd60e51b81526004016106129190611392565b5060006110bc84866116a8565b95945050505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110d5761110d6116bf565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a91906116d5565b8160018151811061119d5761119d6116bf565b6001600160a01b0392831660209182029290920101526013546111c39130911684610a50565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111fc9085906000908690309042906004016116f2565b600060405180830381600087803b15801561121657600080fd5b505af115801561122a573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610529573d6000803e3d6000fd5b6000818361129a5760405162461bcd60e51b81526004016106129190611392565b5060006110bc8486611653565b60008183116112b65782610a07565b50919050565b6000806112c98385611675565b905083811015610a075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610612565b6000610a0783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061108b565b6001600160a01b038116811461137257600080fd5b50565b60006020828403121561138757600080fd5b8135610a078161135d565b600060208083528351808285015260005b818110156113bf578581018301518582016040015282016113a3565b818111156113d1576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156113fa57600080fd5b82356114058161135d565b946020939093013593505050565b60008060006060848603121561142857600080fd5b83356114338161135d565b925060208401356114438161135d565b929592945050506040919091013590565b6000806040838503121561146757600080fd5b82356114728161135d565b915060208301356114828161135d565b809150509250929050565b60006020828403121561149f57600080fd5b5051919050565b6000602082840312156114b857600080fd5b81518015158114610a0757600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115195781600019048211156114ff576114ff6114c8565b8085161561150c57918102915b93841c93908002906114e3565b509250929050565b6000826115305750600161053e565b8161153d5750600061053e565b8160018114611553576002811461155d57611579565b600191505061053e565b60ff84111561156e5761156e6114c8565b50506001821b61053e565b5060208310610133831016604e8410600b841016171561159c575081810a61053e565b6115a683836114de565b80600019048211156115ba576115ba6114c8565b029392505050565b6000610a0760ff841683611521565b60008160001904831182151516156115eb576115eb6114c8565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561163a57600080fd5b8351925060208401519150604084015190509250925092565b60008261167057634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611688576116886114c8565b500190565b60006000198214156116a1576116a16114c8565b5060010190565b6000828210156116ba576116ba6114c8565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116e757600080fd5b8151610a078161135d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117425784516001600160a01b03168352938301939183019160010161171d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203fa6a3720cd5956ba5bcdafe8efc57558dadc570a1995be26a1e7d4ae05214f164736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101435760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610395578063bf474bed146103b5578063c9567bf9146103cb578063ca703075146103d3578063cc1776d3146103e8578063dd62ed3e146103fd57600080fd5b8063715018a6146102f3578063751039fc146103085780637d1db4a51461031d5780638da5cb5b146103335780638f9a55c01461035157806395d89b411461036757600080fd5b806323b872dd1161010857806323b872dd1461021f578063313ce5671461023f57806349bd5a5e1461025b5780634f7041a51461029357806351bc3c85146102a857806370a08231146102bd57600080fd5b8062ae3bf81461014f57806306fdde0314610171578063095ea7b3146101b65780630faee56f146101e657806318160ddd1461020a57600080fd5b3661014a57005b600080fd5b34801561015b57600080fd5b5061016f61016a366004611375565b610443565b005b34801561017d57600080fd5b5060408051808201909152600a81526943616d656c205261636560b01b60208201525b6040516101ad9190611392565b60405180910390f35b3480156101c257600080fd5b506101d66101d13660046113e7565b61052d565b60405190151581526020016101ad565b3480156101f257600080fd5b506101fc60125481565b6040519081526020016101ad565b34801561021657600080fd5b506101fc610544565b34801561022b57600080fd5b506101d661023a366004611413565b610564565b34801561024b57600080fd5b50604051600981526020016101ad565b34801561026757600080fd5b5060145461027b906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b34801561029f57600080fd5b506101fc6105cd565b3480156102b457600080fd5b5061016f6105e8565b3480156102c957600080fd5b506101fc6102d8366004611375565b6001600160a01b031660009081526001602052604090205490565b3480156102ff57600080fd5b5061016f61064a565b34801561031457600080fd5b5061016f6106be565b34801561032957600080fd5b506101fc600f5481565b34801561033f57600080fd5b506000546001600160a01b031661027b565b34801561035d57600080fd5b506101fc60105481565b34801561037357600080fd5b5060408051808201909152600581526410d053515360da1b60208201526101a0565b3480156103a157600080fd5b506101d66103b03660046113e7565b61076d565b3480156103c157600080fd5b506101fc60115481565b61016f61077a565b3480156103df57600080fd5b50600e546101fc565b3480156103f457600080fd5b506101fc61096d565b34801561040957600080fd5b506101fc610418366004611454565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6005546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba919061148d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052991906114a6565b5050565b600061053a338484610a50565b5060015b92915050565b60006105526009600a6115c2565b61055f90629896806115d1565b905090565b6000610571848484610b74565b6105c384336105be85604051806060016040528060288152602001611764602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061108b565b610a50565b5060019392505050565b6000600b54600e54116105e1575060075490565b5060095490565b6000546001600160a01b0316331461061b5760405162461bcd60e51b8152600401610612906115f0565b60405180910390fd5b30600090815260016020526040902054801561063a5761063a816110c5565b478015610529576105298161123f565b6000546001600160a01b031633146106745760405162461bcd60e51b8152600401610612906115f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106e85760405162461bcd60e51b8152600401610612906115f0565b6106f46009600a6115c2565b61070190629896806115d1565b600f556107106009600a6115c2565b61071d90629896806115d1565b6010557f9db9a6bb34668471bb42c5125336636b21681b762cc518e445a94386af2d443761074d6009600a6115c2565b61075a90629896806115d1565b60405190815260200160405180910390a1565b600061053a338484610b74565b6000546001600160a01b031633146107a45760405162461bcd60e51b8152600401610612906115f0565b601454600160a01b900460ff16156107fe5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610612565b6013546001600160a01b031663f305d7194730610830816001600160a01b031660009081526001602052604090205490565b6000806108456000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d29190611625565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561092b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094f91906114a6565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b6000600c54600e5411610981575060085490565b50600a5490565b6000826109975750600061053e565b60006109a383856115d1565b9050826109b08583611653565b14610a075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610612565b9392505050565b6000610a0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611279565b6001600160a01b038316610ab25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610612565b6001600160a01b038216610b135760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610612565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610612565b6001600160a01b038216610c3a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610612565b60008111610c9c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610612565b600080546001600160a01b03858116911614801590610cc957506000546001600160a01b03848116911614155b15610f4857610cfa6064610cf4600b54600e5411610ce957600754610ced565b6009545b8590610988565b90610a0e565b6014549091506001600160a01b038581169116148015610d2857506013546001600160a01b03848116911614155b8015610d4d57506001600160a01b03831660009081526003602052604090205460ff16155b15610e5757600f54821115610da45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610612565b60105482610dc7856001600160a01b031660009081526001602052604090205490565b610dd19190611675565b1115610e1f5760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610612565b436006546003610e2f9190611675565b1115610e4157823b15610e4157600080fd5b600e8054906000610e518361168d565b91905055505b6014546001600160a01b038481169116148015610e7d57506001600160a01b0384163014155b15610eaa57610ea76064610cf4600c54600e5411610e9d57600854610ced565b600a548590610988565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610ee157506014546001600160a01b038581169116145b8015610ef65750601454600160b01b900460ff165b8015610f03575060115481115b8015610f125750600d54600e54115b15610f4657610f34610f2f84610f2a846012546112a7565b6112a7565b6110c5565b478015610f4457610f444761123f565b505b505b8015610fc25730600090815260016020526040902054610f6890826112bc565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb99085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610fe5908361131b565b6001600160a01b03851660009081526001602052604090205561102a61100b838361131b565b6001600160a01b038516600090815260016020526040902054906112bc565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611074858561131b565b60405190815260200160405180910390a350505050565b600081848411156110af5760405162461bcd60e51b81526004016106129190611392565b5060006110bc84866116a8565b95945050505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110d5761110d6116bf565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a91906116d5565b8160018151811061119d5761119d6116bf565b6001600160a01b0392831660209182029290920101526013546111c39130911684610a50565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111fc9085906000908690309042906004016116f2565b600060405180830381600087803b15801561121657600080fd5b505af115801561122a573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610529573d6000803e3d6000fd5b6000818361129a5760405162461bcd60e51b81526004016106129190611392565b5060006110bc8486611653565b60008183116112b65782610a07565b50919050565b6000806112c98385611675565b905083811015610a075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610612565b6000610a0783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061108b565b6001600160a01b038116811461137257600080fd5b50565b60006020828403121561138757600080fd5b8135610a078161135d565b600060208083528351808285015260005b818110156113bf578581018301518582016040015282016113a3565b818111156113d1576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156113fa57600080fd5b82356114058161135d565b946020939093013593505050565b60008060006060848603121561142857600080fd5b83356114338161135d565b925060208401356114438161135d565b929592945050506040919091013590565b6000806040838503121561146757600080fd5b82356114728161135d565b915060208301356114828161135d565b809150509250929050565b60006020828403121561149f57600080fd5b5051919050565b6000602082840312156114b857600080fd5b81518015158114610a0757600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115195781600019048211156114ff576114ff6114c8565b8085161561150c57918102915b93841c93908002906114e3565b509250929050565b6000826115305750600161053e565b8161153d5750600061053e565b8160018114611553576002811461155d57611579565b600191505061053e565b60ff84111561156e5761156e6114c8565b50506001821b61053e565b5060208310610133831016604e8410600b841016171561159c575081810a61053e565b6115a683836114de565b80600019048211156115ba576115ba6114c8565b029392505050565b6000610a0760ff841683611521565b60008160001904831182151516156115eb576115eb6114c8565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561163a57600080fd5b8351925060208401519150604084015190509250925092565b60008261167057634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611688576116886114c8565b500190565b60006000198214156116a1576116a16114c8565b5060010190565b6000828210156116ba576116ba6114c8565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116e757600080fd5b8151610a078161135d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117425784516001600160a01b03168352938301939183019160010161171d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203fa6a3720cd5956ba5bcdafe8efc57558dadc570a1995be26a1e7d4ae05214f164736f6c634300080a0033

Deployed Bytecode Sourcemap

5391:8223:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13472:139;;;;;;;;;;-1:-1:-1;13472:139:0;;;;;:::i;:::-;;:::i;:::-;;7539:83;;;;;;;;;;-1:-1:-1;7609:5:0;;;;;;;;;;;;-1:-1:-1;;;7609:5:0;;;;7539:83;;;;;;;:::i;:::-;;;;;;;;8372:161;;;;;;;;;;-1:-1:-1;8372:161:0;;;;;:::i;:::-;;:::i;:::-;;;1489:14:1;;1482:22;1464:41;;1452:2;1437:18;8372:161:0;1324:187:1;6545:54:0;;;;;;;;;;;;;;;;;;;1662:25:1;;;1650:2;1635:18;6545:54:0;1516:177:1;7816:95:0;;;;;;;;;;;;;:::i;8541:313::-;;;;;;;;;;-1:-1:-1;8541:313:0;;;;;:::i;:::-;;:::i;7725:83::-;;;;;;;;;;-1:-1:-1;7725:83:0;;6179:1;2301:36:1;;2289:2;2274:18;7725:83:0;2159:184:1;6722:28:0;;;;;;;;;;-1:-1:-1;6722:28:0;;;;-1:-1:-1;;;;;6722:28:0;;;;;;-1:-1:-1;;;;;2512:32:1;;;2494:51;;2482:2;2467:18;6722:28:0;2348:203:1;9096:129:0;;;;;;;;;;;;;:::i;13136:328::-;;;;;;;;;;;;;:::i;7919:119::-;;;;;;;;;;-1:-1:-1;7919:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8012:18:0;7985:7;8012:18;;;:9;:18;;;;;;;7919:119;4472:148;;;;;;;;;;;;;:::i;12487:162::-;;;;;;;;;;;;;:::i;6353:55::-;;;;;;;;;;;;;;;;4258:79;;;;;;;;;;-1:-1:-1;4296:7:0;4323:6;-1:-1:-1;;;;;4323:6:0;4258:79;;6415:57;;;;;;;;;;;;;;;;7630:87;;;;;;;;;;-1:-1:-1;7702:7:0;;;;;;;;;;;;-1:-1:-1;;;7702:7:0;;;;7630:87;;8046:167;;;;;;;;;;-1:-1:-1;8046:167:0;;;;;:::i;:::-;;:::i;6479:59::-;;;;;;;;;;;;;;;;12657:434;;;:::i;8862:85::-;;;;;;;;;;-1:-1:-1;8930:9:0;;8862:85;;8955:133;;;;;;;;;;;;;:::i;8221:143::-;;;;;;;;;;-1:-1:-1;8221:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8329:18:0;;;8302:7;8329:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8221:143;13472:139;13552:10;;13564:38;;-1:-1:-1;;;13564:38:0;;13596:4;13564:38;;;2494:51:1;-1:-1:-1;;;;;13529:22:0;;;;;;13552:10;;;13529:22;;13564:23;;2467:18:1;;13564:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13529:74;;-1:-1:-1;;;;;;13529:74:0;;;;;;;-1:-1:-1;;;;;3338:32:1;;;13529:74:0;;;3320:51:1;3387:18;;;3380:34;3293:18;;13529:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13472:139;:::o;8372:161::-;8447:4;8464:39;2093:10;8487:7;8496:6;8464:8;:39::i;:::-;-1:-1:-1;8521:4:0;8372:161;;;;;:::o;7816:95::-;7869:7;6234:13;6179:1;6234:2;:13;:::i;:::-;6223:24;;:8;:24;:::i;:::-;7889:14;;7816:95;:::o;8541:313::-;8639:4;8656:36;8666:6;8674:9;8685:6;8656:9;:36::i;:::-;8703:121;8712:6;2093:10;8734:89;8772:6;8734:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8734:19:0;;;;;;:11;:19;;;;;;;;2093:10;8734:33;;;;;;;;;;:37;:89::i;:::-;8703:8;:121::i;:::-;-1:-1:-1;8842:4:0;8541:313;;;;;:::o;9096:129::-;9135:7;9173:15;;9163:9;;:25;9162:55;;-1:-1:-1;9203:14:0;;;7816:95::o;9162:55::-;-1:-1:-1;9190:12:0;;;9096:129::o;13136:328::-;4385:6;;-1:-1:-1;;;;;4385:6:0;2093:10;4385:22;4377:67;;;;-1:-1:-1;;;4377:67:0;;;;;;;:::i;:::-;;;;;;;;;13229:4:::1;13188:20;8012:18:::0;;;:9;:18;;;;;;13249:16;;13246:78:::1;;13282:30;13299:12;13282:16;:30::i;:::-;13355:21;13390:14:::0;;13387:70:::1;;13421:24;13434:10;13421:12;:24::i;4472:148::-:0;4385:6;;-1:-1:-1;;;;;4385:6:0;2093:10;4385:22;4377:67;;;;-1:-1:-1;;;4377:67:0;;;;;;;:::i;:::-;4579:1:::1;4563:6:::0;;4542:40:::1;::::0;-1:-1:-1;;;;;4563:6:0;;::::1;::::0;4542:40:::1;::::0;4579:1;;4542:40:::1;4610:1;4593:19:::0;;-1:-1:-1;;;;;;4593:19:0::1;::::0;;4472:148::o;12487:162::-;4385:6;;-1:-1:-1;;;;;4385:6:0;2093:10;4385:22;4377:67;;;;-1:-1:-1;;;4377:67:0;;;;;;;:::i;:::-;6234:13:::1;6179:1;6234:2;:13;:::i;:::-;6223:24;::::0;:8:::1;:24;:::i;:::-;12540:12;:22:::0;6234:13:::1;6179:1;6234:2;:13;:::i;:::-;6223:24;::::0;:8:::1;:24;:::i;:::-;12573:14;:24:::0;12613:28:::1;6234:13;6179:1;6234:2;:13;:::i;:::-;6223:24;::::0;:8:::1;:24;:::i;:::-;12613:28;::::0;1662:25:1;;;1650:2;1635:18;12613:28:0::1;;;;;;;12487:162::o:0;8046:167::-;8124:4;8141:42;2093:10;8165:9;8176:6;8141:9;:42::i;12657:434::-;4385:6;;-1:-1:-1;;;;;4385:6:0;2093:10;4385:22;4377:67;;;;-1:-1:-1;;;4377:67:0;;;;;;;:::i;:::-;12727:11:::1;::::0;-1:-1:-1;;;12727:11:0;::::1;;;12726:12;12718:47;;;::::0;-1:-1:-1;;;12718:47:0;;5958:2:1;12718:47:0::1;::::0;::::1;5940:21:1::0;5997:2;5977:18;;;5970:30;6036:25;6016:18;;;6009:53;6079:18;;12718:47:0::1;5756:347:1::0;12718:47:0::1;12778:15;::::0;-1:-1:-1;;;;;12778:15:0::1;:31;12817:21;12848:4;12854:24;12848:4:::0;-1:-1:-1;;;;;8012:18:0;7985:7;8012:18;;;:9;:18;;;;;;;7919:119;12854:24:::1;12879:1;12881::::0;12883:7:::1;4296::::0;4323:6;-1:-1:-1;;;;;4323:6:0;;4258:79;12883:7:::1;12778:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12778:129:0;;;-1:-1:-1;;;;;6467:15:1;;;12778:129:0::1;::::0;::::1;6449:34:1::0;6499:18;;;6492:34;;;;6542:18;;;6535:34;;;;6585:18;;;6578:34;6649:15;;;6628:19;;;6621:44;12891:15:0::1;6681:19:1::0;;;6674:35;6383:19;;12778:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12925:13:0::1;::::0;12956:15:::1;::::0;12918:71:::1;::::0;-1:-1:-1;;;12918:71:0;;-1:-1:-1;;;;;12956:15:0;;::::1;12918:71;::::0;::::1;3320:51:1::0;-1:-1:-1;;3387:18:1;;;3380:34;12925:13:0;::::1;::::0;-1:-1:-1;12918:29:0::1;::::0;3293:18:1;;12918:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13000:11:0::1;:18:::0;;-1:-1:-1;;;;13029:18:0;-1:-1:-1;;;13029:18:0;;;13071:12:::1;13058:10;:25:::0;12657:434::o;8955:133::-;8995:7;9033:16;;9023:9;;:26;9022:58;;-1:-1:-1;9065:15:0;;;7816:95::o;9022:58::-;-1:-1:-1;9051:13:0;;;8955:133::o;3348:246::-;3406:7;3430:6;3426:47;;-1:-1:-1;3460:1:0;3453:8;;3426:47;3483:9;3495:5;3499:1;3495;:5;:::i;:::-;3483:17;-1:-1:-1;3528:1:0;3519:5;3523:1;3483:17;3519:5;:::i;:::-;:10;3511:56;;;;-1:-1:-1;;;3511:56:0;;7734:2:1;3511:56:0;;;7716:21:1;7773:2;7753:18;;;7746:30;7812:34;7792:18;;;7785:62;-1:-1:-1;;;7863:18:1;;;7856:31;7904:19;;3511:56:0;7532:397:1;3511:56:0;3585:1;3348:246;-1:-1:-1;;;3348:246:0:o;3602:132::-;3660:7;3687:39;3691:1;3694;3687:39;;;;;;;;;;;;;;;;;:3;:39::i;9233:335::-;-1:-1:-1;;;;;9326:19:0;;9318:68;;;;-1:-1:-1;;;9318:68:0;;8136:2:1;9318:68:0;;;8118:21:1;8175:2;8155:18;;;8148:30;8214:34;8194:18;;;8187:62;-1:-1:-1;;;8265:18:1;;;8258:34;8309:19;;9318:68:0;7934:400:1;9318:68:0;-1:-1:-1;;;;;9405:21:0;;9397:68;;;;-1:-1:-1;;;9397:68:0;;8541:2:1;9397:68:0;;;8523:21:1;8580:2;8560:18;;;8553:30;8619:34;8599:18;;;8592:62;-1:-1:-1;;;8670:18:1;;;8663:32;8712:19;;9397:68:0;8339:398:1;9397:68:0;-1:-1:-1;;;;;9476:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9528:32;;1662:25:1;;;9528:32:0;;1635:18:1;9528:32:0;;;;;;;9233:335;;;:::o;9576:2001::-;-1:-1:-1;;;;;9664:18:0;;9656:68;;;;-1:-1:-1;;;9656:68:0;;8944:2:1;9656:68:0;;;8926:21:1;8983:2;8963:18;;;8956:30;9022:34;9002:18;;;8995:62;-1:-1:-1;;;9073:18:1;;;9066:35;9118:19;;9656:68:0;8742:401:1;9656:68:0;-1:-1:-1;;;;;9743:16:0;;9735:64;;;;-1:-1:-1;;;9735:64:0;;9350:2:1;9735:64:0;;;9332:21:1;9389:2;9369:18;;;9362:30;9428:34;9408:18;;;9401:62;-1:-1:-1;;;9479:18:1;;;9472:33;9522:19;;9735:64:0;9148:399:1;9735:64:0;9827:1;9818:6;:10;9810:64;;;;-1:-1:-1;;;9810:64:0;;9754:2:1;9810:64:0;;;9736:21:1;9793:2;9773:18;;;9766:30;9832:34;9812:18;;;9805:62;-1:-1:-1;;;9883:18:1;;;9876:39;9932:19;;9810:64:0;9552:405:1;9810:64:0;9885:17;4323:6;;-1:-1:-1;;;;;9919:15:0;;;4323:6;;9919:15;;;;:32;;-1:-1:-1;4296:7:0;4323:6;-1:-1:-1;;;;;9938:13:0;;;4323:6;;9938:13;;9919:32;9915:1302;;;9980:76;10052:3;9980:67;10002:15;;9992:9;;:25;9991:55;;10032:14;;9991:55;;;10019:12;;9991:55;9980:6;;:10;:67::i;:::-;:71;;:76::i;:::-;10085:13;;9968:88;;-1:-1:-1;;;;;;10077:21:0;;;10085:13;;10077:21;:55;;;;-1:-1:-1;10116:15:0;;-1:-1:-1;;;;;10102:30:0;;;10116:15;;10102:30;;10077:55;:83;;;;-1:-1:-1;;;;;;10138:22:0;;;;;;:18;:22;;;;;;;;10136:24;10077:83;10073:438;;;10200:12;;10190:6;:22;;10182:60;;;;-1:-1:-1;;;10182:60:0;;10164:2:1;10182:60:0;;;10146:21:1;10203:2;10183:18;;;10176:30;10242:27;10222:18;;;10215:55;10287:18;;10182:60:0;9962:349:1;10182:60:0;10295:14;;10285:6;10269:13;10279:2;-1:-1:-1;;;;;8012:18:0;7985:7;8012:18;;;:9;:18;;;;;;;7919:119;10269:13;:22;;;;:::i;:::-;:40;;10261:80;;;;-1:-1:-1;;;10261:80:0;;10651:2:1;10261:80:0;;;10633:21:1;10690:2;10670:18;;;10663:30;10729:29;10709:18;;;10702:57;10776:18;;10261:80:0;10449:351:1;10261:80:0;10383:12;10366:10;;10379:1;10366:14;;;;:::i;:::-;:29;10362:102;;;11716:20;;11764:8;10420:24;;;;;;10484:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10073:438;10536:13;;-1:-1:-1;;;;;10530:19:0;;;10536:13;;10530:19;:43;;;;-1:-1:-1;;;;;;10553:20:0;;10568:4;10553:20;;10530:43;10527:174;;;10606:79;10681:3;10606:70;10628:16;;10618:9;;:26;10617:58;;10660:15;;10617:58;;;10646:13;;10606:6;;:10;:70::i;:79::-;10594:91;;10527:174;10766:4;10717:28;8012:18;;;:9;:18;;;;;;10792:6;;-1:-1:-1;;;10792:6:0;;;;10791:7;:30;;;;-1:-1:-1;10808:13:0;;-1:-1:-1;;;;;10802:19:0;;;10808:13;;10802:19;10791:30;:45;;;;-1:-1:-1;10825:11:0;;-1:-1:-1;;;10825:11:0;;;;10791:45;:87;;;;;10861:17;;10840:20;:38;10791:87;:119;;;;;10892:18;;10882:9;;:28;10791:119;10787:419;;;10931:67;10948:49;10952:6;10959:37;10963:20;10984:11;;10959:3;:37::i;:::-;10948:3;:49::i;:::-;10931:16;:67::i;:::-;11046:21;11089:22;;11086:105;;11136:35;11149:21;11136:12;:35::i;:::-;10912:294;10787:419;9953:1264;9915:1302;11232:11;;11229:165;;11302:4;11284:24;;;;:9;:24;;;;;;:39;;11313:9;11284:28;:39::i;:::-;11277:4;11259:24;;;;:9;:24;;;;;;;:64;;;;11343:39;;-1:-1:-1;;;;;11343:39:0;;;;;;;11372:9;1662:25:1;;1650:2;1635:18;;1516:177;11343:39:0;;;;;;;;11229:165;-1:-1:-1;;;;;11420:15:0;;;;;;:9;:15;;;;;;:27;;11440:6;11420:19;:27::i;:::-;-1:-1:-1;;;;;11404:15:0;;;;;;:9;:15;;;;;:43;11472:40;11490:21;:6;11501:9;11490:10;:21::i;:::-;-1:-1:-1;;;;;11472:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11458:13:0;;;;;;;:9;:13;;;;;:54;;;;11528:41;;;11547:21;:6;11558:9;11547:10;:21::i;:::-;11528:41;;1662:25:1;;;1650:2;1635:18;11528:41:0;;;;;;;9645:1932;9576:2001;;;:::o;3150:190::-;3236:7;3272:12;3264:6;;;;3256:29;;;;-1:-1:-1;;;3256:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3296:9:0;3308:5;3312:1;3308;:5;:::i;:::-;3296:17;3150:190;-1:-1:-1;;;;;3150:190:0:o;11896:483::-;6954:6;:13;;-1:-1:-1;;;;6954:13:0;-1:-1:-1;;;6954:13:0;;;11998:16:::1;::::0;;12012:1:::1;11998:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11998:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11998:16:0::1;11974:40;;12043:4;12025;12030:1;12025:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12025:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12069:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12069:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12025:7;;12069:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12059:4;12064:1;12059:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12059:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12134:15:::1;::::0;12102:62:::1;::::0;12119:4:::1;::::0;12134:15:::1;12152:11:::0;12102:8:::1;:62::i;:::-;12175:15;::::0;:196:::1;::::0;-1:-1:-1;;;12175:196:0;;-1:-1:-1;;;;;12175:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12256:11;;12175:15:::1;::::0;12298:4;;12325::::1;::::0;12345:15:::1;::::0;12175:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6990:6:0;:14;;-1:-1:-1;;;;6990:14:0;;;-1:-1:-1;;;;11896:483:0:o;12387:92::-;12444:10;;:27;;-1:-1:-1;;;;;12444:10:0;;;;:27;;;;;12464:6;;12444:10;:27;:10;:27;12464:6;12444:10;:27;;;;;;;;;;;;;;;;;;;3742:189;3828:7;3863:12;3856:5;3848:28;;;;-1:-1:-1;;;3848:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3887:9:0;3899:5;3903:1;3899;:5;:::i;11788:100::-;11845:7;11874:1;11872;:3;11871:9;;11879:1;11871:9;;;-1:-1:-1;11877:1:0;11788:100;-1:-1:-1;11788:100:0:o;2819:179::-;2877:7;;2909:5;2913:1;2909;:5;:::i;:::-;2897:17;;2938:1;2933;:6;;2925:46;;;;-1:-1:-1;;;2925:46:0;;12782:2:1;2925:46:0;;;12764:21:1;12821:2;12801:18;;;12794:30;12860:29;12840:18;;;12833:57;12907:18;;2925:46:0;12580:351:1;3006:136:0;3064:7;3091:43;3095:1;3098;3091:43;;;;;;;;;;;;;;;;;:3;:43::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:597::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;840:6;837:1;834:13;831:91;;;910:1;905:2;896:6;885:9;881:22;877:31;870:42;831:91;-1:-1:-1;983:2:1;962:15;-1:-1:-1;;958:29:1;943:45;;;;990:2;939:54;;402:597;-1:-1:-1;;;402:597:1:o;1004:315::-;1072:6;1080;1133:2;1121:9;1112:7;1108:23;1104:32;1101:52;;;1149:1;1146;1139:12;1101:52;1188:9;1175:23;1207:31;1232:5;1207:31;:::i;:::-;1257:5;1309:2;1294:18;;;;1281:32;;-1:-1:-1;;;1004:315:1:o;1698:456::-;1775:6;1783;1791;1844:2;1832:9;1823:7;1819:23;1815:32;1812:52;;;1860:1;1857;1850:12;1812:52;1899:9;1886:23;1918:31;1943:5;1918:31;:::i;:::-;1968:5;-1:-1:-1;2025:2:1;2010:18;;1997:32;2038:33;1997:32;2038:33;:::i;:::-;1698:456;;2090:7;;-1:-1:-1;;;2144:2:1;2129:18;;;;2116:32;;1698:456::o;2556:388::-;2624:6;2632;2685:2;2673:9;2664:7;2660:23;2656:32;2653:52;;;2701:1;2698;2691:12;2653:52;2740:9;2727:23;2759:31;2784:5;2759:31;:::i;:::-;2809:5;-1:-1:-1;2866:2:1;2851:18;;2838:32;2879:33;2838:32;2879:33;:::i;:::-;2931:7;2921:17;;;2556:388;;;;;:::o;2949:184::-;3019:6;3072:2;3060:9;3051:7;3047:23;3043:32;3040:52;;;3088:1;3085;3078:12;3040:52;-1:-1:-1;3111:16:1;;2949:184;-1:-1:-1;2949:184:1:o;3425:277::-;3492:6;3545:2;3533:9;3524:7;3520:23;3516:32;3513:52;;;3561:1;3558;3551:12;3513:52;3593:9;3587:16;3646:5;3639:13;3632:21;3625:5;3622:32;3612:60;;3668:1;3665;3658:12;3707:127;3768:10;3763:3;3759:20;3756:1;3749:31;3799:4;3796:1;3789:15;3823:4;3820:1;3813:15;3839:422;3928:1;3971:5;3928:1;3985:270;4006:7;3996:8;3993:21;3985:270;;;4065:4;4061:1;4057:6;4053:17;4047:4;4044:27;4041:53;;;4074:18;;:::i;:::-;4124:7;4114:8;4110:22;4107:55;;;4144:16;;;;4107:55;4223:22;;;;4183:15;;;;3985:270;;;3989:3;3839:422;;;;;:::o;4266:806::-;4315:5;4345:8;4335:80;;-1:-1:-1;4386:1:1;4400:5;;4335:80;4434:4;4424:76;;-1:-1:-1;4471:1:1;4485:5;;4424:76;4516:4;4534:1;4529:59;;;;4602:1;4597:130;;;;4509:218;;4529:59;4559:1;4550:10;;4573:5;;;4597:130;4634:3;4624:8;4621:17;4618:43;;;4641:18;;:::i;:::-;-1:-1:-1;;4697:1:1;4683:16;;4712:5;;4509:218;;4811:2;4801:8;4798:16;4792:3;4786:4;4783:13;4779:36;4773:2;4763:8;4760:16;4755:2;4749:4;4746:12;4742:35;4739:77;4736:159;;;-1:-1:-1;4848:19:1;;;4880:5;;4736:159;4927:34;4952:8;4946:4;4927:34;:::i;:::-;4997:6;4993:1;4989:6;4985:19;4976:7;4973:32;4970:58;;;5008:18;;:::i;:::-;5046:20;;4266:806;-1:-1:-1;;;4266:806:1:o;5077:140::-;5135:5;5164:47;5205:4;5195:8;5191:19;5185:4;5164:47;:::i;5222:168::-;5262:7;5328:1;5324;5320:6;5316:14;5313:1;5310:21;5305:1;5298:9;5291:17;5287:45;5284:71;;;5335:18;;:::i;:::-;-1:-1:-1;5375:9:1;;5222:168::o;5395:356::-;5597:2;5579:21;;;5616:18;;;5609:30;5675:34;5670:2;5655:18;;5648:62;5742:2;5727:18;;5395:356::o;6720:306::-;6808:6;6816;6824;6877:2;6865:9;6856:7;6852:23;6848:32;6845:52;;;6893:1;6890;6883:12;6845:52;6922:9;6916:16;6906:26;;6972:2;6961:9;6957:18;6951:25;6941:35;;7016:2;7005:9;7001:18;6995:25;6985:35;;6720:306;;;;;:::o;7310:217::-;7350:1;7376;7366:132;;7420:10;7415:3;7411:20;7408:1;7401:31;7455:4;7452:1;7445:15;7483:4;7480:1;7473:15;7366:132;-1:-1:-1;7512:9:1;;7310:217::o;10316:128::-;10356:3;10387:1;10383:6;10380:1;10377:13;10374:39;;;10393:18;;:::i;:::-;-1:-1:-1;10429:9:1;;10316:128::o;10805:135::-;10844:3;-1:-1:-1;;10865:17:1;;10862:43;;;10885:18;;:::i;:::-;-1:-1:-1;10932:1:1;10921:13;;10805:135::o;10945:125::-;10985:4;11013:1;11010;11007:8;11004:34;;;11018:18;;:::i;:::-;-1:-1:-1;11055:9:1;;10945:125::o;11207:127::-;11268:10;11263:3;11259:20;11256:1;11249:31;11299:4;11296:1;11289:15;11323:4;11320:1;11313:15;11339:251;11409:6;11462:2;11450:9;11441:7;11437:23;11433:32;11430:52;;;11478:1;11475;11468:12;11430:52;11510:9;11504:16;11529:31;11554:5;11529:31;:::i;11595:980::-;11857:4;11905:3;11894:9;11890:19;11936:6;11925:9;11918:25;11962:2;12000:6;11995:2;11984:9;11980:18;11973:34;12043:3;12038:2;12027:9;12023:18;12016:31;12067:6;12102;12096:13;12133:6;12125;12118:22;12171:3;12160:9;12156:19;12149:26;;12210:2;12202:6;12198:15;12184:29;;12231:1;12241:195;12255:6;12252:1;12249:13;12241:195;;;12320:13;;-1:-1:-1;;;;;12316:39:1;12304:52;;12411:15;;;;12376:12;;;;12352:1;12270:9;12241:195;;;-1:-1:-1;;;;;;;12492:32:1;;;;12487:2;12472:18;;12465:60;-1:-1:-1;;;12556:3:1;12541:19;12534:35;12453:3;11595:980;-1:-1:-1;;;11595:980:1:o

Swarm Source

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