ETH Price: $3,296.35 (-1.29%)
 

Overview

Max Total Supply

100,000,000 KBUST

Holders

110

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
174,631.197955709 KBUST

Value
$0.00
0x9f794708adaa31f16ff911a7ccf58d407dff3ab6
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:
kongbusters

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-30
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
} 

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

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

contract kongbusters is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100 * 1e6 * 1e9; //100,000,000
    uint256 public _maxWalletSize;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _sellTax;
    uint256 private _buyTax;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    
    string private constant _name = "KongBusters";
    string private constant _symbol = "KBUST";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _firstBlock;
    uint256 private _botBlocks;
    uint256 private _maxTxAmount = _tTotal;

    event MaxTxAmountUpdated(uint _maxTxAmount);
   
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x6934954216D51FcC4C75d8B24cbE5Cfaa997f9ca);

        _rOwned[address(this)] = _rTotal;
        _sellTax = 15;
        _buyTax = 8;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        emit Transfer(address(0), address(this), _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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        _feeAddr1 = 0;
        _feeAddr2 = _buyTax;
        if (to != uniswapV2Pair && ! _isExcludedFromFee[to] && ! _isExcludedFromFee[from]) {
            require(amount + balanceOf(to) <= _maxWalletSize, "Over max wallet size.");
        }
        
        if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
            if (block.number <= _firstBlock.add(_botBlocks)) {
                bots[to] = true;
            }
        }
        
        if (from != address(this) && bots[to]) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount);
            }
            _feeAddr1 = 0;
            _feeAddr2 = 90;
        }

        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 1;
            _feeAddr2 = _sellTax;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (!inSwap && from != uniswapV2Pair && swapEnabled) {
            swapTokensForEth(contractTokenBalance);
            uint256 contractETHBalance = address(this).balance;
            if(contractETHBalance > 500 * 1e3 * 1e9) { // 0.5%
                sendETHToFee(address(this).balance);
            }
        }    
		
        _tokenTransfer(from,to,amount);
    }

    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 liftMaxTx() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount);

    }

    function openTrading(uint256 botBlocks) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        _firstBlock = block.number;
        _botBlocks = botBlocks;
        _maxTxAmount = 100 * 1e4 * 1e9; //2%
        _maxWalletSize = 400 * 1e4 * 1e9; //4%

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external onlyOwner{
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner{
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"_maxWalletSize","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":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":[{"internalType":"uint256","name":"botBlocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a67016345785d8a0000600019620001b5565b6200002890600019620001d8565b6008556010805461ffff60a81b1916905567016345785d8a00006013553480156200005257600080fd5b506200005e3362000165565b600e80546001600160a01b031916736934954216d51fcc4c75d8b24cbe5cfaa997f9ca17905560088054306000908152600160208190526040822092909255600f600a55600b9290925590600490620000bf6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308082526004909452828120805486166001908117909155600e5490921681528281208054909516909117909355519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001579067016345785d8a0000815260200190565b60405180910390a3620001fe565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082620001d357634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620001f957634e487b7160e01b600052601160045260246000fd5b500390565b611842806200020e6000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102b2578063c3c8cd80146102d2578063d1633649146102e7578063dd62ed3e14610307578063f2fde38b1461034d57600080fd5b8063715018a6146102315780638da5cb5b146102465780638f9a55c01461026e57806395d89b411461028457600080fd5b80632ab30838116100d15780632ab30838146101c9578063313ce567146101e05780636fc3eaec146101fc57806370a082311461021157600080fd5b806306fdde031461010e578063095ea7b31461015457806318160ddd1461018457806323b872dd146101a957600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600b81526a4b6f6e674275737465727360a81b60208201525b60405161014b91906114ef565b60405180910390f35b34801561016057600080fd5b5061017461016f366004611559565b61036d565b604051901515815260200161014b565b34801561019057600080fd5b5067016345785d8a00005b60405190815260200161014b565b3480156101b557600080fd5b506101746101c4366004611585565b610384565b3480156101d557600080fd5b506101de6103ed565b005b3480156101ec57600080fd5b506040516009815260200161014b565b34801561020857600080fd5b506101de610433565b34801561021d57600080fd5b5061019b61022c3660046115c6565b61046a565b34801561023d57600080fd5b506101de61048c565b34801561025257600080fd5b506000546040516001600160a01b03909116815260200161014b565b34801561027a57600080fd5b5061019b60075481565b34801561029057600080fd5b5060408051808201909152600581526412d09554d560da1b602082015261013e565b3480156102be57600080fd5b506101746102cd366004611559565b6104c2565b3480156102de57600080fd5b506101de6104cf565b3480156102f357600080fd5b506101de6103023660046115e3565b61050f565b34801561031357600080fd5b5061019b6103223660046115fc565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561035957600080fd5b506101de6103683660046115c6565b61089c565b600061037a338484610934565b5060015b92915050565b6000610391848484610a58565b6103e384336103de856040518060600160405280602881526020016117e5602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610dc1565b610934565b5060019392505050565b6000546001600160a01b031633146104205760405162461bcd60e51b815260040161041790611635565b60405180910390fd5b67016345785d8a00006013819055600755565b6000546001600160a01b0316331461045d5760405162461bcd60e51b815260040161041790611635565b4761046781610dfb565b50565b6001600160a01b03811660009081526001602052604081205461037e90610e39565b6000546001600160a01b031633146104b65760405162461bcd60e51b815260040161041790611635565b6104c06000610ebd565b565b600061037a338484610a58565b6000546001600160a01b031633146104f95760405162461bcd60e51b815260040161041790611635565b60006105043061046a565b905061046781610f0d565b6000546001600160a01b031633146105395760405162461bcd60e51b815260040161041790611635565b601054600160a01b900460ff16156105935760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610417565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105cf308267016345785d8a0000610934565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610631919061166a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a2919061166a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610713919061166a565b601080546001600160a01b0319166001600160a01b03928316179055600f541663f305d71947306107438161046a565b6000806107586000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107c0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107e59190611687565b50506010805443601155601285905566038d7ea4c68000601355660e35fa931a000060075562ff00ff60a01b1981166201000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610873573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089791906116b5565b505050565b6000546001600160a01b031633146108c65760405162461bcd60e51b815260040161041790611635565b6001600160a01b03811661092b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610417565b61046781610ebd565b6001600160a01b0383166109965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610417565b6001600160a01b0382166109f75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610417565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610aba5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610417565b6000600c55600b54600d556010546001600160a01b03838116911614801590610afc57506001600160a01b03821660009081526004602052604090205460ff16155b8015610b2157506001600160a01b03831660009081526004602052604090205460ff16155b15610b8257600754610b328361046a565b610b3c90836116ed565b1115610b825760405162461bcd60e51b815260206004820152601560248201527427bb32b91036b0bc103bb0b63632ba1039b4bd329760591b6044820152606401610417565b6010546001600160a01b038481169116148015610bad5750600f546001600160a01b03838116911614155b15610beb57601254601154610bc191611087565b4311610beb576001600160a01b0382166000908152600560205260409020805460ff191660011790555b6001600160a01b0383163014801590610c1c57506001600160a01b03821660009081526005602052604090205460ff165b15610c90576010546001600160a01b038481169116148015610c4c5750600f546001600160a01b03838116911614155b8015610c7157506001600160a01b03821660009081526004602052604090205460ff16155b15610c8557601354811115610c8557600080fd5b6000600c55605a600d555b6010546001600160a01b038381169116148015610cbb5750600f546001600160a01b03848116911614155b8015610ce057506001600160a01b03831660009081526004602052604090205460ff16155b15610d3c576001600160a01b03831660009081526005602052604090205460ff16158015610d2757506001600160a01b03821660009081526005602052604090205460ff16155b610d3057600080fd5b6001600c55600a54600d555b6000610d473061046a565b601054909150600160a81b900460ff16158015610d7257506010546001600160a01b03858116911614155b8015610d875750601054600160b01b900460ff165b15610db057610d9581610f0d565b476601c6bf52634000811115610dae57610dae47610dfb565b505b610dbb8484846110e6565b50505050565b60008184841115610de55760405162461bcd60e51b815260040161041791906114ef565b506000610df28486611705565b95945050505050565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e35573d6000803e3d6000fd5b5050565b6000600854821115610ea05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610417565b6000610eaa6110f1565b9050610eb68382611114565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f5557610f5561171c565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd2919061166a565b81600181518110610fe557610fe561171c565b6001600160a01b039283166020918202929092010152600f5461100b9130911684610934565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611044908590600090869030904290600401611732565b600060405180830381600087803b15801561105e57600080fd5b505af1158015611072573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b60008061109483856116ed565b905083811015610eb65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610417565b610897838383611156565b60008060006110fe61124d565b909250905061110d8282611114565b9250505090565b6000610eb683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061128d565b600080600080600080611168876112bb565b6001600160a01b038f16600090815260016020526040902054959b5093995091975095509350915061119a9087611318565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546111c99086611087565b6001600160a01b0389166000908152600160205260409020556111eb8161135a565b6111f584836113a4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161123a91815260200190565b60405180910390a3505050505050505050565b600854600090819067016345785d8a00006112688282611114565b8210156112845750506008549267016345785d8a000092509050565b90939092509050565b600081836112ae5760405162461bcd60e51b815260040161041791906114ef565b506000610df284866117a3565b60008060008060008060008060006112d88a600c54600d546113c8565b92509250925060006112e86110f1565b905060008060006112fb8e87878761141d565b919e509c509a509598509396509194505050505091939550919395565b6000610eb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dc1565b60006113646110f1565b90506000611372838361146d565b3060009081526001602052604090205490915061138f9082611087565b30600090815260016020526040902055505050565b6008546113b19083611318565b6008556009546113c19082611087565b6009555050565b60008080806113e260646113dc898961146d565b90611114565b905060006113f560646113dc8a8961146d565b9050600061140d826114078b86611318565b90611318565b9992985090965090945050505050565b600080808061142c888661146d565b9050600061143a888761146d565b90506000611448888861146d565b9050600061145a826114078686611318565b939b939a50919850919650505050505050565b60008260000361147f5750600061037e565b600061148b83856117c5565b90508261149885836117a3565b14610eb65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610417565b600060208083528351808285015260005b8181101561151c57858101830151858201604001528201611500565b8181111561152e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461046757600080fd5b6000806040838503121561156c57600080fd5b823561157781611544565b946020939093013593505050565b60008060006060848603121561159a57600080fd5b83356115a581611544565b925060208401356115b581611544565b929592945050506040919091013590565b6000602082840312156115d857600080fd5b8135610eb681611544565b6000602082840312156115f557600080fd5b5035919050565b6000806040838503121561160f57600080fd5b823561161a81611544565b9150602083013561162a81611544565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561167c57600080fd5b8151610eb681611544565b60008060006060848603121561169c57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156116c757600080fd5b81518015158114610eb657600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611700576117006116d7565b500190565b600082821015611717576117176116d7565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117825784516001600160a01b03168352938301939183019160010161175d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826117c057634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117df576117df6116d7565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e311c8fce8a374d3f7eb175c76ad2657954ccde701b581b683a7ba476402664564736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102b2578063c3c8cd80146102d2578063d1633649146102e7578063dd62ed3e14610307578063f2fde38b1461034d57600080fd5b8063715018a6146102315780638da5cb5b146102465780638f9a55c01461026e57806395d89b411461028457600080fd5b80632ab30838116100d15780632ab30838146101c9578063313ce567146101e05780636fc3eaec146101fc57806370a082311461021157600080fd5b806306fdde031461010e578063095ea7b31461015457806318160ddd1461018457806323b872dd146101a957600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5060408051808201909152600b81526a4b6f6e674275737465727360a81b60208201525b60405161014b91906114ef565b60405180910390f35b34801561016057600080fd5b5061017461016f366004611559565b61036d565b604051901515815260200161014b565b34801561019057600080fd5b5067016345785d8a00005b60405190815260200161014b565b3480156101b557600080fd5b506101746101c4366004611585565b610384565b3480156101d557600080fd5b506101de6103ed565b005b3480156101ec57600080fd5b506040516009815260200161014b565b34801561020857600080fd5b506101de610433565b34801561021d57600080fd5b5061019b61022c3660046115c6565b61046a565b34801561023d57600080fd5b506101de61048c565b34801561025257600080fd5b506000546040516001600160a01b03909116815260200161014b565b34801561027a57600080fd5b5061019b60075481565b34801561029057600080fd5b5060408051808201909152600581526412d09554d560da1b602082015261013e565b3480156102be57600080fd5b506101746102cd366004611559565b6104c2565b3480156102de57600080fd5b506101de6104cf565b3480156102f357600080fd5b506101de6103023660046115e3565b61050f565b34801561031357600080fd5b5061019b6103223660046115fc565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561035957600080fd5b506101de6103683660046115c6565b61089c565b600061037a338484610934565b5060015b92915050565b6000610391848484610a58565b6103e384336103de856040518060600160405280602881526020016117e5602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610dc1565b610934565b5060019392505050565b6000546001600160a01b031633146104205760405162461bcd60e51b815260040161041790611635565b60405180910390fd5b67016345785d8a00006013819055600755565b6000546001600160a01b0316331461045d5760405162461bcd60e51b815260040161041790611635565b4761046781610dfb565b50565b6001600160a01b03811660009081526001602052604081205461037e90610e39565b6000546001600160a01b031633146104b65760405162461bcd60e51b815260040161041790611635565b6104c06000610ebd565b565b600061037a338484610a58565b6000546001600160a01b031633146104f95760405162461bcd60e51b815260040161041790611635565b60006105043061046a565b905061046781610f0d565b6000546001600160a01b031633146105395760405162461bcd60e51b815260040161041790611635565b601054600160a01b900460ff16156105935760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610417565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105cf308267016345785d8a0000610934565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610631919061166a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a2919061166a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610713919061166a565b601080546001600160a01b0319166001600160a01b03928316179055600f541663f305d71947306107438161046a565b6000806107586000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107c0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107e59190611687565b50506010805443601155601285905566038d7ea4c68000601355660e35fa931a000060075562ff00ff60a01b1981166201000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610873573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089791906116b5565b505050565b6000546001600160a01b031633146108c65760405162461bcd60e51b815260040161041790611635565b6001600160a01b03811661092b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610417565b61046781610ebd565b6001600160a01b0383166109965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610417565b6001600160a01b0382166109f75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610417565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610aba5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610417565b6000600c55600b54600d556010546001600160a01b03838116911614801590610afc57506001600160a01b03821660009081526004602052604090205460ff16155b8015610b2157506001600160a01b03831660009081526004602052604090205460ff16155b15610b8257600754610b328361046a565b610b3c90836116ed565b1115610b825760405162461bcd60e51b815260206004820152601560248201527427bb32b91036b0bc103bb0b63632ba1039b4bd329760591b6044820152606401610417565b6010546001600160a01b038481169116148015610bad5750600f546001600160a01b03838116911614155b15610beb57601254601154610bc191611087565b4311610beb576001600160a01b0382166000908152600560205260409020805460ff191660011790555b6001600160a01b0383163014801590610c1c57506001600160a01b03821660009081526005602052604090205460ff165b15610c90576010546001600160a01b038481169116148015610c4c5750600f546001600160a01b03838116911614155b8015610c7157506001600160a01b03821660009081526004602052604090205460ff16155b15610c8557601354811115610c8557600080fd5b6000600c55605a600d555b6010546001600160a01b038381169116148015610cbb5750600f546001600160a01b03848116911614155b8015610ce057506001600160a01b03831660009081526004602052604090205460ff16155b15610d3c576001600160a01b03831660009081526005602052604090205460ff16158015610d2757506001600160a01b03821660009081526005602052604090205460ff16155b610d3057600080fd5b6001600c55600a54600d555b6000610d473061046a565b601054909150600160a81b900460ff16158015610d7257506010546001600160a01b03858116911614155b8015610d875750601054600160b01b900460ff165b15610db057610d9581610f0d565b476601c6bf52634000811115610dae57610dae47610dfb565b505b610dbb8484846110e6565b50505050565b60008184841115610de55760405162461bcd60e51b815260040161041791906114ef565b506000610df28486611705565b95945050505050565b600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e35573d6000803e3d6000fd5b5050565b6000600854821115610ea05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610417565b6000610eaa6110f1565b9050610eb68382611114565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f5557610f5561171c565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd2919061166a565b81600181518110610fe557610fe561171c565b6001600160a01b039283166020918202929092010152600f5461100b9130911684610934565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611044908590600090869030904290600401611732565b600060405180830381600087803b15801561105e57600080fd5b505af1158015611072573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b60008061109483856116ed565b905083811015610eb65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610417565b610897838383611156565b60008060006110fe61124d565b909250905061110d8282611114565b9250505090565b6000610eb683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061128d565b600080600080600080611168876112bb565b6001600160a01b038f16600090815260016020526040902054959b5093995091975095509350915061119a9087611318565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546111c99086611087565b6001600160a01b0389166000908152600160205260409020556111eb8161135a565b6111f584836113a4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161123a91815260200190565b60405180910390a3505050505050505050565b600854600090819067016345785d8a00006112688282611114565b8210156112845750506008549267016345785d8a000092509050565b90939092509050565b600081836112ae5760405162461bcd60e51b815260040161041791906114ef565b506000610df284866117a3565b60008060008060008060008060006112d88a600c54600d546113c8565b92509250925060006112e86110f1565b905060008060006112fb8e87878761141d565b919e509c509a509598509396509194505050505091939550919395565b6000610eb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dc1565b60006113646110f1565b90506000611372838361146d565b3060009081526001602052604090205490915061138f9082611087565b30600090815260016020526040902055505050565b6008546113b19083611318565b6008556009546113c19082611087565b6009555050565b60008080806113e260646113dc898961146d565b90611114565b905060006113f560646113dc8a8961146d565b9050600061140d826114078b86611318565b90611318565b9992985090965090945050505050565b600080808061142c888661146d565b9050600061143a888761146d565b90506000611448888861146d565b9050600061145a826114078686611318565b939b939a50919850919650505050505050565b60008260000361147f5750600061037e565b600061148b83856117c5565b90508261149885836117a3565b14610eb65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610417565b600060208083528351808285015260005b8181101561151c57858101830151858201604001528201611500565b8181111561152e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461046757600080fd5b6000806040838503121561156c57600080fd5b823561157781611544565b946020939093013593505050565b60008060006060848603121561159a57600080fd5b83356115a581611544565b925060208401356115b581611544565b929592945050506040919091013590565b6000602082840312156115d857600080fd5b8135610eb681611544565b6000602082840312156115f557600080fd5b5035919050565b6000806040838503121561160f57600080fd5b823561161a81611544565b9150602083013561162a81611544565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561167c57600080fd5b8151610eb681611544565b60008060006060848603121561169c57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156116c757600080fd5b81518015158114610eb657600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611700576117006116d7565b500190565b600082821015611717576117176116d7565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117825784516001600160a01b03168352938301939183019160010161175d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826117c057634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117df576117df6116d7565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e311c8fce8a374d3f7eb175c76ad2657954ccde701b581b683a7ba476402664564736f6c634300080d0033

Deployed Bytecode Sourcemap

3773:10142:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5637:83;;;;;;;;;;-1:-1:-1;5707:5:0;;;;;;;;;;;;-1:-1:-1;;;5707:5:0;;;;5637:83;;;;;;;:::i;:::-;;;;;;;;6489:161;;;;;;;;;;-1:-1:-1;6489:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;6489:161:0;1072:187:1;5914:95:0;;;;;;;;;;-1:-1:-1;4277:15:0;5914:95;;;1410:25:1;;;1398:2;1383:18;5914:95:0;1264:177:1;6658:313:0;;;;;;;;;;-1:-1:-1;6658:313:0;;;;;:::i;:::-;;:::i;9659:125::-;;;;;;;;;;;;;:::i;:::-;;5823:83;;;;;;;;;;-1:-1:-1;5823:83:0;;4758:1;2049:36:1;;2037:2;2022:18;5823:83:0;1907:184:1;12063:152:0;;;;;;;;;;;;;:::i;6017:138::-;;;;;;;;;;-1:-1:-1;6017:138:0;;;;;:::i;:::-;;:::i;2492:103::-;;;;;;;;;;;;;:::i;2269:87::-;;;;;;;;;;-1:-1:-1;2315:7:0;2342:6;2269:87;;-1:-1:-1;;;;;2342:6:0;;;2494:51:1;;2482:2;2467:18;2269:87:0;2348:203:1;4313:29:0;;;;;;;;;;;;;;;;5728:87;;;;;;;;;;-1:-1:-1;5800:7:0;;;;;;;;;;;;-1:-1:-1;;;5800:7:0;;;;5728:87;;6163:167;;;;;;;;;;-1:-1:-1;6163:167:0;;;;;:::i;:::-;;:::i;11898:153::-;;;;;;;;;;;;;:::i;9899:921::-;;;;;;;;;;-1:-1:-1;9899:921:0;;;;;:::i;:::-;;:::i;6338:143::-;;;;;;;;;;-1:-1:-1;6338:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6446:18:0;;;6419:7;6446:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6338:143;2603:201;;;;;;;;;;-1:-1:-1;2603:201:0;;;;;:::i;:::-;;:::i;6489:161::-;6564:4;6581:39;182:10;6604:7;6613:6;6581:8;:39::i;:::-;-1:-1:-1;6638:4:0;6489:161;;;;;:::o;6658:313::-;6756:4;6773:36;6783:6;6791:9;6802:6;6773:9;:36::i;:::-;6820:121;6829:6;182:10;6851:89;6889:6;6851:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6851:19:0;;;;;;:11;:19;;;;;;;;182:10;6851:33;;;;;;;;;;:37;:89::i;:::-;6820:8;:121::i;:::-;-1:-1:-1;6959:4:0;6658:313;;;;;:::o;9659:125::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;;;;;;;;;4277:15:::1;9709:12;:22:::0;;;9742:14:::1;:24:::0;9659:125::o;12063:152::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;12143:21:::1;12175:32;12143:21:::0;12175:12:::1;:32::i;:::-;12103:112;12063:152::o:0;6017:138::-;-1:-1:-1;;;;;6130:16:0;;6083:7;6130:16;;;:7;:16;;;;;;6110:37;;:19;:37::i;2492:103::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;2557:30:::1;2584:1;2557:18;:30::i;:::-;2492:103::o:0;6163:167::-;6241:4;6258:42;182:10;6282:9;6293:6;6258:9;:42::i;11898:153::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;11949:23:::1;11975:24;11993:4;11975:9;:24::i;:::-;11949:50;;12010:33;12027:15;12010:16;:33::i;9899:921::-:0;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;9980:11:::1;::::0;-1:-1:-1;;;9980:11:0;::::1;;;9979:12;9971:47;;;::::0;-1:-1:-1;;;9971:47:0;;3697:2:1;9971:47:0::1;::::0;::::1;3679:21:1::0;3736:2;3716:18;;;3709:30;3775:25;3755:18;;;3748:53;3818:18;;9971:47:0::1;3495:347:1::0;9971:47:0::1;10140:15;:34:::0;;-1:-1:-1;;;;;;10140:34:0::1;10086:42;10140:34:::0;;::::1;::::0;;;10185:58:::1;10202:4;10086:42:::0;4277:15:::1;10185:8;:58::i;:::-;10288:16;-1:-1:-1::0;;;;;10288:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10270:56:0::1;;10335:4;10342:16;-1:-1:-1::0;;;;;10342:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10270:96;::::0;-1:-1:-1;;;;;;10270:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4333:15:1;;;10270:96:0::1;::::0;::::1;4315:34:1::0;4385:15;;4365:18;;;4358:43;4250:18;;10270:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10254:13;:112:::0;;-1:-1:-1;;;;;;10254:112:0::1;-1:-1:-1::0;;;;;10254:112:0;;::::1;;::::0;;10377:15:::1;::::0;::::1;:31;10416:21;10447:4;10453:24;10447:4:::0;10453:9:::1;:24::i;:::-;10478:1;10480::::0;10482:7:::1;2315::::0;2342:6;-1:-1:-1;;;;;2342:6:0;;2269:87;10482:7:::1;10377:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10377:129:0;;;-1:-1:-1;;;;;4771:15:1;;;10377:129:0::1;::::0;::::1;4753:34:1::0;4803:18;;;4796:34;;;;4846:18;;;4839:34;;;;4889:18;;;4882:34;4953:15;;;4932:19;;;4925:44;10490:15:0::1;4985:19:1::0;;;4978:35;4687:19;;10377:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10517:11:0::1;:18:::0;;10560:12:::1;10546:11;:26:::0;10583:10:::1;:22:::0;;;10631:15:::1;10616:12;:30:::0;10679:15:::1;10662:14;:32:::0;-1:-1:-1;;;;10712:18:0;;-1:-1:-1;;;10712:18:0;;;;10779:15:::1;::::0;10741:71:::1;::::0;-1:-1:-1;;;10741:71:0;;-1:-1:-1;;;;;10779:15:0;;::::1;10741:71;::::0;::::1;5509:51:1::0;-1:-1:-1;;5576:18:1;;;5569:34;10748:13:0;;;-1:-1:-1;10741:29:0::1;::::0;5482:18:1;;10741:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9960:860;9899:921:::0;:::o;2603:201::-;2315:7;2342:6;-1:-1:-1;;;;;2342:6:0;182:10;2404:23;2396:68;;;;-1:-1:-1;;;2396:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2692:22:0;::::1;2684:73;;;::::0;-1:-1:-1;;;2684:73:0;;6098:2:1;2684:73:0::1;::::0;::::1;6080:21:1::0;6137:2;6117:18;;;6110:30;6176:34;6156:18;;;6149:62;-1:-1:-1;;;6227:18:1;;;6220:36;6273:19;;2684:73:0::1;5896:402:1::0;2684:73:0::1;2768:28;2787:8;2768:18;:28::i;7241:335::-:0;-1:-1:-1;;;;;7334:19:0;;7326:68;;;;-1:-1:-1;;;7326:68:0;;6505:2:1;7326:68:0;;;6487:21:1;6544:2;6524:18;;;6517:30;6583:34;6563:18;;;6556:62;-1:-1:-1;;;6634:18:1;;;6627:34;6678:19;;7326:68:0;6303:400:1;7326:68:0;-1:-1:-1;;;;;7413:21:0;;7405:68;;;;-1:-1:-1;;;7405:68:0;;6910:2:1;7405:68:0;;;6892:21:1;6949:2;6929:18;;;6922:30;6988:34;6968:18;;;6961:62;-1:-1:-1;;;7039:18:1;;;7032:32;7081:19;;7405:68:0;6708:398:1;7405:68:0;-1:-1:-1;;;;;7484:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7536:32;;1410:25:1;;;7536:32:0;;1383:18:1;7536:32:0;;;;;;;7241:335;;;:::o;7584:1572::-;7681:1;7672:6;:10;7664:64;;;;-1:-1:-1;;;7664:64:0;;7313:2:1;7664:64:0;;;7295:21:1;7352:2;7332:18;;;7325:30;7391:34;7371:18;;;7364:62;-1:-1:-1;;;7442:18:1;;;7435:39;7491:19;;7664:64:0;7111:405:1;7664:64:0;7751:1;7739:9;:13;7775:7;;7763:9;:19;7803:13;;-1:-1:-1;;;;;7797:19:0;;;7803:13;;7797:19;;;;:47;;-1:-1:-1;;;;;;7822:22:0;;;;;;:18;:22;;;;;;;;7820:24;7797:47;:77;;;;-1:-1:-1;;;;;;7850:24:0;;;;;;:18;:24;;;;;;;;7848:26;7797:77;7793:184;;;7925:14;;7908:13;7918:2;7908:9;:13::i;:::-;7899:22;;:6;:22;:::i;:::-;:40;;7891:74;;;;-1:-1:-1;;;7891:74:0;;7988:2:1;7891:74:0;;;7970:21:1;8027:2;8007:18;;;8000:30;-1:-1:-1;;;8046:18:1;;;8039:51;8107:18;;7891:74:0;7786:345:1;7891:74:0;8009:13;;-1:-1:-1;;;;;8001:21:0;;;8009:13;;8001:21;:55;;;;-1:-1:-1;8040:15:0;;-1:-1:-1;;;;;8026:30:0;;;8040:15;;8026:30;;8001:55;7997:186;;;8109:10;;8093:11;;:27;;:15;:27::i;:::-;8077:12;:43;8073:99;;-1:-1:-1;;;;;8141:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;8141:15:0;8152:4;8141:15;;;8073:99;-1:-1:-1;;;;;8207:21:0;;8223:4;8207:21;;;;:33;;-1:-1:-1;;;;;;8232:8:0;;;;;;:4;:8;;;;;;;;8207:33;8203:277;;;8269:13;;-1:-1:-1;;;;;8261:21:0;;;8269:13;;8261:21;:55;;;;-1:-1:-1;8300:15:0;;-1:-1:-1;;;;;8286:30:0;;;8300:15;;8286:30;;8261:55;:83;;;;-1:-1:-1;;;;;;8322:22:0;;;;;;:18;:22;;;;;;;;8320:24;8261:83;8257:155;;;8383:12;;8373:6;:22;;8365:31;;;;;;8438:1;8426:9;:13;8466:2;8454:9;:14;8203:277;8502:13;;-1:-1:-1;;;;;8496:19:0;;;8502:13;;8496:19;:55;;;;-1:-1:-1;8535:15:0;;-1:-1:-1;;;;;8519:32:0;;;8535:15;;8519:32;;8496:55;:85;;;;-1:-1:-1;;;;;;8557:24:0;;;;;;:18;:24;;;;;;;;8555:26;8496:85;8492:214;;;-1:-1:-1;;;;;8607:10:0;;;;;;:4;:10;;;;;;;;8606:11;:24;;;;-1:-1:-1;;;;;;8622:8:0;;;;;;:4;:8;;;;;;;;8621:9;8606:24;8598:33;;;;;;8658:1;8646:9;:13;8686:8;;8674:9;:20;8492:214;8718:28;8749:24;8767:4;8749:9;:24::i;:::-;8789:6;;8718:55;;-1:-1:-1;;;;8789:6:0;;;;8788:7;:32;;;;-1:-1:-1;8807:13:0;;-1:-1:-1;;;;;8799:21:0;;;8807:13;;8799:21;;8788:32;:47;;;;-1:-1:-1;8824:11:0;;-1:-1:-1;;;8824:11:0;;;;8788:47;8784:316;;;8852:38;8869:20;8852:16;:38::i;:::-;8934:21;8994:15;8973:36;;8970:119;;;9038:35;9051:21;9038:12;:35::i;:::-;8837:263;8784:316;9118:30;9133:4;9138:2;9141:6;9118:14;:30::i;:::-;7653:1503;7584:1572;;;:::o;1239:190::-;1325:7;1361:12;1353:6;;;;1345:29;;;;-1:-1:-1;;;1345:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1385:9:0;1397:5;1401:1;1397;:5;:::i;:::-;1385:17;1239:190;-1:-1:-1;;;;;1239:190:0:o;9792:99::-;9849:15;;:32;;-1:-1:-1;;;;;9849:15:0;;;;:32;;;;;9874:6;;9849:15;:32;:15;:32;9874:6;9849:15;:32;;;;;;;;;;;;;;;;;;;;;9792:99;:::o;6979:254::-;7046:7;7085;;7074;:18;;7066:73;;;;-1:-1:-1;;;7066:73:0;;8468:2:1;7066:73:0;;;8450:21:1;8507:2;8487:18;;;8480:30;8546:34;8526:18;;;8519:62;-1:-1:-1;;;8597:18:1;;;8590:40;8647:19;;7066:73:0;8266:406:1;7066:73:0;7150:19;7173:10;:8;:10::i;:::-;7150:33;-1:-1:-1;7201:24:0;:7;7150:33;7201:11;:24::i;:::-;7194:31;6979:254;-1:-1:-1;;;6979:254:0:o;2812:191::-;2886:16;2905:6;;-1:-1:-1;;;;;2922:17:0;;;-1:-1:-1;;;;;;2922:17:0;;;;;;2955:40;;2905:6;;;;;;;2955:40;;2886:16;2955:40;2875:128;2812:191;:::o;9164:483::-;5162:6;:13;;-1:-1:-1;;;;5162:13:0;-1:-1:-1;;;5162:13:0;;;9266:16:::1;::::0;;9280:1:::1;9266:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9266:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9266:16:0::1;9242:40;;9311:4;9293;9298:1;9293:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9293:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9337:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9337:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9293:7;;9337:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9327:4;9332:1;9327:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9327:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9402:15:::1;::::0;9370:62:::1;::::0;9387:4:::1;::::0;9402:15:::1;9420:11:::0;9370:8:::1;:62::i;:::-;9443:15;::::0;:196:::1;::::0;-1:-1:-1;;;9443:196:0;;-1:-1:-1;;;;;9443:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9524:11;;9443:15:::1;::::0;9566:4;;9593::::1;::::0;9613:15:::1;::::0;9443:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5198:6:0;:14;;-1:-1:-1;;;;5198:14:0;;;-1:-1:-1;;;;9164:483:0:o;908:179::-;966:7;;998:5;1002:1;998;:5;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;-1:-1:-1;;;1014:46:0;;10128:2:1;1014:46:0;;;10110:21:1;10167:2;10147:18;;;10140:30;10206:29;10186:18;;;10179:57;10253:18;;1014:46:0;9926:351:1;10832:146:0;10926:44;10944:6;10952:9;10963:6;10926:17;:44::i;13479:163::-;13520:7;13541:15;13558;13577:19;:17;:19::i;:::-;13540:56;;-1:-1:-1;13540:56:0;-1:-1:-1;13614:20:0;13540:56;;13614:11;:20::i;:::-;13607:27;;;;13479:163;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;10986:488::-;11085:15;11102:23;11127:12;11141:23;11166:12;11180:13;11197:19;11208:7;11197:10;:19::i;:::-;-1:-1:-1;;;;;11245:15:0;;;;;;:7;:15;;;;;;11084:132;;-1:-1:-1;11084:132:0;;-1:-1:-1;11084:132:0;;-1:-1:-1;11084:132:0;-1:-1:-1;11084:132:0;-1:-1:-1;11084:132:0;-1:-1:-1;11245:28:0;;11084:132;11245:19;:28::i;:::-;-1:-1:-1;;;;;11227:15:0;;;;;;;:7;:15;;;;;;:46;;;;11305:18;;;;;;;:39;;11328:15;11305:22;:39::i;:::-;-1:-1:-1;;;;;11284:18:0;;;;;;:7;:18;;;;;:60;11356:16;11366:5;11356:9;:16::i;:::-;11383:23;11395:4;11401;11383:11;:23::i;:::-;11439:9;-1:-1:-1;;;;;11422:44:0;11431:6;-1:-1:-1;;;;;11422:44:0;;11450:15;11422:44;;;;1410:25:1;;1398:2;1383:18;;1264:177;11422:44:0;;;;;;;;11073:401;;;;;;10986:488;;;:::o;13650:262::-;13747:7;;13700;;;;4277:15;13821:20;13747:7;4277:15;13821:11;:20::i;:::-;13811:7;:30;13807:61;;;-1:-1:-1;;13851:7:0;;;4277:15;;-1:-1:-1;13650:262:0;-1:-1:-1;13650:262:0:o;13807:61::-;13887:7;;13896;;-1:-1:-1;13650:262:0;-1:-1:-1;13650:262:0:o;1831:189::-;1917:7;1952:12;1945:5;1937:28;;;;-1:-1:-1;;;1937:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1976:9:0;1988:5;1992:1;1988;:5;:::i;12227:471::-;12286:7;12295;12304;12313;12322;12331;12352:23;12377:12;12391:13;12408:42;12420:7;12429:9;;12440;;12408:11;:42::i;:::-;12351:99;;;;;;12461:19;12484:10;:8;:10::i;:::-;12461:33;;12506:15;12523:23;12548:12;12564:46;12576:7;12585:4;12591:5;12598:11;12564;:46::i;:::-;12505:105;;-1:-1:-1;12505:105:0;-1:-1:-1;12505:105:0;-1:-1:-1;12661:15:0;;-1:-1:-1;12678:4:0;;-1:-1:-1;12684:5:0;;-1:-1:-1;;;;;12227:471:0;;;;;;;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;11482:212::-;11535:19;11558:10;:8;:10::i;:::-;11535:33;-1:-1:-1;11579:13:0;11595:22;:5;11535:33;11595:9;:22::i;:::-;11669:4;11653:22;;;;:7;:22;;;;;;11579:38;;-1:-1:-1;11653:33:0;;11579:38;11653:26;:33::i;:::-;11644:4;11628:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11482:212:0:o;11702:147::-;11780:7;;:17;;11792:4;11780:11;:17::i;:::-;11770:7;:27;11821:10;;:20;;11836:4;11821:14;:20::i;:::-;11808:10;:33;-1:-1:-1;;11702:147:0:o;12706:351::-;12799:7;;;;12852:28;12876:3;12852:19;:7;12864:6;12852:11;:19::i;:::-;:23;;:28::i;:::-;12837:43;-1:-1:-1;12891:13:0;12907:29;12932:3;12907:20;:7;12919;12907:11;:20::i;:29::-;12891:45;-1:-1:-1;12947:23:0;12973:28;12891:45;12973:17;:7;12985:4;12973:11;:17::i;:::-;:21;;:28::i;:::-;12947:54;13037:4;;-1:-1:-1;13043:5:0;;-1:-1:-1;12706:351:0;;-1:-1:-1;;;;;12706:351:0:o;13065:409::-;13175:7;;;;13231:24;:7;13243:11;13231;:24::i;:::-;13213:42;-1:-1:-1;13266:12:0;13281:21;:4;13290:11;13281:8;:21::i;:::-;13266:36;-1:-1:-1;13313:13:0;13329:22;:5;13339:11;13329:9;:22::i;:::-;13313:38;-1:-1:-1;13362:23:0;13388:28;13313:38;13388:17;:7;13400:4;13388:11;:17::i;:28::-;13435:7;;;;-1:-1:-1;13461:4:0;;-1:-1:-1;13065:409:0;;-1:-1:-1;;;;;;;13065:409:0:o;1437:246::-;1495:7;1519:1;1524;1519:6;1515:47;;-1:-1:-1;1549:1:0;1542:8;;1515:47;1572:9;1584:5;1588:1;1584;:5;:::i;:::-;1572:17;-1:-1:-1;1617:1:0;1608:5;1612:1;1572:17;1608:5;:::i;:::-;:10;1600:56;;;;-1:-1:-1;;;1600:56:0;;10879:2:1;1600:56:0;;;10861:21:1;10918:2;10898:18;;;10891:30;10957:34;10937:18;;;10930:62;-1:-1:-1;;;11008:18:1;;;11001:31;11049:19;;1600:56:0;10677:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2096:247::-;2155:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:52;;;2224:1;2221;2214:12;2176:52;2263:9;2250:23;2282:31;2307:5;2282:31;:::i;2556:180::-;2615:6;2668:2;2656:9;2647:7;2643:23;2639:32;2636:52;;;2684:1;2681;2674:12;2636:52;-1:-1:-1;2707:23:1;;2556:180;-1:-1:-1;2556:180:1:o;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:356::-;3336:2;3318:21;;;3355:18;;;3348:30;3414:34;3409:2;3394:18;;3387:62;3481:2;3466:18;;3134:356::o;3847:251::-;3917:6;3970:2;3958:9;3949:7;3945:23;3941:32;3938:52;;;3986:1;3983;3976:12;3938:52;4018:9;4012:16;4037:31;4062:5;4037:31;:::i;5024:306::-;5112:6;5120;5128;5181:2;5169:9;5160:7;5156:23;5152:32;5149:52;;;5197:1;5194;5187:12;5149:52;5226:9;5220:16;5210:26;;5276:2;5265:9;5261:18;5255:25;5245:35;;5320:2;5309:9;5305:18;5299:25;5289:35;;5024:306;;;;;:::o;5614:277::-;5681:6;5734:2;5722:9;5713:7;5709:23;5705:32;5702:52;;;5750:1;5747;5740:12;5702:52;5782:9;5776:16;5835:5;5828:13;5821:21;5814:5;5811:32;5801:60;;5857:1;5854;5847:12;7521:127;7582:10;7577:3;7573:20;7570:1;7563:31;7613:4;7610:1;7603:15;7637:4;7634:1;7627:15;7653:128;7693:3;7724:1;7720:6;7717:1;7714:13;7711:39;;;7730:18;;:::i;:::-;-1:-1:-1;7766:9:1;;7653:128::o;8136:125::-;8176:4;8204:1;8201;8198:8;8195:34;;;8209:18;;:::i;:::-;-1:-1:-1;8246:9:1;;8136:125::o;8809:127::-;8870:10;8865:3;8861:20;8858:1;8851:31;8901:4;8898:1;8891:15;8925:4;8922:1;8915:15;8941:980;9203:4;9251:3;9240:9;9236:19;9282:6;9271:9;9264:25;9308:2;9346:6;9341:2;9330:9;9326:18;9319:34;9389:3;9384:2;9373:9;9369:18;9362:31;9413:6;9448;9442:13;9479:6;9471;9464:22;9517:3;9506:9;9502:19;9495:26;;9556:2;9548:6;9544:15;9530:29;;9577:1;9587:195;9601:6;9598:1;9595:13;9587:195;;;9666:13;;-1:-1:-1;;;;;9662:39:1;9650:52;;9757:15;;;;9722:12;;;;9698:1;9616:9;9587:195;;;-1:-1:-1;;;;;;;9838:32:1;;;;9833:2;9818:18;;9811:60;-1:-1:-1;;;9902:3:1;9887:19;9880:35;9799:3;8941:980;-1:-1:-1;;;8941:980:1:o;10282:217::-;10322:1;10348;10338:132;;10392:10;10387:3;10383:20;10380:1;10373:31;10427:4;10424:1;10417:15;10455:4;10452:1;10445:15;10338:132;-1:-1:-1;10484:9:1;;10282:217::o;10504:168::-;10544:7;10610:1;10606;10602:6;10598:14;10595:1;10592:21;10587:1;10580:9;10573:17;10569:45;10566:71;;;10617:18;;:::i;:::-;-1:-1:-1;10657:9:1;;10504:168::o

Swarm Source

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