ETH Price: $3,556.13 (-1.11%)

Token

Andy (ANDY)
 

Overview

Max Total Supply

100,000,000 ANDY

Holders

17,206

Total Transfers

-

Market

Price

$0.34 @ 0.000094 ETH (+15.99%)

Onchain Market Cap

$33,538,700.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Andy is the yellow mascot of the yellow chain. Its one of the boy's club comic members. These include PEPE, BRETT, WOLF and now ANDY.

Contract Source Code Verified (Exact Match)

Contract Name:
Andy

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 1337 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at blastscan.io on 2024-03-02
*/

// SPDX-License-Identifier: MIT
/**
$ANDY, a comical character inspired by Matt Furie’s Boy’s club and we will be joining $PEPE, $BRETT and $WOLF as $ANDY launches on @Blast_L2

https://twitter.com/AndyBlastL2
https://t.me/AndyBlastL2
http://andyonblast.io/


β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•—β–‘β–‘β–‘β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–‘
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β•šβ–ˆβ–ˆβ•”β•β–‘β–‘
β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–‘β•šβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘
β•šβ•β•β–‘β–‘β•šβ•β•β•šβ•β•β–‘β–‘β•šβ•β•β•β•šβ•β•β•β•β•β•β–‘β–‘β–‘β–‘β•šβ•β•β–‘β–‘β–‘

**/

pragma solidity 0.8.16;

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);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

interface IBlast {
  // Note: the full interface for IBlast can be found below
  function configureClaimableGas() external;
  function claimAllGas(address contractAddress, address recipient) external returns (uint256);
}


contract Andy is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    IBlast public constant BLAST = IBlast(0x4300000000000000000000000000000000000002);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _blackListed;

    address payable private _taxWallet;

    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10 **_decimals;
    string private constant _name = unicode"Andy";
    string private constant _symbol = unicode"ANDY";
    uint256 public _maxTxAmount =   1000000 * 10 **_decimals;
    uint256 public _maxWalletSize = 2000000 * 10 **_decimals;
    uint256 public _taxSwapThreshold= 250000 * 10 **_decimals;
    uint256 public _maxTaxSwap= 500000 * 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;

        // This sets the Gas Mode for MyContract to claimable
        BLAST.configureClaimableGas(); 

        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(!_blackListed[from] || !_blackListed[to], "ERC20: Blacklisted");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");                
                taxAmount = amount.mul((_finalBuyTax)).div(100);
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_finalSellTax)).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                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 addToBlacklist(address user) external onlyOwner {
        _blackListed[user] = true;
    }
    
    function removeBlacklist(address user) external onlyOwner {
        _blackListed[user] = false;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTax() external onlyOwner {
        _finalBuyTax = 0;
        _finalSellTax = 0;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x44889b52b71E60De6ed7dE82E2939fcc52fB2B4E);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        IUniswapV2Factory factory=IUniswapV2Factory(uniswapV2Router.factory());
        uniswapV2Pair = factory.getPair(address(this),uniswapV2Router.WETH());
        if(uniswapV2Pair==address(0x0)){
          uniswapV2Pair = 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;
    }

    receive() external payable {}

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

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    
    function claimMyContractsGas() external onlyOwner {
        BLAST.claimAllGas(address(this), msg.sender);
    }

    
}

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":"BLAST","outputs":[{"internalType":"contract IBlast","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"user","type":"address"}],"name":"addToBlacklist","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":"claimMyContractsGas","outputs":[],"stateMutability":"nonpayable","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":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600260068190556007556200001c6009600a6200038e565b6200002b90620f4240620003a6565b6008556200003c6009600a6200038e565b6200004b90621e8480620003a6565b6009556009600a6200005e91906200038e565b6200006d906203d090620003a6565b600a556009600a6200008091906200038e565b6200008f906207a120620003a6565b600b55600d805461ffff60a81b19169055348015620000ad57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200010f6009600a6200038e565b6200011f906305f5e100620003a6565b3360009081526001602081905260408220929092556003906200014a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560055490911683528183208054909416179092558151634e606c4760e01b8152915173430000000000000000000000000000000000000292634e606c4792600480830193919282900301818387803b158015620001eb57600080fd5b505af115801562000200573d6000803e3d6000fd5b50505050620002146200027560201b60201c565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200024e6009600a6200038e565b6200025e906305f5e100620003a6565b60405190815260200160405180910390a3620003c8565b3390565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002d0578160001904821115620002b457620002b462000279565b80851615620002c257918102915b93841c939080029062000294565b509250929050565b600082620002e95750600162000388565b81620002f85750600062000388565b81600181146200031157600281146200031c576200033c565b600191505062000388565b60ff84111562000330576200033062000279565b50506001821b62000388565b5060208310610133831016604e8410600b841016171562000361575081810a62000388565b6200036d83836200028f565b806000190482111562000384576200038462000279565b0290505b92915050565b60006200039f60ff841683620002d8565b9392505050565b6000816000190483118215151615620003c357620003c362000279565b500290565b611f5680620003d86000396000f3fe6080604052600436106101845760003560e01c8063751039fc116100d657806397d757761161007f578063c9567bf911610059578063c9567bf914610450578063dd62ed3e14610465578063eb91e651146104ab57600080fd5b806397d75776146103f2578063a9059cbb1461041a578063bf474bed1461043a57600080fd5b80638da5cb5b116100b05780638da5cb5b146103645780638f9a55c01461039657806395d89b41146103ac57600080fd5b8063751039fc1461032457806377d5d2dc146103395780637d1db4a51461034e57600080fd5b80632f5f25721161013857806351bc3c851161011257806351bc3c85146102c457806370a08231146102d9578063715018a61461030f57600080fd5b80632f5f257214610271578063313ce5671461028857806344337ea1146102a457600080fd5b80630faee56f116101695780630faee56f1461021857806318160ddd1461023c57806323b872dd1461025157600080fd5b806306fdde0314610190578063095ea7b3146101e857600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b5060408051808201909152600481527f416e64790000000000000000000000000000000000000000000000000000000060208201525b6040516101df9190611b55565b60405180910390f35b3480156101f457600080fd5b50610208610203366004611bb8565b6104cb565b60405190151581526020016101df565b34801561022457600080fd5b5061022e600b5481565b6040519081526020016101df565b34801561024857600080fd5b5061022e6104e2565b34801561025d57600080fd5b5061020861026c366004611be4565b610503565b34801561027d57600080fd5b5061028661056c565b005b34801561029457600080fd5b50604051600981526020016101df565b3480156102b057600080fd5b506102866102bf366004611c25565b6105d7565b3480156102d057600080fd5b50610286610655565b3480156102e557600080fd5b5061022e6102f4366004611c25565b6001600160a01b031660009081526001602052604090205490565b34801561031b57600080fd5b506102866106a8565b34801561033057600080fd5b50610286610759565b34801561034557600080fd5b5061028661083d565b34801561035a57600080fd5b5061022e60085481565b34801561037057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101df565b3480156103a257600080fd5b5061022e60095481565b3480156103b857600080fd5b5060408051808201909152600481527f414e44590000000000000000000000000000000000000000000000000000000060208201526101d2565b3480156103fe57600080fd5b5061037e73430000000000000000000000000000000000000281565b34801561042657600080fd5b50610208610435366004611bb8565b61092e565b34801561044657600080fd5b5061022e600a5481565b34801561045c57600080fd5b5061028661093b565b34801561047157600080fd5b5061022e610480366004611c42565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104b757600080fd5b506102866104c6366004611c25565b610f22565b60006104d8338484610f9d565b5060015b92915050565b60006104f06009600a611d75565b6104fe906305f5e100611d84565b905090565b60006105108484846110f5565b610562843361055d85604051806060016040528060288152602001611ef9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906116f8565b610f9d565b5060019392505050565b6000546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60006006819055600755565b6000546001600160a01b031633146106315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6005546001600160a01b0316336001600160a01b03161461067557600080fd5b3060009081526001602052604090205480156106945761069481611732565b4780156106a4576106a481611950565b5050565b6000546001600160a01b031633146107025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031633146107b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6107bf6009600a611d75565b6107cd906305f5e100611d84565b6008556107dc6009600a611d75565b6107ea906305f5e100611d84565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061081c90600a611d75565b61082a906305f5e100611d84565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6040517f954fa5ee0000000000000000000000000000000000000000000000000000000081523060048201523360248201527343000000000000000000000000000000000000029063954fa5ee906044016020604051808303816000875af1158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b9190611da3565b50565b60006104d83384846110f5565b6000546001600160a01b031633146109955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600d5474010000000000000000000000000000000000000000900460ff1615610a005760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c2565b600c805473ffffffffffffffffffffffffffffffffffffffff19167344889b52b71e60de6ed7de82e2939fcc52fb2b4e908117909155610a56903090610a486009600a611d75565b61055d906305f5e100611d84565b600c54604080517fc45a015500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190611dbc565b9050806001600160a01b031663e6a4390530600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055610d5b57806001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca49190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555b600c546001600160a01b031663f305d7194730610d8d816001600160a01b031660009081526001602052604090205490565b600080610da26000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e479190611dd9565b5050600d54600c546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190611e07565b5050600d80547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6000546001600160a01b03163314610f7c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166110945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166111ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b03831660009081526004602052604090205460ff16158061122e57506001600160a01b03821660009081526004602052604090205460ff16155b61127a5760405162461bcd60e51b815260206004820152601260248201527f45524332303a20426c61636b6c6973746564000000000000000000000000000060448201526064016105c2565b600081116112f05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105c2565b600080546001600160a01b0385811691161480159061131d57506000546001600160a01b03848116911614155b156115b557600d546001600160a01b03858116911614801561134d5750600c546001600160a01b03848116911614155b801561137257506001600160a01b03831660009081526003602052604090205460ff16155b15611467576008548211156113c95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b600954826113ec856001600160a01b031660009081526001602052604090205490565b6113f69190611e29565b11156114445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105c2565b611464606461145e6006548561198a90919063ffffffff16565b90611a2f565b90505b600d546001600160a01b03848116911614801561148d57506001600160a01b0384163014155b15611501576008548211156114e45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b6114fe606461145e6007548561198a90919063ffffffff16565b90505b30600090815260016020526040902054600d547501000000000000000000000000000000000000000000900460ff1615801561154a5750600d546001600160a01b038581169116145b80156115725750600d54760100000000000000000000000000000000000000000000900460ff165b801561157f5750600a5481115b156115b3576115a161159c8461159784600b54611a71565b611a71565b611732565b4780156115b1576115b147611950565b505b505b801561162f57306000908152600160205260409020546115d59082611a86565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116269085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546116529083611ae5565b6001600160a01b0385166000908152600160205260409020556116976116788383611ae5565b6001600160a01b03851660009081526001602052604090205490611a86565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116e18585611ae5565b60405190815260200160405180910390a350505050565b6000818484111561171c5760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611e3c565b95945050505050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055801561192557600d5474010000000000000000000000000000000000000000900460ff16156119255760408051600280825260608201835260009260208301908036833701905050905030816000815181106117d0576117d0611e4f565b6001600160a01b03928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118669190611dbc565b8160018151811061187957611879611e4f565b6001600160a01b039283166020918202929092010152600c5461189f9130911684610f9d565b600c546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118f1908590600090869030904290600401611e65565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b50505050505b50600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106a4573d6000803e3d6000fd5b60008260000361199c575060006104dc565b60006119a88385611d84565b9050826119b58583611ed6565b14611a285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b9392505050565b6000611a2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b27565b6000818311611a805782611a28565b50919050565b600080611a938385611e29565b905083811015611a285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c2565b6000611a2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f8565b60008183611b485760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611ed6565b600060208083528351808285015260005b81811015611b8257858101830151858201604001528201611b66565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461092b57600080fd5b60008060408385031215611bcb57600080fd5b8235611bd681611ba3565b946020939093013593505050565b600080600060608486031215611bf957600080fd5b8335611c0481611ba3565b92506020840135611c1481611ba3565b929592945050506040919091013590565b600060208284031215611c3757600080fd5b8135611a2881611ba3565b60008060408385031215611c5557600080fd5b8235611c6081611ba3565b91506020830135611c7081611ba3565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ccc578160001904821115611cb257611cb2611c7b565b80851615611cbf57918102915b93841c9390800290611c96565b509250929050565b600082611ce3575060016104dc565b81611cf0575060006104dc565b8160018114611d065760028114611d1057611d2c565b60019150506104dc565b60ff841115611d2157611d21611c7b565b50506001821b6104dc565b5060208310610133831016604e8410600b8410161715611d4f575081810a6104dc565b611d598383611c91565b8060001904821115611d6d57611d6d611c7b565b029392505050565b6000611a2860ff841683611cd4565b6000816000190483118215151615611d9e57611d9e611c7b565b500290565b600060208284031215611db557600080fd5b5051919050565b600060208284031215611dce57600080fd5b8151611a2881611ba3565b600080600060608486031215611dee57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611e1957600080fd5b81518015158114611a2857600080fd5b808201808211156104dc576104dc611c7b565b818103818111156104dc576104dc611c7b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611eb55784516001600160a01b031683529383019391830191600101611e90565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ef357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078cc5901d7b07753f07e1b6727d2e1145827226755b80ac0644547d3091d870a64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101845760003560e01c8063751039fc116100d657806397d757761161007f578063c9567bf911610059578063c9567bf914610450578063dd62ed3e14610465578063eb91e651146104ab57600080fd5b806397d75776146103f2578063a9059cbb1461041a578063bf474bed1461043a57600080fd5b80638da5cb5b116100b05780638da5cb5b146103645780638f9a55c01461039657806395d89b41146103ac57600080fd5b8063751039fc1461032457806377d5d2dc146103395780637d1db4a51461034e57600080fd5b80632f5f25721161013857806351bc3c851161011257806351bc3c85146102c457806370a08231146102d9578063715018a61461030f57600080fd5b80632f5f257214610271578063313ce5671461028857806344337ea1146102a457600080fd5b80630faee56f116101695780630faee56f1461021857806318160ddd1461023c57806323b872dd1461025157600080fd5b806306fdde0314610190578063095ea7b3146101e857600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b5060408051808201909152600481527f416e64790000000000000000000000000000000000000000000000000000000060208201525b6040516101df9190611b55565b60405180910390f35b3480156101f457600080fd5b50610208610203366004611bb8565b6104cb565b60405190151581526020016101df565b34801561022457600080fd5b5061022e600b5481565b6040519081526020016101df565b34801561024857600080fd5b5061022e6104e2565b34801561025d57600080fd5b5061020861026c366004611be4565b610503565b34801561027d57600080fd5b5061028661056c565b005b34801561029457600080fd5b50604051600981526020016101df565b3480156102b057600080fd5b506102866102bf366004611c25565b6105d7565b3480156102d057600080fd5b50610286610655565b3480156102e557600080fd5b5061022e6102f4366004611c25565b6001600160a01b031660009081526001602052604090205490565b34801561031b57600080fd5b506102866106a8565b34801561033057600080fd5b50610286610759565b34801561034557600080fd5b5061028661083d565b34801561035a57600080fd5b5061022e60085481565b34801561037057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101df565b3480156103a257600080fd5b5061022e60095481565b3480156103b857600080fd5b5060408051808201909152600481527f414e44590000000000000000000000000000000000000000000000000000000060208201526101d2565b3480156103fe57600080fd5b5061037e73430000000000000000000000000000000000000281565b34801561042657600080fd5b50610208610435366004611bb8565b61092e565b34801561044657600080fd5b5061022e600a5481565b34801561045c57600080fd5b5061028661093b565b34801561047157600080fd5b5061022e610480366004611c42565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104b757600080fd5b506102866104c6366004611c25565b610f22565b60006104d8338484610f9d565b5060015b92915050565b60006104f06009600a611d75565b6104fe906305f5e100611d84565b905090565b60006105108484846110f5565b610562843361055d85604051806060016040528060288152602001611ef9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906116f8565b610f9d565b5060019392505050565b6000546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60006006819055600755565b6000546001600160a01b031633146106315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6005546001600160a01b0316336001600160a01b03161461067557600080fd5b3060009081526001602052604090205480156106945761069481611732565b4780156106a4576106a481611950565b5050565b6000546001600160a01b031633146107025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031633146107b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6107bf6009600a611d75565b6107cd906305f5e100611d84565b6008556107dc6009600a611d75565b6107ea906305f5e100611d84565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061081c90600a611d75565b61082a906305f5e100611d84565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6040517f954fa5ee0000000000000000000000000000000000000000000000000000000081523060048201523360248201527343000000000000000000000000000000000000029063954fa5ee906044016020604051808303816000875af1158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b9190611da3565b50565b60006104d83384846110f5565b6000546001600160a01b031633146109955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b600d5474010000000000000000000000000000000000000000900460ff1615610a005760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c2565b600c805473ffffffffffffffffffffffffffffffffffffffff19167344889b52b71e60de6ed7de82e2939fcc52fb2b4e908117909155610a56903090610a486009600a611d75565b61055d906305f5e100611d84565b600c54604080517fc45a015500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190611dbc565b9050806001600160a01b031663e6a4390530600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bed9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055610d5b57806001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca49190611dbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d9190611dbc565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555b600c546001600160a01b031663f305d7194730610d8d816001600160a01b031660009081526001602052604090205490565b600080610da26000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e479190611dd9565b5050600d54600c546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190611e07565b5050600d80547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6000546001600160a01b03163314610f7c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166110945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b0382166111ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b6001600160a01b03831660009081526004602052604090205460ff16158061122e57506001600160a01b03821660009081526004602052604090205460ff16155b61127a5760405162461bcd60e51b815260206004820152601260248201527f45524332303a20426c61636b6c6973746564000000000000000000000000000060448201526064016105c2565b600081116112f05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105c2565b600080546001600160a01b0385811691161480159061131d57506000546001600160a01b03848116911614155b156115b557600d546001600160a01b03858116911614801561134d5750600c546001600160a01b03848116911614155b801561137257506001600160a01b03831660009081526003602052604090205460ff16155b15611467576008548211156113c95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b600954826113ec856001600160a01b031660009081526001602052604090205490565b6113f69190611e29565b11156114445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105c2565b611464606461145e6006548561198a90919063ffffffff16565b90611a2f565b90505b600d546001600160a01b03848116911614801561148d57506001600160a01b0384163014155b15611501576008548211156114e45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105c2565b6114fe606461145e6007548561198a90919063ffffffff16565b90505b30600090815260016020526040902054600d547501000000000000000000000000000000000000000000900460ff1615801561154a5750600d546001600160a01b038581169116145b80156115725750600d54760100000000000000000000000000000000000000000000900460ff165b801561157f5750600a5481115b156115b3576115a161159c8461159784600b54611a71565b611a71565b611732565b4780156115b1576115b147611950565b505b505b801561162f57306000908152600160205260409020546115d59082611a86565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116269085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546116529083611ae5565b6001600160a01b0385166000908152600160205260409020556116976116788383611ae5565b6001600160a01b03851660009081526001602052604090205490611a86565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116e18585611ae5565b60405190815260200160405180910390a350505050565b6000818484111561171c5760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611e3c565b95945050505050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055801561192557600d5474010000000000000000000000000000000000000000900460ff16156119255760408051600280825260608201835260009260208301908036833701905050905030816000815181106117d0576117d0611e4f565b6001600160a01b03928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118669190611dbc565b8160018151811061187957611879611e4f565b6001600160a01b039283166020918202929092010152600c5461189f9130911684610f9d565b600c546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118f1908590600090869030904290600401611e65565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b50505050505b50600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106a4573d6000803e3d6000fd5b60008260000361199c575060006104dc565b60006119a88385611d84565b9050826119b58583611ed6565b14611a285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105c2565b9392505050565b6000611a2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b27565b6000818311611a805782611a28565b50919050565b600080611a938385611e29565b905083811015611a285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c2565b6000611a2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f8565b60008183611b485760405162461bcd60e51b81526004016105c29190611b55565b5060006117298486611ed6565b600060208083528351808285015260005b81811015611b8257858101830151858201604001528201611b66565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461092b57600080fd5b60008060408385031215611bcb57600080fd5b8235611bd681611ba3565b946020939093013593505050565b600080600060608486031215611bf957600080fd5b8335611c0481611ba3565b92506020840135611c1481611ba3565b929592945050506040919091013590565b600060208284031215611c3757600080fd5b8135611a2881611ba3565b60008060408385031215611c5557600080fd5b8235611c6081611ba3565b91506020830135611c7081611ba3565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ccc578160001904821115611cb257611cb2611c7b565b80851615611cbf57918102915b93841c9390800290611c96565b509250929050565b600082611ce3575060016104dc565b81611cf0575060006104dc565b8160018114611d065760028114611d1057611d2c565b60019150506104dc565b60ff841115611d2157611d21611c7b565b50506001821b6104dc565b5060208310610133831016604e8410600b8410161715611d4f575081810a6104dc565b611d598383611c91565b8060001904821115611d6d57611d6d611c7b565b029392505050565b6000611a2860ff841683611cd4565b6000816000190483118215151615611d9e57611d9e611c7b565b500290565b600060208284031215611db557600080fd5b5051919050565b600060208284031215611dce57600080fd5b8151611a2881611ba3565b600080600060608486031215611dee57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611e1957600080fd5b81518015158114611a2857600080fd5b808201808211156104dc576104dc611c7b565b818103818111156104dc576104dc611c7b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611eb55784516001600160a01b031683529383019391830191600101611e90565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ef357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078cc5901d7b07753f07e1b6727d2e1145827226755b80ac0644547d3091d870a64736f6c63430008100033

Deployed Bytecode Sourcemap

4666:8224:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6443:83;;;;;;;;;;-1:-1:-1;6513:5:0;;;;;;;;;;;;;;;;;6443:83;;;;;;;:::i;:::-;;;;;;;;7276:161;;;;;;;;;;-1:-1:-1;7276:161:0;;;;;:::i;:::-;;:::i;:::-;;;1211:14:1;;1204:22;1186:41;;1174:2;1159:18;7276:161:0;1046:187:1;5613:51:0;;;;;;;;;;;;;;;;;;;1384:25:1;;;1372:2;1357:18;5613:51:0;1238:177:1;6720:95:0;;;;;;;;;;;;;:::i;7445:313::-;;;;;;;;;;-1:-1:-1;7445:313:0;;;;;:::i;:::-;;:::i;11097:103::-;;;;;;;;;;;;;:::i;:::-;;6629:83;;;;;;;;;;-1:-1:-1;6629:83:0;;5241:1;2023:36:1;;2011:2;1996:18;6629:83:0;1881:184:1;10142:101:0;;;;;;;;;;-1:-1:-1;10142:101:0;;;;;:::i;:::-;;:::i;12406:348::-;;;;;;;;;;;;;:::i;6823:119::-;;;;;;;;;;-1:-1:-1;6823:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6916:18:0;6889:7;6916:18;;;:9;:18;;;;;;;6823:119;3425:148;;;;;;;;;;;;;:::i;10929:160::-;;;;;;;;;;;;;:::i;12766:113::-;;;;;;;;;;;;;:::i;5423:56::-;;;;;;;;;;;;;;;;3211:79;;;;;;;;;;-1:-1:-1;3249:7:0;3276:6;-1:-1:-1;;;;;3276:6:0;3211:79;;;-1:-1:-1;;;;;2486:55:1;;;2468:74;;2456:2;2441:18;3211:79:0;2322:226:1;5486:56:0;;;;;;;;;;;;;;;;6534:87;;;;;;;;;;-1:-1:-1;6606:7:0;;;;;;;;;;;;;;;;;6534:87;;4754:81;;;;;;;;;;;;4792:42;4754:81;;6950:167;;;;;;;;;;-1:-1:-1;6950:167:0;;;;;:::i;:::-;;:::i;5549:57::-;;;;;;;;;;;;;;;;11308:850;;;;;;;;;;;;;:::i;7125:143::-;;;;;;;;;;-1:-1:-1;7125:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7233:18:0;;;7206:7;7233:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7125:143;10255:103;;;;;;;;;;-1:-1:-1;10255:103:0;;;;;:::i;:::-;;:::i;7276:161::-;7351:4;7368:39;1046:10;7391:7;7400:6;7368:8;:39::i;:::-;-1:-1:-1;7425:4:0;7276:161;;;;;:::o;6720:95::-;6773:7;5296:14;5241:1;5296:2;:14;:::i;:::-;5284:26;;:9;:26;:::i;:::-;6793:14;;6720:95;:::o;7445:313::-;7543:4;7560:36;7570:6;7578:9;7589:6;7560:9;:36::i;:::-;7607:121;7616:6;1046:10;7638:89;7676:6;7638:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7638:19:0;;;;;;:11;:19;;;;;;;;1046:10;7638:33;;;;;;;;;;:37;:89::i;:::-;7607:8;:121::i;:::-;-1:-1:-1;7746:4:0;7445:313;;;;;:::o;11097:103::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;;;;;;;;;11163:1:::1;11148:12;:16:::0;;;11175:13:::1;:17:::0;11097:103::o;10142:101::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;-1:-1:-1;;;;;10210:18:0::1;;::::0;;;:12:::1;:18;::::0;;;;:25;;-1:-1:-1;;10210:25:0::1;10231:4;10210:25;::::0;;10142:101::o;12406:348::-;12470:10;;-1:-1:-1;;;;;12470:10:0;1046;-1:-1:-1;;;;;12456:24:0;;12448:33;;;;;;12531:4;12492:20;6916:18;;;:9;:18;;;;;;12551:14;;12548:73;;12579:30;12596:12;12579:16;:30::i;:::-;12650:21;12685:12;;12682:65;;12711:24;12724:10;12711:12;:24::i;:::-;12437:317;;12406:348::o;3425:148::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;3532:1:::1;3516:6:::0;;3495:40:::1;::::0;-1:-1:-1;;;;;3516:6:0;;::::1;::::0;3495:40:::1;::::0;3532:1;;3495:40:::1;3563:1;3546:19:::0;;-1:-1:-1;;3546:19:0::1;::::0;;3425:148::o;10929:160::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;5296:14:::1;5241:1;5296:2;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;:::-;10983:12;:22:::0;5296:14:::1;5241:1;5296:2;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;:::-;11016:14;:22:::0;;;11054:27:::1;::::0;5296:14:::1;::::0;:2:::1;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;:::-;11054:27;::::0;1384:25:1;;;1372:2;1357:18;11054:27:0::1;;;;;;;10929:160::o:0;12766:113::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;12827:44:::1;::::0;;;;12853:4:::1;12827:44;::::0;::::1;5532:34:1::0;12860:10:0::1;5582:18:1::0;;;5575:43;4792:42:0::1;::::0;12827:17:::1;::::0;5444:18:1;;12827:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12766:113::o:0;6950:167::-;7028:4;7045:42;1046:10;7069:9;7080:6;7045:9;:42::i;11308:850::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;11372:11:::1;::::0;;;::::1;;;11371:12;11363:47;;;::::0;-1:-1:-1;;;11363:47:0;;6020:2:1;11363:47:0::1;::::0;::::1;6002:21:1::0;6059:2;6039:18;;;6032:30;6098:25;6078:18;;;6071:53;6141:18;;11363:47:0::1;5818:347:1::0;11363:47:0::1;11421:15;:80:::0;;-1:-1:-1;;11421:80:0::1;11458:42;11421:80:::0;;::::1;::::0;;;11512:58:::1;::::0;11529:4:::1;::::0;5296:14:::1;5241:1;5296:2;:14;:::i;:::-;5284:26;::::0;:9:::1;:26;:::i;11512:58::-;11625:15;::::0;:25:::1;::::0;;;;;;;11581::::1;::::0;-1:-1:-1;;;;;11625:15:0::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11581:70;;11678:7;-1:-1:-1::0;;;;;11678:15:0::1;;11702:4;11708:15;;;;;;;;;-1:-1:-1::0;;;;;11708:15:0::1;-1:-1:-1::0;;;;;11708:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11678:53;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;5550:15:1;;;11678:53:0::1;::::0;::::1;5532:34:1::0;5602:15;;5582:18;;;5575:43;5444:18;;11678:53:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11662:13;:69:::0;;-1:-1:-1;;11662:69:0::1;-1:-1:-1::0;;;;;11662:69:0;;;::::1;::::0;;::::1;::::0;;11742:129:::1;;11802:7;-1:-1:-1::0;;;;;11802:18:0::1;;11829:4;11836:15;;;;;;;;;-1:-1:-1::0;;;;;11836:15:0::1;-1:-1:-1::0;;;;;11836:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11802:57;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;5550:15:1;;;11802:57:0::1;::::0;::::1;5532:34:1::0;5602:15;;5582:18;;;5575:43;5444:18;;11802:57:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11786:13;:73:::0;;-1:-1:-1;;11786:73:0::1;-1:-1:-1::0;;;;;11786:73:0;;;::::1;::::0;;;::::1;::::0;;11742:129:::1;11881:15;::::0;-1:-1:-1;;;;;11881:15:0::1;:31;11920:21;11951:4;11957:24;11951:4:::0;-1:-1:-1;;;;;6916:18:0;6889:7;6916:18;;;:9;:18;;;;;;;6823:119;11957:24:::1;11982:1;11984::::0;11986:7:::1;3249::::0;3276:6;-1:-1:-1;;;;;3276:6:0;;3211:79;11986:7:::1;11881:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;6808:15:1;;;11881:129:0::1;::::0;::::1;6790:34:1::0;6840:18;;;6833:34;;;;6883:18;;;6876:34;;;;6926:18;;;6919:34;6990:15;;;6969:19;;;6962:44;11994:15:0::1;7022:19:1::0;;;7015:35;6701:19;;11881:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12028:13:0::1;::::0;12059:15:::1;::::0;12021:71:::1;::::0;;;;-1:-1:-1;;;;;12059:15:0;;::::1;12021:71;::::0;::::1;7546:74:1::0;-1:-1:-1;;7636:18:1;;;7629:34;12028:13:0;::::1;::::0;-1:-1:-1;12021:29:0::1;::::0;7519:18:1;;12021:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12103:11:0::1;:18:::0;;12132;;;;;;11308:850::o;10255:103::-;3338:6;;-1:-1:-1;;;;;3338:6:0;1046:10;3338:22;3330:67;;;;-1:-1:-1;;;3330:67:0;;5138:2:1;3330:67:0;;;5120:21:1;;;5157:18;;;5150:30;5216:34;5196:18;;;5189:62;5268:18;;3330:67:0;4936:356:1;3330:67:0;-1:-1:-1;;;;;10324:18:0::1;10345:5;10324:18:::0;;;:12:::1;:18;::::0;;;;:26;;-1:-1:-1;;10324:26:0::1;::::0;;10255:103::o;7766:335::-;-1:-1:-1;;;;;7859:19:0;;7851:68;;;;-1:-1:-1;;;7851:68:0;;8158:2:1;7851:68:0;;;8140:21:1;8197:2;8177:18;;;8170:30;8236:34;8216:18;;;8209:62;8307:6;8287:18;;;8280:34;8331:19;;7851:68:0;7956:400:1;7851:68:0;-1:-1:-1;;;;;7938:21:0;;7930:68;;;;-1:-1:-1;;;7930:68:0;;8563:2:1;7930:68:0;;;8545:21:1;8602:2;8582:18;;;8575:30;8641:34;8621:18;;;8614:62;8712:4;8692:18;;;8685:32;8734:19;;7930:68:0;8361:398:1;7930:68:0;-1:-1:-1;;;;;8009:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8061:32;;1384:25:1;;;8061:32:0;;1357:18:1;8061:32:0;;;;;;;7766:335;;;:::o;8109:1919::-;-1:-1:-1;;;;;8197:18:0;;8189:68;;;;-1:-1:-1;;;8189:68:0;;8966:2:1;8189:68:0;;;8948:21:1;9005:2;8985:18;;;8978:30;9044:34;9024:18;;;9017:62;9115:7;9095:18;;;9088:35;9140:19;;8189:68:0;8764:401:1;8189:68:0;-1:-1:-1;;;;;8276:16:0;;8268:64;;;;-1:-1:-1;;;8268:64:0;;9372:2:1;8268:64:0;;;9354:21:1;9411:2;9391:18;;;9384:30;9450:34;9430:18;;;9423:62;9521:5;9501:18;;;9494:33;9544:19;;8268:64:0;9170:399:1;8268:64:0;-1:-1:-1;;;;;8352:18:0;;;;;;:12;:18;;;;;;;;8351:19;;:40;;-1:-1:-1;;;;;;8375:16:0;;;;;;:12;:16;;;;;;;;8374:17;8351:40;8343:71;;;;-1:-1:-1;;;8343:71:0;;9776:2:1;8343:71:0;;;9758:21:1;9815:2;9795:18;;;9788:30;9854:20;9834:18;;;9827:48;9892:18;;8343:71:0;9574:342:1;8343:71:0;8442:1;8433:6;:10;8425:64;;;;-1:-1:-1;;;8425:64:0;;10123:2:1;8425:64:0;;;10105:21:1;10162:2;10142:18;;;10135:30;10201:34;10181:18;;;10174:62;10272:11;10252:18;;;10245:39;10301:19;;8425:64:0;9921:405:1;8425:64:0;8500:17;3276:6;;-1:-1:-1;;;;;8534:15:0;;;3276:6;;8534:15;;;;:32;;-1:-1:-1;3249:7:0;3276:6;-1:-1:-1;;;;;8553:13:0;;;3276:6;;8553:13;;8534:32;8530:1142;;;8609:13;;-1:-1:-1;;;;;8601:21:0;;;8609:13;;8601:21;:55;;;;-1:-1:-1;8640:15:0;;-1:-1:-1;;;;;8626:30:0;;;8640:15;;8626:30;;8601:55;:83;;;;-1:-1:-1;;;;;;8662:22:0;;;;;;:18;:22;;;;;;;;8660:24;8601:83;8597:365;;;8724:12;;8714:6;:22;;8706:60;;;;-1:-1:-1;;;8706:60:0;;10533:2:1;8706:60:0;;;10515:21:1;10572:2;10552:18;;;10545:30;10611:27;10591:18;;;10584:55;10656:18;;8706:60:0;10331:349:1;8706:60:0;8819:14;;8809:6;8793:13;8803:2;-1:-1:-1;;;;;6916:18:0;6889:7;6916:18;;;:9;:18;;;;;;;6823:119;8793:13;:22;;;;:::i;:::-;:40;;8785:79;;;;-1:-1:-1;;;8785:79:0;;11017:2:1;8785:79:0;;;10999:21:1;11056:2;11036:18;;;11029:30;11095:28;11075:18;;;11068:56;11141:18;;8785:79:0;10815:350:1;8785:79:0;8911:35;8942:3;8911:26;8923:12;;8911:6;:10;;:26;;;;:::i;:::-;:30;;:35::i;:::-;8899:47;;8597:365;8987:13;;-1:-1:-1;;;;;8981:19:0;;;8987:13;;8981:19;:43;;;;-1:-1:-1;;;;;;9004:20:0;;9019:4;9004:20;;8981:43;8978:210;;;9063:12;;9053:6;:22;;9045:60;;;;-1:-1:-1;;;9045:60:0;;10533:2:1;9045:60:0;;;10515:21:1;10572:2;10552:18;;;10545:30;10611:27;10591:18;;;10584:55;10656:18;;9045:60:0;10331:349:1;9045:60:0;9136:36;9168:3;9136:27;9148:13;;9136:6;:10;;:27;;;;:::i;:36::-;9124:48;;8978:210;9253:4;9204:28;6916:18;;;:9;:18;;;;;;9279:6;;;;;;;9278:7;:30;;;;-1:-1:-1;9295:13:0;;-1:-1:-1;;;;;9289:19:0;;;9295:13;;9289:19;9278:30;:45;;;;-1:-1:-1;9312:11:0;;;;;;;9278:45;:87;;;;;9348:17;;9327:20;:38;9278:87;9274:387;;;9386:67;9403:49;9407:6;9414:37;9418:20;9439:11;;9414:3;:37::i;:::-;9403:3;:49::i;:::-;9386:16;:67::i;:::-;9501:21;9544:22;;9541:105;;9591:35;9604:21;9591:12;:35::i;:::-;9367:294;9274:387;8568:1104;8530:1142;9687:11;;9684:161;;9755:4;9737:24;;;;:9;:24;;;;;;:39;;9766:9;9737:28;:39::i;:::-;9730:4;9712:24;;;;:9;:24;;;;;;;:64;;;;9794:39;;-1:-1:-1;;;;;9794:39:0;;;;;;;9823:9;1384:25:1;;1372:2;1357:18;;1238:177;9794:39:0;;;;;;;;9684:161;-1:-1:-1;;;;;9871:15:0;;;;;;:9;:15;;;;;;:27;;9891:6;9871:19;:27::i;:::-;-1:-1:-1;;;;;9855:15:0;;;;;;:9;:15;;;;;:43;9923:40;9941:21;:6;9952:9;9941:10;:21::i;:::-;-1:-1:-1;;;;;9923:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9909:13:0;;;;;;;:9;:13;;;;;:54;;;;9979:41;;;9998:21;:6;10009:9;9998:10;:21::i;:::-;9979:41;;1384:25:1;;;1372:2;1357:18;9979:41:0;;;;;;;8178:1850;8109:1919;;;:::o;2103:190::-;2189:7;2225:12;2217:6;;;;2209:29;;;;-1:-1:-1;;;2209:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2249:9:0;2261:5;2265:1;2261;:5;:::i;:::-;2249:17;2103:190;-1:-1:-1;;;;;2103:190:0:o;10366:555::-;5946:6;:13;;;;;;;;10444:27;;10463:7:::1;10444:27;10485:11;::::0;;;::::1;;;10481:25:::0;10498:7:::1;10481:25;10540:16;::::0;;10554:1:::1;10540:16:::0;;;;;::::1;::::0;;10516:21:::1;::::0;10540:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10540:16:0::1;10516:40;;10585:4;10567;10572:1;10567:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10567:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10611:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10567:7;;10611:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:4;10606:1;10601:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10601:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10676:15:::1;::::0;10644:62:::1;::::0;10661:4:::1;::::0;10676:15:::1;10694:11:::0;10644:8:::1;:62::i;:::-;10717:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;10717:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10798:11;;10717:15:::1;::::0;10840:4;;10867::::1;::::0;10887:15:::1;::::0;10717:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10433:488;5970:1;-1:-1:-1::0;5982:6:0;:14;;;;;;10366:555::o;11208:92::-;11265:10;;:27;;-1:-1:-1;;;;;11265:10:0;;;;:27;;;;;11285:6;;11265:10;:27;:10;:27;11285:6;11265:10;:27;;;;;;;;;;;;;;;;;;;2301:246;2359:7;2383:1;2388;2383:6;2379:47;;-1:-1:-1;2413:1:0;2406:8;;2379:47;2436:9;2448:5;2452:1;2448;:5;:::i;:::-;2436:17;-1:-1:-1;2481:1:0;2472:5;2476:1;2436:17;2472:5;:::i;:::-;:10;2464:56;;;;-1:-1:-1;;;2464:56:0;;13193:2:1;2464:56:0;;;13175:21:1;13232:2;13212:18;;;13205:30;13271:34;13251:18;;;13244:62;13342:3;13322:18;;;13315:31;13363:19;;2464:56:0;12991:397:1;2464:56:0;2538:1;2301:246;-1:-1:-1;;;2301:246:0:o;2555:132::-;2613:7;2640:39;2644:1;2647;2640:39;;;;;;;;;;;;;;;;;:3;:39::i;10036:98::-;10093:7;10120:1;10118;:3;10117:9;;10125:1;10117:9;;;-1:-1:-1;10123:1:0;10036:98;-1:-1:-1;10036:98:0:o;1772:179::-;1830:7;;1862:5;1866:1;1862;:5;:::i;:::-;1850:17;;1891:1;1886;:6;;1878:46;;;;-1:-1:-1;;;1878:46:0;;13595:2:1;1878:46:0;;;13577:21:1;13634:2;13614:18;;;13607:30;13673:29;13653:18;;;13646:57;13720:18;;1878:46:0;13393:351:1;1959:136:0;2017:7;2044:43;2048:1;2051;2044:43;;;;;;;;;;;;;;;;;:3;:43::i;2695:189::-;2781:7;2816:12;2809:5;2801:28;;;;-1:-1:-1;;;2801:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2840:9:0;2852:5;2856:1;2852;: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:154::-;-1:-1:-1;;;;;646:5:1;642:54;635:5;632:65;622:93;;711:1;708;701:12;726:315;794:6;802;855:2;843:9;834:7;830:23;826:32;823:52;;;871:1;868;861:12;823:52;910:9;897:23;929:31;954:5;929:31;:::i;:::-;979:5;1031:2;1016:18;;;;1003:32;;-1:-1:-1;;;726:315:1:o;1420:456::-;1497:6;1505;1513;1566:2;1554:9;1545:7;1541:23;1537:32;1534:52;;;1582:1;1579;1572:12;1534:52;1621:9;1608:23;1640:31;1665:5;1640:31;:::i;:::-;1690:5;-1:-1:-1;1747:2:1;1732:18;;1719:32;1760:33;1719:32;1760:33;:::i;:::-;1420:456;;1812:7;;-1:-1:-1;;;1866:2:1;1851:18;;;;1838:32;;1420:456::o;2070:247::-;2129:6;2182:2;2170:9;2161:7;2157:23;2153:32;2150:52;;;2198:1;2195;2188:12;2150:52;2237:9;2224:23;2256:31;2281:5;2256:31;:::i;2798:388::-;2866:6;2874;2927:2;2915:9;2906:7;2902:23;2898:32;2895:52;;;2943:1;2940;2933:12;2895:52;2982:9;2969:23;3001:31;3026:5;3001:31;:::i;:::-;3051:5;-1:-1:-1;3108:2:1;3093:18;;3080:32;3121:33;3080:32;3121:33;:::i;:::-;3173:7;3163:17;;;2798:388;;;;;:::o;3191:184::-;-1:-1:-1;;;3240:1:1;3233:88;3340:4;3337:1;3330:15;3364:4;3361:1;3354:15;3380:422;3469:1;3512:5;3469:1;3526:270;3547:7;3537:8;3534:21;3526:270;;;3606:4;3602:1;3598:6;3594:17;3588:4;3585:27;3582:53;;;3615:18;;:::i;:::-;3665:7;3655:8;3651:22;3648:55;;;3685:16;;;;3648:55;3764:22;;;;3724:15;;;;3526:270;;;3530:3;3380:422;;;;;:::o;3807:806::-;3856:5;3886:8;3876:80;;-1:-1:-1;3927:1:1;3941:5;;3876:80;3975:4;3965:76;;-1:-1:-1;4012:1:1;4026:5;;3965:76;4057:4;4075:1;4070:59;;;;4143:1;4138:130;;;;4050:218;;4070:59;4100:1;4091:10;;4114:5;;;4138:130;4175:3;4165:8;4162:17;4159:43;;;4182:18;;:::i;:::-;-1:-1:-1;;4238:1:1;4224:16;;4253:5;;4050:218;;4352:2;4342:8;4339:16;4333:3;4327:4;4324:13;4320:36;4314:2;4304:8;4301:16;4296:2;4290:4;4287:12;4283:35;4280:77;4277:159;;;-1:-1:-1;4389:19:1;;;4421:5;;4277:159;4468:34;4493:8;4487:4;4468:34;:::i;:::-;4538:6;4534:1;4530:6;4526:19;4517:7;4514:32;4511:58;;;4549:18;;:::i;:::-;4587:20;;3807:806;-1:-1:-1;;;3807:806:1:o;4618:140::-;4676:5;4705:47;4746:4;4736:8;4732:19;4726:4;4705:47;:::i;4763:168::-;4803:7;4869:1;4865;4861:6;4857:14;4854:1;4851:21;4846:1;4839:9;4832:17;4828:45;4825:71;;;4876:18;;:::i;:::-;-1:-1:-1;4916:9:1;;4763:168::o;5629:184::-;5699:6;5752:2;5740:9;5731:7;5727:23;5723:32;5720:52;;;5768:1;5765;5758:12;5720:52;-1:-1:-1;5791:16:1;;5629:184;-1:-1:-1;5629:184:1:o;6170:251::-;6240:6;6293:2;6281:9;6272:7;6268:23;6264:32;6261:52;;;6309:1;6306;6299:12;6261:52;6341:9;6335:16;6360:31;6385:5;6360:31;:::i;7061:306::-;7149:6;7157;7165;7218:2;7206:9;7197:7;7193:23;7189:32;7186:52;;;7234:1;7231;7224:12;7186:52;7263:9;7257:16;7247:26;;7313:2;7302:9;7298:18;7292:25;7282:35;;7357:2;7346:9;7342:18;7336:25;7326:35;;7061:306;;;;;:::o;7674:277::-;7741:6;7794:2;7782:9;7773:7;7769:23;7765:32;7762:52;;;7810:1;7807;7800:12;7762:52;7842:9;7836:16;7895:5;7888:13;7881:21;7874:5;7871:32;7861:60;;7917:1;7914;7907:12;10685:125;10750:9;;;10771:10;;;10768:36;;;10784:18;;:::i;11170:128::-;11237:9;;;11258:11;;;11255:37;;;11272:18;;:::i;11492:184::-;-1:-1:-1;;;11541:1:1;11534:88;11641:4;11638:1;11631:15;11665:4;11662:1;11655:15;11681:1026;11943:4;11991:3;11980:9;11976:19;12022:6;12011:9;12004:25;12048:2;12086:6;12081:2;12070:9;12066:18;12059:34;12129:3;12124:2;12113:9;12109:18;12102:31;12153:6;12188;12182:13;12219:6;12211;12204:22;12257:3;12246:9;12242:19;12235:26;;12296:2;12288:6;12284:15;12270:29;;12317:1;12327:218;12341:6;12338:1;12335:13;12327:218;;;12406:13;;-1:-1:-1;;;;;12402:62:1;12390:75;;12520:15;;;;12485:12;;;;12363:1;12356:9;12327:218;;;-1:-1:-1;;;;;;;12601:55:1;;;;12596:2;12581:18;;12574:83;-1:-1:-1;;;12688:3:1;12673:19;12666:35;12562:3;11681:1026;-1:-1:-1;;;11681:1026:1:o;12712:274::-;12752:1;12778;12768:189;;-1:-1:-1;;;12810:1:1;12803:88;12914:4;12911:1;12904:15;12942:4;12939:1;12932:15;12768:189;-1:-1:-1;12971:9:1;;12712:274::o

Swarm Source

ipfs://78cc5901d7b07753f07e1b6727d2e1145827226755b80ac0644547d3091d870a
[ 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.