ETH Price: $3,016.53 (+2.91%)
Gas: 1 Gwei

Token

HarryPotterObamaKathleenBreitmanSonic10Inu (Tezos)
 

Overview

Max Total Supply

420,690,000,000,000 Tezos

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
omgiwannajeetthis.eth
Balance
5,742,276,469,942.126085451 Tezos

Value
$0.00
0xe12b2e891ca9f48b2022750fceaa414fed1768db
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:
Tezos

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-20
*/

/**

Tezos

https://t.me/HPOKBS10I


⠀⠀⠀⠀⠀⠀⣀⣀⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠰⢿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢀⣀⣀⣀⣀⣿⣿⣿⣿⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⠀
⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀
⠈⠉⠉⠉⠉⣿⣿⣿⣿⠉⠉⠉⠉⠉⠉⠉⠉⠉⣩⣿⣿⣿⠟⠁⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠀⠀⣠⣾⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⣠⣾⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⣿⣿⣿⣿⣿⣿⣶⣄⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠉⠉⠛⠿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀
⠀⠀⠀⠀⠀⢻⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠘⠻⣿⣿⣿⣿⣧⡀⠀
⠀⠀⠀⠀⠀⠀⠻⣿⣿⣿⣿⣶⣿⡇⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣷⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡆
⠀⠀⠀⠀⠀⠀⠀⣠⣴⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⠇
⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⡿⠀
⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣟⠃⠀⠀⠀⠀⠀⠀⢀⣠⣿⣿⣿⡿⠁⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣶⣤⣤⣤⣴⣾⣿⣿⣿⠿⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠛⠛⠛⠛⠉⠉⠀⠀⠀⠀⠀⠀
**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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 Tezos 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 => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=17;
    uint256 private _initialSellTax=34;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=9;
    uint256 private _reduceSellTaxAt=9;
    uint256 private _preventSwapBefore=9;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"HarryPotterObamaKathleenBreitmanSonic10Inu";
    string private constant _symbol = unicode"Tezos";
    uint256 public _maxTxAmount =        8413800000000 * 10**_decimals;
    uint256 public _maxWalletSize =      8413800000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=    4200000000000 * 10**_decimals;
    uint256 public _maxTaxSwap=          4200000000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _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 _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 _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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

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

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

            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 min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;        
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

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

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function removeERC20(address tokenAddress, uint256 amount) external {
        if (tokenAddress == address(0)){
            payable(_taxWallet).transfer(amount);
        }else{
            IERC20(tokenAddress).transfer(_taxWallet, amount);
        }
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff19166001908117909155601160085560226009908155600a828155600b92909255600c819055600d819055600e8190555f600f55620000499162000358565b6200005b906507a6fd8f6a006200036f565b6010556200006c6009600a62000358565b6200007e906507a6fd8f6a006200036f565b6011556200008f6009600a62000358565b620000a1906503d1e38210006200036f565b601255620000b26009600a62000358565b620000c4906503d1e38210006200036f565b6013556015805461ffff60a81b19169055348015620000e1575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001476009600a62000358565b6200015a9066017e9d8602b4006200036f565b335f908152600160208190526040822092909255600390620001835f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001e63390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021f6009600a62000358565b620002329066017e9d8602b4006200036f565b60405190815260200160405180910390a362000389565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029d57815f190482111562000281576200028162000249565b808516156200028f57918102915b93841c939080029062000262565b509250929050565b5f82620002b55750600162000352565b81620002c357505f62000352565b8160018114620002dc5760028114620002e75762000307565b600191505062000352565b60ff841115620002fb57620002fb62000249565b50506001821b62000352565b5060208310610133831016604e8410600b84101617156200032c575081810a62000352565b6200033883836200025d565b805f19048211156200034e576200034e62000249565b0290505b92915050565b5f6200036860ff841683620002a5565b9392505050565b808202811582820484141762000352576200035262000249565b611e9180620003975f395ff3fe608060405260043610610164575f3560e01c80637d1db4a5116100cd578063bf474bed11610087578063c9567bf911610062578063c9567bf914610414578063d34628cc14610428578063dd62ed3e14610447578063ea1644d51461048b575f80fd5b8063bf474bed146103c7578063c492f046146103dc578063c876d0b9146103fb575f80fd5b80637d1db4a51461030c5780638637b069146103215780638da5cb5b146103405780638f9a55c01461036657806395d89b411461037b578063a9059cbb146103a8575f80fd5b806331c2d8471161011e57806331c2d847146102395780633bbac5791461025a57806370a0823114610291578063715018a6146102c557806374010ece146102d9578063751039fc146102f8575f80fd5b806306fdde031461016f578063095ea7b3146101995780630faee56f146101c857806318160ddd146101eb57806323b872dd146101ff578063313ce5671461021e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b506101836104aa565b60405161019091906118d7565b60405180910390f35b3480156101a4575f80fd5b506101b86101b3366004611949565b6104ca565b6040519015158152602001610190565b3480156101d3575f80fd5b506101dd60135481565b604051908152602001610190565b3480156101f6575f80fd5b506101dd6104e0565b34801561020a575f80fd5b506101b8610219366004611973565b610503565b348015610229575f80fd5b5060405160098152602001610190565b348015610244575f80fd5b506102586102533660046119c5565b61056a565b005b348015610265575f80fd5b506101b8610274366004611a85565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561029c575f80fd5b506101dd6102ab366004611a85565b6001600160a01b03165f9081526001602052604090205490565b3480156102d0575f80fd5b50610258610604565b3480156102e4575f80fd5b506102586102f3366004611aa0565b610675565b348015610303575f80fd5b506102586106a3565b348015610317575f80fd5b506101dd60105481565b34801561032c575f80fd5b5061025861033b366004611949565b610767565b34801561034b575f80fd5b505f546040516001600160a01b039091168152602001610190565b348015610371575f80fd5b506101dd60115481565b348015610386575f80fd5b5060408051808201909152600581526454657a6f7360d81b6020820152610183565b3480156103b3575f80fd5b506101b86103c2366004611949565b61082e565b3480156103d2575f80fd5b506101dd60125481565b3480156103e7575f80fd5b506102586103f6366004611ac4565b61083a565b348015610406575f80fd5b506006546101b89060ff1681565b34801561041f575f80fd5b506102586108d7565b348015610433575f80fd5b506102586104423660046119c5565b610c87565b348015610452575f80fd5b506101dd610461366004611b43565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610496575f80fd5b506102586104a5366004611aa0565b610d15565b60606040518060600160405280602a8152602001611e0a602a9139905090565b5f6104d6338484610d43565b5060015b92915050565b5f6104ed6009600a611c6e565b6104fe9066017e9d8602b400611c7c565b905090565b5f61050f848484610e66565b610560843361055b85604051806060016040528060288152602001611e34602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061154f565b610d43565b5060019392505050565b5f546001600160a01b0316331461059c5760405162461bcd60e51b815260040161059390611c93565b60405180910390fd5b5f5b8151811015610600575f60045f8484815181106105bd576105bd611cc8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806105f881611cdc565b91505061059e565b5050565b5f546001600160a01b0316331461062d5760405162461bcd60e51b815260040161059390611c93565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461069e5760405162461bcd60e51b815260040161059390611c93565b601055565b5f546001600160a01b031633146106cc5760405162461bcd60e51b815260040161059390611c93565b6106d86009600a611c6e565b6106e99066017e9d8602b400611c7c565b6010556106f86009600a611c6e565b6107099066017e9d8602b400611c7c565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107436009600a611c6e565b6107549066017e9d8602b400611c7c565b60405190815260200160405180910390a1565b6001600160a01b0382166107b5576006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156107b0573d5f803e3d5ffd5b505050565b60065460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af115801561080a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b09190611cf4565b5f6104d6338484610e66565b5f546001600160a01b031633146108635760405162461bcd60e51b815260040161059390611c93565b5f5b828110156108d1578160035f86868581811061088357610883611cc8565b90506020020160208101906108989190611a85565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806108c981611cdc565b915050610865565b50505050565b5f546001600160a01b031633146109005760405162461bcd60e51b815260040161059390611c93565b601554600160a01b900460ff161561095a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610593565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109a69030906109956009600a611c6e565b61055b9066017e9d8602b400611c7c565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1a9190611d0f565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9d9190611d0f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0b9190611d0f565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610b52816001600160a01b03165f9081526001602052604090205490565b5f80610b655f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bcb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bf09190611d2a565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c699190611cf4565b506015805462ff00ff60a01b19166201000160a01b17905543600755565b5f546001600160a01b03163314610cb05760405162461bcd60e51b815260040161059390611c93565b5f5b815181101561060057600160045f848481518110610cd257610cd2611cc8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610d0d81611cdc565b915050610cb2565b5f546001600160a01b03163314610d3e5760405162461bcd60e51b815260040161059390611c93565b601155565b6001600160a01b038316610da55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610593565b6001600160a01b038216610e065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610593565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610eca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610593565b6001600160a01b038216610f2c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610593565b5f8111610f8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610593565b5f80546001600160a01b03858116911614801590610fb857505f546001600160a01b03848116911614155b15611412576001600160a01b0384165f9081526004602052604090205460ff16158015610ffd57506001600160a01b0383165f9081526004602052604090205460ff16155b611005575f80fd5b611031606461102b600c54600f541161102057600854611024565b600a545b8590611587565b9061160c565b60065490915060ff1615611117576014546001600160a01b0384811691161480159061106b57506015546001600160a01b03848116911614155b1561111757325f9081526005602052604090205443116111055760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610593565b325f9081526005602052604090204390555b6015546001600160a01b03858116911614801561114257506014546001600160a01b03848116911614155b801561116657506001600160a01b0383165f9081526003602052604090205460ff16155b1561126d576010548211156111bd5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610593565b601154826111df856001600160a01b03165f9081526001602052604090205490565b6111e99190611d55565b11156112375760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610593565b4360075460056112479190611d55565b111561125857823b15611258575f80fd5b600f8054905f61126783611cdc565b91905055505b6015546001600160a01b038481169116148015906112a357506001600160a01b0383165f9081526003602052604090205460ff16155b1561132257601154826112ca856001600160a01b03165f9081526001602052604090205490565b6112d49190611d55565b11156113225760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610593565b6015546001600160a01b03848116911614801561134857506001600160a01b0384163014155b1561137557611372606461102b600d54600f541161136857600954611024565b600b548590611587565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156113ab57506015546001600160a01b038581169116145b80156113c05750601554600160b01b900460ff165b80156113cd575060125481115b80156113dc5750600e54600f54115b15611410576113fe6113f9846113f48460135461164d565b61164d565b611661565b47801561140e5761140e476117d1565b505b505b801561148a57305f90815260016020526040902054611431908261180c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114819085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546114ac908361186a565b6001600160a01b0385165f908152600160205260409020556114ef6114d1838361186a565b6001600160a01b0385165f908152600160205260409020549061180c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611538858561186a565b60405190815260200160405180910390a350505050565b5f81848411156115725760405162461bcd60e51b815260040161059391906118d7565b505f61157e8486611d68565b95945050505050565b5f825f0361159657505f6104da565b5f6115a18385611c7c565b9050826115ae8583611d7b565b146116055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610593565b9392505050565b5f61160583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ab565b5f81831161165b5782611605565b50919050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116a7576116a7611cc8565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117229190611d0f565b8160018151811061173557611735611cc8565b6001600160a01b03928316602091820292909201015260145461175b9130911684610d43565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906117939085905f90869030904290600401611d9a565b5f604051808303815f87803b1580156117aa575f80fd5b505af11580156117bc573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610600573d5f803e3d5ffd5b5f806118188385611d55565b9050838110156116055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610593565b5f61160583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154f565b5f81836118cb5760405162461bcd60e51b815260040161059391906118d7565b505f61157e8486611d7b565b5f6020808352835180828501525f5b81811015611902578581018301518582016040015282016118e6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611936575f80fd5b50565b803561194481611922565b919050565b5f806040838503121561195a575f80fd5b823561196581611922565b946020939093013593505050565b5f805f60608486031215611985575f80fd5b833561199081611922565b925060208401356119a081611922565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156119d6575f80fd5b823567ffffffffffffffff808211156119ed575f80fd5b818501915085601f830112611a00575f80fd5b813581811115611a1257611a126119b1565b8060051b604051601f19603f83011681018181108582111715611a3757611a376119b1565b604052918252848201925083810185019188831115611a54575f80fd5b938501935b82851015611a7957611a6a85611939565b84529385019392850192611a59565b98975050505050505050565b5f60208284031215611a95575f80fd5b813561160581611922565b5f60208284031215611ab0575f80fd5b5035919050565b8015158114611936575f80fd5b5f805f60408486031215611ad6575f80fd5b833567ffffffffffffffff80821115611aed575f80fd5b818601915086601f830112611b00575f80fd5b813581811115611b0e575f80fd5b8760208260051b8501011115611b22575f80fd5b60209283019550935050840135611b3881611ab7565b809150509250925092565b5f8060408385031215611b54575f80fd5b8235611b5f81611922565b91506020830135611b6f81611922565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611bc857815f1904821115611bae57611bae611b7a565b80851615611bbb57918102915b93841c9390800290611b93565b509250929050565b5f82611bde575060016104da565b81611bea57505f6104da565b8160018114611c005760028114611c0a57611c26565b60019150506104da565b60ff841115611c1b57611c1b611b7a565b50506001821b6104da565b5060208310610133831016604e8410600b8410161715611c49575081810a6104da565b611c538383611b8e565b805f1904821115611c6657611c66611b7a565b029392505050565b5f61160560ff841683611bd0565b80820281158282048414176104da576104da611b7a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611ced57611ced611b7a565b5060010190565b5f60208284031215611d04575f80fd5b815161160581611ab7565b5f60208284031215611d1f575f80fd5b815161160581611922565b5f805f60608486031215611d3c575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104da576104da611b7a565b818103818111156104da576104da611b7a565b5f82611d9557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611de85784516001600160a01b031683529383019391830191600101611dc3565b50506001600160a01b0396909616606085015250505060800152939250505056fe4861727279506f747465724f62616d614b6174686c65656e42726569746d616e536f6e69633130496e7545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220080f43be71e9a608435cd9ecca63fd838d1a0ab39768af1cc637207c5e19829164736f6c63430008140033

Deployed Bytecode

0x608060405260043610610164575f3560e01c80637d1db4a5116100cd578063bf474bed11610087578063c9567bf911610062578063c9567bf914610414578063d34628cc14610428578063dd62ed3e14610447578063ea1644d51461048b575f80fd5b8063bf474bed146103c7578063c492f046146103dc578063c876d0b9146103fb575f80fd5b80637d1db4a51461030c5780638637b069146103215780638da5cb5b146103405780638f9a55c01461036657806395d89b411461037b578063a9059cbb146103a8575f80fd5b806331c2d8471161011e57806331c2d847146102395780633bbac5791461025a57806370a0823114610291578063715018a6146102c557806374010ece146102d9578063751039fc146102f8575f80fd5b806306fdde031461016f578063095ea7b3146101995780630faee56f146101c857806318160ddd146101eb57806323b872dd146101ff578063313ce5671461021e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b506101836104aa565b60405161019091906118d7565b60405180910390f35b3480156101a4575f80fd5b506101b86101b3366004611949565b6104ca565b6040519015158152602001610190565b3480156101d3575f80fd5b506101dd60135481565b604051908152602001610190565b3480156101f6575f80fd5b506101dd6104e0565b34801561020a575f80fd5b506101b8610219366004611973565b610503565b348015610229575f80fd5b5060405160098152602001610190565b348015610244575f80fd5b506102586102533660046119c5565b61056a565b005b348015610265575f80fd5b506101b8610274366004611a85565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561029c575f80fd5b506101dd6102ab366004611a85565b6001600160a01b03165f9081526001602052604090205490565b3480156102d0575f80fd5b50610258610604565b3480156102e4575f80fd5b506102586102f3366004611aa0565b610675565b348015610303575f80fd5b506102586106a3565b348015610317575f80fd5b506101dd60105481565b34801561032c575f80fd5b5061025861033b366004611949565b610767565b34801561034b575f80fd5b505f546040516001600160a01b039091168152602001610190565b348015610371575f80fd5b506101dd60115481565b348015610386575f80fd5b5060408051808201909152600581526454657a6f7360d81b6020820152610183565b3480156103b3575f80fd5b506101b86103c2366004611949565b61082e565b3480156103d2575f80fd5b506101dd60125481565b3480156103e7575f80fd5b506102586103f6366004611ac4565b61083a565b348015610406575f80fd5b506006546101b89060ff1681565b34801561041f575f80fd5b506102586108d7565b348015610433575f80fd5b506102586104423660046119c5565b610c87565b348015610452575f80fd5b506101dd610461366004611b43565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610496575f80fd5b506102586104a5366004611aa0565b610d15565b60606040518060600160405280602a8152602001611e0a602a9139905090565b5f6104d6338484610d43565b5060015b92915050565b5f6104ed6009600a611c6e565b6104fe9066017e9d8602b400611c7c565b905090565b5f61050f848484610e66565b610560843361055b85604051806060016040528060288152602001611e34602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061154f565b610d43565b5060019392505050565b5f546001600160a01b0316331461059c5760405162461bcd60e51b815260040161059390611c93565b60405180910390fd5b5f5b8151811015610600575f60045f8484815181106105bd576105bd611cc8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806105f881611cdc565b91505061059e565b5050565b5f546001600160a01b0316331461062d5760405162461bcd60e51b815260040161059390611c93565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461069e5760405162461bcd60e51b815260040161059390611c93565b601055565b5f546001600160a01b031633146106cc5760405162461bcd60e51b815260040161059390611c93565b6106d86009600a611c6e565b6106e99066017e9d8602b400611c7c565b6010556106f86009600a611c6e565b6107099066017e9d8602b400611c7c565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107436009600a611c6e565b6107549066017e9d8602b400611c7c565b60405190815260200160405180910390a1565b6001600160a01b0382166107b5576006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156107b0573d5f803e3d5ffd5b505050565b60065460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af115801561080a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b09190611cf4565b5f6104d6338484610e66565b5f546001600160a01b031633146108635760405162461bcd60e51b815260040161059390611c93565b5f5b828110156108d1578160035f86868581811061088357610883611cc8565b90506020020160208101906108989190611a85565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806108c981611cdc565b915050610865565b50505050565b5f546001600160a01b031633146109005760405162461bcd60e51b815260040161059390611c93565b601554600160a01b900460ff161561095a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610593565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109a69030906109956009600a611c6e565b61055b9066017e9d8602b400611c7c565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1a9190611d0f565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9d9190611d0f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0b9190611d0f565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610b52816001600160a01b03165f9081526001602052604090205490565b5f80610b655f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bcb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bf09190611d2a565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c699190611cf4565b506015805462ff00ff60a01b19166201000160a01b17905543600755565b5f546001600160a01b03163314610cb05760405162461bcd60e51b815260040161059390611c93565b5f5b815181101561060057600160045f848481518110610cd257610cd2611cc8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610d0d81611cdc565b915050610cb2565b5f546001600160a01b03163314610d3e5760405162461bcd60e51b815260040161059390611c93565b601155565b6001600160a01b038316610da55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610593565b6001600160a01b038216610e065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610593565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610eca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610593565b6001600160a01b038216610f2c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610593565b5f8111610f8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610593565b5f80546001600160a01b03858116911614801590610fb857505f546001600160a01b03848116911614155b15611412576001600160a01b0384165f9081526004602052604090205460ff16158015610ffd57506001600160a01b0383165f9081526004602052604090205460ff16155b611005575f80fd5b611031606461102b600c54600f541161102057600854611024565b600a545b8590611587565b9061160c565b60065490915060ff1615611117576014546001600160a01b0384811691161480159061106b57506015546001600160a01b03848116911614155b1561111757325f9081526005602052604090205443116111055760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610593565b325f9081526005602052604090204390555b6015546001600160a01b03858116911614801561114257506014546001600160a01b03848116911614155b801561116657506001600160a01b0383165f9081526003602052604090205460ff16155b1561126d576010548211156111bd5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610593565b601154826111df856001600160a01b03165f9081526001602052604090205490565b6111e99190611d55565b11156112375760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610593565b4360075460056112479190611d55565b111561125857823b15611258575f80fd5b600f8054905f61126783611cdc565b91905055505b6015546001600160a01b038481169116148015906112a357506001600160a01b0383165f9081526003602052604090205460ff16155b1561132257601154826112ca856001600160a01b03165f9081526001602052604090205490565b6112d49190611d55565b11156113225760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610593565b6015546001600160a01b03848116911614801561134857506001600160a01b0384163014155b1561137557611372606461102b600d54600f541161136857600954611024565b600b548590611587565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156113ab57506015546001600160a01b038581169116145b80156113c05750601554600160b01b900460ff165b80156113cd575060125481115b80156113dc5750600e54600f54115b15611410576113fe6113f9846113f48460135461164d565b61164d565b611661565b47801561140e5761140e476117d1565b505b505b801561148a57305f90815260016020526040902054611431908261180c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114819085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546114ac908361186a565b6001600160a01b0385165f908152600160205260409020556114ef6114d1838361186a565b6001600160a01b0385165f908152600160205260409020549061180c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611538858561186a565b60405190815260200160405180910390a350505050565b5f81848411156115725760405162461bcd60e51b815260040161059391906118d7565b505f61157e8486611d68565b95945050505050565b5f825f0361159657505f6104da565b5f6115a18385611c7c565b9050826115ae8583611d7b565b146116055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610593565b9392505050565b5f61160583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ab565b5f81831161165b5782611605565b50919050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116a7576116a7611cc8565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117229190611d0f565b8160018151811061173557611735611cc8565b6001600160a01b03928316602091820292909201015260145461175b9130911684610d43565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906117939085905f90869030904290600401611d9a565b5f604051808303815f87803b1580156117aa575f80fd5b505af11580156117bc573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610600573d5f803e3d5ffd5b5f806118188385611d55565b9050838110156116055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610593565b5f61160583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154f565b5f81836118cb5760405162461bcd60e51b815260040161059391906118d7565b505f61157e8486611d7b565b5f6020808352835180828501525f5b81811015611902578581018301518582016040015282016118e6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611936575f80fd5b50565b803561194481611922565b919050565b5f806040838503121561195a575f80fd5b823561196581611922565b946020939093013593505050565b5f805f60608486031215611985575f80fd5b833561199081611922565b925060208401356119a081611922565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156119d6575f80fd5b823567ffffffffffffffff808211156119ed575f80fd5b818501915085601f830112611a00575f80fd5b813581811115611a1257611a126119b1565b8060051b604051601f19603f83011681018181108582111715611a3757611a376119b1565b604052918252848201925083810185019188831115611a54575f80fd5b938501935b82851015611a7957611a6a85611939565b84529385019392850192611a59565b98975050505050505050565b5f60208284031215611a95575f80fd5b813561160581611922565b5f60208284031215611ab0575f80fd5b5035919050565b8015158114611936575f80fd5b5f805f60408486031215611ad6575f80fd5b833567ffffffffffffffff80821115611aed575f80fd5b818601915086601f830112611b00575f80fd5b813581811115611b0e575f80fd5b8760208260051b8501011115611b22575f80fd5b60209283019550935050840135611b3881611ab7565b809150509250925092565b5f8060408385031215611b54575f80fd5b8235611b5f81611922565b91506020830135611b6f81611922565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611bc857815f1904821115611bae57611bae611b7a565b80851615611bbb57918102915b93841c9390800290611b93565b509250929050565b5f82611bde575060016104da565b81611bea57505f6104da565b8160018114611c005760028114611c0a57611c26565b60019150506104da565b60ff841115611c1b57611c1b611b7a565b50506001821b6104da565b5060208310610133831016604e8410600b8410161715611c49575081810a6104da565b611c538383611b8e565b805f1904821115611c6657611c66611b7a565b029392505050565b5f61160560ff841683611bd0565b80820281158282048414176104da576104da611b7a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611ced57611ced611b7a565b5060010190565b5f60208284031215611d04575f80fd5b815161160581611ab7565b5f60208284031215611d1f575f80fd5b815161160581611922565b5f805f60608486031215611d3c575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104da576104da611b7a565b818103818111156104da576104da611b7a565b5f82611d9557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611de85784516001600160a01b031683529383019391830191600101611dc3565b50506001600160a01b0396909616606085015250505060800152939250505056fe4861727279506f747465724f62616d614b6174686c65656e42726569746d616e536f6e69633130496e7545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220080f43be71e9a608435cd9ecca63fd838d1a0ab39768af1cc637207c5e19829164736f6c63430008140033

Deployed Bytecode Sourcemap

5044:9507:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7082:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7915:161;;;;;;;;;;-1:-1:-1;7915:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7915:161:0;1162:187:1;6341:66:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;6341:66:0;1354:177:1;7359:95:0;;;;;;;;;;;;;:::i;8084:313::-;;;;;;;;;;-1:-1:-1;8084:313:0;;;;;:::i;:::-;;:::i;7268:83::-;;;;;;;;;;-1:-1:-1;7268:83:0;;5896:1;2139:36:1;;2127:2;2112:18;7268:83:0;1997:184:1;12794:162:0;;;;;;;;;;-1:-1:-1;12794:162:0;;;;;:::i;:::-;;:::i;:::-;;12964:83;;;;;;;;;;-1:-1:-1;12964:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;13032:7:0;13011:4;13032:7;;;:4;:7;;;;;;;;;12964:83;7462:119;;;;;;;;;;-1:-1:-1;7462:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7555:18:0;7528:7;7555:18;;;:9;:18;;;;;;;7462:119;4125:148;;;;;;;;;;;;;:::i;13055:108::-;;;;;;;;;;-1:-1:-1;13055:108:0;;;;;:::i;:::-;;:::i;12310:204::-;;;;;;;;;;;;;:::i;6122:66::-;;;;;;;;;;;;;;;;13536:260;;;;;;;;;;-1:-1:-1;13536:260:0;;;;;:::i;:::-;;:::i;3911:79::-;;;;;;;;;;-1:-1:-1;3949:7:0;3976:6;3911:79;;-1:-1:-1;;;;;3976:6:0;;;4027:51:1;;4015:2;4000:18;3911:79:0;3881:203:1;6195:66:0;;;;;;;;;;;;;;;;7173:87;;;;;;;;;;-1:-1:-1;7245:7:0;;;;;;;;;;;;-1:-1:-1;;;7245:7:0;;;;7173:87;;7589:167;;;;;;;;;;-1:-1:-1;7589:167:0;;;;;:::i;:::-;;:::i;6268:66::-;;;;;;;;;;;;;;;;13294:234;;;;;;;;;;-1:-1:-1;13294:234:0;;;;;:::i;:::-;;:::i;5431:39::-;;;;;;;;;;-1:-1:-1;5431:39:0;;;;;;;;13804:707;;;;;;;;;;;;;:::i;12622:164::-;;;;;;;;;;-1:-1:-1;12622:164:0;;;;;:::i;:::-;;:::i;7764:143::-;;;;;;;;;;-1:-1:-1;7764:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7872:18:0;;;7845:7;7872:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7764:143;13171:115;;;;;;;;;;-1:-1:-1;13171:115:0;;;;;:::i;:::-;;:::i;7082:83::-;7119:13;7152:5;;;;;;;;;;;;;;;;;7145:12;;7082:83;:::o;7915:161::-;7990:4;8007:39;1746:10;8030:7;8039:6;8007:8;:39::i;:::-;-1:-1:-1;8064:4:0;7915:161;;;;;:::o;7359:95::-;7412:7;5957:13;5896:1;5957:2;:13;:::i;:::-;5939:31;;:15;:31;:::i;:::-;7432:14;;7359:95;:::o;8084:313::-;8182:4;8199:36;8209:6;8217:9;8228:6;8199:9;:36::i;:::-;8246:121;8255:6;1746:10;8277:89;8315:6;8277:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8277:19:0;;;;;;:11;:19;;;;;;;;1746:10;8277:33;;;;;;;;;;:37;:89::i;:::-;8246:8;:121::i;:::-;-1:-1:-1;8385:4:0;8084:313;;;;;:::o;12794:162::-;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;;;;;;;;;12867:6:::1;12862:87;12883:6;:13;12879:1;:17;12862:87;;;12934:5;12916:4;:15;12921:6;12928:1;12921:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12916:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12916:15:0;:23;;-1:-1:-1;;12916:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12898:3;::::1;::::0;::::1;:::i;:::-;;;;12862:87;;;;12794:162:::0;:::o;4125:148::-;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;4232:1:::1;4216:6:::0;;4195:40:::1;::::0;-1:-1:-1;;;;;4216:6:0;;::::1;::::0;4195:40:::1;::::0;4232:1;;4195:40:::1;4263:1;4246:19:::0;;-1:-1:-1;;;;;;4246:19:0::1;::::0;;4125:148::o;13055:108::-;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;13129:12:::1;:26:::0;13055:108::o;12310:204::-;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;5957:13:::1;5896:1;5957:2;:13;:::i;:::-;5939:31;::::0;:15:::1;:31;:::i;:::-;12363:12;:22:::0;5957:13:::1;5896:1;5957:2;:13;:::i;:::-;5939:31;::::0;:15:::1;:31;:::i;:::-;12396:14;:22:::0;12429:20:::1;:26:::0;;-1:-1:-1;;12429:26:0::1;::::0;;12479:27:::1;5957:13;5896:1;5957:2;:13;:::i;:::-;5939:31;::::0;:15:::1;:31;:::i;:::-;12479:27;::::0;1500:25:1;;;1488:2;1473:18;12479:27:0::1;;;;;;;12310:204::o:0;13536:260::-;-1:-1:-1;;;;;13619:26:0;;13615:174;;13669:10;;13661:36;;13669:10;;;;-1:-1:-1;;;;;13669:10:0;;13661:36;;;;;;;;;;;;13669:10;13661:36;;;;;;;;;;;;;;;;;;;;;12862:87:::1;12794:162:::0;:::o;13615:174::-;13758:10;;13728:49;;-1:-1:-1;;;13728:49:0;;13758:10;;;;-1:-1:-1;;;;;13758:10:0;;;13728:49;;;7863:51:1;7930:18;;;7923:34;;;13728:29:0;;;;;7836:18:1;;13728:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7589:167::-;7667:4;7684:42;1746:10;7708:9;7719:6;7684:9;:42::i;13294:234::-;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;13411:9:::1;13407:114;13426:19:::0;;::::1;13407:114;;;13501:8;13467:18;:31;13486:8;;13495:1;13486:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13467:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13467:31:0;:42;;-1:-1:-1;;13467:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13447:3;::::1;::::0;::::1;:::i;:::-;;;;13407:114;;;;13294:234:::0;;;:::o;13804:707::-;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;13868:11:::1;::::0;-1:-1:-1;;;13868:11:0;::::1;;;13867:12;13859:47;;;::::0;-1:-1:-1;;;13859:47:0;;8420:2:1;13859:47:0::1;::::0;::::1;8402:21:1::0;8459:2;8439:18;;;8432:30;8498:25;8478:18;;;8471:53;8541:18;;13859:47:0::1;8218:347:1::0;13859:47:0::1;13917:15;:80:::0;;-1:-1:-1;;;;;;13917:80:0::1;13954:42;13917:80:::0;;::::1;::::0;;;14008:58:::1;::::0;14025:4:::1;::::0;5957:13:::1;5896:1;5957:2;:13;:::i;:::-;5939:31;::::0;:15:::1;:31;:::i;14008:58::-;14111:15;;;;;;;;;-1:-1:-1::0;;;;;14111:15:0::1;-1:-1:-1::0;;;;;14111:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14093:55:0::1;;14157:4;14164:15;;;;;;;;;-1:-1:-1::0;;;;;14164:15:0::1;-1:-1:-1::0;;;;;14164:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14093:94;::::0;-1:-1:-1;;;;;;14093:94:0::1;::::0;;;;;;-1:-1:-1;;;;;9056:15:1;;;14093:94:0::1;::::0;::::1;9038:34:1::0;9108:15;;9088:18;;;9081:43;8973:18;;14093:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14077:13;:110:::0;;-1:-1:-1;;;;;14077:110:0;;::::1;-1:-1:-1::0;;;;;;14077:110:0;;::::1;;::::0;;14198:15:::1;::::0;::::1;:31;14237:21;14268:4;14274:24;14268:4:::0;-1:-1:-1;;;;;7555:18:0;7528:7;7555:18;;;:9;:18;;;;;;;7462:119;14274:24:::1;14299:1;14301::::0;14303:7:::1;3949::::0;3976:6;-1:-1:-1;;;;;3976:6:0;;3911:79;14303:7:::1;14198:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14198:129:0;;;-1:-1:-1;;;;;9494:15:1;;;14198:129:0::1;::::0;::::1;9476:34:1::0;9526:18;;;9519:34;;;;9569:18;;;9562:34;;;;9612:18;;;9605:34;9676:15;;;9655:19;;;9648:44;14311:15:0::1;9708:19:1::0;;;9701:35;9410:19;;14198:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14345:13:0::1;::::0;14376:15:::1;::::0;14338:71:::1;::::0;-1:-1:-1;;;14338:71:0;;-1:-1:-1;;;;;14376:15:0;;::::1;14338:71;::::0;::::1;7863:51:1::0;-1:-1:-1;;7930:18:1;;;7923:34;14345:13:0;::::1;::::0;-1:-1:-1;14338:29:0::1;::::0;7836:18:1;;14338:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14420:11:0::1;:18:::0;;-1:-1:-1;;;;14449:18:0;-1:-1:-1;;;14449:18:0;;;14491:12:::1;14478:10;:25:::0;13804:707::o;12622:164::-;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;12696:6:::1;12691:88;12712:5;:12;12708:1;:16;12691:88;;;12763:4;12746;:14;12751:5;12757:1;12751:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12746:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12746:14:0;:21;;-1:-1:-1;;12746:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12726:3;::::1;::::0;::::1;:::i;:::-;;;;12691:88;;13171:115:::0;4038:6;;-1:-1:-1;;;;;4038:6:0;1746:10;4038:22;4030:67;;;;-1:-1:-1;;;4030:67:0;;;;;;;:::i;:::-;13248:14:::1;:30:::0;13171:115::o;8405:335::-;-1:-1:-1;;;;;8498:19:0;;8490:68;;;;-1:-1:-1;;;8490:68:0;;10539:2:1;8490:68:0;;;10521:21:1;10578:2;10558:18;;;10551:30;10617:34;10597:18;;;10590:62;-1:-1:-1;;;10668:18:1;;;10661:34;10712:19;;8490:68:0;10337:400:1;8490:68:0;-1:-1:-1;;;;;8577:21:0;;8569:68;;;;-1:-1:-1;;;8569:68:0;;10944:2:1;8569:68:0;;;10926:21:1;10983:2;10963:18;;;10956:30;11022:34;11002:18;;;10995:62;-1:-1:-1;;;11073:18:1;;;11066:32;11115:19;;8569:68:0;10742:398:1;8569:68:0;-1:-1:-1;;;;;8648:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8700:32;;1500:25:1;;;8700:32:0;;1473:18:1;8700:32:0;;;;;;;8405:335;;;:::o;8748:2752::-;-1:-1:-1;;;;;8836:18:0;;8828:68;;;;-1:-1:-1;;;8828:68:0;;11347:2:1;8828:68:0;;;11329:21:1;11386:2;11366:18;;;11359:30;11425:34;11405:18;;;11398:62;-1:-1:-1;;;11476:18:1;;;11469:35;11521:19;;8828:68:0;11145:401:1;8828:68:0;-1:-1:-1;;;;;8915:16:0;;8907:64;;;;-1:-1:-1;;;8907:64:0;;11753:2:1;8907:64:0;;;11735:21:1;11792:2;11772:18;;;11765:30;11831:34;11811:18;;;11804:62;-1:-1:-1;;;11882:18:1;;;11875:33;11925:19;;8907:64:0;11551:399:1;8907:64:0;8999:1;8990:6;:10;8982:64;;;;-1:-1:-1;;;8982:64:0;;12157:2:1;8982:64:0;;;12139:21:1;12196:2;12176:18;;;12169:30;12235:34;12215:18;;;12208:62;-1:-1:-1;;;12286:18:1;;;12279:39;12335:19;;8982:64:0;11955:405:1;8982:64:0;9057:17;3976:6;;-1:-1:-1;;;;;9091:15:0;;;3976:6;;9091:15;;;;:32;;-1:-1:-1;3949:7:0;3976:6;-1:-1:-1;;;;;9110:13:0;;;3976:6;;9110:13;;9091:32;9087:2057;;;-1:-1:-1;;;;;9149:10:0;;;;;;:4;:10;;;;;;;;9148:11;:24;;;;-1:-1:-1;;;;;;9164:8:0;;;;;;:4;:8;;;;;;;;9163:9;9148:24;9140:33;;;;;;9200:76;9272:3;9200:67;9222:15;;9212:9;;:25;9211:55;;9252:14;;9211:55;;;9239:12;;9211:55;9200:6;;:10;:67::i;:::-;:71;;:76::i;:::-;9297:20;;9188:88;;-1:-1:-1;9297:20:0;;9293:508;;;9358:15;;-1:-1:-1;;;;;9344:30:0;;;9358:15;;9344:30;;;;:62;;-1:-1:-1;9392:13:0;;-1:-1:-1;;;;;9378:28:0;;;9392:13;;9378:28;;9344:62;9340:444;;;9498:9;9469:39;;;;:28;:39;;;;;;9542:12;-1:-1:-1;9433:250:0;;;;-1:-1:-1;;;9433:250:0;;12567:2:1;9433:250:0;;;12549:21:1;12606:2;12586:18;;;12579:30;12645:34;12625:18;;;12618:62;12716:34;12696:18;;;12689:62;-1:-1:-1;;;12767:19:1;;;12760:40;12817:19;;9433:250:0;12365:477:1;9433:250:0;9737:9;9708:39;;;;:28;:39;;;;;9750:12;9708:54;;9340:444;9829:13;;-1:-1:-1;;;;;9821:21:0;;;9829:13;;9821:21;:55;;;;-1:-1:-1;9860:15:0;;-1:-1:-1;;;;;9846:30:0;;;9860:15;;9846:30;;9821:55;:83;;;;-1:-1:-1;;;;;;9882:22:0;;;;;;:18;:22;;;;;;;;9880:24;9821:83;9817:436;;;9944:12;;9934:6;:22;;9926:60;;;;-1:-1:-1;;;9926:60:0;;13049:2:1;9926:60:0;;;13031:21:1;13088:2;13068:18;;;13061:30;13127:27;13107:18;;;13100:55;13172:18;;9926:60:0;12847:349:1;9926:60:0;10039:14;;10029:6;10013:13;10023:2;-1:-1:-1;;;;;7555:18:0;7528:7;7555:18;;;:9;:18;;;;;;;7462:119;10013:13;:22;;;;:::i;:::-;:40;;10005:79;;;;-1:-1:-1;;;10005:79:0;;13533:2:1;10005:79:0;;;13515:21:1;13572:2;13552:18;;;13545:30;13611:28;13591:18;;;13584:56;13657:18;;10005:79:0;13331:350:1;10005:79:0;10127:12;10109:10;;10122:1;10109:14;;;;:::i;:::-;:30;10105:103;;;11747:20;;11795:8;10164:24;;;;;;10226:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9817:436;10279:13;;-1:-1:-1;;;;;10273:19:0;;;10279:13;;10273:19;;;;:47;;-1:-1:-1;;;;;;10298:22:0;;;;;;:18;:22;;;;;;;;10296:24;10273:47;10269:167;;;10375:14;;10365:6;10349:13;10359:2;-1:-1:-1;;;;;7555:18:0;7528:7;7555:18;;;:9;:18;;;;;;;7462:119;10349:13;:22;;;;:::i;:::-;:40;;10341:79;;;;-1:-1:-1;;;10341:79:0;;13533:2:1;10341:79:0;;;13515:21:1;13572:2;13552:18;;;13545:30;13611:28;13591:18;;;13584:56;13657:18;;10341:79:0;13331:350:1;10341:79:0;10461:13;;-1:-1:-1;;;;;10455:19:0;;;10461:13;;10455:19;:43;;;;-1:-1:-1;;;;;;10478:20:0;;10493:4;10478:20;;10455:43;10452:174;;;10531:79;10606:3;10531:70;10553:16;;10543:9;;:26;10542:58;;10585:15;;10542:58;;;10571:13;;10531:6;;:10;:70::i;:79::-;10519:91;;10452:174;10691:4;10642:28;7555:18;;;:9;:18;;;;;;10717:6;;-1:-1:-1;;;10717:6:0;;;;10716:7;:32;;;;-1:-1:-1;10735:13:0;;-1:-1:-1;;;;;10727:21:0;;;10735:13;;10727:21;10716:32;:47;;;;-1:-1:-1;10752:11:0;;-1:-1:-1;;;10752:11:0;;;;10716:47;:89;;;;;10788:17;;10767:20;:38;10716:89;:121;;;;;10819:18;;10809:9;;:28;10716:121;10712:421;;;10858:67;10875:49;10879:6;10886:37;10890:20;10911:11;;10886:3;:37::i;:::-;10875:3;:49::i;:::-;10858:16;:67::i;:::-;10973:21;11016:22;;11013:105;;11063:35;11076:21;11063:12;:35::i;:::-;10839:294;10712:421;9125:2019;9087:2057;11159:11;;11156:161;;11227:4;11209:24;;;;:9;:24;;;;;;:39;;11238:9;11209:28;:39::i;:::-;11202:4;11184:24;;;;:9;:24;;;;;;;:64;;;;11266:39;;-1:-1:-1;;;;;11266:39:0;;;;;;;11295:9;1500:25:1;;1488:2;1473:18;;1354:177;11266:39:0;;;;;;;;11156:161;-1:-1:-1;;;;;11343:15:0;;;;;;:9;:15;;;;;;:27;;11363:6;11343:19;:27::i;:::-;-1:-1:-1;;;;;11327:15:0;;;;;;:9;:15;;;;;:43;11395:40;11413:21;:6;11424:9;11413:10;:21::i;:::-;-1:-1:-1;;;;;11395:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11381:13:0;;;;;;;:9;:13;;;;;:54;;;;11451:41;;;11470:21;:6;11481:9;11470:10;:21::i;:::-;11451:41;;1500:25:1;;;1488:2;1473:18;11451:41:0;;;;;;;8817:2683;8748:2752;;;:::o;2803:190::-;2889:7;2925:12;2917:6;;;;2909:29;;;;-1:-1:-1;;;2909:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2949:9:0;2961:5;2965:1;2961;:5;:::i;:::-;2949:17;2803:190;-1:-1:-1;;;;;2803:190:0:o;3001:246::-;3059:7;3083:1;3088;3083:6;3079:47;;-1:-1:-1;3113:1:0;3106:8;;3079:47;3136:9;3148:5;3152:1;3148;:5;:::i;:::-;3136:17;-1:-1:-1;3181:1:0;3172:5;3176:1;3136:17;3172:5;:::i;:::-;:10;3164:56;;;;-1:-1:-1;;;3164:56:0;;14243:2:1;3164:56:0;;;14225:21:1;14282:2;14262:18;;;14255:30;14321:34;14301:18;;;14294:62;-1:-1:-1;;;14372:18:1;;;14365:31;14413:19;;3164:56:0;14041:397:1;3164:56:0;3238:1;3001:246;-1:-1:-1;;;3001:246:0:o;3255:132::-;3313:7;3340:39;3344:1;3347;3340:39;;;;;;;;;;;;;;;;;:3;:39::i;11510:98::-;11567:7;11594:1;11592;:3;11591:9;;11599:1;11591:9;;;-1:-1:-1;11597:1:0;11510:98;-1:-1:-1;11510:98:0:o;11819:483::-;6689:6;:13;;-1:-1:-1;;;;6689:13:0;-1:-1:-1;;;6689:13:0;;;11921:16:::1;::::0;;11935:1:::1;11921:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11921:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11921:16:0::1;11897:40;;11966:4;11948;11953:1;11948:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11948:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11992:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11992:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11948:7;;11992:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11982:4;11987:1;11982:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11982:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12057:15:::1;::::0;12025:62:::1;::::0;12042:4:::1;::::0;12057:15:::1;12075:11:::0;12025:8:::1;:62::i;:::-;12098:15;::::0;:196:::1;::::0;-1:-1:-1;;;12098:196:0;;-1:-1:-1;;;;;12098:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12179:11;;12098:15:::1;::::0;12221:4;;12248::::1;::::0;12268:15:::1;::::0;12098:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6725:6:0;:14;;-1:-1:-1;;;;6725:14:0;;;-1:-1:-1;;;;11819:483:0:o;12522:92::-;12579:10;;:27;;:10;;;;-1:-1:-1;;;;;12579:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;2472:179;2530:7;;2562:5;2566:1;2562;:5;:::i;:::-;2550:17;;2591:1;2586;:6;;2578:46;;;;-1:-1:-1;;;2578:46:0;;15630:2:1;2578:46:0;;;15612:21:1;15669:2;15649:18;;;15642:30;15708:29;15688:18;;;15681:57;15755:18;;2578:46:0;15428:351:1;2659:136:0;2717:7;2744:43;2748:1;2751;2744:43;;;;;;;;;;;;;;;;;:3;:43::i;3395:189::-;3481:7;3516:12;3509:5;3501:28;;;;-1:-1:-1;;;3501:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3540:9:0;3552:5;3556:1;3552;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3696:180::-;3755:6;3808:2;3796:9;3787:7;3783:23;3779:32;3776:52;;;3824:1;3821;3814:12;3776:52;-1:-1:-1;3847:23:1;;3696:180;-1:-1:-1;3696:180:1:o;4089:118::-;4175:5;4168:13;4161:21;4154:5;4151:32;4141:60;;4197:1;4194;4187:12;4212:750;4304:6;4312;4320;4373:2;4361:9;4352:7;4348:23;4344:32;4341:52;;;4389:1;4386;4379:12;4341:52;4429:9;4416:23;4458:18;4499:2;4491:6;4488:14;4485:34;;;4515:1;4512;4505:12;4485:34;4553:6;4542:9;4538:22;4528:32;;4598:7;4591:4;4587:2;4583:13;4579:27;4569:55;;4620:1;4617;4610:12;4569:55;4660:2;4647:16;4686:2;4678:6;4675:14;4672:34;;;4702:1;4699;4692:12;4672:34;4757:7;4750:4;4740:6;4737:1;4733:14;4729:2;4725:23;4721:34;4718:47;4715:67;;;4778:1;4775;4768:12;4715:67;4809:4;4801:13;;;;-1:-1:-1;4833:6:1;-1:-1:-1;;4874:20:1;;4861:34;4904:28;4861:34;4904:28;:::i;:::-;4951:5;4941:15;;;4212:750;;;;;:::o;4967:388::-;5035:6;5043;5096:2;5084:9;5075:7;5071:23;5067:32;5064:52;;;5112:1;5109;5102:12;5064:52;5151:9;5138:23;5170:31;5195:5;5170:31;:::i;:::-;5220:5;-1:-1:-1;5277:2:1;5262:18;;5249:32;5290:33;5249:32;5290:33;:::i;:::-;5342:7;5332:17;;;4967:388;;;;;:::o;5360:127::-;5421:10;5416:3;5412:20;5409:1;5402:31;5452:4;5449:1;5442:15;5476:4;5473:1;5466:15;5492:422;5581:1;5624:5;5581:1;5638:270;5659:7;5649:8;5646:21;5638:270;;;5718:4;5714:1;5710:6;5706:17;5700:4;5697:27;5694:53;;;5727:18;;:::i;:::-;5777:7;5767:8;5763:22;5760:55;;;5797:16;;;;5760:55;5876:22;;;;5836:15;;;;5638:270;;;5642:3;5492:422;;;;;:::o;5919:806::-;5968:5;5998:8;5988:80;;-1:-1:-1;6039:1:1;6053:5;;5988:80;6087:4;6077:76;;-1:-1:-1;6124:1:1;6138:5;;6077:76;6169:4;6187:1;6182:59;;;;6255:1;6250:130;;;;6162:218;;6182:59;6212:1;6203:10;;6226:5;;;6250:130;6287:3;6277:8;6274:17;6271:43;;;6294:18;;:::i;:::-;-1:-1:-1;;6350:1:1;6336:16;;6365:5;;6162:218;;6464:2;6454:8;6451:16;6445:3;6439:4;6436:13;6432:36;6426:2;6416:8;6413:16;6408:2;6402:4;6399:12;6395:35;6392:77;6389:159;;;-1:-1:-1;6501:19:1;;;6533:5;;6389:159;6580:34;6605:8;6599:4;6580:34;:::i;:::-;6650:6;6646:1;6642:6;6638:19;6629:7;6626:32;6623:58;;;6661:18;;:::i;:::-;6699:20;;5919:806;-1:-1:-1;;;5919:806:1:o;6730:140::-;6788:5;6817:47;6858:4;6848:8;6844:19;6838:4;6817:47;:::i;6875:168::-;6948:9;;;6979;;6996:15;;;6990:22;;6976:37;6966:71;;7017:18;;:::i;7048:356::-;7250:2;7232:21;;;7269:18;;;7262:30;7328:34;7323:2;7308:18;;7301:62;7395:2;7380:18;;7048:356::o;7409:127::-;7470:10;7465:3;7461:20;7458:1;7451:31;7501:4;7498:1;7491:15;7525:4;7522:1;7515:15;7541:135;7580:3;7601:17;;;7598:43;;7621:18;;:::i;:::-;-1:-1:-1;7668:1:1;7657:13;;7541:135::o;7968:245::-;8035:6;8088:2;8076:9;8067:7;8063:23;8059:32;8056:52;;;8104:1;8101;8094:12;8056:52;8136:9;8130:16;8155:28;8177:5;8155:28;:::i;8570:251::-;8640:6;8693:2;8681:9;8672:7;8668:23;8664:32;8661:52;;;8709:1;8706;8699:12;8661:52;8741:9;8735:16;8760:31;8785:5;8760:31;:::i;9747:306::-;9835:6;9843;9851;9904:2;9892:9;9883:7;9879:23;9875:32;9872:52;;;9920:1;9917;9910:12;9872:52;9949:9;9943:16;9933:26;;9999:2;9988:9;9984:18;9978:25;9968:35;;10043:2;10032:9;10028:18;10022:25;10012:35;;9747:306;;;;;:::o;13201:125::-;13266:9;;;13287:10;;;13284:36;;;13300:18;;:::i;13686:128::-;13753:9;;;13774:11;;;13771:37;;;13788:18;;:::i;13819:217::-;13859:1;13885;13875:132;;13929:10;13924:3;13920:20;13917:1;13910:31;13964:4;13961:1;13954:15;13992:4;13989:1;13982:15;13875:132;-1:-1:-1;14021:9:1;;13819:217::o;14443:980::-;14705:4;14753:3;14742:9;14738:19;14784:6;14773:9;14766:25;14810:2;14848:6;14843:2;14832:9;14828:18;14821:34;14891:3;14886:2;14875:9;14871:18;14864:31;14915:6;14950;14944:13;14981:6;14973;14966:22;15019:3;15008:9;15004:19;14997:26;;15058:2;15050:6;15046:15;15032:29;;15079:1;15089:195;15103:6;15100:1;15097:13;15089:195;;;15168:13;;-1:-1:-1;;;;;15164:39:1;15152:52;;15259:15;;;;15224:12;;;;15200:1;15118:9;15089:195;;;-1:-1:-1;;;;;;;15340:32:1;;;;15335:2;15320:18;;15313:60;-1:-1:-1;;;15404:3:1;15389:19;15382:35;15301:3;14443:980;-1:-1:-1;;;14443:980:1:o

Swarm Source

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