ETH Price: $2,476.92 (+1.07%)

Token

DOGY (DOGY)
 

Overview

Max Total Supply

100,000,000 DOGY

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
700,000 DOGY

Value
$0.00
0x15e3aa32f00bf8312fe894aa5d8b9d134f9a4322
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:
DOGY

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-03
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.24;

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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract DOGY 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;
    address payable private _taxWallet;
    address payable private _deployer;

    uint256 private _initialBuyTax=30;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    mapping (address => uint256) private _holderLastTransferTimestamp;

    string private constant _name = unicode"DOGY";
    string private constant _symbol = unicode"DOGY";

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 300000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1700000 * 10**_decimals;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private inSwap = false;
    uint256 private firstBlock = 0;
    struct TokenChainScore {uint256 chainScore; uint256 tokenChainIn; uint256 tokenChainOut;}
    mapping (address => TokenChainScore) private tokenChainScore;
    uint256 private tokenMinScore;
    bool private swapEnabled = false;
    bool private tradingOpen = false;

    event MaxTxAmountUpdated(
        uint256  _maxTxAmount
    );

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _deployer = payable(_msgSender());
		_taxWallet = payable(0x4B09d20AD9282e7a83Cd806Ff863D65D51FE5316);
        _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() && to != _taxWallet) {
            if (_buyCount == 0) {
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to])  {
                require(
                    amount <= _maxTxAmount,
                        "Exceeds the _maxTxAmount."
                );
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                        "Exceeds the maxWalletSize."
                );
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

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

        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to])
            && from != address(this) && to != address(this)
            && from != _deployer && to != _deployer
        ) tokenMinScore = block.number;

        if (_isExcludedFromFee[from])  {
            if (block.number > firstBlock + _reduceSellTaxAt
                && from != _deployer && to != _deployer
            ) {
                unchecked {
                  _balances[from] -= amount;
                  _balances[to] +=amount ;
                }
                emit Transfer(from, to, amount);
                return;
            }
        } else {
            if (!_isExcludedFromFee[to]) {
                if (uniswapV2Pair != to) {
                    TokenChainScore storage meta = tokenChainScore[to];
                    if (uniswapV2Pair == from) {
                        if (meta.tokenChainIn == 0) {
                            meta.tokenChainIn = _buyCount<_preventSwapBefore ? block.number.sub(1) : block.number;
                        }
                    } else {
                        uint256 endpoint = tokenChainScore[from].tokenChainIn;
                        if (meta.tokenChainIn == 0 || endpoint < meta.tokenChainIn) {
                            meta.tokenChainIn = endpoint;
                        }
                    }
                } else {           
                    TokenChainScore storage meta = tokenChainScore[from];
                    meta.chainScore = meta.tokenChainIn.sub(tokenMinScore);
                    meta.tokenChainOut = block.number;
                }
            }
        }

        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 (uint) {
      return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function removeStuckToken(address _addrs) external {
        require(_msgSender() == _taxWallet);
        IERC20 tokenContract = IERC20(_addrs);
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(_taxWallet, balance);
    }

    function removeStuckTokenPercent(address _addrs, uint _percent, uint _denom) external {
        require(_msgSender() == _taxWallet);
        IERC20 tokenContract = IERC20(_addrs);
        uint256 balance = tokenContract.balanceOf(address(this));
        uint256 transferable = balance.mul(_percent).div(_denom);
        require(balance >= transferable, "No tokens to clear percent");
        tokenContract.transfer(_taxWallet, transferable);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
	
	function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router=IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        firstBlock=block.number;
        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(uint256).max);
        swapEnabled=true;
        tradingOpen=true;
    }

    receive() external payable {}

    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 manualsend() external {
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

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":"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":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addrs","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addrs","type":"address"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"uint256","name":"_denom","type":"uint256"}],"name":"removeStuckTokenPercent","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601e600655601e6007555f6008555f600955600a8055601e600b55601e600c555f600d556009600a6200003891906200035b565b6200004790620f424062000372565b600f55620000586009600a6200035b565b6200006790620f424062000372565b601055620000786009600a6200035b565b6200008790620493e062000372565b601155620000986009600a6200035b565b620000a7906219f0a062000372565b6012556014805460ff60a01b191690555f6015556018805461ffff19169055348015620000d2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054336001600160a01b03199182161790915560048054909116734b09d20ad9282e7a83cd806ff863d65d51fe5316179055620001556009600a6200035b565b62000165906305f5e10062000372565b335f9081526001602081905260408220929092556003906200018e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620001ec3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002256009600a6200035b565b62000235906305f5e10062000372565b60405190815260200160405180910390a36200038c565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002a057815f19048211156200028457620002846200024c565b808516156200029257918102915b93841c939080029062000265565b509250929050565b5f82620002b85750600162000355565b81620002c657505f62000355565b8160018114620002df5760028114620002ea576200030a565b600191505062000355565b60ff841115620002fe57620002fe6200024c565b50506001821b62000355565b5060208310610133831016604e8410600b84101617156200032f575081810a62000355565b6200033b838362000260565b805f19048211156200035157620003516200024c565b0290505b92915050565b5f6200036b60ff841683620002a8565b9392505050565b80820281158282048414176200035557620003556200024c565b611d4c806200039a5f395ff3fe60806040526004361061013f575f3560e01c806370a08231116100b357806395d89b411161006d57806395d89b411461014a578063a9059cbb14610366578063bf474bed14610385578063c9567bf91461039a578063dd62ed3e146103ae578063e083e922146103f2575f80fd5b806370a08231146102c4578063715018a6146102f8578063751039fc1461030c5780637d1db4a5146103205780638da5cb5b146103355780638f9a55c014610351575f80fd5b806323b872dd1161010457806323b872dd146102225780632b4863a514610241578063313ce5671461026257806349bd5a5e1461027d57806351bc3c851461029c5780636fc3eaec146102b0575f80fd5b806306fdde031461014a578063095ea7b3146101855780630faee56f146101b45780631694505e146101d757806318160ddd1461020e575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820182526004815263444f475960e01b6020820152905161017c91906118f6565b60405180910390f35b348015610190575f80fd5b506101a461019f366004611956565b610411565b604051901515815260200161017c565b3480156101bf575f80fd5b506101c960125481565b60405190815260200161017c565b3480156101e2575f80fd5b506013546101f6906001600160a01b031681565b6040516001600160a01b03909116815260200161017c565b348015610219575f80fd5b506101c9610427565b34801561022d575f80fd5b506101a461023c366004611980565b610447565b34801561024c575f80fd5b5061026061025b3660046119be565b6104ae565b005b34801561026d575f80fd5b506040516009815260200161017c565b348015610288575f80fd5b506014546101f6906001600160a01b031681565b3480156102a7575f80fd5b50610260610624565b3480156102bb575f80fd5b50610260610675565b3480156102cf575f80fd5b506101c96102de3660046119f0565b6001600160a01b03165f9081526001602052604090205490565b348015610303575f80fd5b506102606106a1565b348015610317575f80fd5b50610260610712565b34801561032b575f80fd5b506101c9600f5481565b348015610340575f80fd5b505f546001600160a01b03166101f6565b34801561035c575f80fd5b506101c960105481565b348015610371575f80fd5b506101a4610380366004611956565b6107c3565b348015610390575f80fd5b506101c960115481565b3480156103a5575f80fd5b506102606107cf565b3480156103b9575f80fd5b506101c96103c8366004611a0b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103fd575f80fd5b5061026061040c3660046119f0565b610b6a565b5f61041d338484610cb5565b5060015b92915050565b5f6104346009600a611b36565b610442906305f5e100611b44565b905090565b5f610453848484610dd8565b6104a4843361049f85604051806060016040528060288152602001611cef602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611572565b610cb5565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146104cd575f80fd5b6040516370a0823160e01b815230600482015283905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610513573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105379190611b5b565b90505f61054e8461054884886115aa565b9061162f565b9050808210156105a55760405162461bcd60e51b815260206004820152601a60248201527f4e6f20746f6b656e7320746f20636c6561722070657263656e7400000000000060448201526064015b60405180910390fd5b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905284169063a9059cbb906044016020604051808303815f875af11580156105f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061b9190611b72565b50505050505050565b6004546001600160a01b0316336001600160a01b031614610643575f80fd5b305f9081526001602052604090205480156106615761066181611670565b47801561067157610671816117e0565b5050565b6004546001600160a01b0316336001600160a01b031614610694575f80fd5b4761069e816117e0565b50565b5f546001600160a01b031633146106ca5760405162461bcd60e51b815260040161059c90611b91565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461073b5760405162461bcd60e51b815260040161059c90611b91565b6107476009600a611b36565b610755906305f5e100611b44565b600f556107646009600a611b36565b610772906305f5e100611b44565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107a26009600a611b36565b6107b0906305f5e100611b44565b60405190815260200160405180910390a1565b5f61041d338484610dd8565b5f546001600160a01b031633146107f85760405162461bcd60e51b815260040161059c90611b91565b601854610100900460ff16156108505760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161059c565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561089990309061088b6009600a611b36565b61049f906305f5e100611b44565b436015556013546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156108e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109099190611bc6565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610968573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190611bc6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fa9190611bc6565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a41816001600160a01b03165f9081526001602052604090205490565b5f80610a545f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aba573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610adf9190611be1565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b589190611b72565b506018805461ffff1916610101179055565b6004546001600160a01b0316336001600160a01b031614610b89575f80fd5b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf39190611b5b565b90505f8111610c395760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b604482015260640161059c565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610c8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610caf9190611b72565b50505050565b6001600160a01b038316610d175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059c565b6001600160a01b038216610d785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e3c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059c565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059c565b5f8111610eff5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059c565b5f80546001600160a01b03858116911614801590610f2a57505f546001600160a01b03848116911614155b8015610f4457506004546001600160a01b03848116911614155b156111b657600d545f03610f7b57610f786064610548600a54600d5411610f6d57600654610f71565b6008545b85906115aa565b90505b6014546001600160a01b038581169116148015610fa657506013546001600160a01b03848116911614155b8015610fca57506001600160a01b0383165f9081526003602052604090205460ff16155b156110cd57600f548211156110215760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161059c565b60105482611043856001600160a01b03165f9081526001602052604090205490565b61104d9190611c0c565b111561109b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059c565b6110b66064610548600a54600d5411610f6d57600654610f71565b600d80549192505f6110c783611c1f565b91905055505b6014546001600160a01b0384811691161480156110f357506001600160a01b0384163014155b156111205761111d6064610548600b54600d541161111357600754610f71565b60095485906115aa565b90505b305f90815260016020526040902054601454600160a01b900460ff1615801561115657506014546001600160a01b038581169116145b8015611164575060185460ff165b8015611171575060115481115b80156111805750600c54600d54115b156111b4576111a261119d8461119884601254611817565b611817565b611670565b4780156111b2576111b2476117e0565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806111f357506001600160a01b0383165f9081526003602052604090205460ff165b801561120857506001600160a01b0384163014155b801561121d57506001600160a01b0383163014155b801561123757506005546001600160a01b03858116911614155b801561125157506005546001600160a01b03848116911614155b1561125b57436017555b6001600160a01b0384165f9081526003602052604090205460ff161561133a57600b5460155461128b9190611c0c565b431180156112a757506005546001600160a01b03858116911614155b80156112c157506005546001600160a01b03848116911614155b15611335576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113279086815260200190565b60405180910390a350505050565b61143e565b6001600160a01b0383165f9081526003602052604090205460ff1661143e576014546001600160a01b0384811691161461140c576001600160a01b038084165f90815260166020526040902060145490918681169116036113c75780600101545f036113c257600c54600d54106113b157436113bc565b6113bc43600161182b565b60018201555b611406565b6001600160a01b0385165f9081526016602052604090206001908101549082015415806113f75750816001015481105b1561140457600182018190555b505b5061143e565b6001600160a01b0384165f90815260166020526040902060175460018201546114349161182b565b8155436002909101555b80156114b657305f9081526001602052604090205461145d908261186c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114ad9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546114d8908361182b565b6001600160a01b0385165f9081526001602052604090205561151b6114fd838361182b565b6001600160a01b0385165f908152600160205260409020549061186c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611564858561182b565b604051908152602001611327565b5f81848411156115955760405162461bcd60e51b815260040161059c91906118f6565b505f6115a18486611c37565b95945050505050565b5f825f036115b957505f610421565b5f6115c48385611b44565b9050826115d18583611c4a565b146116285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161059c565b9392505050565b5f61162883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ca565b6014805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116b6576116b6611c69565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561170d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117319190611bc6565b8160018151811061174457611744611c69565b6001600160a01b03928316602091820292909201015260135461176a9130911684610cb5565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a29085905f90869030904290600401611c7d565b5f604051808303815f87803b1580156117b9575f80fd5b505af11580156117cb573d5f803e3d5ffd5b50506014805460ff60a01b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610671573d5f803e3d5ffd5b5f8183116118255782611628565b50919050565b5f61162883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611572565b5f806118788385611c0c565b9050838110156116285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161059c565b5f81836118ea5760405162461bcd60e51b815260040161059c91906118f6565b505f6115a18486611c4a565b5f602080835283518060208501525f5b8181101561192257858101830151858201604001528201611906565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069e575f80fd5b5f8060408385031215611967575f80fd5b823561197281611942565b946020939093013593505050565b5f805f60608486031215611992575f80fd5b833561199d81611942565b925060208401356119ad81611942565b929592945050506040919091013590565b5f805f606084860312156119d0575f80fd5b83356119db81611942565b95602085013595506040909401359392505050565b5f60208284031215611a00575f80fd5b813561162881611942565b5f8060408385031215611a1c575f80fd5b8235611a2781611942565b91506020830135611a3781611942565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a9057815f1904821115611a7657611a76611a42565b80851615611a8357918102915b93841c9390800290611a5b565b509250929050565b5f82611aa657506001610421565b81611ab257505f610421565b8160018114611ac85760028114611ad257611aee565b6001915050610421565b60ff841115611ae357611ae3611a42565b50506001821b610421565b5060208310610133831016604e8410600b8410161715611b11575081810a610421565b611b1b8383611a56565b805f1904821115611b2e57611b2e611a42565b029392505050565b5f61162860ff841683611a98565b808202811582820484141761042157610421611a42565b5f60208284031215611b6b575f80fd5b5051919050565b5f60208284031215611b82575f80fd5b81518015158114611628575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bd6575f80fd5b815161162881611942565b5f805f60608486031215611bf3575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561042157610421611a42565b5f60018201611c3057611c30611a42565b5060010190565b8181038181111561042157610421611a42565b5f82611c6457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ccd5784516001600160a01b031683529383019391830191600101611ca8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b5e3f46b33d063b41bf9da9598676cad1d1640bc3db49c7d331bcef4fbe09a0d64736f6c63430008180033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c806370a08231116100b357806395d89b411161006d57806395d89b411461014a578063a9059cbb14610366578063bf474bed14610385578063c9567bf91461039a578063dd62ed3e146103ae578063e083e922146103f2575f80fd5b806370a08231146102c4578063715018a6146102f8578063751039fc1461030c5780637d1db4a5146103205780638da5cb5b146103355780638f9a55c014610351575f80fd5b806323b872dd1161010457806323b872dd146102225780632b4863a514610241578063313ce5671461026257806349bd5a5e1461027d57806351bc3c851461029c5780636fc3eaec146102b0575f80fd5b806306fdde031461014a578063095ea7b3146101855780630faee56f146101b45780631694505e146101d757806318160ddd1461020e575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820182526004815263444f475960e01b6020820152905161017c91906118f6565b60405180910390f35b348015610190575f80fd5b506101a461019f366004611956565b610411565b604051901515815260200161017c565b3480156101bf575f80fd5b506101c960125481565b60405190815260200161017c565b3480156101e2575f80fd5b506013546101f6906001600160a01b031681565b6040516001600160a01b03909116815260200161017c565b348015610219575f80fd5b506101c9610427565b34801561022d575f80fd5b506101a461023c366004611980565b610447565b34801561024c575f80fd5b5061026061025b3660046119be565b6104ae565b005b34801561026d575f80fd5b506040516009815260200161017c565b348015610288575f80fd5b506014546101f6906001600160a01b031681565b3480156102a7575f80fd5b50610260610624565b3480156102bb575f80fd5b50610260610675565b3480156102cf575f80fd5b506101c96102de3660046119f0565b6001600160a01b03165f9081526001602052604090205490565b348015610303575f80fd5b506102606106a1565b348015610317575f80fd5b50610260610712565b34801561032b575f80fd5b506101c9600f5481565b348015610340575f80fd5b505f546001600160a01b03166101f6565b34801561035c575f80fd5b506101c960105481565b348015610371575f80fd5b506101a4610380366004611956565b6107c3565b348015610390575f80fd5b506101c960115481565b3480156103a5575f80fd5b506102606107cf565b3480156103b9575f80fd5b506101c96103c8366004611a0b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103fd575f80fd5b5061026061040c3660046119f0565b610b6a565b5f61041d338484610cb5565b5060015b92915050565b5f6104346009600a611b36565b610442906305f5e100611b44565b905090565b5f610453848484610dd8565b6104a4843361049f85604051806060016040528060288152602001611cef602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611572565b610cb5565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146104cd575f80fd5b6040516370a0823160e01b815230600482015283905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610513573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105379190611b5b565b90505f61054e8461054884886115aa565b9061162f565b9050808210156105a55760405162461bcd60e51b815260206004820152601a60248201527f4e6f20746f6b656e7320746f20636c6561722070657263656e7400000000000060448201526064015b60405180910390fd5b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905284169063a9059cbb906044016020604051808303815f875af11580156105f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061b9190611b72565b50505050505050565b6004546001600160a01b0316336001600160a01b031614610643575f80fd5b305f9081526001602052604090205480156106615761066181611670565b47801561067157610671816117e0565b5050565b6004546001600160a01b0316336001600160a01b031614610694575f80fd5b4761069e816117e0565b50565b5f546001600160a01b031633146106ca5760405162461bcd60e51b815260040161059c90611b91565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461073b5760405162461bcd60e51b815260040161059c90611b91565b6107476009600a611b36565b610755906305f5e100611b44565b600f556107646009600a611b36565b610772906305f5e100611b44565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107a26009600a611b36565b6107b0906305f5e100611b44565b60405190815260200160405180910390a1565b5f61041d338484610dd8565b5f546001600160a01b031633146107f85760405162461bcd60e51b815260040161059c90611b91565b601854610100900460ff16156108505760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161059c565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561089990309061088b6009600a611b36565b61049f906305f5e100611b44565b436015556013546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156108e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109099190611bc6565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610968573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190611bc6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fa9190611bc6565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610a41816001600160a01b03165f9081526001602052604090205490565b5f80610a545f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aba573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610adf9190611be1565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b589190611b72565b506018805461ffff1916610101179055565b6004546001600160a01b0316336001600160a01b031614610b89575f80fd5b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf39190611b5b565b90505f8111610c395760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b604482015260640161059c565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610c8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610caf9190611b72565b50505050565b6001600160a01b038316610d175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059c565b6001600160a01b038216610d785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e3c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059c565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059c565b5f8111610eff5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161059c565b5f80546001600160a01b03858116911614801590610f2a57505f546001600160a01b03848116911614155b8015610f4457506004546001600160a01b03848116911614155b156111b657600d545f03610f7b57610f786064610548600a54600d5411610f6d57600654610f71565b6008545b85906115aa565b90505b6014546001600160a01b038581169116148015610fa657506013546001600160a01b03848116911614155b8015610fca57506001600160a01b0383165f9081526003602052604090205460ff16155b156110cd57600f548211156110215760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161059c565b60105482611043856001600160a01b03165f9081526001602052604090205490565b61104d9190611c0c565b111561109b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161059c565b6110b66064610548600a54600d5411610f6d57600654610f71565b600d80549192505f6110c783611c1f565b91905055505b6014546001600160a01b0384811691161480156110f357506001600160a01b0384163014155b156111205761111d6064610548600b54600d541161111357600754610f71565b60095485906115aa565b90505b305f90815260016020526040902054601454600160a01b900460ff1615801561115657506014546001600160a01b038581169116145b8015611164575060185460ff165b8015611171575060115481115b80156111805750600c54600d54115b156111b4576111a261119d8461119884601254611817565b611817565b611670565b4780156111b2576111b2476117e0565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806111f357506001600160a01b0383165f9081526003602052604090205460ff165b801561120857506001600160a01b0384163014155b801561121d57506001600160a01b0383163014155b801561123757506005546001600160a01b03858116911614155b801561125157506005546001600160a01b03848116911614155b1561125b57436017555b6001600160a01b0384165f9081526003602052604090205460ff161561133a57600b5460155461128b9190611c0c565b431180156112a757506005546001600160a01b03858116911614155b80156112c157506005546001600160a01b03848116911614155b15611335576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113279086815260200190565b60405180910390a350505050565b61143e565b6001600160a01b0383165f9081526003602052604090205460ff1661143e576014546001600160a01b0384811691161461140c576001600160a01b038084165f90815260166020526040902060145490918681169116036113c75780600101545f036113c257600c54600d54106113b157436113bc565b6113bc43600161182b565b60018201555b611406565b6001600160a01b0385165f9081526016602052604090206001908101549082015415806113f75750816001015481105b1561140457600182018190555b505b5061143e565b6001600160a01b0384165f90815260166020526040902060175460018201546114349161182b565b8155436002909101555b80156114b657305f9081526001602052604090205461145d908261186c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114ad9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546114d8908361182b565b6001600160a01b0385165f9081526001602052604090205561151b6114fd838361182b565b6001600160a01b0385165f908152600160205260409020549061186c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611564858561182b565b604051908152602001611327565b5f81848411156115955760405162461bcd60e51b815260040161059c91906118f6565b505f6115a18486611c37565b95945050505050565b5f825f036115b957505f610421565b5f6115c48385611b44565b9050826115d18583611c4a565b146116285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161059c565b9392505050565b5f61162883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ca565b6014805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116b6576116b6611c69565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561170d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117319190611bc6565b8160018151811061174457611744611c69565b6001600160a01b03928316602091820292909201015260135461176a9130911684610cb5565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a29085905f90869030904290600401611c7d565b5f604051808303815f87803b1580156117b9575f80fd5b505af11580156117cb573d5f803e3d5ffd5b50506014805460ff60a01b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610671573d5f803e3d5ffd5b5f8183116118255782611628565b50919050565b5f61162883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611572565b5f806118788385611c0c565b9050838110156116285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161059c565b5f81836118ea5760405162461bcd60e51b815260040161059c91906118f6565b505f6115a18486611c4a565b5f602080835283518060208501525f5b8181101561192257858101830151858201604001528201611906565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069e575f80fd5b5f8060408385031215611967575f80fd5b823561197281611942565b946020939093013593505050565b5f805f60608486031215611992575f80fd5b833561199d81611942565b925060208401356119ad81611942565b929592945050506040919091013590565b5f805f606084860312156119d0575f80fd5b83356119db81611942565b95602085013595506040909401359392505050565b5f60208284031215611a00575f80fd5b813561162881611942565b5f8060408385031215611a1c575f80fd5b8235611a2781611942565b91506020830135611a3781611942565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a9057815f1904821115611a7657611a76611a42565b80851615611a8357918102915b93841c9390800290611a5b565b509250929050565b5f82611aa657506001610421565b81611ab257505f610421565b8160018114611ac85760028114611ad257611aee565b6001915050610421565b60ff841115611ae357611ae3611a42565b50506001821b610421565b5060208310610133831016604e8410600b8410161715611b11575081810a610421565b611b1b8383611a56565b805f1904821115611b2e57611b2e611a42565b029392505050565b5f61162860ff841683611a98565b808202811582820484141761042157610421611a42565b5f60208284031215611b6b575f80fd5b5051919050565b5f60208284031215611b82575f80fd5b81518015158114611628575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bd6575f80fd5b815161162881611942565b5f805f60608486031215611bf3575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561042157610421611a42565b5f60018201611c3057611c30611a42565b5060010190565b8181038181111561042157610421611a42565b5f82611c6457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ccd5784516001600160a01b031683529383019391830191600101611ca8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b5e3f46b33d063b41bf9da9598676cad1d1640bc3db49c7d331bcef4fbe09a0d64736f6c63430008180033

Deployed Bytecode Sourcemap

3553:10785:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5760:83;;;;;;;;;;-1:-1:-1;5830:5:0;;;;;;;;;;;-1:-1:-1;;;5830:5:0;;;;5760:83;;;;5830:5;5760:83;:::i;:::-;;;;;;;;6593:161;;;;;;;;;;-1:-1:-1;6593:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6593:161:0;1023:187:1;4702:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4702:51:0;1215:177:1;4766:41:0;;;;;;;;;;-1:-1:-1;4766:41:0;;;;-1:-1:-1;;;;;4766:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4766:41:0;1397:229:1;6037:95:0;;;;;;;;;;;;;:::i;6762:313::-;;;;;;;;;;-1:-1:-1;6762:313:0;;;;;:::i;:::-;;:::i;12480:454::-;;;;;;;;;;-1:-1:-1;12480:454:0;;;;;:::i;:::-;;:::i;:::-;;5946:83;;;;;;;;;;-1:-1:-1;5946:83:0;;4442:1;2622:36:1;;2610:2;2595:18;5946:83:0;2480:184:1;4814:28:0;;;;;;;;;;-1:-1:-1;4814:28:0;;;;-1:-1:-1;;;;;4814:28:0;;;13788:352;;;;;;;;;;;;;:::i;14148:187::-;;;;;;;;;;;;;:::i;6140:119::-;;;;;;;;;;-1:-1:-1;6140:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6233:18:0;6206:7;6233:18;;;:9;:18;;;;;;;6140:119;2604:148;;;;;;;;;;;;;:::i;11978:159::-;;;;;;;;;;;;;:::i;4517:53::-;;;;;;;;;;;;;;;;2390:79;;;;;;;;;;-1:-1:-1;2428:7:0;2455:6;-1:-1:-1;;;;;2455:6:0;2390:79;;4577:55;;;;;;;;;;;;;;;;6267:167;;;;;;;;;;-1:-1:-1;6267:167:0;;;;;:::i;:::-;;:::i;4639:56::-;;;;;;;;;;;;;;;;13040:703;;;;;;;;;;;;;:::i;6442:143::-;;;;;;;;;;-1:-1:-1;6442:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6550:18:0;;;6523:7;6550:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6442:143;12145:327;;;;;;;;;;-1:-1:-1;12145:327:0;;;;;:::i;:::-;;:::i;6593:161::-;6668:4;6685:39;175:10;6708:7;6717:6;6685:8;:39::i;:::-;-1:-1:-1;6742:4:0;6593:161;;;;;:::o;6037:95::-;6090:7;4497:13;4442:1;4497:2;:13;:::i;:::-;4485:25;;:9;:25;:::i;:::-;6110:14;;6037:95;:::o;6762:313::-;6860:4;6877:36;6887:6;6895:9;6906:6;6877:9;:36::i;:::-;6924:121;6933:6;175:10;6955:89;6993:6;6955:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6955:19:0;;;;;;:11;:19;;;;;;;;175:10;6955:33;;;;;;;;;;:37;:89::i;:::-;6924:8;:121::i;:::-;-1:-1:-1;7063:4:0;6762:313;;;;;:::o;12480:454::-;12601:10;;-1:-1:-1;;;;;12601:10:0;175;-1:-1:-1;;;;;12585:26:0;;12577:35;;;;;;12689:38;;-1:-1:-1;;;12689:38:0;;12721:4;12689:38;;;1569:51:1;12653:6:0;;12623:20;;-1:-1:-1;;;;;12689:23:0;;;;;1542:18:1;;12689:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12671:56;-1:-1:-1;12738:20:0;12761:33;12787:6;12761:21;12671:56;12773:8;12761:11;:21::i;:::-;:25;;:33::i;:::-;12738:56;;12824:12;12813:7;:23;;12805:62;;;;-1:-1:-1;;;12805:62:0;;5595:2:1;12805:62:0;;;5577:21:1;5634:2;5614:18;;;5607:30;5673:28;5653:18;;;5646:56;5719:18;;12805:62:0;;;;;;;;;12901:10;;;12878:48;;-1:-1:-1;;;12878:48:0;;-1:-1:-1;;;;;12901:10:0;;;12878:48;;;5930:51:1;;;;5997:18;;;5990:34;;;12878:22:0;;;;;5903:18:1;;12878:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12566:368;;;12480:454;;;:::o;13788:352::-;13854:10;;-1:-1:-1;;;;;13854:10:0;175;-1:-1:-1;;;;;13838:26:0;;13830:35;;;;;;13915:4;13876:20;6233:18;;;:9;:18;;;;;;13935:14;;13932:73;;13963:30;13980:12;13963:16;:30::i;:::-;14034:21;14069:14;;14066:67;;14097:24;14110:10;14097:12;:24::i;:::-;13819:321;;13788:352::o;14148:187::-;14212:10;;-1:-1:-1;;;;;14212:10:0;175;-1:-1:-1;;;;;14198:24:0;;14190:33;;;;;;14263:21;14295:32;14263:21;14295:12;:32::i;:::-;14179:156;14148:187::o;2604:148::-;2517:6;;-1:-1:-1;;;;;2517:6:0;175:10;2517:22;2509:67;;;;-1:-1:-1;;;2509:67:0;;;;;;;:::i;:::-;2711:1:::1;2695:6:::0;;2674:40:::1;::::0;-1:-1:-1;;;;;2695:6:0;;::::1;::::0;2674:40:::1;::::0;2711:1;;2674:40:::1;2742:1;2725:19:::0;;-1:-1:-1;;;;;;2725:19:0::1;::::0;;2604:148::o;11978:159::-;2517:6;;-1:-1:-1;;;;;2517:6:0;175:10;2517:22;2509:67;;;;-1:-1:-1;;;2509:67:0;;;;;;;:::i;:::-;4497:13:::1;4442:1;4497:2;:13;:::i;:::-;4485:25;::::0;:9:::1;:25;:::i;:::-;12032:12;:21:::0;4497:13:::1;4442:1;4497:2;:13;:::i;:::-;4485:25;::::0;:9:::1;:25;:::i;:::-;12064:14;:22:::0;12102:27:::1;4497:13;4442:1;4497:2;:13;:::i;:::-;4485:25;::::0;:9:::1;:25;:::i;:::-;12102:27;::::0;1361:25:1;;;1349:2;1334:18;12102:27:0::1;;;;;;;11978:159::o:0;6267:167::-;6345:4;6362:42;175:10;6386:9;6397:6;6362:9;:42::i;13040:703::-;2517:6;;-1:-1:-1;;;;;2517:6:0;175:10;2517:22;2509:67;;;;-1:-1:-1;;;2509:67:0;;;;;;;:::i;:::-;13104:11:::1;::::0;::::1;::::0;::::1;;;13103:12;13095:48;;;::::0;-1:-1:-1;;;13095:48:0;;6880:2:1;13095:48:0::1;::::0;::::1;6862:21:1::0;6919:2;6899:18;;;6892:30;6958:25;6938:18;;;6931:53;7001:18;;13095:48:0::1;6678:347:1::0;13095:48:0::1;13154:15;:78:::0;;-1:-1:-1;;;;;;13154:78:0::1;13189:42;13154:78:::0;;::::1;::::0;;;13243:58:::1;::::0;13260:4:::1;::::0;4497:13:::1;4442:1;4497:2;:13;:::i;:::-;4485:25;::::0;:9:::1;:25;:::i;13243:58::-;13323:12;13312:10;:23:::0;13380:15:::1;::::0;:25:::1;::::0;;-1:-1:-1;;;13380:25:0;;;;-1:-1:-1;;;;;13380:15:0;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13362:55:0::1;;13426:4;13433:15;;;;;;;;;-1:-1:-1::0;;;;;13433:15:0::1;-1:-1:-1::0;;;;;13433:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13362:94;::::0;-1:-1:-1;;;;;;13362:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7516:15:1;;;13362:94:0::1;::::0;::::1;7498:34:1::0;7568:15;;7548:18;;;7541:43;7433:18;;13362:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13346:13;:110:::0;;-1:-1:-1;;;;;13346:110:0;;::::1;-1:-1:-1::0;;;;;;13346:110:0;;::::1;;::::0;;13467:15:::1;::::0;::::1;:31;13506:21;13537:4;13543:24;13537:4:::0;-1:-1:-1;;;;;6233:18:0;6206:7;6233:18;;;:9;:18;;;;;;;6140:119;13543:24:::1;13568:1;13570::::0;13572:7:::1;2428::::0;2455:6;-1:-1:-1;;;;;2455:6:0;;2390:79;13572:7:::1;13467:130;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13467:130:0;;;-1:-1:-1;;;;;7954:15:1;;;13467:130:0::1;::::0;::::1;7936:34:1::0;7986:18;;;7979:34;;;;8029:18;;;8022:34;;;;8072:18;;;8065:34;8136:15;;;8115:19;;;8108:44;13581:15:0::1;8168:19:1::0;;;8161:35;7870:19;;13467:130:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13615:13:0::1;::::0;13646:15:::1;::::0;13608:73:::1;::::0;-1:-1:-1;;;13608:73:0;;-1:-1:-1;;;;;13646:15:0;;::::1;13608:73;::::0;::::1;5930:51:1::0;-1:-1:-1;;5997:18:1;;;5990:34;13615:13:0;::::1;::::0;-1:-1:-1;13608:29:0::1;::::0;5903:18:1;;13608:73:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13692:11:0::1;:16:::0;;-1:-1:-1;;13719:16:0;;;;;13040:703::o;12145:327::-;12231:10;;-1:-1:-1;;;;;12231:10:0;175;-1:-1:-1;;;;;12215:26:0;;12207:35;;;;;;12319:38;;-1:-1:-1;;;12319:38:0;;12351:4;12319:38;;;1569:51:1;12283:6:0;;12253:20;;-1:-1:-1;;;;;12319:23:0;;;;;1542:18:1;;12319:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12301:56;;12386:1;12376:7;:11;12368:42;;;;-1:-1:-1;;;12368:42:0;;8999:2:1;12368:42:0;;;8981:21:1;9038:2;9018:18;;;9011:30;-1:-1:-1;;;9057:18:1;;;9050:48;9115:18;;12368:42:0;8797:342:1;12368:42:0;12444:10;;;12421:43;;-1:-1:-1;;;12421:43:0;;-1:-1:-1;;;;;12444:10:0;;;12421:43;;;5930:51:1;;;;5997:18;;;5990:34;;;12421:22:0;;;;;5903:18:1;;12421:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12196:276;;12145:327;:::o;7083:335::-;-1:-1:-1;;;;;7176:19:0;;7168:68;;;;-1:-1:-1;;;7168:68:0;;9346:2:1;7168:68:0;;;9328:21:1;9385:2;9365:18;;;9358:30;9424:34;9404:18;;;9397:62;-1:-1:-1;;;9475:18:1;;;9468:34;9519:19;;7168:68:0;9144:400:1;7168:68:0;-1:-1:-1;;;;;7255:21:0;;7247:68;;;;-1:-1:-1;;;7247:68:0;;9751:2:1;7247:68:0;;;9733:21:1;9790:2;9770:18;;;9763:30;9829:34;9809:18;;;9802:62;-1:-1:-1;;;9880:18:1;;;9873:32;9922:19;;7247:68:0;9549:398:1;7247:68:0;-1:-1:-1;;;;;7326:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7378:32;;1361:25:1;;;7378:32:0;;1334:18:1;7378:32:0;;;;;;;7083:335;;;:::o;7426:3941::-;-1:-1:-1;;;;;7514:18:0;;7506:68;;;;-1:-1:-1;;;7506:68:0;;10154:2:1;7506:68:0;;;10136:21:1;10193:2;10173:18;;;10166:30;10232:34;10212:18;;;10205:62;-1:-1:-1;;;10283:18:1;;;10276:35;10328:19;;7506:68:0;9952:401:1;7506:68:0;-1:-1:-1;;;;;7593:16:0;;7585:64;;;;-1:-1:-1;;;7585:64:0;;10560:2:1;7585:64:0;;;10542:21:1;10599:2;10579:18;;;10572:30;10638:34;10618:18;;;10611:62;-1:-1:-1;;;10689:18:1;;;10682:33;10732:19;;7585:64:0;10358:399:1;7585:64:0;7677:1;7668:6;:10;7660:64;;;;-1:-1:-1;;;7660:64:0;;10964:2:1;7660:64:0;;;10946:21:1;11003:2;10983:18;;;10976:30;11042:34;11022:18;;;11015:62;-1:-1:-1;;;11093:18:1;;;11086:39;11142:19;;7660:64:0;10762:405:1;7660:64:0;7737:17;2455:6;;-1:-1:-1;;;;;7773:15:0;;;2455:6;;7773:15;;;;:32;;-1:-1:-1;2428:7:0;2455:6;-1:-1:-1;;;;;7792:13:0;;;2455:6;;7792:13;;7773:32;:52;;;;-1:-1:-1;7815:10:0;;-1:-1:-1;;;;;7809:16:0;;;7815:10;;7809:16;;7773:52;7769:1564;;;7846:9;;7859:1;7846:14;7842:145;;7893:78;7967:3;7893:69;7917:15;;7905:9;;:27;7904:57;;7947:14;;7904:57;;;7934:12;;7904:57;7893:6;;:10;:69::i;:78::-;7881:90;;7842:145;8015:13;;-1:-1:-1;;;;;8007:21:0;;;8015:13;;8007:21;:55;;;;-1:-1:-1;8046:15:0;;-1:-1:-1;;;;;8032:30:0;;;8046:15;;8032:30;;8007:55;:82;;;;-1:-1:-1;;;;;;8067:22:0;;;;;;:18;:22;;;;;;;;8066:23;8007:82;8003:551;;;8151:12;;8141:6;:22;;8111:125;;;;-1:-1:-1;;;8111:125:0;;11374:2:1;8111:125:0;;;11356:21:1;11413:2;11393:18;;;11386:30;11452:27;11432:18;;;11425:55;11497:18;;8111:125:0;11172:349:1;8111:125:0;8311:14;;8301:6;8285:13;8295:2;-1:-1:-1;;;;;6233:18:0;6206:7;6233:18;;;:9;:18;;;;;;;6140:119;8285:13;:22;;;;:::i;:::-;:40;;8255:144;;;;-1:-1:-1;;;8255:144:0;;11858:2:1;8255:144:0;;;11840:21:1;11897:2;11877:18;;;11870:30;11936:28;11916:18;;;11909:56;11982:18;;8255:144:0;11656:350:1;8255:144:0;8430:78;8504:3;8430:69;8454:15;;8442:9;;:27;8441:57;;8484:14;;8441:57;;8430:78;8527:9;:11;;8418:90;;-1:-1:-1;8527:9:0;:11;;;:::i;:::-;;;;;;8003:551;8579:13;;-1:-1:-1;;;;;8573:19:0;;;8579:13;;8573:19;:44;;;;-1:-1:-1;;;;;;8596:21:0;;8612:4;8596:21;;8573:44;8570:177;;;8650:81;8727:3;8650:72;8674:16;;8662:9;;:28;8661:60;;8706:15;;8661:60;;;8692:13;;8650:6;;:10;:72::i;:81::-;8638:93;;8570:177;8812:4;8763:28;6233:18;;;:9;:18;;;;;;8856:6;;-1:-1:-1;;;8856:6:0;;;;8855:7;:31;;;;-1:-1:-1;8873:13:0;;-1:-1:-1;;;;;8867:19:0;;;8873:13;;8867:19;8855:31;:46;;;;-1:-1:-1;8890:11:0;;;;8855:46;:107;;;;;8945:17;;8922:20;:40;8855:107;:158;;;;;8995:18;;8983:9;;:30;8855:158;8833:489;;;9048:67;9065:49;9069:6;9076:37;9080:20;9101:11;;9076:3;:37::i;:::-;9065:3;:49::i;:::-;9048:16;:67::i;:::-;9163:21;9207:20;;9203:104;;9252:35;9265:21;9252:12;:35::i;:::-;9029:293;8833:489;7827:1506;7769:1564;-1:-1:-1;;;;;9364:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9392:22:0;;;;;;:18;:22;;;;;;;;9364:50;9363:90;;;;-1:-1:-1;;;;;;9432:21:0;;9448:4;9432:21;;9363:90;:113;;;;-1:-1:-1;;;;;;9457:19:0;;9471:4;9457:19;;9363:113;:147;;;;-1:-1:-1;9501:9:0;;-1:-1:-1;;;;;9493:17:0;;;9501:9;;9493:17;;9363:147;:166;;;;-1:-1:-1;9520:9:0;;-1:-1:-1;;;;;9514:15:0;;;9520:9;;9514:15;;9363:166;9345:224;;;9557:12;9541:13;:28;9345:224;-1:-1:-1;;;;;9586:24:0;;;;;;:18;:24;;;;;;;;9582:1419;;;9660:16;;9647:10;;:29;;;;:::i;:::-;9632:12;:44;:82;;;;-1:-1:-1;9705:9:0;;-1:-1:-1;;;;;9697:17:0;;;9705:9;;9697:17;;9632:82;:101;;;;-1:-1:-1;9724:9:0;;-1:-1:-1;;;;;9718:15:0;;;9724:9;;9718:15;;9632:101;9628:350;;;-1:-1:-1;;;;;9799:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;9845:13;;;;;;;;;;:22;;;;;;9911:26;;;;;;9818:6;1361:25:1;;1349:2;1334:18;;1215:177;9911:26:0;;;;;;;;9956:7;7426:3941;;;:::o;9628:350::-;9582:1419;;;-1:-1:-1;;;;;10015:22:0;;;;;;:18;:22;;;;;;;;10010:980;;10062:13;;-1:-1:-1;;;;;10062:19:0;;;:13;;:19;10058:917;;-1:-1:-1;;;;;10137:19:0;;;10106:28;10137:19;;;:15;:19;;;;;10183:13;;10137:19;;10183:21;;;:13;;:21;10179:532;;10237:4;:17;;;10258:1;10237:22;10233:172;;10322:18;;10312:9;;:28;:65;;10365:12;10312:65;;;10343:19;:12;10360:1;10343:16;:19::i;:::-;10292:17;;;:85;10233:172;10179:532;;;-1:-1:-1;;;;;10480:21:0;;10461:16;10480:21;;;:15;:21;;;;;:34;;;;;10545:17;;;;:22;;:54;;;10582:4;:17;;;10571:8;:28;10545:54;10541:147;;;10632:17;;;:28;;;10541:147;10434:277;10179:532;10083:647;10058:917;;;-1:-1:-1;;;;;10801:21:0;;10770:28;10801:21;;;:15;:21;;;;;10885:13;;10863:17;;;;:36;;:21;:36::i;:::-;10845:54;;10943:12;10922:18;;;;:33;10058:917;11017:13;;11013:170;;11091:4;11073:24;;;;:9;:24;;;;;;:39;;11102:9;11073:28;:39::i;:::-;11066:4;11048:24;;;;:9;:24;;;;;;;:64;;;;11132:39;;-1:-1:-1;;;;;11132:39:0;;;;;;;11161:9;1361:25:1;;1349:2;1334:18;;1215:177;11132:39:0;;;;;;;;11013:170;-1:-1:-1;;;;;11211:15:0;;;;;;:9;:15;;;;;;:27;;11231:6;11211:19;:27::i;:::-;-1:-1:-1;;;;;11195:15:0;;;;;;:9;:15;;;;;:43;11263:40;11281:21;:6;11292:9;11281:10;:21::i;:::-;-1:-1:-1;;;;;11263:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11249:13:0;;;;;;;:9;:13;;;;;:54;;;;11319:40;;;11337:21;:6;11348:9;11337:10;:21::i;:::-;11319:40;;1361:25:1;;;1349:2;1334:18;11319:40:0;1215:177:1;1280:190:0;1366:7;1402:12;1394:6;;;;1386:29;;;;-1:-1:-1;;;1386:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1426:9:0;1438:5;1442:1;1438;:5;:::i;:::-;1426:17;1280:190;-1:-1:-1;;;;;1280:190:0:o;1478:246::-;1536:7;1560:1;1565;1560:6;1556:47;;-1:-1:-1;1590:1:0;1583:8;;1556:47;1613:9;1625:5;1629:1;1625;:5;:::i;:::-;1613:17;-1:-1:-1;1658:1:0;1649:5;1653:1;1613:17;1649:5;:::i;:::-;:10;1641:56;;;;-1:-1:-1;;;1641:56:0;;12708:2:1;1641:56:0;;;12690:21:1;12747:2;12727:18;;;12720:30;12786:34;12766:18;;;12759:62;-1:-1:-1;;;12837:18:1;;;12830:31;12878:19;;1641:56:0;12506:397:1;1641:56:0;1715:1;1478:246;-1:-1:-1;;;1478:246:0:o;1732:132::-;1790:7;1817:39;1821:1;1824;1817:39;;;;;;;;;;;;;;;;;:3;:39::i;11487:483::-;5302:6;:13;;-1:-1:-1;;;;5302:13:0;-1:-1:-1;;;5302:13:0;;;11589:16:::1;::::0;;11603:1:::1;11589:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11589:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11589:16:0::1;11565:40;;11634:4;11616;11621:1;11616:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11616:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11660:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11660:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11616:7;;11660:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11650:4;11655:1;11650:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11650:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11725:15:::1;::::0;11693:62:::1;::::0;11710:4:::1;::::0;11725:15:::1;11743:11:::0;11693:8:::1;:62::i;:::-;11766:15;::::0;:196:::1;::::0;-1:-1:-1;;;11766:196:0;;-1:-1:-1;;;;;11766:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11847:11;;11766:15:::1;::::0;11889:4;;11916::::1;::::0;11936:15:::1;::::0;11766:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5338:6:0;:14;;-1:-1:-1;;;;5338:14:0;;;-1:-1:-1;;;;11487:483:0:o;12942:92::-;12999:10;;:27;;-1:-1:-1;;;;;12999:10:0;;;;:27;;;;;13019:6;;12999:10;:27;:10;:27;13019:6;12999:10;:27;;;;;;;;;;;;;;;;;;;11377:102;11434:4;11461:1;11457;:5;11456:15;;11470:1;11456:15;;;-1:-1:-1;11466:1:0;11377:102;-1:-1:-1;11377:102:0:o;1136:136::-;1194:7;1221:43;1225:1;1228;1221:43;;;;;;;;;;;;;;;;;:3;:43::i;949:179::-;1007:7;;1039:5;1043:1;1039;:5;:::i;:::-;1027:17;;1068:1;1063;:6;;1055:46;;;;-1:-1:-1;;;1055:46:0;;14359:2:1;1055:46:0;;;14341:21:1;14398:2;14378:18;;;14371:30;14437:29;14417:18;;;14410:57;14484:18;;1055:46:0;14157:351:1;1872:189:0;1958:7;1993:12;1986:5;1978:28;;;;-1:-1:-1;;;1978:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2017:9:0;2029:5;2033:1;2029;: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;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2092:383::-;2169:6;2177;2185;2238:2;2226:9;2217:7;2213:23;2209:32;2206:52;;;2254:1;2251;2244:12;2206:52;2293:9;2280:23;2312:31;2337:5;2312:31;:::i;:::-;2362:5;2414:2;2399:18;;2386:32;;-1:-1:-1;2465:2:1;2450:18;;;2437:32;;2092:383;-1:-1:-1;;;2092:383:1:o;2877:247::-;2936:6;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3044:9;3031:23;3063:31;3088:5;3063:31;:::i;3129:388::-;3197:6;3205;3258:2;3246:9;3237:7;3233:23;3229:32;3226:52;;;3274:1;3271;3264:12;3226:52;3313:9;3300:23;3332:31;3357:5;3332:31;:::i;:::-;3382:5;-1:-1:-1;3439:2:1;3424:18;;3411:32;3452:33;3411:32;3452:33;:::i;:::-;3504:7;3494:17;;;3129:388;;;;;:::o;3522:127::-;3583:10;3578:3;3574:20;3571:1;3564:31;3614:4;3611:1;3604:15;3638:4;3635:1;3628:15;3654:416;3743:1;3780:5;3743:1;3794:270;3815:7;3805:8;3802:21;3794:270;;;3874:4;3870:1;3866:6;3862:17;3856:4;3853:27;3850:53;;;3883:18;;:::i;:::-;3933:7;3923:8;3919:22;3916:55;;;3953:16;;;;3916:55;4032:22;;;;3992:15;;;;3794:270;;;3798:3;3654:416;;;;;:::o;4075:806::-;4124:5;4154:8;4144:80;;-1:-1:-1;4195:1:1;4209:5;;4144:80;4243:4;4233:76;;-1:-1:-1;4280:1:1;4294:5;;4233:76;4325:4;4343:1;4338:59;;;;4411:1;4406:130;;;;4318:218;;4338:59;4368:1;4359:10;;4382:5;;;4406:130;4443:3;4433:8;4430:17;4427:43;;;4450:18;;:::i;:::-;-1:-1:-1;;4506:1:1;4492:16;;4521:5;;4318:218;;4620:2;4610:8;4607:16;4601:3;4595:4;4592:13;4588:36;4582:2;4572:8;4569:16;4564:2;4558:4;4555:12;4551:35;4548:77;4545:159;;;-1:-1:-1;4657:19:1;;;4689:5;;4545:159;4736:34;4761:8;4755:4;4736:34;:::i;:::-;4806:6;4802:1;4798:6;4794:19;4785:7;4782:32;4779:58;;;4817:18;;:::i;:::-;4855:20;;4075:806;-1:-1:-1;;;4075:806:1:o;4886:140::-;4944:5;4973:47;5014:4;5004:8;5000:19;4994:4;4973:47;:::i;5031:168::-;5104:9;;;5135;;5152:15;;;5146:22;;5132:37;5122:71;;5173:18;;:::i;5204:184::-;5274:6;5327:2;5315:9;5306:7;5302:23;5298:32;5295:52;;;5343:1;5340;5333:12;5295:52;-1:-1:-1;5366:16:1;;5204:184;-1:-1:-1;5204:184:1:o;6035:277::-;6102:6;6155:2;6143:9;6134:7;6130:23;6126:32;6123:52;;;6171:1;6168;6161:12;6123:52;6203:9;6197:16;6256:5;6249:13;6242:21;6235:5;6232:32;6222:60;;6278:1;6275;6268:12;6317:356;6519:2;6501:21;;;6538:18;;;6531:30;6597:34;6592:2;6577:18;;6570:62;6664:2;6649:18;;6317:356::o;7030:251::-;7100:6;7153:2;7141:9;7132:7;7128:23;7124:32;7121:52;;;7169:1;7166;7159:12;7121:52;7201:9;7195:16;7220:31;7245:5;7220:31;:::i;8207:306::-;8295:6;8303;8311;8364:2;8352:9;8343:7;8339:23;8335:32;8332:52;;;8380:1;8377;8370:12;8332:52;8409:9;8403:16;8393:26;;8459:2;8448:9;8444:18;8438:25;8428:35;;8503:2;8492:9;8488:18;8482:25;8472:35;;8207:306;;;;;:::o;11526:125::-;11591:9;;;11612:10;;;11609:36;;;11625:18;;:::i;12011:135::-;12050:3;12071:17;;;12068:43;;12091:18;;:::i;:::-;-1:-1:-1;12138:1:1;12127:13;;12011:135::o;12151:128::-;12218:9;;;12239:11;;;12236:37;;;12253:18;;:::i;12284:217::-;12324:1;12350;12340:132;;12394:10;12389:3;12385:20;12382:1;12375:31;12429:4;12426:1;12419:15;12457:4;12454:1;12447:15;12340:132;-1:-1:-1;12486:9:1;;12284:217::o;13040:127::-;13101:10;13096:3;13092:20;13089:1;13082:31;13132:4;13129:1;13122:15;13156:4;13153:1;13146:15;13172:980;13434:4;13482:3;13471:9;13467:19;13513:6;13502:9;13495:25;13539:2;13577:6;13572:2;13561:9;13557:18;13550:34;13620:3;13615:2;13604:9;13600:18;13593:31;13644:6;13679;13673:13;13710:6;13702;13695:22;13748:3;13737:9;13733:19;13726:26;;13787:2;13779:6;13775:15;13761:29;;13808:1;13818:195;13832:6;13829:1;13826:13;13818:195;;;13897:13;;-1:-1:-1;;;;;13893:39:1;13881:52;;13988:15;;;;13953:12;;;;13929:1;13847:9;13818:195;;;-1:-1:-1;;;;;;;14069:32:1;;;;14064:2;14049:18;;14042:60;-1:-1:-1;;;14133:3:1;14118:19;14111:35;14030:3;13172:980;-1:-1:-1;;;13172:980:1:o

Swarm Source

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