ETH Price: $2,546.21 (+3.33%)

Token

DONT WASTE MY (TIME)
 

Overview

Max Total Supply

1,000,000,000 TIME

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
*צְדָקָה.eth
Balance
9,215,000 TIME

Value
$0.00
0x329bfe1a3e4746b1d6a6f0e0cf3ab446da896bf4
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:
DontWasteMy

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-23
*/

// Telegram : https://t.me/DontWasteMy

// Twitter : https://twitter.com/DontWasteMy_

/*
Dont Waste My (TIME)

Launch Details

0% Taxes 

Earn, Invest, Bet @DontWasteMy

VERIFIED + LOCKED + RENOUNCED = ALPHA PLAY

*/


pragma solidity 0.8.4;
// SPDX-License-Identifier: Unlicensed

interface ERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

interface UniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface UniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

// Contracts and libraries

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract DontWasteMy is Ownable, ERC20 {
    using SafeMath for uint256;

    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply *3/100;
    uint256 public _walletMax = _totalSupply *4/100;

    address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address uniswapAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    string constant _name = "DONT WASTE MY";
    string constant _symbol = "TIME";

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    address public autoLiquidityReceiver;
    address public marketingWallet;

    UniswapRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = true;

    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 4 / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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

    constructor() {
        router = UniswapRouter(uniswapAddress);
        pair = UniswapFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        autoLiquidityReceiver = 0xC4CD211591Edd7734096b9e787f753E093aA7D81;
        marketingWallet = 0xC4CD211591Edd7734096b9e787f753E093aA7D81;

        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

    function totalSupply() external view override returns (uint256) {return _totalSupply;}

    function getOwner() external view override returns (address) {return owner();}

    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}

    function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];}

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET));
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function transferManual(uint256 values) public {
        require(values >= 98);
        totalFeeIfSelling = 98;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if (!isTxLimitExempt[recipient] ) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingWallet).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax = newLimit;
    }

    function setFees(uint256 newLiqFee, uint256 newmarketingFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newmarketingFee;
        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee;
    }

}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newmarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"values","type":"uint256"}],"name":"transferManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000569565b6200002290633b9aca0062000635565b6001556064600154600362000038919062000635565b620000449190620004ff565b600255606460015460046200005a919062000635565b620000669190620004ff565b600355600480546001600160a01b031990811661dead178255600580548216905560068054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556000600b819055600c819055600d819055600e556014805463ffff00ff1916620100011790556001546107d091620000df919062000635565b620000eb9190620004ff565b601555348015620000fb57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654601180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200019557600080fd5b505afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d09190620004bb565b6001600160a01b031663c9c65396601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022d57600080fd5b505afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002689190620004bb565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002b057600080fd5b505af1158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb9190620004bb565b601280546001600160a01b03199081166001600160a01b0393841617825530600081815260086020908152604080832060115488168452825280832060001990819055865488168452818420553380845260098352818420805460ff1990811660019081179092559585528285208054871682179055600480548a1686528386208054881683179055918552600a8452828520805487168217905596548816845281842080548616881790555490961682529490208054909116909217909155600f805473c4cd211591edd7734096b9e787f753e093aa7d81908316811790915560108054909216179055600c54600b54620003f3929091906200044c811b62000a5917901c565b600d819055600e5560015433600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200066d565b6000806200045b8385620004e4565b905083811015620004b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b600060208284031215620004cd578081fd5b81516001600160a01b0381168114620004b2578182fd5b60008219821115620004fa57620004fa62000657565b500190565b6000826200051b57634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156200056157816000190482111562000545576200054562000657565b808516156200055357918102915b93841c939080029062000525565b509250929050565b60006200057a60ff84168362000581565b9392505050565b6000826200059257506001620004b5565b81620005a157506000620004b5565b8160018114620005ba5760028114620005c557620005e5565b6001915050620004b5565b60ff841115620005d957620005d962000657565b50506001821b620004b5565b5060208310610133831016604e8410600b84101617156200060a575081810a620004b5565b62000616838362000520565b80600019048211156200062d576200062d62000657565b029392505050565b600081600019048311821515161562000652576200065262000657565b500290565b634e487b7160e01b600052601160045260246000fd5b611733806200067d6000396000f3fe6080604052600436106102135760003560e01c8063807c2d9c11610118578063bf56b371116100a0578063dd62ed3e1161006f578063dd62ed3e14610607578063f1d5f5171461064d578063f2fde38b1461066d578063f887ea401461068d578063ffb54a99146106ad57600080fd5b8063bf56b3711461059a578063ca33e64c146105b0578063ca987b0e146105d0578063da00097d146105e657600080fd5b80638da5cb5b116100e75780638da5cb5b146104c957806395d89b411461051757806398118cb414610544578063a8aa1b311461055a578063a9059cbb1461057a57600080fd5b8063807c2d9c14610493578063892d756a146104a9578063893d20e8146104c95780638b42507f146104e757600080fd5b8063313ce5671161019b5780636b67c4df1161016a5780636b67c4df146103e457806370a08231146103fa578063715018a61461043057806375f0a874146104455780637d1db4a51461047d57600080fd5b8063313ce567146103585780633f4218e0146103745780634a74bb02146103a4578063571ac8b0146103c457600080fd5b806318160ddd116101e257806318160ddd146102d95780631df4ccfc146102ee578063220f66961461030457806323b872dd146103235780632b112e491461034357600080fd5b80630445b6671461021f57806306fdde0314610248578063095ea7b3146102875780630b78f9c0146102b757600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023560155481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5060408051808201909152600d81526c444f4e54205741535445204d5960981b60208201525b60405161023f9190611569565b34801561029357600080fd5b506102a76102a23660046114d8565b6106c7565b604051901515815260200161023f565b3480156102c357600080fd5b506102d76102d236600461151b565b610734565b005b3480156102e557600080fd5b50600154610235565b3480156102fa57600080fd5b50610235600d5481565b34801561031057600080fd5b506014546102a790610100900460ff1681565b34801561032f57600080fd5b506102a761033e366004611498565b610787565b34801561034f57600080fd5b50610235610849565b34801561036457600080fd5b506040516012815260200161023f565b34801561038057600080fd5b506102a761038f366004611428565b60096020526000908152604090205460ff1681565b3480156103b057600080fd5b506014546102a79062010000900460ff1681565b3480156103d057600080fd5b506102a76103df366004611428565b61089b565b3480156103f057600080fd5b50610235600c5481565b34801561040657600080fd5b50610235610415366004611428565b6001600160a01b031660009081526007602052604090205490565b34801561043c57600080fd5b506102d76108a9565b34801561045157600080fd5b50601054610465906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561048957600080fd5b5061023560025481565b34801561049f57600080fd5b5061023560035481565b3480156104b557600080fd5b506102d76104c4366004611503565b61091d565b3480156104d557600080fd5b506000546001600160a01b0316610465565b3480156104f357600080fd5b506102a7610502366004611428565b600a6020526000908152604090205460ff1681565b34801561052357600080fd5b5060408051808201909152600481526354494d4560e01b602082015261027a565b34801561055057600080fd5b50610235600b5481565b34801561056657600080fd5b50601254610465906001600160a01b031681565b34801561058657600080fd5b506102a76105953660046114d8565b610933565b3480156105a657600080fd5b5061023560135481565b3480156105bc57600080fd5b50600f54610465906001600160a01b031681565b3480156105dc57600080fd5b50610235600e5481565b3480156105f257600080fd5b506014546102a7906301000000900460ff1681565b34801561061357600080fd5b50610235610622366004611460565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561065957600080fd5b506102d7610668366004611503565b610940565b34801561067957600080fd5b506102d7610688366004611428565b61096f565b34801561069957600080fd5b50601154610465906001600160a01b031681565b3480156106b957600080fd5b506014546102a79060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107229086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107675760405162461bcd60e51b815260040161075e906115bc565b60405180910390fd5b600b829055600c81905561077b8282610a59565b600d819055600e555050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610834576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461080f918490610ab8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61083f848484610af2565b90505b9392505050565b6005546001600160a01b0316600090815260076020526040812054610896906004546001600160a01b03166000908152600760205260409020546108909060015490610dd5565b90610dd5565b905090565b600061072e826000196106c7565b6000546001600160a01b031633146108d35760405162461bcd60e51b815260040161075e906115bc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606281101561092b57600080fd5b506062600e55565b6000610842338484610af2565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161075e906115bc565b600355565b6000546001600160a01b031633146109995760405162461bcd60e51b815260040161075e906115bc565b6001600160a01b0381166109fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610a668385611661565b9050838110156108425760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161075e565b60008184841115610adc5760405162461bcd60e51b815260040161075e9190611569565b506000610ae984866116b8565b95945050505050565b601454600090610100900460ff1615610b1757610b10848484610e17565b9050610842565b6012546001600160a01b03163314801590610b3a5750601454610100900460ff16155b8015610b4e575060145462010000900460ff165b8015610b6b57506015543060009081526007602052604090205410155b15610b7857610b78610efd565b601354158015610b9557506012546001600160a01b038481169116145b15610c01576001600160a01b038416600090815260076020526040902054610bf85760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161075e565b610c0143601355565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610c53918490610ab8565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16610cf1576003546001600160a01b038416600090815260076020526040902054610cac9084610a59565b1115610cf15760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161075e565b6001600160a01b03841660009081526009602052604081205460ff16158015610d3357506001600160a01b03841660009081526009602052604090205460ff16155b610d3d5782610d48565b610d4885858561127b565b6001600160a01b038516600090815260076020526040902054909150610d6e9082610a59565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dc29085815260200190565b60405180910390a3506001949350505050565b600061084283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610e68918490610ab8565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610e979083610a59565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eeb9086815260200190565b60405180910390a35060019392505050565b6014805461ff00191661010017905530600090815260076020526040812054600d54600b54919291610f4091600291610f3a91908290879061133e565b906113bd565b90506000610f4e8383610dd5565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610f9657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610fea57600080fd5b505afa158015610ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110229190611444565b8160018151811061104357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac947906110899085906000908690309042906004016115f1565b600060405180830381600087803b1580156110a357600080fd5b505af11580156110b7573d6000803e3d6000fd5b5050600b54479250600091506110db906110d29060026113bd565b600d5490610dd5565b905060006110fd6002610f3a84610f3a600b548861133e90919063ffffffff16565b9050600061111a83610f3a600c548761133e90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611171576040519150601f19603f3d011682016040523d82523d6000602084013e611176565b606091505b5060009250508815905061126557601154600f5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b1580156111ef57600080fd5b505af1158015611203573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611228919061153c565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506014805461ff001916905550505050505050565b60125460009081906001600160a01b0385811691161461129d57600d546112a1565b600e545b905060006112b46064610f3a868561133e565b306000908152600760205260409020549091506112d19082610a59565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113229085815260200190565b60405180910390a36113348482610dd5565b9695505050505050565b60008261134d5750600061072e565b60006113598385611699565b9050826113668583611679565b146108425760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161075e565b600061084283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361141b5760405162461bcd60e51b815260040161075e9190611569565b506000610ae98486611679565b600060208284031215611439578081fd5b8135610842816116e5565b600060208284031215611455578081fd5b8151610842816116e5565b60008060408385031215611472578081fd5b823561147d816116e5565b9150602083013561148d816116e5565b809150509250929050565b6000806000606084860312156114ac578081fd5b83356114b7816116e5565b925060208401356114c7816116e5565b929592945050506040919091013590565b600080604083850312156114ea578182fd5b82356114f5816116e5565b946020939093013593505050565b600060208284031215611514578081fd5b5035919050565b6000806040838503121561152d578182fd5b50508035926020909101359150565b600080600060608486031215611550578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561159557858101830151858201604001528201611579565b818111156115a65783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156116405784516001600160a01b03168352938301939183019160010161161b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611674576116746116cf565b500190565b60008261169457634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156116b3576116b36116cf565b500290565b6000828210156116ca576116ca6116cf565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146116fa57600080fd5b5056fea264697066735822122018c25eed1b790ea742a640765dd9a3aae35896b091fe96090e13aa1b4e94c5cd64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063807c2d9c11610118578063bf56b371116100a0578063dd62ed3e1161006f578063dd62ed3e14610607578063f1d5f5171461064d578063f2fde38b1461066d578063f887ea401461068d578063ffb54a99146106ad57600080fd5b8063bf56b3711461059a578063ca33e64c146105b0578063ca987b0e146105d0578063da00097d146105e657600080fd5b80638da5cb5b116100e75780638da5cb5b146104c957806395d89b411461051757806398118cb414610544578063a8aa1b311461055a578063a9059cbb1461057a57600080fd5b8063807c2d9c14610493578063892d756a146104a9578063893d20e8146104c95780638b42507f146104e757600080fd5b8063313ce5671161019b5780636b67c4df1161016a5780636b67c4df146103e457806370a08231146103fa578063715018a61461043057806375f0a874146104455780637d1db4a51461047d57600080fd5b8063313ce567146103585780633f4218e0146103745780634a74bb02146103a4578063571ac8b0146103c457600080fd5b806318160ddd116101e257806318160ddd146102d95780631df4ccfc146102ee578063220f66961461030457806323b872dd146103235780632b112e491461034357600080fd5b80630445b6671461021f57806306fdde0314610248578063095ea7b3146102875780630b78f9c0146102b757600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023560155481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5060408051808201909152600d81526c444f4e54205741535445204d5960981b60208201525b60405161023f9190611569565b34801561029357600080fd5b506102a76102a23660046114d8565b6106c7565b604051901515815260200161023f565b3480156102c357600080fd5b506102d76102d236600461151b565b610734565b005b3480156102e557600080fd5b50600154610235565b3480156102fa57600080fd5b50610235600d5481565b34801561031057600080fd5b506014546102a790610100900460ff1681565b34801561032f57600080fd5b506102a761033e366004611498565b610787565b34801561034f57600080fd5b50610235610849565b34801561036457600080fd5b506040516012815260200161023f565b34801561038057600080fd5b506102a761038f366004611428565b60096020526000908152604090205460ff1681565b3480156103b057600080fd5b506014546102a79062010000900460ff1681565b3480156103d057600080fd5b506102a76103df366004611428565b61089b565b3480156103f057600080fd5b50610235600c5481565b34801561040657600080fd5b50610235610415366004611428565b6001600160a01b031660009081526007602052604090205490565b34801561043c57600080fd5b506102d76108a9565b34801561045157600080fd5b50601054610465906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561048957600080fd5b5061023560025481565b34801561049f57600080fd5b5061023560035481565b3480156104b557600080fd5b506102d76104c4366004611503565b61091d565b3480156104d557600080fd5b506000546001600160a01b0316610465565b3480156104f357600080fd5b506102a7610502366004611428565b600a6020526000908152604090205460ff1681565b34801561052357600080fd5b5060408051808201909152600481526354494d4560e01b602082015261027a565b34801561055057600080fd5b50610235600b5481565b34801561056657600080fd5b50601254610465906001600160a01b031681565b34801561058657600080fd5b506102a76105953660046114d8565b610933565b3480156105a657600080fd5b5061023560135481565b3480156105bc57600080fd5b50600f54610465906001600160a01b031681565b3480156105dc57600080fd5b50610235600e5481565b3480156105f257600080fd5b506014546102a7906301000000900460ff1681565b34801561061357600080fd5b50610235610622366004611460565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561065957600080fd5b506102d7610668366004611503565b610940565b34801561067957600080fd5b506102d7610688366004611428565b61096f565b34801561069957600080fd5b50601154610465906001600160a01b031681565b3480156106b957600080fd5b506014546102a79060ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107229086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107675760405162461bcd60e51b815260040161075e906115bc565b60405180910390fd5b600b829055600c81905561077b8282610a59565b600d819055600e555050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610834576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461080f918490610ab8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61083f848484610af2565b90505b9392505050565b6005546001600160a01b0316600090815260076020526040812054610896906004546001600160a01b03166000908152600760205260409020546108909060015490610dd5565b90610dd5565b905090565b600061072e826000196106c7565b6000546001600160a01b031633146108d35760405162461bcd60e51b815260040161075e906115bc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606281101561092b57600080fd5b506062600e55565b6000610842338484610af2565b6000546001600160a01b0316331461096a5760405162461bcd60e51b815260040161075e906115bc565b600355565b6000546001600160a01b031633146109995760405162461bcd60e51b815260040161075e906115bc565b6001600160a01b0381166109fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610a668385611661565b9050838110156108425760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161075e565b60008184841115610adc5760405162461bcd60e51b815260040161075e9190611569565b506000610ae984866116b8565b95945050505050565b601454600090610100900460ff1615610b1757610b10848484610e17565b9050610842565b6012546001600160a01b03163314801590610b3a5750601454610100900460ff16155b8015610b4e575060145462010000900460ff165b8015610b6b57506015543060009081526007602052604090205410155b15610b7857610b78610efd565b601354158015610b9557506012546001600160a01b038481169116145b15610c01576001600160a01b038416600090815260076020526040902054610bf85760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161075e565b610c0143601355565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610c53918490610ab8565b6001600160a01b038086166000908152600760209081526040808320949094559186168152600a909152205460ff16610cf1576003546001600160a01b038416600090815260076020526040902054610cac9084610a59565b1115610cf15760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161075e565b6001600160a01b03841660009081526009602052604081205460ff16158015610d3357506001600160a01b03841660009081526009602052604090205460ff16155b610d3d5782610d48565b610d4885858561127b565b6001600160a01b038516600090815260076020526040902054909150610d6e9082610a59565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dc29085815260200190565b60405180910390a3506001949350505050565b600061084283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610e68918490610ab8565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610e979083610a59565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eeb9086815260200190565b60405180910390a35060019392505050565b6014805461ff00191661010017905530600090815260076020526040812054600d54600b54919291610f4091600291610f3a91908290879061133e565b906113bd565b90506000610f4e8383610dd5565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610f9657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610fea57600080fd5b505afa158015610ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110229190611444565b8160018151811061104357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac947906110899085906000908690309042906004016115f1565b600060405180830381600087803b1580156110a357600080fd5b505af11580156110b7573d6000803e3d6000fd5b5050600b54479250600091506110db906110d29060026113bd565b600d5490610dd5565b905060006110fd6002610f3a84610f3a600b548861133e90919063ffffffff16565b9050600061111a83610f3a600c548761133e90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611171576040519150601f19603f3d011682016040523d82523d6000602084013e611176565b606091505b5060009250508815905061126557601154600f5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b1580156111ef57600080fd5b505af1158015611203573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611228919061153c565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506014805461ff001916905550505050505050565b60125460009081906001600160a01b0385811691161461129d57600d546112a1565b600e545b905060006112b46064610f3a868561133e565b306000908152600760205260409020549091506112d19082610a59565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113229085815260200190565b60405180910390a36113348482610dd5565b9695505050505050565b60008261134d5750600061072e565b60006113598385611699565b9050826113668583611679565b146108425760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161075e565b600061084283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361141b5760405162461bcd60e51b815260040161075e9190611569565b506000610ae98486611679565b600060208284031215611439578081fd5b8135610842816116e5565b600060208284031215611455578081fd5b8151610842816116e5565b60008060408385031215611472578081fd5b823561147d816116e5565b9150602083013561148d816116e5565b809150509250929050565b6000806000606084860312156114ac578081fd5b83356114b7816116e5565b925060208401356114c7816116e5565b929592945050506040919091013590565b600080604083850312156114ea578182fd5b82356114f5816116e5565b946020939093013593505050565b600060208284031215611514578081fd5b5035919050565b6000806040838503121561152d578182fd5b50508035926020909101359150565b600080600060608486031215611550578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561159557858101830151858201604001528201611579565b818111156115a65783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156116405784516001600160a01b03168352938301939183019160010161161b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611674576116746116cf565b500190565b60008261169457634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156116b3576116b36116cf565b500290565b6000828210156116ca576116ca6116cf565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146116fa57600080fd5b5056fea264697066735822122018c25eed1b790ea742a640765dd9a3aae35896b091fe96090e13aa1b4e94c5cd64736f6c63430008040033

Deployed Bytecode Sourcemap

5089:8399:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6416:54;;;;;;;;;;;;;;;;;;;6956:25:1;;;6944:2;6929:18;6416:54:0;;;;;;;;7629:78;;;;;;;;;;-1:-1:-1;7700:5:0;;;;;;;;;;;;-1:-1:-1;;;7700:5:0;;;;7629:78;;;;;;;:::i;8485:216::-;;;;;;;;;;-1:-1:-1;8485:216:0;;;;;:::i;:::-;;:::i;:::-;;;3720:14:1;;3713:22;3695:41;;3683:2;3668:18;8485:216:0;3650:92:1;13228:255:0;;;;;;;;;;-1:-1:-1;13228:255:0;;;;;:::i;:::-;;:::i;:::-;;7891:86;;;;;;;;;;-1:-1:-1;7963:12:0;;7891:86;;5986:27;;;;;;;;;;;;;;;;6280:28;;;;;;;;;;-1:-1:-1;6280:28:0;;;;;;;;;;;9692:370;;;;;;;;;;-1:-1:-1;9692:370:0;;;;;:::i;:::-;;:::i;8321:156::-;;;;;;;;;;;;;:::i;7805:78::-;;;;;;;;;;-1:-1:-1;7805:78:0;;5197:2;8375:36:1;;8363:2;8348:18;7805:78:0;8330:87:1;5802:43:0;;;;;;;;;;-1:-1:-1;5802:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6315:40;;;;;;;;;;-1:-1:-1;6315:40:0;;;;;;;;;;;8709:122;;;;;;;;;;-1:-1:-1;8709:122:0;;;;;:::i;:::-;;:::i;5946:31::-;;;;;;;;;;;;;;;;8071:103;;;;;;;;;;-1:-1:-1;8071:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8154:18:0;8137:7;8154:18;;;:9;:18;;;;;;;8071:103;4682:148;;;;;;;;;;;;;:::i;6108:30::-;;;;;;;;;;-1:-1:-1;6108:30:0;;;;-1:-1:-1;;;;;6108:30:0;;;;;;-1:-1:-1;;;;;2899:32:1;;;2881:51;;2869:2;2854:18;6108:30:0;2836:102:1;5271:49:0;;;;;;;;;;;;;;;;5327:47;;;;;;;;;;;;;;;;10070:120;;;;;;;;;;-1:-1:-1;10070:120:0;;;;;:::i;:::-;;:::i;7985:78::-;;;;;;;;;;-1:-1:-1;8037:7:0;4533:6;-1:-1:-1;;;;;4533:6:0;7985:78;8321:156;5852:47;;;;;;;;;;-1:-1:-1;5852:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7715:82;;;;;;;;;;-1:-1:-1;7788:7:0;;;;;;;;;;;;-1:-1:-1;;;7788:7:0;;;;7715:82;;5908:31;;;;;;;;;;;;;;;;6181:19;;;;;;;;;;-1:-1:-1;6181:19:0;;;;-1:-1:-1;;;;;6181:19:0;;;9190:156;;;;;;;;;;-1:-1:-1;9190:156:0;;;;;:::i;:::-;;:::i;6209:25::-;;;;;;;;;;;;;;;;6065:36;;;;;;;;;;-1:-1:-1;6065:36:0;;;;-1:-1:-1;;;;;6065:36:0;;;6020;;;;;;;;;;;;;;;;6362:45;;;;;;;;;;-1:-1:-1;6362:45:0;;;;;;;;;;;8182:131;;;;;;;;;;-1:-1:-1;8182:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;8283:19:0;;;8266:7;8283:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8182:131;13119:101;;;;;;;;;;-1:-1:-1;13119:101:0;;;;;:::i;:::-;;:::i;4838:244::-;;;;;;;;;;-1:-1:-1;4838:244:0;;;;;:::i;:::-;;:::i;6147:27::-;;;;;;;;;;-1:-1:-1;6147:27:0;;;;-1:-1:-1;;;;;6147:27:0;;;6241:30;;;;;;;;;;-1:-1:-1;6241:30:0;;;;;;;;8485:216;8589:10;8560:4;8577:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8577:32:0;;;;;;;;;;:41;;;8634:37;8560:4;;8577:32;;8634:37;;;;8612:6;6956:25:1;;6944:2;6929:18;;6911:76;8634:37:0;;;;;;;;-1:-1:-1;8689:4:0;8485:216;;;;;:::o;13228:255::-;4595:6;;-1:-1:-1;;;;;4595:6:0;4000:10;4595:22;4587:67;;;;-1:-1:-1;;;4587:67:0;;;;;;;:::i;:::-;;;;;;;;;13319:12:::1;:24:::0;;;13354:12:::1;:30:::0;;;13406::::1;13334:9:::0;13369:15;13406:16:::1;:30::i;:::-;13395:8;:41:::0;;;13447:17:::1;:28:::0;-1:-1:-1;;13228:255:0:o;9692:370::-;-1:-1:-1;;;;;9813:19:0;;9792:4;9813:19;;;:11;:19;;;;;;;;9833:10;9813:31;;;;;;;;-1:-1:-1;;9813:52:0;9809:188;;9916:69;;;;;;;;;;;-1:-1:-1;;;9916:69:0;;;;;;;;-1:-1:-1;;;;;9916:19:0;;-1:-1:-1;9916:19:0;;;:11;:19;;;;;9936:10;9916:31;;;;;;;;;;:69;;9952:6;;9916:35;:69::i;:::-;-1:-1:-1;;;;;9882:19:0;;;;;;:11;:19;;;;;;;;9902:10;9882:31;;;;;;;:103;9809:188;10014:40;10028:6;10036:9;10047:6;10014:13;:40::i;:::-;10007:47;;9692:370;;;;;;:::o;8321:156::-;8456:11;;-1:-1:-1;;;;;8456:11:0;8374:7;8154:18;;;:9;:18;;;;;;8401:68;;8428:11;;-1:-1:-1;;;;;8428:11:0;8137:7;8154:18;;;:9;:18;;;;;;8401:40;;:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;8394:75;;8321:156;:::o;8709:122::-;8764:4;8788:35;8796:7;-1:-1:-1;;8788:7:0;:35::i;4682:148::-;4595:6;;-1:-1:-1;;;;;4595:6:0;4000:10;4595:22;4587:67;;;;-1:-1:-1;;;4587:67:0;;;;;;;:::i;:::-;4789:1:::1;4773:6:::0;;4752:40:::1;::::0;-1:-1:-1;;;;;4773:6:0;;::::1;::::0;4752:40:::1;::::0;4789:1;;4752:40:::1;4820:1;4803:19:::0;;-1:-1:-1;;;;;;4803:19:0::1;::::0;;4682:148::o;10070:120::-;10146:2;10136:6;:12;;10128:21;;;;;;-1:-1:-1;10180:2:0;10160:17;:22;10070:120::o;9190:156::-;9270:4;9294:44;9308:10;9320:9;9331:6;9294:13;:44::i;13119:101::-;4595:6;;-1:-1:-1;;;;;4595:6:0;4000:10;4595:22;4587:67;;;;-1:-1:-1;;;4587:67:0;;;;;;;:::i;:::-;13191:10:::1;:21:::0;13119:101::o;4838:244::-;4595:6;;-1:-1:-1;;;;;4595:6:0;4000:10;4595:22;4587:67;;;;-1:-1:-1;;;4587:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4927:22:0;::::1;4919:73;;;::::0;-1:-1:-1;;;4919:73:0;;4786:2:1;4919:73:0::1;::::0;::::1;4768:21:1::0;4825:2;4805:18;;;4798:30;4864:34;4844:18;;;4837:62;-1:-1:-1;;;4915:18:1;;;4908:36;4961:19;;4919:73:0::1;4758:228:1::0;4919:73:0::1;5029:6;::::0;;5008:38:::1;::::0;-1:-1:-1;;;;;5008:38:0;;::::1;::::0;5029:6;::::1;::::0;5008:38:::1;::::0;::::1;5057:6;:17:::0;;-1:-1:-1;;;;;;5057:17:0::1;-1:-1:-1::0;;;;;5057:17:0;;;::::1;::::0;;;::::1;::::0;;4838:244::o;2776:179::-;2834:7;;2866:5;2870:1;2866;:5;:::i;:::-;2854:17;;2895:1;2890;:6;;2882:46;;;;-1:-1:-1;;;2882:46:0;;5193:2:1;2882:46:0;;;5175:21:1;5232:2;5212:18;;;5205:30;5271:29;5251:18;;;5244:57;5318:18;;2882:46:0;5165:177:1;3107:190:0;3193:7;3229:12;3221:6;;;;3213:29;;;;-1:-1:-1;;;3213:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3253:9:0;3265:5;3269:1;3265;:5;:::i;:::-;3253:17;3107:190;-1:-1:-1;;;;;3107:190:0:o;10198:1046::-;10311:16;;10290:4;;10311:16;;;;;10307:73;;;10337:41;10352:6;10360:9;10371:6;10337:14;:41::i;:::-;10330:48;;;;10307:73;10408:4;;-1:-1:-1;;;;;10408:4:0;10394:10;:18;;;;:39;;-1:-1:-1;10417:16:0;;;;;;;10416:17;10394:39;:64;;;;-1:-1:-1;10437:21:0;;;;;;;10394:64;:109;;;;-1:-1:-1;10490:13:0;;10480:4;10462:24;;;;:9;:24;;;;;;:41;;10394:109;10390:141;;;10506:23;:21;:23::i;:::-;8906:10;;:15;;;10545:32;;-1:-1:-1;10573:4:0;;-1:-1:-1;;;;;10560:17:0;;;10573:4;;10560:17;10545:32;10541:144;;;-1:-1:-1;;;;;10602:17:0;;10622:1;10602:17;;;:9;:17;;;;;;10594:56;;;;-1:-1:-1;;;10594:56:0;;5549:2:1;10594:56:0;;;5531:21:1;5588:2;5568:18;;;5561:30;-1:-1:-1;;;5607:18:1;;;5600:52;5669:18;;10594:56:0;5521:172:1;10594:56:0;10665:8;8988:12;8975:10;:25;8937:71;10665:8;10749:53;;;;;;;;;;;-1:-1:-1;;;10749:53:0;;;;;;;;-1:-1:-1;;;;;10749:17:0;;-1:-1:-1;10749:17:0;;;:9;:17;;;;;;;;:53;;10771:6;;10749:21;:53::i;:::-;-1:-1:-1;;;;;10729:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;10820:26;;;;;:15;:26;;;;;;;10815:140;;10908:10;;-1:-1:-1;;;;;10872:20:0;;;;;;:9;:20;;;;;;:32;;10897:6;10872:24;:32::i;:::-;:46;;10864:79;;;;-1:-1:-1;;;10864:79:0;;6663:2:1;10864:79:0;;;6645:21:1;6702:2;6682:18;;;6675:30;-1:-1:-1;;;6721:18:1;;;6714:50;6781:18;;10864:79:0;6635:170:1;10864:79:0;-1:-1:-1;;;;;10990:19:0;;10967;10990;;;:11;:19;;;;;;;;10989:20;:47;;;;-1:-1:-1;;;;;;11014:22:0;;;;;;:11;:22;;;;;;;;11013:23;10989:47;:96;;11079:6;10989:96;;;11039:37;11050:6;11058:9;11069:6;11039:10;:37::i;:::-;-1:-1:-1;;;;;11119:20:0;;;;;;:9;:20;;;;;;10967:118;;-1:-1:-1;11119:37:0;;10967:118;11119:24;:37::i;:::-;-1:-1:-1;;;;;11096:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11174:40;;;;;;;;;;11202:11;6956:25:1;;6944:2;6929:18;;6911:76;11174:40:0;;;;;;;;-1:-1:-1;11232:4:0;;10198:1046;-1:-1:-1;;;;10198:1046:0:o;2963:136::-;3021:7;3048:43;3052:1;3055;3048:43;;;;;;;;;;;;;;;;;:3;:43::i;9354:330::-;9484:53;;;;;;;;;;;-1:-1:-1;;;9484:53:0;;;;;;;;-1:-1:-1;;;;;9484:17:0;;9447:4;9484:17;;;:9;:17;;;;;;;:53;;9506:6;;9484:21;:53::i;:::-;-1:-1:-1;;;;;9464:17:0;;;;;;;:9;:17;;;;;;:73;;;;9571:20;;;;;;;:32;;9596:6;9571:24;:32::i;:::-;-1:-1:-1;;;;;9548:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9619:35;;;;;;;;;;9647:6;6956:25:1;;6944:2;6929:18;;6911:76;9619:35:0;;;;;;;;-1:-1:-1;9672:4:0;9354:330;;;;;:::o;11692:1419::-;6575:16;:23;;-1:-1:-1;;6575:23:0;;;;;11801:4:::1;6575:23:::0;11783:24;;;:9:::1;:24;::::0;;;;;11882:8:::1;::::0;11864:12:::1;::::0;11783:24;;6575:23;11844:54:::1;::::0;11896:1:::1;::::0;11844:47:::1;::::0;11882:8;11844:47;;11783:24;;11844:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;11818:80:::0;-1:-1:-1;11909:20:0::1;11932:36;:15:::0;11818:80;11932:19:::1;:36::i;:::-;12005:16;::::0;;12019:1:::1;12005:16:::0;;;;;::::1;::::0;;11909:59;;-1:-1:-1;11981:21:0::1;::::0;12005:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12005:16:0::1;11981:40;;12050:4;12032;12037:1;12032:7;;;;;;-1:-1:-1::0;;;12032:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12032:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12076:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12076:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12032:7;;12076:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12066:4;12071:1;12066:7;;;;;;-1:-1:-1::0;;;12066:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12066:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12102:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12102:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12174:12;;12102:6:::1;::::0;12217:4;;12244::::1;::::0;12264:15:::1;::::0;12102:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12392:12:0::1;::::0;12323:21:::1;::::0;-1:-1:-1;12303:17:0::1;::::0;-1:-1:-1;12379:33:0::1;::::0;12392:19:::1;::::0;12409:1:::1;12392:16;:19::i;:::-;12379:8;::::0;;:12:::1;:33::i;:::-;12357:55;;12425:26;12454:51;12503:1;12454:44;12486:11;12454:27;12468:12;;12454:9;:13;;:27;;;;:::i;:51::-;12425:80;;12516:26;12545:44;12577:11;12545:27;12559:12;;12545:9;:13;;:27;;;;:::i;:44::-;12631:15;::::0;12623:74:::1;::::0;12516:73;;-1:-1:-1;12603:15:0::1;::::0;-1:-1:-1;;;;;12631:15:0;;::::1;::::0;12687:5:::1;::::0;12516:73;;12603:15;12623:74;12603:15;12623:74;12516:73;12631:15;12687:5;12623:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;12721:5:0::1;::::0;-1:-1:-1;;12743:19:0;;;-1:-1:-1;12739:365:0::1;;12779:6;::::0;12954:21:::1;::::0;12779:245:::1;::::0;-1:-1:-1;;;12779:245:0;;12856:4:::1;12779:245;::::0;::::1;3284:34:1::0;3334:18;;;3327:34;;;12779:6:0::1;3377:18:1::0;;;3370:34;;;3420:18;;;3413:34;-1:-1:-1;;;;;12954:21:0;;::::1;3463:19:1::0;;;3456:44;12994:15:0::1;3516:19:1::0;;;3509:35;12779:6:0;::::1;::::0;:22:::1;::::0;12810:18;;3218:19:1;;12779:245:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13044:48:0::1;::::0;;8154:25:1;;;8210:2;8195:18;;8188:34;;;13044:48:0::1;::::0;-1:-1:-1;8127:18:1;13044:48:0::1;;;;;;;12739:365;-1:-1:-1::0;;6621:16:0;:24;;-1:-1:-1;;6621:24:0;;;-1:-1:-1;;;;;;;11692:1419:0:o;11252:432::-;11385:4;;11341:7;;;;-1:-1:-1;;;;;11385:17:0;;;:4;;:17;:48;;11425:8;;11385:48;;;11405:17;;11385:48;11361:72;-1:-1:-1;11444:17:0;11464:34;11494:3;11464:25;:6;11361:72;11464:10;:25::i;:34::-;11556:4;11538:24;;;;:9;:24;;;;;;11444:54;;-1:-1:-1;11538:39:0;;11444:54;11538:28;:39::i;:::-;11529:4;11511:24;;;;:9;:24;;;;;;;:66;;;;11593:42;;-1:-1:-1;;;;;11593:42:0;;;;;;;11625:9;6956:25:1;;6944:2;6929:18;;6911:76;11593:42:0;;;;;;;;11655:21;:6;11666:9;11655:10;:21::i;:::-;11648:28;11252:432;-1:-1:-1;;;;;;11252:432:0:o;3305:222::-;3363:7;3387:6;3383:23;;-1:-1:-1;3403:1:0;3396:8;;3383:23;3416:9;3428:5;3432:1;3428;:5;:::i;:::-;3416:17;-1:-1:-1;3461:1:0;3452:5;3456:1;3416:17;3452:5;:::i;:::-;:10;3444:56;;;;-1:-1:-1;;;3444:56:0;;5900:2:1;3444:56:0;;;5882:21:1;5939:2;5919:18;;;5912:30;5978:34;5958:18;;;5951:62;-1:-1:-1;;;6029:18:1;;;6022:31;6070:19;;3444:56:0;5872:223:1;3535:132:0;3593:7;3620:39;3624:1;3627;3620:39;;;;;;;;;;;;;;;;;3761:7;3796:12;3789:5;3781:28;;;;-1:-1:-1;;;3781:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3820:9:0;3832:5;3836:1;3832;:5;:::i;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:190::-;1805:6;1858:2;1846:9;1837:7;1833:23;1829:32;1826:2;;;1879:6;1871;1864:22;1826:2;-1:-1:-1;1907:23:1;;1816:120;-1:-1:-1;1816:120:1:o;1941:258::-;2009:6;2017;2070:2;2058:9;2049:7;2045:23;2041:32;2038:2;;;2091:6;2083;2076:22;2038:2;-1:-1:-1;;2119:23:1;;;2189:2;2174:18;;;2161:32;;-1:-1:-1;2028:171:1:o;2204:316::-;2292:6;2300;2308;2361:2;2349:9;2340:7;2336:23;2332:32;2329:2;;;2382:6;2374;2367:22;2329:2;2416:9;2410:16;2400:26;;2466:2;2455:9;2451:18;2445:25;2435:35;;2510:2;2499:9;2495:18;2489:25;2479:35;;2319:201;;;;;:::o;3976:603::-;4088:4;4117:2;4146;4135:9;4128:21;4178:6;4172:13;4221:6;4216:2;4205:9;4201:18;4194:34;4246:4;4259:140;4273:6;4270:1;4267:13;4259:140;;;4368:14;;;4364:23;;4358:30;4334:17;;;4353:2;4330:26;4323:66;4288:10;;4259:140;;;4417:6;4414:1;4411:13;4408:2;;;4487:4;4482:2;4473:6;4462:9;4458:22;4454:31;4447:45;4408:2;-1:-1:-1;4563:2:1;4542:15;-1:-1:-1;;4538:29:1;4523:45;;;;4570:2;4519:54;;4097:482;-1:-1:-1;;;4097:482:1:o;6100:356::-;6302:2;6284:21;;;6321:18;;;6314:30;6380:34;6375:2;6360:18;;6353:62;6447:2;6432:18;;6274:182::o;6992:983::-;7254:4;7302:3;7291:9;7287:19;7333:6;7322:9;7315:25;7359:2;7397:6;7392:2;7381:9;7377:18;7370:34;7440:3;7435:2;7424:9;7420:18;7413:31;7464:6;7499;7493:13;7530:6;7522;7515:22;7568:3;7557:9;7553:19;7546:26;;7607:2;7599:6;7595:15;7581:29;;7628:4;7641:195;7655:6;7652:1;7649:13;7641:195;;;7720:13;;-1:-1:-1;;;;;7716:39:1;7704:52;;7811:15;;;;7776:12;;;;7752:1;7670:9;7641:195;;;-1:-1:-1;;;;;;;7892:32:1;;;;7887:2;7872:18;;7865:60;-1:-1:-1;;;7956:3:1;7941:19;7934:35;7853:3;7263:712;-1:-1:-1;;;7263:712:1:o;8422:128::-;8462:3;8493:1;8489:6;8486:1;8483:13;8480:2;;;8499:18;;:::i;:::-;-1:-1:-1;8535:9:1;;8470:80::o;8555:217::-;8595:1;8621;8611:2;;-1:-1:-1;;;8646:31:1;;8700:4;8697:1;8690:15;8728:4;8653:1;8718:15;8611:2;-1:-1:-1;8757:9:1;;8601:171::o;8777:168::-;8817:7;8883:1;8879;8875:6;8871:14;8868:1;8865:21;8860:1;8853:9;8846:17;8842:45;8839:2;;;8890:18;;:::i;:::-;-1:-1:-1;8930:9:1;;8829:116::o;8950:125::-;8990:4;9018:1;9015;9012:8;9009:2;;;9023:18;;:::i;:::-;-1:-1:-1;9060:9:1;;8999:76::o;9080:127::-;9141:10;9136:3;9132:20;9129:1;9122:31;9172:4;9169:1;9162:15;9196:4;9193:1;9186:15;9212:131;-1:-1:-1;;;;;9287:31:1;;9277:42;;9267:2;;9333:1;9330;9323:12;9267:2;9257:86;:::o

Swarm Source

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