ETH Price: $2,879.10 (-5.64%)
Gas: 2 Gwei

Token

酱香拿铁 (酱香拿铁)
 

Overview

Max Total Supply

1,000,000,000 酱香拿铁

Holders

275

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
JXNT

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-09-04
*/

// SPDX-License-Identifier: MIT

/**

Website: https://jxnt.cc
Telegram: https://t.me/jiangxiangnatie
Twitter: https://twitter.com/JiangxiangNatie

**/
pragma solidity 0.8.0;

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 JXNT is Context, IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 50;
    uint256 private _initialSellTax = 50;
    uint256 private _finalBuyTax = 2;
    uint256 private _finalSellTax = 2;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 30;
    uint256 private _buyCount = 0;

    string private constant _name = unicode"酱香拿铁";
    string private constant _symbol = unicode"酱香拿铁";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = (_tTotal * 1) / 100;
    uint256 public _maxWalletSize = (_tTotal * 1) / 100;
    uint256 public _taxSwapThreshold = (_tTotal * 2) / 1000;
    uint256 public _maxTaxSwap = (_tTotal * 1) / 100;
    uint256 private _teamShare = (_tTotal * 3) / 100;

    mapping(address => bool) public whitelist;
    uint256 private _whitelistMaxAmount = (_tTotal * 1) / 100;

    IUniswapV2Router02 private uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);

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

    constructor() {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        whitelist[0x18a706e7BB6b509F7d4ab7fc0f6345C2289c045F] = true;
        whitelist[0xf150f8FC468439e47112E4575B57813c89658054] = true;
        whitelist[0x9233d4e2F1eEF619FFc3C07220fd89ab1Ac0CE98] = true;
        whitelist[0x68EC1aB476521EBD04dd7F0dB40D1Bb3f4C00cD7] = true;
        whitelist[0xC1dB67c856c72716f4e9Db08de52691134876980] = true;
        whitelist[0x833857D271EA78C80D437E3229c0Ae6AA80bBeE8] = true;
        whitelist[0x982b22a3e9366176aD9817c3467Fc960DA69f165] = true;
        whitelist[0x337C0ef05495c731aA677E583b6AC87D2083Ce14] = true;
        whitelist[0x8dC485e5e3335e365C53fA7533A6998646cB6Baa] = true;
        whitelist[0x09981aD1f733de8a9549B60A496698eB3eaE0129] = true;
        whitelist[0x2583c5dDF9C70647BD5E8c8893678303EFB6A8BD] = true;
        whitelist[0x1FA27b09B23b23517fFd8Ff7C6C67C4CA3cA921f] = true;
        whitelist[0xC230Fc1bd50aCEfe2b0C815293C3Ed7ff0b90fc2] = true;
        whitelist[0x5B4ED4Ff7E3e6cF918A345b1145Ae2291454a87f] = true;
        whitelist[0x2Dac8a8DfDa482d9D9186232294C70af9A342FE5] = true;
        whitelist[0x43fFa9008317e8fD724bbC668eb8184432B6CCA5] = true;
        whitelist[0xb7226E67e924df91E32BE53a99240207dd703E5C] = true;
        whitelist[0xAc4F7ae3AB7Ac57Dd24b723C5dB61e5e32938997] = true;
        whitelist[0x0F8f7528f7887405baE3f91A38d8244006F77122] = true;
        whitelist[0xfC055b6BAEa363D48d579646aEc4BcCAca58cD83] = true;
        whitelist[0xfbB00a557eD7164b6693978af770E3e8c795030b] = true;
        whitelist[0x7AC0FcDa76dd0e31dedFd8D3AF1378C25acdE38A] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner() && !whitelist[to]) {
            // Delay transfers
            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "Only one transfer per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

                uint256 tax = (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax;

                taxAmount = (amount * tax) / 100;

                _buyCount++;
            }

            // sell
            if (to == uniswapV2Pair && from != address(this)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                uint256 tax = (_buyCount > _reduceSellTaxAt)
                    ? _finalSellTax
                    : _initialSellTax;
                taxAmount = (amount * tax) / 100;
            }

            // swap tokens for eth
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        } else if (whitelist[to]) {
            require(
                amount <= _whitelistMaxAmount,
                "Exceeds the _whitelistMaxAmount."
            );
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount - taxAmount;
        emit Transfer(from, to, amount - taxAmount);
    }

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

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

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

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

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

        _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)) - _teamShare,
            0,
            0,
            owner(),
            block.timestamp
        );

        swapEnabled = true;
        tradingOpen = true;
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff1916905560326006819055600755600260088190556009556014600a908155601e600b556000600c556064906200004490601290620007c5565b6200005490633b9aca00620008bd565b62000061906001620008bd565b6200006d919062000757565b600d556064620000806012600a620007c5565b6200009090633b9aca00620008bd565b6200009d906001620008bd565b620000a9919062000757565b600e556103e8620000bd6012600a620007c5565b620000cd90633b9aca00620008bd565b620000da906002620008bd565b620000e6919062000757565b600f556064620000f96012600a620007c5565b6200010990633b9aca00620008bd565b62000116906001620008bd565b62000122919062000757565b6010556064620001356012600a620007c5565b6200014590633b9aca00620008bd565b62000152906003620008bd565b6200015e919062000757565b6011556064620001716012600a620007c5565b6200018190633b9aca00620008bd565b6200018e906001620008bd565b6200019a919062000757565b601355601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556015805461ffff60a81b19169055348015620001de57600080fd5b506000620001eb6200073b565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200023f6200073b565b600580546001600160a01b039290921661010002610100600160a81b0319909216919091179055620002746012600a620007c5565b6200028490633b9aca00620008bd565b60016000620002926200073b565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620002cc6200073f60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003845282812080548616600190811790915560055461010090049092168152918220805485168217905560129092527fcfaa03f14f3578965836b4ff296530349ab64be150f230aca226a4d8c061c02a80548416831790557fb24698cb301462ab11e9b38bf5d77607d5a6e86c69e789fa8f70dee0bf265a4980548416831790557fc0d3827871737726607e823de007b4dab795ca7a340c81266b5ed1bf8914223380548416831790557fc3b4b4fdd00f54a34952fba3d05ed0f298a03bdb970d54aa3f9ac3b1dc65d2f380548416831790557fbd2966f1bcfcfb0267b90b3b32e6e2636ccb422f08f6ea75455247425666336d80548416831790557f8debaf92962413bb027031b63df03d943df79b8970e6e448ead11bcc4d16404480548416831790557fb0b10ae3887d2097b1411acbc19691d96af3972ffcd3b190f6d373b97c5ca36e80548416831790557f27b101a99add440402cbb36e24a86670dc01ba3d72c07ab362e568996d5f89be80548416831790557f801b43e4e758913753f2fdab01ff917beeb9c4fe9dc49b9a82c2ab42556ae13580548416831790557fc914e6e44ae0bd75820d3bd98dd5c0ec704b57cdfe6b2edef1e3b708a9c72ed480548416831790557fa14d1807e7a5beb110fbf336cb54b0af852c22163f39271e0a718f4aa4b30d8f80548416831790557ff2ae4259683208e59e0d7ff6ddb51197c51992e6cb902c88f5d2bcdb1a6e4ef580548416831790557f54475e9e5101ef0075c0aafc6402dd668f4711f8aacb5e013b12a5a5485c552880548416831790557f16e82dddb8b928dc3c8c3aae6ebbac4f871d3c24e931490c765dd5405cdc9f1180548416831790557ff0f8cfb498ef69785832bc6c62fb1e1d5770af632baa841bf2a12c465b96eb7780548416831790557fabf0c23dc3552a1e3654f313a3ef87314211b2c1a11e94899df907dfb6181e5b80548416831790557fa7e0735dda31ddcf17259bd1cc0143942f259ed0d43eadf4f7cbf0d005d387c380548416831790557fa1c92bfdae972e97fc5176af04edd50a9879e79171065575e6f19ac1bcbc163f80548416831790557f9f3c516c4e84005440a4d0a44e2a7423b322400cebdf11fee8cd32fb53994fdb80548416831790557f65757d30461b2d2da750c591c99ebc9f33b08b20845273191d97935b6f4dae2c80548416831790557f5f79657d32a77d4d5317e36e2f991196f8617d50f43c572f242c3f750125dff28054841683179055737ac0fcda76dd0e31dedfd8d3af1378c25acde38a90527fcfe706d532e88d96a62c404fb836f3889edf67f33d372fa7da411176883706258054909216179055620006d46200073b565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200070e6012600a620007c5565b6200071e90633b9aca00620008bd565b6040516200072d91906200074e565b60405180910390a3620008f5565b3390565b6000546001600160a01b031690565b90815260200190565b6000826200077357634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116200078c5750620007bc565b818704821115620007a157620007a1620008df565b80861615620007af57918102915b9490941c9380026200077b565b94509492505050565b6000620007d960001960ff851684620007e0565b9392505050565b600082620007f157506001620007d9565b816200080057506000620007d9565b8160018114620008195760028114620008245762000858565b6001915050620007d9565b60ff841115620008385762000838620008df565b6001841b915084821115620008515762000851620008df565b50620007d9565b5060208310610133831016604e8410600b841016171562000890575081810a838111156200088a576200088a620008df565b620007d9565b6200089f848484600162000778565b808604821115620008b457620008b4620008df565b02949350505050565b6000816000190483118215151615620008da57620008da620008df565b500290565b634e487b7160e01b600052601160045260246000fd5b6116ef80620009056000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102cd578063bf474bed146102ed578063c876d0b914610302578063c9567bf914610317578063dd62ed3e1461032c5761012a565b80637d1db4a5146102615780638da5cb5b146102765780638f9a55c01461029857806395d89b411461012f5780639b19251a146102ad5761012a565b8063313ce567116100e7578063313ce567146101de57806351bc3c851461020057806370a0823114610217578063715018a614610237578063751039fc1461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061014461034c565b6040516101519190611232565b60405180910390f35b34801561016657600080fd5b5061017a610175366004611166565b610372565b6040516101519190611227565b34801561019357600080fd5b5061019c61038f565b6040516101519190611464565b3480156101b557600080fd5b5061019c610395565b3480156101ca57600080fd5b5061017a6101d9366004611126565b6103b6565b3480156101ea57600080fd5b506101f361042c565b60405161015191906114dd565b34801561020c57600080fd5b50610215610431565b005b34801561022357600080fd5b5061019c6102323660046110b6565b61048d565b34801561024357600080fd5b506102156104a8565b34801561025857600080fd5b50610215610530565b34801561026d57600080fd5b5061019c6105fb565b34801561028257600080fd5b5061028b610601565b60405161015191906111be565b3480156102a457600080fd5b5061019c610610565b3480156102b957600080fd5b5061017a6102c83660046110b6565b610616565b3480156102d957600080fd5b5061017a6102e8366004611166565b61062b565b3480156102f957600080fd5b5061019c61063f565b34801561030e57600080fd5b5061017a610645565b34801561032357600080fd5b5061021561064e565b34801561033857600080fd5b5061019c6103473660046110ee565b61094b565b60408051808201909152600c81526be985b1e9a699e68bbfe9938160a01b602082015290565b600061038661037f610976565b848461097a565b50600192915050565b60105481565b60006103a36012600a611569565b6103b190633b9aca0061163a565b905090565b60006103c38484846109e2565b610421846103cf610976565b6001600160a01b038716600090815260026020526040812086916103f1610976565b6001600160a01b03166001600160a01b031681526020019081526020016000205461041c9190611659565b61097a565b5060015b9392505050565b601290565b60055461010090046001600160a01b031661044a610976565b6001600160a01b03161461045d57600080fd5b60006104683061048d565b905080156104795761047981610e9d565b4780156104895761048981611063565b5050565b6001600160a01b031660009081526001602052604090205490565b6104b0610976565b6000546001600160a01b039081169116146104e65760405162461bcd60e51b81526004016104dd90611334565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610538610976565b6000546001600160a01b039081169116146105655760405162461bcd60e51b81526004016104dd90611334565b6105716012600a611569565b61057f90633b9aca0061163a565b600d5561058e6012600a611569565b61059c90633b9aca0061163a565b600e556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105d66012600a611569565b6105e490633b9aca0061163a565b6040516105f19190611464565b60405180910390a1565b600d5481565b6000546001600160a01b031690565b600e5481565b60126020526000908152604090205460ff1681565b6000610386610638610976565b84846109e2565b600f5481565b60055460ff1681565b610656610976565b6000546001600160a01b039081169116146106835760405162461bcd60e51b81526004016104dd90611334565b601554600160a01b900460ff16156106ad5760405162461bcd60e51b81526004016104dd906113e9565b6014546106d99030906001600160a01b03166106cb6012600a611569565b61041c90633b9aca0061163a565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561072757600080fd5b505afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f91906110d2565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f491906110d2565b6040518363ffffffff1660e01b81526004016108119291906111d2565b602060405180830381600087803b15801561082b57600080fd5b505af115801561083f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086391906110d2565b601580546001600160a01b0319166001600160a01b0392831617905560145460115491169063f305d719904790309061089b8261048d565b6108a59190611659565b6000806108b0610601565b426040518863ffffffff1660e01b81526004016108d2969594939291906111ec565b6060604051808303818588803b1580156108eb57600080fd5b505af11580156108ff573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109249190611191565b50506015805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b17905550565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109d5908590611464565b60405180910390a3505050565b6001600160a01b038216610a085760405162461bcd60e51b81526004016104dd90611285565b60008111610a285760405162461bcd60e51b81526004016104dd90611369565b6000610a32610601565b6001600160a01b0316846001600160a01b031614158015610a6c5750610a56610601565b6001600160a01b0316836001600160a01b031614155b8015610a9157506001600160a01b03831660009081526012602052604090205460ff16155b15610d1c5760055460ff1615610b13576014546001600160a01b03848116911614801590610acd57506015546001600160a01b03848116911614155b15610b1357326000908152600460205260409020544311610b005760405162461bcd60e51b81526004016104dd90611420565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610b3e57506014546001600160a01b03848116911614155b8015610b6357506001600160a01b03831660009081526003602052604090205460ff16155b15610c0957600d54821115610b8a5760405162461bcd60e51b81526004016104dd906112c8565b600e5482610b978561048d565b610ba191906114eb565b1115610bbf5760405162461bcd60e51b81526004016104dd906113b2565b6000600a54600c5411610bd457600654610bd8565b6008545b90506064610be6828561163a565b610bf09190611503565b600c80549193506000610c0283611670565b9190505550505b6015546001600160a01b038481169116148015610c2f57506001600160a01b0384163014155b15610c8b57600d54821115610c565760405162461bcd60e51b81526004016104dd906112c8565b6000600b54600c5411610c6b57600754610c6f565b6009545b90506064610c7d828561163a565b610c879190611503565b9150505b6000610c963061048d565b601554909150600160a81b900460ff16158015610cc057506015546001600160a01b038581169116145b8015610cd55750601554600160b01b900460ff165b8015610ce25750600f5481115b15610d1657610d04610cff84610cfa846010546110a1565b6110a1565b610e9d565b478015610d1457610d1447611063565b505b50610d5f565b6001600160a01b03831660009081526012602052604090205460ff1615610d5f57601354821115610d5f5760405162461bcd60e51b81526004016104dd906112ff565b8015610dd85730600090815260016020526040902054610d809082906114eb565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dcf908590611464565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610dfc908390611659565b6001600160a01b0380861660009081526001602052604080822093909355908516815220548190610e2e9084906114eb565b610e389190611659565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e828486611659565b604051610e8f9190611464565b60405180910390a350505050565b6015805460ff60a81b1916600160a81b17905580610eba57611053565b601554600160a01b900460ff16610ed057611053565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610f1357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f6757600080fd5b505afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f91906110d2565b81600181518110610fc057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601454610fe6913091168461097a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061101f90859060009086903090429060040161146d565b600060405180830381600087803b15801561103957600080fd5b505af115801561104d573d6000803e3d6000fd5b50505050505b506015805460ff60a81b19169055565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610489573d6000803e3d6000fd5b60008183116110b05782610425565b50919050565b6000602082840312156110c7578081fd5b8135610425816116a1565b6000602082840312156110e3578081fd5b8151610425816116a1565b60008060408385031215611100578081fd5b823561110b816116a1565b9150602083013561111b816116a1565b809150509250929050565b60008060006060848603121561113a578081fd5b8335611145816116a1565b92506020840135611155816116a1565b929592945050506040919091013590565b60008060408385031215611178578182fd5b8235611183816116a1565b946020939093013593505050565b6000806000606084860312156111a5578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561125e57858101830151858201604001528201611242565b8181111561126f5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252818101527f4578636565647320746865205f77686974656c6973744d6178416d6f756e742e604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156114bc5784516001600160a01b031683529383019391830191600101611497565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b600082198211156114fe576114fe61168b565b500190565b60008261151e57634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116115355750611560565b8187048211156115475761154761168b565b8086161561155457918102915b9490941c938002611526565b94509492505050565b600061042560001960ff85168460008261158557506001610425565b8161159257506000610425565b81600181146115a857600281146115b2576115df565b6001915050610425565b60ff8411156115c3576115c361168b565b6001841b9150848211156115d9576115d961168b565b50610425565b5060208310610133831016604e8410600b8410161715611612575081810a8381111561160d5761160d61168b565b610425565b61161f8484846001611523565b8086048211156116315761163161168b565b02949350505050565b60008160001904831182151516156116545761165461168b565b500290565b60008282101561166b5761166b61168b565b500390565b60006000198214156116845761168461168b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146116b657600080fd5b5056fea2646970667358221220705dee3a7f21ad22dca4e65a637e2eb9a77a28f9df08d684ba9aef29e79512a364736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102cd578063bf474bed146102ed578063c876d0b914610302578063c9567bf914610317578063dd62ed3e1461032c5761012a565b80637d1db4a5146102615780638da5cb5b146102765780638f9a55c01461029857806395d89b411461012f5780639b19251a146102ad5761012a565b8063313ce567116100e7578063313ce567146101de57806351bc3c851461020057806370a0823114610217578063715018a614610237578063751039fc1461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061014461034c565b6040516101519190611232565b60405180910390f35b34801561016657600080fd5b5061017a610175366004611166565b610372565b6040516101519190611227565b34801561019357600080fd5b5061019c61038f565b6040516101519190611464565b3480156101b557600080fd5b5061019c610395565b3480156101ca57600080fd5b5061017a6101d9366004611126565b6103b6565b3480156101ea57600080fd5b506101f361042c565b60405161015191906114dd565b34801561020c57600080fd5b50610215610431565b005b34801561022357600080fd5b5061019c6102323660046110b6565b61048d565b34801561024357600080fd5b506102156104a8565b34801561025857600080fd5b50610215610530565b34801561026d57600080fd5b5061019c6105fb565b34801561028257600080fd5b5061028b610601565b60405161015191906111be565b3480156102a457600080fd5b5061019c610610565b3480156102b957600080fd5b5061017a6102c83660046110b6565b610616565b3480156102d957600080fd5b5061017a6102e8366004611166565b61062b565b3480156102f957600080fd5b5061019c61063f565b34801561030e57600080fd5b5061017a610645565b34801561032357600080fd5b5061021561064e565b34801561033857600080fd5b5061019c6103473660046110ee565b61094b565b60408051808201909152600c81526be985b1e9a699e68bbfe9938160a01b602082015290565b600061038661037f610976565b848461097a565b50600192915050565b60105481565b60006103a36012600a611569565b6103b190633b9aca0061163a565b905090565b60006103c38484846109e2565b610421846103cf610976565b6001600160a01b038716600090815260026020526040812086916103f1610976565b6001600160a01b03166001600160a01b031681526020019081526020016000205461041c9190611659565b61097a565b5060015b9392505050565b601290565b60055461010090046001600160a01b031661044a610976565b6001600160a01b03161461045d57600080fd5b60006104683061048d565b905080156104795761047981610e9d565b4780156104895761048981611063565b5050565b6001600160a01b031660009081526001602052604090205490565b6104b0610976565b6000546001600160a01b039081169116146104e65760405162461bcd60e51b81526004016104dd90611334565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610538610976565b6000546001600160a01b039081169116146105655760405162461bcd60e51b81526004016104dd90611334565b6105716012600a611569565b61057f90633b9aca0061163a565b600d5561058e6012600a611569565b61059c90633b9aca0061163a565b600e556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105d66012600a611569565b6105e490633b9aca0061163a565b6040516105f19190611464565b60405180910390a1565b600d5481565b6000546001600160a01b031690565b600e5481565b60126020526000908152604090205460ff1681565b6000610386610638610976565b84846109e2565b600f5481565b60055460ff1681565b610656610976565b6000546001600160a01b039081169116146106835760405162461bcd60e51b81526004016104dd90611334565b601554600160a01b900460ff16156106ad5760405162461bcd60e51b81526004016104dd906113e9565b6014546106d99030906001600160a01b03166106cb6012600a611569565b61041c90633b9aca0061163a565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561072757600080fd5b505afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f91906110d2565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f491906110d2565b6040518363ffffffff1660e01b81526004016108119291906111d2565b602060405180830381600087803b15801561082b57600080fd5b505af115801561083f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086391906110d2565b601580546001600160a01b0319166001600160a01b0392831617905560145460115491169063f305d719904790309061089b8261048d565b6108a59190611659565b6000806108b0610601565b426040518863ffffffff1660e01b81526004016108d2969594939291906111ec565b6060604051808303818588803b1580156108eb57600080fd5b505af11580156108ff573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109249190611191565b50506015805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b17905550565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109d5908590611464565b60405180910390a3505050565b6001600160a01b038216610a085760405162461bcd60e51b81526004016104dd90611285565b60008111610a285760405162461bcd60e51b81526004016104dd90611369565b6000610a32610601565b6001600160a01b0316846001600160a01b031614158015610a6c5750610a56610601565b6001600160a01b0316836001600160a01b031614155b8015610a9157506001600160a01b03831660009081526012602052604090205460ff16155b15610d1c5760055460ff1615610b13576014546001600160a01b03848116911614801590610acd57506015546001600160a01b03848116911614155b15610b1357326000908152600460205260409020544311610b005760405162461bcd60e51b81526004016104dd90611420565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610b3e57506014546001600160a01b03848116911614155b8015610b6357506001600160a01b03831660009081526003602052604090205460ff16155b15610c0957600d54821115610b8a5760405162461bcd60e51b81526004016104dd906112c8565b600e5482610b978561048d565b610ba191906114eb565b1115610bbf5760405162461bcd60e51b81526004016104dd906113b2565b6000600a54600c5411610bd457600654610bd8565b6008545b90506064610be6828561163a565b610bf09190611503565b600c80549193506000610c0283611670565b9190505550505b6015546001600160a01b038481169116148015610c2f57506001600160a01b0384163014155b15610c8b57600d54821115610c565760405162461bcd60e51b81526004016104dd906112c8565b6000600b54600c5411610c6b57600754610c6f565b6009545b90506064610c7d828561163a565b610c879190611503565b9150505b6000610c963061048d565b601554909150600160a81b900460ff16158015610cc057506015546001600160a01b038581169116145b8015610cd55750601554600160b01b900460ff165b8015610ce25750600f5481115b15610d1657610d04610cff84610cfa846010546110a1565b6110a1565b610e9d565b478015610d1457610d1447611063565b505b50610d5f565b6001600160a01b03831660009081526012602052604090205460ff1615610d5f57601354821115610d5f5760405162461bcd60e51b81526004016104dd906112ff565b8015610dd85730600090815260016020526040902054610d809082906114eb565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dcf908590611464565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610dfc908390611659565b6001600160a01b0380861660009081526001602052604080822093909355908516815220548190610e2e9084906114eb565b610e389190611659565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e828486611659565b604051610e8f9190611464565b60405180910390a350505050565b6015805460ff60a81b1916600160a81b17905580610eba57611053565b601554600160a01b900460ff16610ed057611053565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610f1357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f6757600080fd5b505afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f91906110d2565b81600181518110610fc057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601454610fe6913091168461097a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061101f90859060009086903090429060040161146d565b600060405180830381600087803b15801561103957600080fd5b505af115801561104d573d6000803e3d6000fd5b50505050505b506015805460ff60a81b19169055565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610489573d6000803e3d6000fd5b60008183116110b05782610425565b50919050565b6000602082840312156110c7578081fd5b8135610425816116a1565b6000602082840312156110e3578081fd5b8151610425816116a1565b60008060408385031215611100578081fd5b823561110b816116a1565b9150602083013561111b816116a1565b809150509250929050565b60008060006060848603121561113a578081fd5b8335611145816116a1565b92506020840135611155816116a1565b929592945050506040919091013590565b60008060408385031215611178578182fd5b8235611183816116a1565b946020939093013593505050565b6000806000606084860312156111a5578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561125e57858101830151858201604001528201611242565b8181111561126f5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252818101527f4578636565647320746865205f77686974656c6973744d6178416d6f756e742e604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156114bc5784516001600160a01b031683529383019391830191600101611497565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b600082198211156114fe576114fe61168b565b500190565b60008261151e57634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116115355750611560565b8187048211156115475761154761168b565b8086161561155457918102915b9490941c938002611526565b94509492505050565b600061042560001960ff85168460008261158557506001610425565b8161159257506000610425565b81600181146115a857600281146115b2576115df565b6001915050610425565b60ff8411156115c3576115c361168b565b6001841b9150848211156115d9576115d961168b565b50610425565b5060208310610133831016604e8410600b8410161715611612575081810a8381111561160d5761160d61168b565b610425565b61161f8484846001611523565b8086048211156116315761163161168b565b02949350505050565b60008160001904831182151516156116545761165461168b565b500290565b60008282101561166b5761166b61168b565b500390565b60006000198214156116845761168461168b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146116b657600080fd5b5056fea2646970667358221220705dee3a7f21ad22dca4e65a637e2eb9a77a28f9df08d684ba9aef29e79512a364736f6c63430008000033

Deployed Bytecode Sourcemap

2663:10426:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6287:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7170:186;;;;;;;;;;-1:-1:-1;7170:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3758:48::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6564:95::-;;;;;;;;;;;;;:::i;7364:350::-;;;;;;;;;;-1:-1:-1;7364:350:0;;;;;:::i;:::-;;:::i;6473:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12683:366::-;;;;;;;;;;;;;:::i;:::-;;6667:119;;;;;;;;;;-1:-1:-1;6667:119:0;;;;;:::i;:::-;;:::i;1688:148::-;;;;;;;;;;;;;:::i;11717:201::-;;;;;;;;;;;;;:::i;3582:49::-;;;;;;;;;;;;;:::i;1474:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3638:51::-;;;;;;;;;;;;;:::i;3870:41::-;;;;;;;;;;-1:-1:-1;3870:41:0;;;;;:::i;:::-;;:::i;6794:192::-;;;;;;;;;;-1:-1:-1;6794:192:0;;;;;:::i;:::-;;:::i;3696:55::-;;;;;;;;;;;;;:::i;2967:40::-;;;;;;;;;;;;;:::i;12026:649::-;;;;;;;;;;;;;:::i;6994:168::-;;;;;;;;;;-1:-1:-1;6994:168:0;;;;;:::i;:::-;;:::i;6287:83::-;6357:5;;;;;;;;;;;;-1:-1:-1;;;6357:5:0;;;;6287:83;:::o;7170:186::-;7270:4;7287:39;7296:12;:10;:12::i;:::-;7310:7;7319:6;7287:8;:39::i;:::-;-1:-1:-1;7344:4:0;7170:186;;;;:::o;3758:48::-;;;;:::o;6564:95::-;6617:7;3560:15;3503:2;3560;:15;:::i;:::-;3547:28;;:10;:28;:::i;:::-;6637:14;;6564:95;:::o;7364:350::-;7496:4;7513:36;7523:6;7531:9;7542:6;7513:9;:36::i;:::-;7560:124;7583:6;7604:12;:10;:12::i;:::-;-1:-1:-1;;;;;7631:19:0;;;;;;:11;:19;;;;;7667:6;;7651:12;:10;:12::i;:::-;-1:-1:-1;;;;;7631:33:0;-1:-1:-1;;;;;7631:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;7560:8;:124::i;:::-;-1:-1:-1;7702:4:0;7364:350;;;;;;:::o;6473:83::-;3503:2;6473:83;:::o;12683:366::-;12749:10;;;;;-1:-1:-1;;;;;12749:10:0;12733:12;:10;:12::i;:::-;-1:-1:-1;;;;;12733:26:0;;12725:35;;;;;;12771:20;12794:24;12812:4;12794:9;:24::i;:::-;12771:47;-1:-1:-1;12833:16:0;;12829:79;;12866:30;12883:12;12866:16;:30::i;:::-;12939:21;12975:14;;12971:71;;13006:24;13019:10;13006:12;:24::i;:::-;12683:366;;:::o;6667:119::-;-1:-1:-1;;;;;6760:18:0;6733:7;6760:18;;;:9;:18;;;;;;;6667:119::o;1688:148::-;1611:12;:10;:12::i;:::-;1601:6;;-1:-1:-1;;;;;1601:6:0;;;:22;;;1593:67;;;;-1:-1:-1;;;1593:67:0;;;;;;;:::i;:::-;;;;;;;;;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:0;;::::1;::::0;1758:40:::1;::::0;1795:1;;1758:40:::1;1826:1;1809:19:::0;;-1:-1:-1;;;;;;1809:19:0::1;::::0;;1688:148::o;11717:201::-;1611:12;:10;:12::i;:::-;1601:6;;-1:-1:-1;;;;;1601:6:0;;;:22;;;1593:67;;;;-1:-1:-1;;;1593:67:0;;;;;;;:::i;:::-;3560:15:::1;3503:2;3560;:15;:::i;:::-;3547:28;::::0;:10:::1;:28;:::i;:::-;11771:12;:22:::0;3560:15:::1;3503:2;3560;:15;:::i;:::-;3547:28;::::0;:10:::1;:28;:::i;:::-;11804:14;:24:::0;11839:20:::1;:28:::0;;-1:-1:-1;;11839:28:0::1;::::0;;11883:27:::1;3560:15;3503:2;3560;:15;:::i;:::-;3547:28;::::0;:10:::1;:28;:::i;:::-;11883:27;;;;;;:::i;:::-;;;;;;;;11717:201::o:0;3582:49::-;;;;:::o;1474:79::-;1512:7;1539:6;-1:-1:-1;;;;;1539:6:0;1474:79;:::o;3638:51::-;;;;:::o;3870:41::-;;;;;;;;;;;;;;;:::o;6794:192::-;6897:4;6914:42;6924:12;:10;:12::i;:::-;6938:9;6949:6;6914:9;:42::i;3696:55::-;;;;:::o;2967:40::-;;;;;;:::o;12026:649::-;1611:12;:10;:12::i;:::-;1601:6;;-1:-1:-1;;;;;1601:6:0;;;:22;;;1593:67;;;;-1:-1:-1;;;1593:67:0;;;;;;;:::i;:::-;12088:11:::1;::::0;-1:-1:-1;;;12088:11:0;::::1;;;12087:12;12079:48;;;;-1:-1:-1::0;;;12079:48:0::1;;;;;;;:::i;:::-;12172:15;::::0;12140:58:::1;::::0;12157:4:::1;::::0;-1:-1:-1;;;;;12172:15:0::1;3560;3503:2;3560;:15;:::i;:::-;3547:28;::::0;:10:::1;:28;:::i;12140:58::-;12245:15;;;;;;;;;-1:-1:-1::0;;;;;12245:15:0::1;-1:-1:-1::0;;;;;12245:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12227:55:0::1;;12305:4;12325:15;;;;;;;;;-1:-1:-1::0;;;;;12325:15:0::1;-1:-1:-1::0;;;;;12325:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12227:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12211:13;:147:::0;;-1:-1:-1;;;;;;12211:147:0::1;-1:-1:-1::0;;;;;12211:147:0;;::::1;;::::0;;12371:15:::1;::::0;12502:10:::1;::::0;12371:15;::::1;::::0;:31:::1;::::0;12410:21:::1;::::0;12455:4:::1;::::0;12475:24:::1;12455:4:::0;12475:9:::1;:24::i;:::-;:37;;;;:::i;:::-;12527:1;12543::::0;12559:7:::1;:5;:7::i;:::-;12581:15;12371:236;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12620:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;12620:18:0;;::::1;-1:-1:-1::0;;;12620:18:0::1;12649;-1:-1:-1::0;;;12649:18:0::1;::::0;;-1:-1:-1;12026:649:0:o;6994:168::-;-1:-1:-1;;;;;7127:18:0;;;7100:7;7127:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6994:168::o;220:98::-;300:10;220:98;:::o;7722:177::-;-1:-1:-1;;;;;7807:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7859:32;;;;;7837:6;;7859:32;:::i;:::-;;;;;;;;7722:177;;;:::o;7907:3070::-;-1:-1:-1;;;;;7995:16:0;;7987:64;;;;-1:-1:-1;;;7987:64:0;;;;;;;:::i;:::-;8079:1;8070:6;:10;8062:64;;;;-1:-1:-1;;;8062:64:0;;;;;;;:::i;:::-;8137:17;8181:7;:5;:7::i;:::-;-1:-1:-1;;;;;8173:15:0;:4;-1:-1:-1;;;;;8173:15:0;;;:32;;;;;8198:7;:5;:7::i;:::-;-1:-1:-1;;;;;8192:13:0;:2;-1:-1:-1;;;;;8192:13:0;;;8173:32;:50;;;;-1:-1:-1;;;;;;8210:13:0;;;;;;:9;:13;;;;;;;;8209:14;8173:50;8169:2450;;;8276:20;;;;8272:485;;;8357:15;;-1:-1:-1;;;;;8343:30:0;;;8357:15;;8343:30;;;;:83;;-1:-1:-1;8412:13:0;;-1:-1:-1;;;;;8398:28:0;;;8412:13;;8398:28;;8343:83;8317:425;;;8532:9;8503:39;;;;:28;:39;;;;;;8545:12;-1:-1:-1;8469:176:0;;;;-1:-1:-1;;;8469:176:0;;;;;;;:::i;:::-;8697:9;8668:39;;;;:28;:39;;;;;8710:12;8668:54;;8317:425;8823:13;;-1:-1:-1;;;;;8815:21:0;;;8823:13;;8815:21;:72;;;;-1:-1:-1;8871:15:0;;-1:-1:-1;;;;;8857:30:0;;;8871:15;;8857:30;;8815:72;:116;;;;-1:-1:-1;;;;;;8909:22:0;;;;;;:18;:22;;;;;;;;8908:23;8815:116;8793:631;;;8984:12;;8974:6;:22;;8966:60;;;;-1:-1:-1;;;8966:60:0;;;;;;;:::i;:::-;9101:14;;9091:6;9075:13;9085:2;9075:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9045:140;;;;-1:-1:-1;;;9045:140:0;;;;;;;:::i;:::-;9206:11;9233:15;;9221:9;;:27;9220:103;;9309:14;;9220:103;;;9273:12;;9220:103;9206:117;-1:-1:-1;9373:3:0;9357:12;9206:117;9357:6;:12;:::i;:::-;9356:20;;;;:::i;:::-;9397:9;:11;;9344:32;;-1:-1:-1;9397:9:0;:11;;;:::i;:::-;;;;;;8793:631;;9471:13;;-1:-1:-1;;;;;9465:19:0;;;9471:13;;9465:19;:44;;;;-1:-1:-1;;;;;;9488:21:0;;9504:4;9488:21;;9465:44;9461:335;;;9548:12;;9538:6;:22;;9530:60;;;;-1:-1:-1;;;9530:60:0;;;;;;;:::i;:::-;9609:11;9636:16;;9624:9;;:28;9623:106;;9714:15;;9623:106;;;9677:13;;9623:106;9609:120;-1:-1:-1;9777:3:0;9761:12;9609:120;9761:6;:12;:::i;:::-;9760:20;;;;:::i;:::-;9748:32;;9461:335;;9848:28;9879:24;9897:4;9879:9;:24::i;:::-;9941:6;;9848:55;;-1:-1:-1;;;;9941:6:0;;;;9940:7;:47;;;;-1:-1:-1;9974:13:0;;-1:-1:-1;;;;;9968:19:0;;;9974:13;;9968:19;9940:47;:79;;;;-1:-1:-1;10008:11:0;;-1:-1:-1;;;10008:11:0;;;;9940:79;:140;;;;;10063:17;;10040:20;:40;9940:140;9918:515;;;10115:109;10154:51;10158:6;10166:38;10170:20;10192:11;;10166:3;:38::i;:::-;10154:3;:51::i;:::-;10115:16;:109::i;:::-;10272:21;10316:22;;10312:106;;10363:35;10376:21;10363:12;:35::i;:::-;9918:515;;8169:2450;;;;-1:-1:-1;;;;;10454:13:0;;;;;;:9;:13;;;;;;;;10450:169;;;10520:19;;10510:6;:29;;10484:123;;;;-1:-1:-1;;;10484:123:0;;;;;;;:::i;:::-;10635:13;;10631:169;;10710:4;10692:24;;;;:9;:24;;;;;;:36;;10719:9;;10692:36;:::i;:::-;10683:4;10665:24;;;;:9;:24;;;;;;;:63;;;;10748:40;;-1:-1:-1;;;;;10748:40:0;;;;;;;10778:9;;10748:40;:::i;:::-;;;;;;;;10631:169;-1:-1:-1;;;;;10830:15:0;;;;;;:9;:15;;;;;;:24;;10848:6;;10830:24;:::i;:::-;-1:-1:-1;;;;;10812:15:0;;;;;;;:9;:15;;;;;;:42;;;;10881:13;;;;;;;10906:9;;10881:22;;10897:6;;10881:22;:::i;:::-;:34;;;;:::i;:::-;-1:-1:-1;;;;;10865:13:0;;;;;;;:9;:13;;;;;:50;;;;10931:38;;;10950:18;10959:9;10950:6;:18;:::i;:::-;10931:38;;;;;;:::i;:::-;;;;;;;;7907:3070;;;;:::o;11100:609::-;4335:6;:13;;-1:-1:-1;;;;4335:13:0;-1:-1:-1;;;4335:13:0;;;11182:16;11178:55:::1;;11215:7;;11178:55;11248:11;::::0;-1:-1:-1;;;11248:11:0;::::1;;;11243:51;;11276:7;;11243:51;11328:16;::::0;;11342:1:::1;11328:16:::0;;;;;::::1;::::0;;11304:21:::1;::::0;11328:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11328:16:0::1;11304:40;;11373:4;11355;11360:1;11355:7;;;;;;-1:-1:-1::0;;;11355:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11355:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11399:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11399:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11355:7;;11399:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11389:4;11394:1;11389:7;;;;;;-1:-1:-1::0;;;11389:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11389:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11464:15:::1;::::0;11432:62:::1;::::0;11449:4:::1;::::0;11464:15:::1;11482:11:::0;11432:8:::1;:62::i;:::-;11505:15;::::0;:196:::1;::::0;-1:-1:-1;;;11505:196:0;;-1:-1:-1;;;;;11505:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11586:11;;11505:15:::1;::::0;11628:4;;11655::::1;::::0;11675:15:::1;::::0;11505:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4359:1;;-1:-1:-1::0;4371:6:0;:14;;-1:-1:-1;;;;4371:14:0;;;11100:609::o;11926:92::-;11983:10;;:27;;:10;;;;-1:-1:-1;;;;;11983:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;10985:107;11042:7;11074:1;11070;:5;11069:15;;11083:1;11069:15;;;-1:-1:-1;11079:1:0;11062:22;-1:-1:-1;10985:107:0:o;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:316::-;;;;1917:2;1905:9;1896:7;1892:23;1888:32;1885:2;;;1938:6;1930;1923:22;1885:2;1972:9;1966:16;1956:26;;2022:2;2011:9;2007:18;2001:25;1991:35;;2066:2;2055:9;2051:18;2045:25;2035:35;;1875:201;;;;;:::o;2081:203::-;-1:-1:-1;;;;;2245:32:1;;;;2227:51;;2215:2;2200:18;;2182:102::o;2289:304::-;-1:-1:-1;;;;;2519:15:1;;;2501:34;;2571:15;;2566:2;2551:18;;2544:43;2451:2;2436:18;;2418:175::o;2598:607::-;-1:-1:-1;;;;;2957:15:1;;;2939:34;;3004:2;2989:18;;2982:34;;;;3047:2;3032:18;;3025:34;;;;3090:2;3075:18;;3068:34;;;;3139:15;;;3133:3;3118:19;;3111:44;2919:3;3171:19;;3164:35;;;;2888:3;2873:19;;2855:350::o;3210:187::-;3375:14;;3368:22;3350:41;;3338:2;3323:18;;3305:92::o;3402:603::-;;3543:2;3572;3561:9;3554:21;3604:6;3598:13;3647:6;3642:2;3631:9;3627:18;3620:34;3672:4;3685:140;3699:6;3696:1;3693:13;3685:140;;;3794:14;;;3790:23;;3784:30;3760:17;;;3779:2;3756:26;3749:66;3714:10;;3685:140;;;3843:6;3840:1;3837:13;3834:2;;;3913:4;3908:2;3899:6;3888:9;3884:22;3880:31;3873:45;3834:2;-1:-1:-1;3989:2:1;3968:15;-1:-1:-1;;3964:29:1;3949:45;;;;3996:2;3945:54;;3523:482;-1:-1:-1;;;3523:482:1:o;4010:399::-;4212:2;4194:21;;;4251:2;4231:18;;;4224:30;4290:34;4285:2;4270:18;;4263:62;-1:-1:-1;;;4356:2:1;4341:18;;4334:33;4399:3;4384:19;;4184:225::o;4414:349::-;4616:2;4598:21;;;4655:2;4635:18;;;4628:30;4694:27;4689:2;4674:18;;4667:55;4754:2;4739:18;;4588:175::o;4768:356::-;4970:2;4952:21;;;4989:18;;;4982:30;5048:34;5043:2;5028:18;;5021:62;5115:2;5100:18;;4942:182::o;5129:356::-;5331:2;5313:21;;;5350:18;;;5343:30;5409:34;5404:2;5389:18;;5382:62;5476:2;5461:18;;5303:182::o;5490:405::-;5692:2;5674:21;;;5731:2;5711:18;;;5704:30;5770:34;5765:2;5750:18;;5743:62;-1:-1:-1;;;5836:2:1;5821:18;;5814:39;5885:3;5870:19;;5664:231::o;5900:350::-;6102:2;6084:21;;;6141:2;6121:18;;;6114:30;6180:28;6175:2;6160:18;;6153:56;6241:2;6226:18;;6074:176::o;6255:347::-;6457:2;6439:21;;;6496:2;6476:18;;;6469:30;6535:25;6530:2;6515:18;;6508:53;6593:2;6578:18;;6429:173::o;6607:400::-;6809:2;6791:21;;;6848:2;6828:18;;;6821:30;6887:34;6882:2;6867:18;;6860:62;-1:-1:-1;;;6953:2:1;6938:18;;6931:34;6997:3;6982:19;;6781:226::o;7012:177::-;7158:25;;;7146:2;7131:18;;7113:76::o;7194:983::-;;7504:3;7493:9;7489:19;7535:6;7524:9;7517:25;7561:2;7599:6;7594:2;7583:9;7579:18;7572:34;7642:3;7637:2;7626:9;7622:18;7615:31;7666:6;7701;7695:13;7732:6;7724;7717:22;7770:3;7759:9;7755:19;7748:26;;7809:2;7801:6;7797:15;7783:29;;7830:4;7843:195;7857:6;7854:1;7851:13;7843:195;;;7922:13;;-1:-1:-1;;;;;7918:39:1;7906:52;;8013:15;;;;7978:12;;;;7954:1;7872:9;7843:195;;;-1:-1:-1;;;;;;;8094:32:1;;;;8089:2;8074:18;;8067:60;-1:-1:-1;;;8158:3:1;8143:19;8136:35;8055:3;7465:712;-1:-1:-1;;;7465:712:1:o;8182:184::-;8354:4;8342:17;;;;8324:36;;8312:2;8297:18;;8279:87::o;8371:128::-;;8442:1;8438:6;8435:1;8432:13;8429:2;;;8448:18;;:::i;:::-;-1:-1:-1;8484:9:1;;8419:80::o;8504:217::-;;8570:1;8560:2;;-1:-1:-1;;;8595:31:1;;8649:4;8646:1;8639:15;8677:4;8602:1;8667:15;8560:2;-1:-1:-1;8706:9:1;;8550:171::o;8726:453::-;8822:6;8845:5;8859:314;8908:1;8945:2;8935:8;8932:16;8922:2;;8952:5;;;8922:2;8993:4;8988:3;8984:14;8978:4;8975:24;8972:2;;;9002:18;;:::i;:::-;9052:2;9042:8;9038:17;9035:2;;;9067:16;;;;9035:2;9146:17;;;;;9106:15;;8859:314;;;8803:376;;;;;;;:::o;9184:148::-;;9271:55;-1:-1:-1;;9312:4:1;9298:19;;9292:4;9337:922;9421:8;9411:2;;-1:-1:-1;9462:1:1;9476:5;;9411:2;9510:4;9500:2;;-1:-1:-1;9547:1:1;9561:5;;9500:2;9592:4;9610:1;9605:59;;;;9678:1;9673:183;;;;9585:271;;9605:59;9635:1;9626:10;;9649:5;;;9673:183;9710:3;9700:8;9697:17;9694:2;;;9717:18;;:::i;:::-;9773:1;9763:8;9759:16;9750:25;;9801:3;9794:5;9791:14;9788:2;;;9808:18;;:::i;:::-;9841:5;;;9585:271;;9940:2;9930:8;9927:16;9921:3;9915:4;9912:13;9908:36;9902:2;9892:8;9889:16;9884:2;9878:4;9875:12;9871:35;9868:77;9865:2;;;-1:-1:-1;9977:19:1;;;10012:14;;;10009:2;;;10029:18;;:::i;:::-;10062:5;;9865:2;10109:42;10147:3;10137:8;10131:4;10128:1;10109:42;:::i;:::-;10184:6;10179:3;10175:16;10166:7;10163:29;10160:2;;;10195:18;;:::i;:::-;10233:20;;9401:858;-1:-1:-1;;;;9401:858:1:o;10264:168::-;;10370:1;10366;10362:6;10358:14;10355:1;10352:21;10347:1;10340:9;10333:17;10329:45;10326:2;;;10377:18;;:::i;:::-;-1:-1:-1;10417:9:1;;10316:116::o;10437:125::-;;10505:1;10502;10499:8;10496:2;;;10510:18;;:::i;:::-;-1:-1:-1;10547:9:1;;10486:76::o;10567:135::-;;-1:-1:-1;;10627:17:1;;10624:2;;;10647:18;;:::i;:::-;-1:-1:-1;10694:1:1;10683:13;;10614:88::o;10707:127::-;10768:10;10763:3;10759:20;10756:1;10749:31;10799:4;10796:1;10789:15;10823:4;10820:1;10813:15;10839:133;-1:-1:-1;;;;;10916:31:1;;10906:42;;10896:2;;10962:1;10959;10952:12;10896:2;10886:86;:::o

Swarm Source

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