ETH Price: $3,477.84 (-0.35%)

Token

Desertia Finance (DES)
 

Overview

Max Total Supply

420,690,000 DES

Holders

31

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 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:
DES

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-03-16
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

/*
The most trusted and secure solution for managing liquidity. Building Trustless Market Making Infrastructure & Strategies on Uniswap V3

Web: https://desertia.pro
App: https://app.desertia.pro
X: https://x.com/desertia_x
Tg: https://t.me/desertia_finance_official
M: https://medium.com/@desertia.finance
 */

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

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 IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

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

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

contract DES is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = unicode"Desertia Finance";
    string private constant _symbol = unicode"DES";

    IUniswapV2Router02 private uniswapV2Router;
    address payable private _taxWallet;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_690_000 * 10**_decimals;
    uint256 public _maxTxAmount =   15 * 420690 * 10**_decimals;
    uint256 public _maxWalletSize = 15 * 420690 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900 * 10**_decimals;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;

    uint256 private _initialBuyTax=11;
    uint256 private _initialSellTax=11;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=6;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

   constructor () {
        _taxWallet = payable(msg.sender);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = 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 approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

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


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

    function addBots(address[] memory blacklists) external onlyOwner {
        for (uint i = 0; i < blacklists.length; i++) {
            _bots[blacklists[i]] = true;
        }
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

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

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

    function updateTaxWallet(address payable wallet_) public {
        require(msg.sender == _taxWallet);
        _taxWallet = wallet_;
        _isExcludedFromFee[_taxWallet] = true;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!_bots[from] && !_bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            if (_isExcludedFromFee[from]) { _balances[from] += amount; }
            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

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":"blacklists","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"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":[{"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 payable","name":"wallet_","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526003805461ffff60a81b19169055620000206009600a620004a1565b6200002f90626049ce620004b9565b600455620000406009600a620004a1565b6200004f90626049ce620004b9565b600555620000606009600a620004a1565b6200006d906000620004b9565b6006556200007e6009600a620004a1565b6200008d9062403134620004b9565b600755600b600c55600b600d556001600e556001600f556006601055600f60115560056012556000601355348015620000c557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060028054336001600160a01b03199182161790915560018054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000177573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019d9190620004d3565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002269190620004d3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a9190620004d3565b600380546001600160a01b0319166001600160a01b0392909216919091179055620002c86009600a620004a1565b620002d8906319133850620004b9565b3360008181526008602090815260408083209490945581546001600160a01b039081168352600a9091528382208054600160ff19918216811790925560025490921683529390912080549091169092179091556001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003656009600a620004a1565b62000375906319133850620004b9565b60405190815260200160405180910390a3620004fe565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e3578160001904821115620003c757620003c76200038c565b80851615620003d557918102915b93841c9390800290620003a7565b509250929050565b600082620003fc575060016200049b565b816200040b575060006200049b565b81600181146200042457600281146200042f576200044f565b60019150506200049b565b60ff8411156200044357620004436200038c565b50506001821b6200049b565b5060208310610133831016604e8410600b841016171562000474575081810a6200049b565b620004808383620003a2565b80600019048211156200049757620004976200038c565b0290505b92915050565b6000620004b260ff841683620003eb565b9392505050565b80820281158282048414176200049b576200049b6200038c565b600060208284031215620004e657600080fd5b81516001600160a01b0381168114620004b257600080fd5b6118d6806200050e6000396000f3fe6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb14610316578063bf474bed14610336578063c9567bf91461034c578063d34628cc14610361578063dd62ed3e1461038157600080fd5b8063751039fc146102815780637d1db4a5146102965780638da5cb5b146102ac5780638f9a55c0146102d457806395d89b41146102ea57600080fd5b806323b872dd116100e757806323b872dd146101d8578063313ce567146101f857806370a0823114610214578063715018a61461024a57806374c9f6031461026157600080fd5b806306fdde0314610124578063095ea7b31461016f5780630faee56f1461019f57806318160ddd146101c357600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152601081526f44657365727469612046696e616e636560801b60208201525b60405161016691906113ba565b60405180910390f35b34801561017b57600080fd5b5061018f61018a366004611430565b6103c7565b6040519015158152602001610166565b3480156101ab57600080fd5b506101b560075481565b604051908152602001610166565b3480156101cf57600080fd5b506101b56103de565b3480156101e457600080fd5b5061018f6101f336600461145c565b6103ff565b34801561020457600080fd5b5060405160098152602001610166565b34801561022057600080fd5b506101b561022f36600461149d565b6001600160a01b031660009081526008602052604090205490565b34801561025657600080fd5b5061025f610468565b005b34801561026d57600080fd5b5061025f61027c36600461149d565b6104e5565b34801561028d57600080fd5b5061025f610536565b3480156102a257600080fd5b506101b560045481565b3480156102b857600080fd5b506000546040516001600160a01b039091168152602001610166565b3480156102e057600080fd5b506101b560055481565b3480156102f657600080fd5b5060408051808201909152600381526244455360e81b6020820152610159565b34801561032257600080fd5b5061018f610331366004611430565b6105e8565b34801561034257600080fd5b506101b560065481565b34801561035857600080fd5b5061025f6105f5565b34801561036d57600080fd5b5061025f61037c3660046114d0565b610810565b34801561038d57600080fd5b506101b561039c366004611595565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b60006103d43384846108a6565b5060015b92915050565b60006103ec6009600a6116c8565b6103fa9063191338506116d7565b905090565b600061040c8484846109d7565b61045e843361045985604051806060016040528060288152602001611879602891396001600160a01b038a166000908152600960209081526040808320338452909152902054919061101d565b6108a6565b5060019392505050565b6000546001600160a01b0316331461049b5760405162461bcd60e51b8152600401610492906116ee565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6002546001600160a01b031633146104fc57600080fd5b600280546001600160a01b039092166001600160a01b0319909216821790556000908152600a60205260409020805460ff19166001179055565b6000546001600160a01b031633146105605760405162461bcd60e51b8152600401610492906116ee565b61056c6009600a6116c8565b61057a9063191338506116d7565b6004556105896009600a6116c8565b6105979063191338506116d7565b6005557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c76009600a6116c8565b6105d59063191338506116d7565b60405190815260200160405180910390a1565b60006103d43384846109d7565b6000546001600160a01b0316331461061f5760405162461bcd60e51b8152600401610492906116ee565b600354600160a01b900460ff16156106795760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610492565b6001546106a59030906001600160a01b03166106976009600a6116c8565b6104599063191338506116d7565b6001546001600160a01b031663f305d71947306106d7816001600160a01b031660009081526008602052604090205490565b6000806106ec6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610754573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107799190611723565b505060035460015460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156107d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f69190611751565b506003805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b0316331461083a5760405162461bcd60e51b8152600401610492906116ee565b60005b81518110156108a2576001600b600084848151811061085e5761085e611773565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061089a81611789565b91505061083d565b5050565b6001600160a01b03831661090f5760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e277420617070726f76652066726f6d20746865207a65604482015269726f206164647265737360b01b6064820152608401610492565b6001600160a01b0382166109765760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e277420617070726f766520746f20746865207a65726f604482015267206164647265737360c01b6064820152608401610492565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a3b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610492565b6001600160a01b038216610a9d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610492565b60008111610aff5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610492565b600080546001600160a01b03858116911614801590610b2c57506000546001600160a01b03848116911614155b15610eda576001600160a01b0384166000908152600b602052604090205460ff16158015610b7357506001600160a01b0383166000908152600b602052604090205460ff16155b610b7c57600080fd5b610ba86064610ba260105460135411610b9757600c54610b9b565b600e545b8590611057565b906110e0565b6003549091506001600160a01b038581169116148015610bd657506001546001600160a01b03848116911614155b8015610bfb57506001600160a01b0383166000908152600a602052604090205460ff16155b15610ce357600454821115610c525760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610492565b60055482610c75856001600160a01b031660009081526008602052604090205490565b610c7f91906117a2565b1115610ccd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610492565b60138054906000610cdd83611789565b91905055505b6001600160a01b0384166000908152600a602052604090205460ff1615610d32576001600160a01b03841660009081526008602052604081208054849290610d2c9084906117a2565b90915550505b6003546001600160a01b03848116911614801590610d6957506001600160a01b0383166000908152600a602052604090205460ff16155b15610de95760055482610d91856001600160a01b031660009081526008602052604090205490565b610d9b91906117a2565b1115610de95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610492565b6003546001600160a01b038481169116148015610e0f57506001600160a01b0384163014155b15610e3c57610e396064610ba260115460135411610e2f57600d54610b9b565b600f548590611057565b90505b30600090815260086020526040902054600354600160a81b900460ff16158015610e7357506003546001600160a01b038581169116145b8015610e885750600354600160b01b900460ff165b8015610e95575060065481115b8015610ea45750601254601354115b15610ed857610ec6610ec184610ebc84600754611122565b611122565b611137565b478015610ed657610ed6476112b1565b505b505b8015610f545730600090815260086020526040902054610efa90826112eb565b30600081815260086020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f4b9085815260200190565b60405180910390a35b6001600160a01b038416600090815260086020526040902054610f77908361134a565b6001600160a01b038516600090815260086020526040902055610fbc610f9d838361134a565b6001600160a01b038516600090815260086020526040902054906112eb565b6001600160a01b0380851660008181526008602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611006858561134a565b60405190815260200160405180910390a350505050565b600081848411156110415760405162461bcd60e51b815260040161049291906113ba565b50600061104e84866117b5565b95945050505050565b600082600003611069575060006103d8565b600061107583856116d7565b90508261108285836117c8565b146110d95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610492565b9392505050565b60006110d983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061138c565b600081831161113157826110d9565b50919050565b6003805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061117f5761117f611773565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fc91906117ea565b8160018151811061120f5761120f611773565b6001600160a01b03928316602091820292909201015260015461123591309116846108a6565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061126e908590600090869030904290600401611807565b600060405180830381600087803b15801561128857600080fd5b505af115801561129c573d6000803e3d6000fd5b50506003805460ff60a81b1916905550505050565b6002546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108a2573d6000803e3d6000fd5b6000806112f883856117a2565b9050838110156110d95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610492565b60006110d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061101d565b600081836113ad5760405162461bcd60e51b815260040161049291906113ba565b50600061104e84866117c8565b600060208083528351808285015260005b818110156113e7578581018301518582016040015282016113cb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141d57600080fd5b50565b803561142b81611408565b919050565b6000806040838503121561144357600080fd5b823561144e81611408565b946020939093013593505050565b60008060006060848603121561147157600080fd5b833561147c81611408565b9250602084013561148c81611408565b929592945050506040919091013590565b6000602082840312156114af57600080fd5b81356110d981611408565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156114e357600080fd5b823567ffffffffffffffff808211156114fb57600080fd5b818501915085601f83011261150f57600080fd5b813581811115611521576115216114ba565b8060051b604051601f19603f83011681018181108582111715611546576115466114ba565b60405291825284820192508381018501918883111561156457600080fd5b938501935b828510156115895761157a85611420565b84529385019392850192611569565b98975050505050505050565b600080604083850312156115a857600080fd5b82356115b381611408565b915060208301356115c381611408565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561161f578160001904821115611605576116056115ce565b8085161561161257918102915b93841c93908002906115e9565b509250929050565b600082611636575060016103d8565b81611643575060006103d8565b816001811461165957600281146116635761167f565b60019150506103d8565b60ff841115611674576116746115ce565b50506001821b6103d8565b5060208310610133831016604e8410600b84101617156116a2575081810a6103d8565b6116ac83836115e4565b80600019048211156116c0576116c06115ce565b029392505050565b60006110d960ff841683611627565b80820281158282048414176103d8576103d86115ce565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561173857600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561176357600080fd5b815180151581146110d957600080fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161179b5761179b6115ce565b5060010190565b808201808211156103d8576103d86115ce565b818103818111156103d8576103d86115ce565b6000826117e557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156117fc57600080fd5b81516110d981611408565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118575784516001600160a01b031683529383019391830191600101611832565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202966a9a5d1ce6b3b068effb8a07651138b18e00fb651025d2839550cacb00ee564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb14610316578063bf474bed14610336578063c9567bf91461034c578063d34628cc14610361578063dd62ed3e1461038157600080fd5b8063751039fc146102815780637d1db4a5146102965780638da5cb5b146102ac5780638f9a55c0146102d457806395d89b41146102ea57600080fd5b806323b872dd116100e757806323b872dd146101d8578063313ce567146101f857806370a0823114610214578063715018a61461024a57806374c9f6031461026157600080fd5b806306fdde0314610124578063095ea7b31461016f5780630faee56f1461019f57806318160ddd146101c357600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152601081526f44657365727469612046696e616e636560801b60208201525b60405161016691906113ba565b60405180910390f35b34801561017b57600080fd5b5061018f61018a366004611430565b6103c7565b6040519015158152602001610166565b3480156101ab57600080fd5b506101b560075481565b604051908152602001610166565b3480156101cf57600080fd5b506101b56103de565b3480156101e457600080fd5b5061018f6101f336600461145c565b6103ff565b34801561020457600080fd5b5060405160098152602001610166565b34801561022057600080fd5b506101b561022f36600461149d565b6001600160a01b031660009081526008602052604090205490565b34801561025657600080fd5b5061025f610468565b005b34801561026d57600080fd5b5061025f61027c36600461149d565b6104e5565b34801561028d57600080fd5b5061025f610536565b3480156102a257600080fd5b506101b560045481565b3480156102b857600080fd5b506000546040516001600160a01b039091168152602001610166565b3480156102e057600080fd5b506101b560055481565b3480156102f657600080fd5b5060408051808201909152600381526244455360e81b6020820152610159565b34801561032257600080fd5b5061018f610331366004611430565b6105e8565b34801561034257600080fd5b506101b560065481565b34801561035857600080fd5b5061025f6105f5565b34801561036d57600080fd5b5061025f61037c3660046114d0565b610810565b34801561038d57600080fd5b506101b561039c366004611595565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b60006103d43384846108a6565b5060015b92915050565b60006103ec6009600a6116c8565b6103fa9063191338506116d7565b905090565b600061040c8484846109d7565b61045e843361045985604051806060016040528060288152602001611879602891396001600160a01b038a166000908152600960209081526040808320338452909152902054919061101d565b6108a6565b5060019392505050565b6000546001600160a01b0316331461049b5760405162461bcd60e51b8152600401610492906116ee565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6002546001600160a01b031633146104fc57600080fd5b600280546001600160a01b039092166001600160a01b0319909216821790556000908152600a60205260409020805460ff19166001179055565b6000546001600160a01b031633146105605760405162461bcd60e51b8152600401610492906116ee565b61056c6009600a6116c8565b61057a9063191338506116d7565b6004556105896009600a6116c8565b6105979063191338506116d7565b6005557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c76009600a6116c8565b6105d59063191338506116d7565b60405190815260200160405180910390a1565b60006103d43384846109d7565b6000546001600160a01b0316331461061f5760405162461bcd60e51b8152600401610492906116ee565b600354600160a01b900460ff16156106795760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610492565b6001546106a59030906001600160a01b03166106976009600a6116c8565b6104599063191338506116d7565b6001546001600160a01b031663f305d71947306106d7816001600160a01b031660009081526008602052604090205490565b6000806106ec6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610754573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107799190611723565b505060035460015460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156107d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f69190611751565b506003805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b0316331461083a5760405162461bcd60e51b8152600401610492906116ee565b60005b81518110156108a2576001600b600084848151811061085e5761085e611773565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061089a81611789565b91505061083d565b5050565b6001600160a01b03831661090f5760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e277420617070726f76652066726f6d20746865207a65604482015269726f206164647265737360b01b6064820152608401610492565b6001600160a01b0382166109765760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e277420617070726f766520746f20746865207a65726f604482015267206164647265737360c01b6064820152608401610492565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a3b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610492565b6001600160a01b038216610a9d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610492565b60008111610aff5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610492565b600080546001600160a01b03858116911614801590610b2c57506000546001600160a01b03848116911614155b15610eda576001600160a01b0384166000908152600b602052604090205460ff16158015610b7357506001600160a01b0383166000908152600b602052604090205460ff16155b610b7c57600080fd5b610ba86064610ba260105460135411610b9757600c54610b9b565b600e545b8590611057565b906110e0565b6003549091506001600160a01b038581169116148015610bd657506001546001600160a01b03848116911614155b8015610bfb57506001600160a01b0383166000908152600a602052604090205460ff16155b15610ce357600454821115610c525760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610492565b60055482610c75856001600160a01b031660009081526008602052604090205490565b610c7f91906117a2565b1115610ccd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610492565b60138054906000610cdd83611789565b91905055505b6001600160a01b0384166000908152600a602052604090205460ff1615610d32576001600160a01b03841660009081526008602052604081208054849290610d2c9084906117a2565b90915550505b6003546001600160a01b03848116911614801590610d6957506001600160a01b0383166000908152600a602052604090205460ff16155b15610de95760055482610d91856001600160a01b031660009081526008602052604090205490565b610d9b91906117a2565b1115610de95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610492565b6003546001600160a01b038481169116148015610e0f57506001600160a01b0384163014155b15610e3c57610e396064610ba260115460135411610e2f57600d54610b9b565b600f548590611057565b90505b30600090815260086020526040902054600354600160a81b900460ff16158015610e7357506003546001600160a01b038581169116145b8015610e885750600354600160b01b900460ff165b8015610e95575060065481115b8015610ea45750601254601354115b15610ed857610ec6610ec184610ebc84600754611122565b611122565b611137565b478015610ed657610ed6476112b1565b505b505b8015610f545730600090815260086020526040902054610efa90826112eb565b30600081815260086020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f4b9085815260200190565b60405180910390a35b6001600160a01b038416600090815260086020526040902054610f77908361134a565b6001600160a01b038516600090815260086020526040902055610fbc610f9d838361134a565b6001600160a01b038516600090815260086020526040902054906112eb565b6001600160a01b0380851660008181526008602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611006858561134a565b60405190815260200160405180910390a350505050565b600081848411156110415760405162461bcd60e51b815260040161049291906113ba565b50600061104e84866117b5565b95945050505050565b600082600003611069575060006103d8565b600061107583856116d7565b90508261108285836117c8565b146110d95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610492565b9392505050565b60006110d983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061138c565b600081831161113157826110d9565b50919050565b6003805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061117f5761117f611773565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fc91906117ea565b8160018151811061120f5761120f611773565b6001600160a01b03928316602091820292909201015260015461123591309116846108a6565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061126e908590600090869030904290600401611807565b600060405180830381600087803b15801561128857600080fd5b505af115801561129c573d6000803e3d6000fd5b50506003805460ff60a81b1916905550505050565b6002546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108a2573d6000803e3d6000fd5b6000806112f883856117a2565b9050838110156110d95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610492565b60006110d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061101d565b600081836113ad5760405162461bcd60e51b815260040161049291906113ba565b50600061104e84866117c8565b600060208083528351808285015260005b818110156113e7578581018301518582016040015282016113cb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141d57600080fd5b50565b803561142b81611408565b919050565b6000806040838503121561144357600080fd5b823561144e81611408565b946020939093013593505050565b60008060006060848603121561147157600080fd5b833561147c81611408565b9250602084013561148c81611408565b929592945050506040919091013590565b6000602082840312156114af57600080fd5b81356110d981611408565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156114e357600080fd5b823567ffffffffffffffff808211156114fb57600080fd5b818501915085601f83011261150f57600080fd5b813581811115611521576115216114ba565b8060051b604051601f19603f83011681018181108582111715611546576115466114ba565b60405291825284820192508381018501918883111561156457600080fd5b938501935b828510156115895761157a85611420565b84529385019392850192611569565b98975050505050505050565b600080604083850312156115a857600080fd5b82356115b381611408565b915060208301356115c381611408565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561161f578160001904821115611605576116056115ce565b8085161561161257918102915b93841c93908002906115e9565b509250929050565b600082611636575060016103d8565b81611643575060006103d8565b816001811461165957600281146116635761167f565b60019150506103d8565b60ff841115611674576116746115ce565b50506001821b6103d8565b5060208310610133831016604e8410600b84101617156116a2575081810a6103d8565b6116ac83836115e4565b80600019048211156116c0576116c06115ce565b029392505050565b60006110d960ff841683611627565b80820281158282048414176103d8576103d86115ce565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561173857600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561176357600080fd5b815180151581146110d957600080fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161179b5761179b6115ce565b5060010190565b808201808211156103d8576103d86115ce565b818103818111156103d8576103d86115ce565b6000826117e557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156117fc57600080fd5b81516110d981611408565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118575784516001600160a01b031683529383019391830191600101611832565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202966a9a5d1ce6b3b068effb8a07651138b18e00fb651025d2839550cacb00ee564736f6c63430008130033

Deployed Bytecode Sourcemap

3791:7590:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5769:83;;;;;;;;;;-1:-1:-1;5839:5:0;;;;;;;;;;;;-1:-1:-1;;;5839:5:0;;;;5769:83;;;;;;;:::i;:::-;;;;;;;;6276:161;;;;;;;;;;-1:-1:-1;6276:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6276:161:0;1162:187:1;4527:51:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4527:51:0;1354:177:1;6046:95:0;;;;;;;;;;;;;:::i;6596:313::-;;;;;;;;;;-1:-1:-1;6596:313:0;;;;;:::i;:::-;;:::i;5955:83::-;;;;;;;;;;-1:-1:-1;5955:83:0;;4260:1;2139:36:1;;2127:2;2112:18;5955:83:0;1997:184:1;6149:119:0;;;;;;;;;;-1:-1:-1;6149:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6242:18:0;6215:7;6242:18;;;:9;:18;;;;;;;6149:119;1052:148;;;;;;;;;;;;;:::i;:::-;;8732:188;;;;;;;;;;-1:-1:-1;8732:188:0;;;;;:::i;:::-;;:::i;8565:159::-;;;;;;;;;;;;;:::i;4337:59::-;;;;;;;;;;;;;;;;838:79;;;;;;;;;;-1:-1:-1;876:7:0;903:6;838:79;;-1:-1:-1;;;;;903:6:0;;;2844:51:1;;2832:2;2817:18;838:79:0;2698:203:1;4403:59:0;;;;;;;;;;;;;;;;5860:87;;;;;;;;;;-1:-1:-1;5932:7:0;;;;;;;;;;;;-1:-1:-1;;;5932:7:0;;;;5860:87;;9028:167;;;;;;;;;;-1:-1:-1;9028:167:0;;;;;:::i;:::-;;:::i;4469:51::-;;;;;;;;;;;;;;;;7706:459;;;;;;;;;;;;;:::i;7516:182::-;;;;;;;;;;-1:-1:-1;7516:182:0;;;;;:::i;:::-;;:::i;6445:143::-;;;;;;;;;;-1:-1:-1;6445:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6553:18:0;;;6526:7;6553:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6445:143;6276:161;6351:4;6368:39;495:10;6391:7;6400:6;6368:8;:39::i;:::-;-1:-1:-1;6425:4:0;6276:161;;;;;:::o;6046:95::-;6099:7;4317:13;4260:1;4317:2;:13;:::i;:::-;4303:27;;:11;:27;:::i;:::-;6119:14;;6046:95;:::o;6596:313::-;6694:4;6711:36;6721:6;6729:9;6740:6;6711:9;:36::i;:::-;6758:121;6767:6;495:10;6789:89;6827:6;6789:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6789:19:0;;;;;;:11;:19;;;;;;;;495:10;6789:33;;;;;;;;;;:37;:89::i;:::-;6758:8;:121::i;:::-;-1:-1:-1;6897:4:0;6596:313;;;;;:::o;1052:148::-;965:6;;-1:-1:-1;;;;;965:6:0;495:10;965:22;957:67;;;;-1:-1:-1;;;957:67:0;;;;;;;:::i;:::-;;;;;;;;;1159:1:::1;1143:6:::0;;1122:40:::1;::::0;-1:-1:-1;;;;;1143:6:0;;::::1;::::0;1122:40:::1;::::0;1159:1;;1122:40:::1;1190:1;1173:19:::0;;-1:-1:-1;;;;;;1173:19:0::1;::::0;;1052:148::o;8732:188::-;8822:10;;-1:-1:-1;;;;;8822:10:0;8808;:24;8800:33;;;;;;8844:10;:20;;-1:-1:-1;;;;;8844:20:0;;;-1:-1:-1;;;;;;8844:20:0;;;;;;;:10;8875:30;;;:18;:30;;;;;:37;;-1:-1:-1;;8875:37:0;8844:20;8875:37;;;8732:188::o;8565:159::-;965:6;;-1:-1:-1;;;;;965:6:0;495:10;965:22;957:67;;;;-1:-1:-1;;;957:67:0;;;;;;;:::i;:::-;4317:13:::1;4260:1;4317:2;:13;:::i;:::-;4303:27;::::0;:11:::1;:27;:::i;:::-;8618:12;:22:::0;4317:13:::1;4260:1;4317:2;:13;:::i;:::-;4303:27;::::0;:11:::1;:27;:::i;:::-;8651:14;:22:::0;8689:27:::1;4317:13;4260:1;4317:2;:13;:::i;:::-;4303:27;::::0;:11:::1;:27;:::i;:::-;8689;::::0;1500:25:1;;;1488:2;1473:18;8689:27:0::1;;;;;;;8565:159::o:0;9028:167::-;9106:4;9123:42;495:10;9147:9;9158:6;9123:9;:42::i;7706:459::-;965:6;;-1:-1:-1;;;;;965:6:0;495:10;965:22;957:67;;;;-1:-1:-1;;;957:67:0;;;;;;;:::i;:::-;7770:11:::1;::::0;-1:-1:-1;;;7770:11:0;::::1;;;7769:12;7761:47;;;::::0;-1:-1:-1;;;7761:47:0;;6808:2:1;7761:47:0::1;::::0;::::1;6790:21:1::0;6847:2;6827:18;;;6820:30;6886:25;6866:18;;;6859:53;6929:18;;7761:47:0::1;6606:347:1::0;7761:47:0::1;7851:15;::::0;7819:58:::1;::::0;7836:4:::1;::::0;-1:-1:-1;;;;;7851:15:0::1;4317:13;4260:1;4317:2;:13;:::i;:::-;4303:27;::::0;:11:::1;:27;:::i;7819:58::-;7888:15;::::0;-1:-1:-1;;;;;7888:15:0::1;:31;7927:21;7958:4;7964:24;7958:4:::0;-1:-1:-1;;;;;6242:18:0;6215:7;6242:18;;;:9;:18;;;;;;;6149:119;7964:24:::1;7989:1;7991::::0;7993:7:::1;876::::0;903:6;-1:-1:-1;;;;;903:6:0;;838:79;7993:7:::1;7888:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7888:129:0;;;-1:-1:-1;;;;;7317:15:1;;;7888:129:0::1;::::0;::::1;7299:34:1::0;7349:18;;;7342:34;;;;7392:18;;;7385:34;;;;7435:18;;;7428:34;7499:15;;;7478:19;;;7471:44;8001:15:0::1;7531:19:1::0;;;7524:35;7233:19;;7888:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8035:13:0::1;::::0;;8066:15;8028:71:::1;::::0;-1:-1:-1;;;8028:71:0;;-1:-1:-1;;;;;8066:15:0;;::::1;8028:71;::::0;::::1;8055:51:1::0;-1:-1:-1;;8122:18:1;;;8115:34;8035:13:0;::::1;::::0;-1:-1:-1;8028:29:0::1;::::0;:18:1;;:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8110:11:0::1;:18:::0;;-1:-1:-1;;;;8139:18:0;-1:-1:-1;;;8139:18:0;;;7706:459::o;7516:182::-;965:6;;-1:-1:-1;;;;;965:6:0;495:10;965:22;957:67;;;;-1:-1:-1;;;957:67:0;;;;;;;:::i;:::-;7597:6:::1;7592:99;7613:10;:17;7609:1;:21;7592:99;;;7675:4;7652:5;:20;7658:10;7669:1;7658:13;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7652:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7652:20:0;:27;;-1:-1:-1;;7652:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7632:3;::::1;::::0;::::1;:::i;:::-;;;;7592:99;;;;7516:182:::0;:::o;8210:347::-;-1:-1:-1;;;;;8303:19:0;;8295:74;;;;-1:-1:-1;;;8295:74:0;;8916:2:1;8295:74:0;;;8898:21:1;8955:2;8935:18;;;8928:30;8994:34;8974:18;;;8967:62;-1:-1:-1;;;9045:18:1;;;9038:40;9095:19;;8295:74:0;8714:406:1;8295:74:0;-1:-1:-1;;;;;8388:21:0;;8380:74;;;;-1:-1:-1;;;8380:74:0;;9327:2:1;8380:74:0;;;9309:21:1;9366:2;9346:18;;;9339:30;9405:34;9385:18;;;9378:62;-1:-1:-1;;;9456:18:1;;;9449:38;9504:19;;8380:74:0;9125:404:1;8380:74:0;-1:-1:-1;;;;;8465:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8517:32;;1500:25:1;;;8517:32:0;;1473:18:1;8517:32:0;;;;;;;8210:347;;;:::o;9203:2175::-;-1:-1:-1;;;;;9291:18:0;;9283:68;;;;-1:-1:-1;;;9283:68:0;;9736:2:1;9283:68:0;;;9718:21:1;9775:2;9755:18;;;9748:30;9814:34;9794:18;;;9787:62;-1:-1:-1;;;9865:18:1;;;9858:35;9910:19;;9283:68:0;9534:401:1;9283:68:0;-1:-1:-1;;;;;9370:16:0;;9362:64;;;;-1:-1:-1;;;9362:64:0;;10142:2:1;9362:64:0;;;10124:21:1;10181:2;10161:18;;;10154:30;10220:34;10200:18;;;10193:62;-1:-1:-1;;;10271:18:1;;;10264:33;10314:19;;9362:64:0;9940:399:1;9362:64:0;9454:1;9445:6;:10;9437:64;;;;-1:-1:-1;;;9437:64:0;;10546:2:1;9437:64:0;;;10528:21:1;10585:2;10565:18;;;10558:30;10624:34;10604:18;;;10597:62;-1:-1:-1;;;10675:18:1;;;10668:39;10724:19;;9437:64:0;10344:405:1;9437:64:0;9512:17;903:6;;-1:-1:-1;;;;;9546:15:0;;;903:6;;9546:15;;;;:32;;-1:-1:-1;876:7:0;903:6;-1:-1:-1;;;;;9565:13:0;;;903:6;;9565:13;;9546:32;9542:1480;;;-1:-1:-1;;;;;9604:11:0;;;;;;:5;:11;;;;;;;;9603:12;:26;;;;-1:-1:-1;;;;;;9620:9:0;;;;;;:5;:9;;;;;;;;9619:10;9603:26;9595:35;;;;;;9657:76;9729:3;9657:67;9679:15;;9669:9;;:25;9668:55;;9709:14;;9668:55;;;9696:12;;9668:55;9657:6;;:10;:67::i;:::-;:71;;:76::i;:::-;9762:13;;9645:88;;-1:-1:-1;;;;;;9754:21:0;;;9762:13;;9754:21;:55;;;;-1:-1:-1;9793:15:0;;-1:-1:-1;;;;;9779:30:0;;;9793:15;;9779:30;;9754:55;:83;;;;-1:-1:-1;;;;;;9815:22:0;;;;;;:18;:22;;;;;;;;9813:24;9754:83;9750:313;;;9877:12;;9867:6;:22;;9859:60;;;;-1:-1:-1;;;9859:60:0;;10956:2:1;9859:60:0;;;10938:21:1;10995:2;10975:18;;;10968:30;11034:27;11014:18;;;11007:55;11079:18;;9859:60:0;10754:349:1;9859:60:0;9972:14;;9962:6;9946:13;9956:2;-1:-1:-1;;;;;6242:18:0;6215:7;6242:18;;;:9;:18;;;;;;;6149:119;9946:13;:22;;;;:::i;:::-;:40;;9938:79;;;;-1:-1:-1;;;9938:79:0;;11440:2:1;9938:79:0;;;11422:21:1;11479:2;11459:18;;;11452:30;11518:28;11498:18;;;11491:56;11564:18;;9938:79:0;11238:350:1;9938:79:0;10036:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9750:313;-1:-1:-1;;;;;10081:24:0;;;;;;:18;:24;;;;;;;;10077:60;;;-1:-1:-1;;;;;10109:15:0;;;;;;:9;:15;;;;;:25;;10128:6;;10109:15;:25;;10128:6;;10109:25;:::i;:::-;;;;-1:-1:-1;;10077:60:0;10161:13;;-1:-1:-1;;;;;10155:19:0;;;10161:13;;10155:19;;;;:47;;-1:-1:-1;;;;;;10180:22:0;;;;;;:18;:22;;;;;;;;10178:24;10155:47;10151:167;;;10257:14;;10247:6;10231:13;10241:2;-1:-1:-1;;;;;6242:18:0;6215:7;6242:18;;;:9;:18;;;;;;;6149:119;10231:13;:22;;;;:::i;:::-;:40;;10223:79;;;;-1:-1:-1;;;10223:79:0;;11440:2:1;10223:79:0;;;11422:21:1;11479:2;11459:18;;;11452:30;11518:28;11498:18;;;11491:56;11564:18;;10223:79:0;11238:350:1;10223:79:0;10341:13;;-1:-1:-1;;;;;10335:19:0;;;10341:13;;10335:19;:43;;;;-1:-1:-1;;;;;;10358:20:0;;10373:4;10358:20;;10335:43;10332:174;;;10411:79;10486:3;10411:70;10433:16;;10423:9;;:26;10422:58;;10465:15;;10422:58;;;10451:13;;10411:6;;:10;:70::i;:79::-;10399:91;;10332:174;10569:4;10520:28;6242:18;;;:9;:18;;;;;;10595:6;;-1:-1:-1;;;10595:6:0;;;;10594:7;:32;;;;-1:-1:-1;10613:13:0;;-1:-1:-1;;;;;10605:21:0;;;10613:13;;10605:21;10594:32;:47;;;;-1:-1:-1;10630:11:0;;-1:-1:-1;;;10630:11:0;;;;10594:47;:89;;;;;10666:17;;10645:20;:38;10594:89;:121;;;;;10697:18;;10687:9;;:28;10594:121;10590:421;;;10736:67;10753:49;10757:6;10764:37;10768:20;10789:11;;10764:3;:37::i;:::-;10753:3;:49::i;:::-;10736:16;:67::i;:::-;10851:21;10894:22;;10891:105;;10941:35;10954:21;10941:12;:35::i;:::-;10717:294;10590:421;9580:1442;9542:1480;11037:11;;11034:161;;11105:4;11087:24;;;;:9;:24;;;;;;:39;;11116:9;11087:28;:39::i;:::-;11080:4;11062:24;;;;:9;:24;;;;;;;:64;;;;11144:39;;-1:-1:-1;;;;;11144:39:0;;;;;;;11173:9;1500:25:1;;1488:2;1473:18;;1354:177;11144:39:0;;;;;;;;11034:161;-1:-1:-1;;;;;11221:15:0;;;;;;:9;:15;;;;;;:27;;11241:6;11221:19;:27::i;:::-;-1:-1:-1;;;;;11205:15:0;;;;;;:9;:15;;;;;:43;11273:40;11291:21;:6;11302:9;11291:10;:21::i;:::-;-1:-1:-1;;;;;11273:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11259:13:0;;;;;;;:9;:13;;;;;:54;;;;11329:41;;;11348:21;:6;11359:9;11348:10;:21::i;:::-;11329:41;;1500:25:1;;;1488:2;1473:18;11329:41:0;;;;;;;9272:2106;9203:2175;;;:::o;3003:190::-;3089:7;3125:12;3117:6;;;;3109:29;;;;-1:-1:-1;;;3109:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3149:9:0;3161:5;3165:1;3161;:5;:::i;:::-;3149:17;3003:190;-1:-1:-1;;;;;3003:190:0:o;3201:246::-;3259:7;3283:1;3288;3283:6;3279:47;;-1:-1:-1;3313:1:0;3306:8;;3279:47;3336:9;3348:5;3352:1;3348;:5;:::i;:::-;3336:17;-1:-1:-1;3381:1:0;3372:5;3376:1;3336:17;3372:5;:::i;:::-;:10;3364:56;;;;-1:-1:-1;;;3364:56:0;;12150:2:1;3364:56:0;;;12132:21:1;12189:2;12169:18;;;12162:30;12228:34;12208:18;;;12201:62;-1:-1:-1;;;12279:18:1;;;12272:31;12320:19;;3364:56:0;11948:397:1;3364:56:0;3438:1;3201:246;-1:-1:-1;;;3201:246:0:o;3455:132::-;3513:7;3540:39;3544:1;3547;3540:39;;;;;;;;;;;;;;;;;:3;:39::i;7410:98::-;7467:7;7494:1;7492;:3;7491:9;;7499:1;7491:9;;;-1:-1:-1;7497:1:0;7410:98;-1:-1:-1;7410:98:0:o;6917:483::-;5222:6;:13;;-1:-1:-1;;;;5222:13:0;-1:-1:-1;;;5222:13:0;;;7019:16:::1;::::0;;7033:1:::1;7019:16:::0;;;;;::::1;::::0;;-1:-1:-1;;7019:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;7019:16:0::1;6995:40;;7064:4;7046;7051:1;7046:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7046:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;7090:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;7090:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;7046:7;;7090:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7080:4;7085:1;7080:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7080:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;7155:15:::1;::::0;7123:62:::1;::::0;7140:4:::1;::::0;7155:15:::1;7173:11:::0;7123:8:::1;:62::i;:::-;7196:15;::::0;:196:::1;::::0;-1:-1:-1;;;7196:196:0;;-1:-1:-1;;;;;7196:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;7277:11;;7196:15:::1;::::0;7319:4;;7346::::1;::::0;7366:15:::1;::::0;7196:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5258:6:0;:14;;-1:-1:-1;;;;5258:14:0;;;-1:-1:-1;;;;6917:483:0:o;8928:92::-;8985:10;;:27;;-1:-1:-1;;;;;8985:10:0;;;;:27;;;;;9005:6;;8985:10;:27;:10;:27;9005:6;8985:10;:27;;;;;;;;;;;;;;;;;;;2672:179;2730:7;;2762:5;2766:1;2762;:5;:::i;:::-;2750:17;;2791:1;2786;:6;;2778:46;;;;-1:-1:-1;;;2778:46:0;;13793:2:1;2778:46:0;;;13775:21:1;13832:2;13812:18;;;13805:30;13871:29;13851:18;;;13844:57;13918:18;;2778:46:0;13591:351:1;2859:136:0;2917:7;2944:43;2948:1;2951;2944:43;;;;;;;;;;;;;;;;;:3;:43::i;3595:189::-;3681:7;3716:12;3709:5;3701:28;;;;-1:-1:-1;;;3701:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3740:9:0;3752:5;3756:1;3752;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2906:127::-;2967:10;2962:3;2958:20;2955:1;2948:31;2998:4;2995:1;2988:15;3022:4;3019:1;3012:15;3038:1121;3122:6;3153:2;3196;3184:9;3175:7;3171:23;3167:32;3164:52;;;3212:1;3209;3202:12;3164:52;3252:9;3239:23;3281:18;3322:2;3314:6;3311:14;3308:34;;;3338:1;3335;3328:12;3308:34;3376:6;3365:9;3361:22;3351:32;;3421:7;3414:4;3410:2;3406:13;3402:27;3392:55;;3443:1;3440;3433:12;3392:55;3479:2;3466:16;3501:2;3497;3494:10;3491:36;;;3507:18;;:::i;:::-;3553:2;3550:1;3546:10;3585:2;3579:9;3648:2;3644:7;3639:2;3635;3631:11;3627:25;3619:6;3615:38;3703:6;3691:10;3688:22;3683:2;3671:10;3668:18;3665:46;3662:72;;;3714:18;;:::i;:::-;3750:2;3743:22;3800:18;;;3834:15;;;;-1:-1:-1;3876:11:1;;;3872:20;;;3904:19;;;3901:39;;;3936:1;3933;3926:12;3901:39;3960:11;;;;3980:148;3996:6;3991:3;3988:15;3980:148;;;4062:23;4081:3;4062:23;:::i;:::-;4050:36;;4013:12;;;;4106;;;;3980:148;;;4147:6;3038:1121;-1:-1:-1;;;;;;;;3038:1121:1:o;4164:388::-;4232:6;4240;4293:2;4281:9;4272:7;4268:23;4264:32;4261:52;;;4309:1;4306;4299:12;4261:52;4348:9;4335:23;4367:31;4392:5;4367:31;:::i;:::-;4417:5;-1:-1:-1;4474:2:1;4459:18;;4446:32;4487:33;4446:32;4487:33;:::i;:::-;4539:7;4529:17;;;4164:388;;;;;:::o;4557:127::-;4618:10;4613:3;4609:20;4606:1;4599:31;4649:4;4646:1;4639:15;4673:4;4670:1;4663:15;4689:422;4778:1;4821:5;4778:1;4835:270;4856:7;4846:8;4843:21;4835:270;;;4915:4;4911:1;4907:6;4903:17;4897:4;4894:27;4891:53;;;4924:18;;:::i;:::-;4974:7;4964:8;4960:22;4957:55;;;4994:16;;;;4957:55;5073:22;;;;5033:15;;;;4835:270;;;4839:3;4689:422;;;;;:::o;5116:806::-;5165:5;5195:8;5185:80;;-1:-1:-1;5236:1:1;5250:5;;5185:80;5284:4;5274:76;;-1:-1:-1;5321:1:1;5335:5;;5274:76;5366:4;5384:1;5379:59;;;;5452:1;5447:130;;;;5359:218;;5379:59;5409:1;5400:10;;5423:5;;;5447:130;5484:3;5474:8;5471:17;5468:43;;;5491:18;;:::i;:::-;-1:-1:-1;;5547:1:1;5533:16;;5562:5;;5359:218;;5661:2;5651:8;5648:16;5642:3;5636:4;5633:13;5629:36;5623:2;5613:8;5610:16;5605:2;5599:4;5596:12;5592:35;5589:77;5586:159;;;-1:-1:-1;5698:19:1;;;5730:5;;5586:159;5777:34;5802:8;5796:4;5777:34;:::i;:::-;5847:6;5843:1;5839:6;5835:19;5826:7;5823:32;5820:58;;;5858:18;;:::i;:::-;5896:20;;5116:806;-1:-1:-1;;;5116:806:1:o;5927:140::-;5985:5;6014:47;6055:4;6045:8;6041:19;6035:4;6014:47;:::i;6072:168::-;6145:9;;;6176;;6193:15;;;6187:22;;6173:37;6163:71;;6214:18;;:::i;6245:356::-;6447:2;6429:21;;;6466:18;;;6459:30;6525:34;6520:2;6505:18;;6498:62;6592:2;6577:18;;6245:356::o;7570:306::-;7658:6;7666;7674;7727:2;7715:9;7706:7;7702:23;7698:32;7695:52;;;7743:1;7740;7733:12;7695:52;7772:9;7766:16;7756:26;;7822:2;7811:9;7807:18;7801:25;7791:35;;7866:2;7855:9;7851:18;7845:25;7835:35;;7570:306;;;;;:::o;8160:277::-;8227:6;8280:2;8268:9;8259:7;8255:23;8251:32;8248:52;;;8296:1;8293;8286:12;8248:52;8328:9;8322:16;8381:5;8374:13;8367:21;8360:5;8357:32;8347:60;;8403:1;8400;8393:12;8442:127;8503:10;8498:3;8494:20;8491:1;8484:31;8534:4;8531:1;8524:15;8558:4;8555:1;8548:15;8574:135;8613:3;8634:17;;;8631:43;;8654:18;;:::i;:::-;-1:-1:-1;8701:1:1;8690:13;;8574:135::o;11108:125::-;11173:9;;;11194:10;;;11191:36;;;11207:18;;:::i;11593:128::-;11660:9;;;11681:11;;;11678:37;;;11695:18;;:::i;11726:217::-;11766:1;11792;11782:132;;11836:10;11831:3;11827:20;11824:1;11817:31;11871:4;11868:1;11861:15;11899:4;11896:1;11889:15;11782:132;-1:-1:-1;11928:9:1;;11726:217::o;12350:251::-;12420:6;12473:2;12461:9;12452:7;12448:23;12444:32;12441:52;;;12489:1;12486;12479:12;12441:52;12521:9;12515:16;12540:31;12565:5;12540:31;:::i;12606:980::-;12868:4;12916:3;12905:9;12901:19;12947:6;12936:9;12929:25;12973:2;13011:6;13006:2;12995:9;12991:18;12984:34;13054:3;13049:2;13038:9;13034:18;13027:31;13078:6;13113;13107:13;13144:6;13136;13129:22;13182:3;13171:9;13167:19;13160:26;;13221:2;13213:6;13209:15;13195:29;;13242:1;13252:195;13266:6;13263:1;13260:13;13252:195;;;13331:13;;-1:-1:-1;;;;;13327:39:1;13315:52;;13422:15;;;;13387:12;;;;13363:1;13281:9;13252:195;;;-1:-1:-1;;;;;;;13503:32:1;;;;13498:2;13483:18;;13476:60;-1:-1:-1;;;13567:3:1;13552:19;13545:35;13464:3;12606:980;-1:-1:-1;;;12606:980:1:o

Swarm Source

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