ETH Price: $3,410.44 (-1.00%)
Gas: 2 Gwei

Token

Adult Doge (OLD)
 

Overview

Max Total Supply

518,768,772.448054774 OLD

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
cryptt.eth
Balance
17,657,179.643710813 OLD

Value
$0.00
0xec6c7c2ba7c95580d31721b7fe74148a96fa69b6
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:
AdultDoge

Compiler Version
v0.8.25+commit.b61c2a91

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

contract Ownable {
    address _owner;

    event RenounceOwnership();

    constructor() {
        _owner = msg.sender;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "only owner");
        _;
    }

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

    function ownerRenounce() external onlyOwner {
        _owner = address(0);
        emit RenounceOwnership();
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function getReserves(
        address factory,
        address tokenA,
        address tokenB
    ) external view returns (uint reserveA, uint reserveB);

    function getAmountsIn(
        uint amountOut,
        address[] memory path
    ) external view returns (uint[] memory amounts);

    function getAmountsOut(
        uint amountIn,
        address[] memory path
    ) external view returns (uint[] memory amounts);
}


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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 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 value) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) 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);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 internal _totalSupply;
    uint8 internal constant _decimals = 9;

    string private _name;
    string private _symbol;


    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }


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

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }


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


    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }


    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }


    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }


    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }


    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
}


abstract contract Pool is ERC20 {
    IUniswapV2Router02 constant uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address internal _pair;
    uint256 internal _startTime;

    constructor(
        string memory name_,
        string memory symbol_
    ) ERC20(name_, symbol_) {}

    function createPair() external payable {
        _pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        _mint(address(this), createPairCount());
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            createPairCount(),
            0,
            0,
            msg.sender,
            block.timestamp
        );
        _startTime = block.timestamp;
    }

    function isStarted() internal view returns (bool) {
        return _pair != address(0);
    }

    function createPairCount() internal pure virtual returns (uint256);
}




contract AdultDoge is Pool {
    uint256 constant _startTotalSupply = 1e9 * (10 ** _decimals);
    uint256 constant _startMaxBuyCount = (_startTotalSupply * 5) / 10000;
    uint256 constant _addMaxBuyPercentPerSec = 10; // 
    uint256 constant _addMaxBuyPrecesion = 100000;
    uint256 public constant taxBuy = 200; // 100%=taxPrecesion
    uint256 public constant taxSell = 200; // 100%=taxPrecesion
    uint256 constant _taxPrecesion = 1000;
    uint256 constant _transferZeroTaxSeconds = 1000; // zero tax transfer time
    bool internal _feeLocked;

    constructor() Pool("Adult Doge", "OLD") {}

    modifier maxBuyLimit(uint256 amount) {
        require(amount <= maxBuy(), "max buy reached");
        _;
    }

    modifier lockFee() {
        _feeLocked = true;
        _;
        _feeLocked = false;
    }

    function createPairCount() internal pure override returns (uint256) {
        return _startTotalSupply;
    }

    function maxBuy() public view returns (uint256) {
        if (!isStarted()) return _startTotalSupply;
        uint256 count = _startMaxBuyCount +
            (_startTotalSupply *
                (block.timestamp - _startTime) *
                _addMaxBuyPercentPerSec) /
            _addMaxBuyPrecesion;
        if (count > _startTotalSupply) count = _startTotalSupply;
        return count;
    }

    function transferTax() public view returns (uint256) {
        if (!isStarted()) return 0;
        uint256 deltaTime = block.timestamp - _startTime;
        if (deltaTime >= _transferZeroTaxSeconds) return 0;
        return
            (_taxPrecesion * (_transferZeroTaxSeconds - deltaTime)) /
            _transferZeroTaxSeconds;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        // allow burning
        if (to == address(0)) {
            _burn(from, amount);
            return;
        }

        // system transfers
        if (from == address(0) || from == address(this)) {
            super._transfer(from, to, amount);
            return;
        }

        // transfers with fee
        if (_feeLocked) {
            super._transfer(from, to, amount);
            return;
        } else {
            if (from == _pair) {
                buy(to, amount);
                return;
            } else if (to == _pair) {
                sell(from, amount);
                return;
            } else transferFithFee(from, to, amount);
        }
    }

    function buy(
        address to,
        uint256 amount
    ) private maxBuyLimit(amount) lockFee {
        uint256 tax = (amount * taxBuy) / _taxPrecesion;
        if (tax > 0) _burn(_pair, tax);
        super._transfer(_pair, to, amount - tax);
    }

    function sell(address from, uint256 amount) private lockFee {
        uint256 tax = (amount * taxSell) / _taxPrecesion;
        if (tax > 0) _burn(from, tax);
        super._transfer(from, _pair, amount - tax);
    }

    function transferFithFee(
        address from,
        address to,
        uint256 amount
    ) private lockFee {
        uint256 tax = (amount * transferTax()) / _taxPrecesion;
        if (tax > 0) _burn(from, tax);
        super._transfer(from, to, amount - tax);
    }

    function burnCount() public view returns (uint256) {
        return _startTotalSupply - totalSupply();
    }
}

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":"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":[],"name":"burnCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561000f575f80fd5b506040518060400160405280600a8152602001694164756c7420446f676560b01b8152506040518060400160405280600381526020016213d31160ea1b81525081818160039081610060919061010f565b50600461006d828261010f565b50505050506101ce565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009f57607f821691505b6020821081036100bd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010a57805f5260205f20601f840160051c810160208510156100e85750805b601f840160051c820191505b81811015610107575f81556001016100f4565b50505b505050565b81516001600160401b0381111561012857610128610077565b61013c81610136845461008b565b846100c3565b602080601f83116001811461016f575f84156101585750858301515b5f19600386901b1c1916600185901b1785556101c6565b5f85815260208120601f198616915b8281101561019d5788860151825594840194600190910190840161017e565b50858210156101ba57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b61128d806101db5f395ff3fe6080604052600436106100fa575f3560e01c806362290a931161009257806395d89b411161006257806395d89b41146102525780639e78fb4f14610266578063a457c2d714610270578063a9059cbb1461028f578063dd62ed3e146102ae575f80fd5b806362290a93146101ce57806370a08231146101f657806370db69d61461022a5780638124f7ac1461023e575f80fd5b8063313ce567116100cd578063313ce5671461019457806339509351146101af57806339fba650146101ce578063524773ce146101e2575f80fd5b806306fdde03146100fe578063095ea7b31461012857806318160ddd1461015757806323b872dd14610175575b5f80fd5b348015610109575f80fd5b506101126102cd565b60405161011f9190610f6e565b60405180910390f35b348015610133575f80fd5b50610147610142366004610fba565b61035d565b604051901515815260200161011f565b348015610162575f80fd5b506002545b60405190815260200161011f565b348015610180575f80fd5b5061014761018f366004610fe4565b610376565b34801561019f575f80fd5b506040516009815260200161011f565b3480156101ba575f80fd5b506101476101c9366004610fba565b610399565b3480156101d9575f80fd5b5061016760c881565b3480156101ed575f80fd5b506101676103ba565b348015610201575f80fd5b50610167610210366004611022565b6001600160a01b03165f9081526020819052604090205490565b348015610235575f80fd5b506101676103ed565b348015610249575f80fd5b506101676104ee565b34801561025d575f80fd5b50610112610556565b61026e610565565b005b34801561027b575f80fd5b5061014761028a366004610fba565b6107ce565b34801561029a575f80fd5b506101476102a9366004610fba565b61084d565b3480156102b9575f80fd5b506101676102c8366004611044565b61085a565b6060600380546102dc9061107b565b80601f01602080910402602001604051908101604052809291908181526020018280546103089061107b565b80156103535780601f1061032a57610100808354040283529160200191610353565b820191905f5260205f20905b81548152906001019060200180831161033657829003601f168201915b5050505050905090565b5f3361036a818585610884565b60019150505b92915050565b5f336103838582856109a8565b61038e858585610a20565b506001949350505050565b5f3361036a8185856103ab838361085a565b6103b591906110c7565b610884565b5f6103c460025490565b6103d06009600a6111ba565b6103de90633b9aca006111c8565b6103e891906111df565b905090565b5f6104026005546001600160a01b0316151590565b610420576104126009600a6111ba565b6103e890633b9aca006111c8565b5f620186a0600a6006544261043591906111df565b6104416009600a6111ba565b61044f90633b9aca006111c8565b61045991906111c8565b61046391906111c8565b61046d91906111f2565b61271061047c6009600a6111ba565b61048a90633b9aca006111c8565b6104959060056111c8565b61049f91906111f2565b6104a991906110c7565b90506104b76009600a6111ba565b6104c590633b9aca006111c8565b8111156104e9576104d86009600a6111ba565b6104e690633b9aca006111c8565b90505b919050565b5f6105036005546001600160a01b0316151590565b61050c57505f90565b5f6006544261051b91906111df565b90506103e8811061052d575f91505090565b6103e861053a82826111df565b610546906103e86111c8565b61055091906111f2565b91505090565b6060600480546102dc9061107b565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d99190611211565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065c9190611211565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ca9190611211565b600580546001600160a01b0319166001600160a01b03929092169190911790556106fb306106f6610acc565b610ad9565b61071b30737a250d5630b4cf539739df2c5dacb4c659f2488d5f19610884565b737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d719343061073f610acc565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201523360848201524260a482015260c40160606040518083038185885af11580156107a0573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107c5919061122c565b50504260065550565b5f33816107db828661085a565b9050838110156108405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61038e8286868403610884565b5f3361036a818585610a20565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166108e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610837565b6001600160a01b0382166109475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610837565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f6109b3848461085a565b90505f198114610a1a5781811015610a0d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610837565b610a1a8484848403610884565b50505050565b6001600160a01b038216610a3d57610a388382610b96565b505050565b6001600160a01b0383161580610a5b57506001600160a01b03831630145b15610a6b57610a38838383610cbe565b60075460ff1615610a8157610a38838383610cbe565b6005546001600160a01b0390811690841603610aa157610a388282610dff565b6005546001600160a01b0390811690831603610ac157610a388382610ebd565b610a38838383610f20565b5f6104126009600a6111ba565b6001600160a01b038216610b2f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610837565b8060025f828254610b4091906110c7565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610bf65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610837565b6001600160a01b0382165f9081526020819052604090205481811015610c695760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610837565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161099b565b6001600160a01b038316610d225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610837565b6001600160a01b0383165f9081526020819052604090205481811015610d995760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610837565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b80610e086103ed565b811115610e495760405162461bcd60e51b815260206004820152600f60248201526e1b585e08189d5e481c995858da1959608a1b6044820152606401610837565b6007805460ff191660011790555f6103e8610e6560c8856111c8565b610e6f91906111f2565b90508015610e8d57600554610e8d906001600160a01b031682610b96565b600554610ead906001600160a01b031685610ea884876111df565b610cbe565b50506007805460ff191690555050565b6007805460ff191660011790555f6103e8610ed960c8846111c8565b610ee391906111f2565b90508015610ef557610ef58382610b96565b600554610f119084906001600160a01b0316610ea884866111df565b50506007805460ff1916905550565b6007805460ff191660011790555f6103e8610f396104ee565b610f4390846111c8565b610f4d91906111f2565b90508015610f5f57610f5f8482610b96565b610ead8484610ea884866111df565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610fb7575f80fd5b50565b5f8060408385031215610fcb575f80fd5b8235610fd681610fa3565b946020939093013593505050565b5f805f60608486031215610ff6575f80fd5b833561100181610fa3565b9250602084013561101181610fa3565b929592945050506040919091013590565b5f60208284031215611032575f80fd5b813561103d81610fa3565b9392505050565b5f8060408385031215611055575f80fd5b823561106081610fa3565b9150602083013561107081610fa3565b809150509250929050565b600181811c9082168061108f57607f821691505b6020821081036110ad57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610370576103706110b3565b600181815b8085111561111457815f19048211156110fa576110fa6110b3565b8085161561110757918102915b93841c93908002906110df565b509250929050565b5f8261112a57506001610370565b8161113657505f610370565b816001811461114c576002811461115657611172565b6001915050610370565b60ff841115611167576111676110b3565b50506001821b610370565b5060208310610133831016604e8410600b8410161715611195575081810a610370565b61119f83836110da565b805f19048211156111b2576111b26110b3565b029392505050565b5f61103d60ff84168361111c565b8082028115828204841417610370576103706110b3565b81810381811115610370576103706110b3565b5f8261120c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611221575f80fd5b815161103d81610fa3565b5f805f6060848603121561123e575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220de15f77406ad97d825a7d106f3ef511044f69ce214d00b5bb4caee614d9f2bad64736f6c63430008190033

Deployed Bytecode

0x6080604052600436106100fa575f3560e01c806362290a931161009257806395d89b411161006257806395d89b41146102525780639e78fb4f14610266578063a457c2d714610270578063a9059cbb1461028f578063dd62ed3e146102ae575f80fd5b806362290a93146101ce57806370a08231146101f657806370db69d61461022a5780638124f7ac1461023e575f80fd5b8063313ce567116100cd578063313ce5671461019457806339509351146101af57806339fba650146101ce578063524773ce146101e2575f80fd5b806306fdde03146100fe578063095ea7b31461012857806318160ddd1461015757806323b872dd14610175575b5f80fd5b348015610109575f80fd5b506101126102cd565b60405161011f9190610f6e565b60405180910390f35b348015610133575f80fd5b50610147610142366004610fba565b61035d565b604051901515815260200161011f565b348015610162575f80fd5b506002545b60405190815260200161011f565b348015610180575f80fd5b5061014761018f366004610fe4565b610376565b34801561019f575f80fd5b506040516009815260200161011f565b3480156101ba575f80fd5b506101476101c9366004610fba565b610399565b3480156101d9575f80fd5b5061016760c881565b3480156101ed575f80fd5b506101676103ba565b348015610201575f80fd5b50610167610210366004611022565b6001600160a01b03165f9081526020819052604090205490565b348015610235575f80fd5b506101676103ed565b348015610249575f80fd5b506101676104ee565b34801561025d575f80fd5b50610112610556565b61026e610565565b005b34801561027b575f80fd5b5061014761028a366004610fba565b6107ce565b34801561029a575f80fd5b506101476102a9366004610fba565b61084d565b3480156102b9575f80fd5b506101676102c8366004611044565b61085a565b6060600380546102dc9061107b565b80601f01602080910402602001604051908101604052809291908181526020018280546103089061107b565b80156103535780601f1061032a57610100808354040283529160200191610353565b820191905f5260205f20905b81548152906001019060200180831161033657829003601f168201915b5050505050905090565b5f3361036a818585610884565b60019150505b92915050565b5f336103838582856109a8565b61038e858585610a20565b506001949350505050565b5f3361036a8185856103ab838361085a565b6103b591906110c7565b610884565b5f6103c460025490565b6103d06009600a6111ba565b6103de90633b9aca006111c8565b6103e891906111df565b905090565b5f6104026005546001600160a01b0316151590565b610420576104126009600a6111ba565b6103e890633b9aca006111c8565b5f620186a0600a6006544261043591906111df565b6104416009600a6111ba565b61044f90633b9aca006111c8565b61045991906111c8565b61046391906111c8565b61046d91906111f2565b61271061047c6009600a6111ba565b61048a90633b9aca006111c8565b6104959060056111c8565b61049f91906111f2565b6104a991906110c7565b90506104b76009600a6111ba565b6104c590633b9aca006111c8565b8111156104e9576104d86009600a6111ba565b6104e690633b9aca006111c8565b90505b919050565b5f6105036005546001600160a01b0316151590565b61050c57505f90565b5f6006544261051b91906111df565b90506103e8811061052d575f91505090565b6103e861053a82826111df565b610546906103e86111c8565b61055091906111f2565b91505090565b6060600480546102dc9061107b565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d99190611211565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065c9190611211565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ca9190611211565b600580546001600160a01b0319166001600160a01b03929092169190911790556106fb306106f6610acc565b610ad9565b61071b30737a250d5630b4cf539739df2c5dacb4c659f2488d5f19610884565b737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d719343061073f610acc565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f6044820181905260648201523360848201524260a482015260c40160606040518083038185885af11580156107a0573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107c5919061122c565b50504260065550565b5f33816107db828661085a565b9050838110156108405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61038e8286868403610884565b5f3361036a818585610a20565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166108e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610837565b6001600160a01b0382166109475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610837565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f6109b3848461085a565b90505f198114610a1a5781811015610a0d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610837565b610a1a8484848403610884565b50505050565b6001600160a01b038216610a3d57610a388382610b96565b505050565b6001600160a01b0383161580610a5b57506001600160a01b03831630145b15610a6b57610a38838383610cbe565b60075460ff1615610a8157610a38838383610cbe565b6005546001600160a01b0390811690841603610aa157610a388282610dff565b6005546001600160a01b0390811690831603610ac157610a388382610ebd565b610a38838383610f20565b5f6104126009600a6111ba565b6001600160a01b038216610b2f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610837565b8060025f828254610b4091906110c7565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216610bf65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610837565b6001600160a01b0382165f9081526020819052604090205481811015610c695760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610837565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161099b565b6001600160a01b038316610d225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610837565b6001600160a01b0383165f9081526020819052604090205481811015610d995760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610837565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b80610e086103ed565b811115610e495760405162461bcd60e51b815260206004820152600f60248201526e1b585e08189d5e481c995858da1959608a1b6044820152606401610837565b6007805460ff191660011790555f6103e8610e6560c8856111c8565b610e6f91906111f2565b90508015610e8d57600554610e8d906001600160a01b031682610b96565b600554610ead906001600160a01b031685610ea884876111df565b610cbe565b50506007805460ff191690555050565b6007805460ff191660011790555f6103e8610ed960c8846111c8565b610ee391906111f2565b90508015610ef557610ef58382610b96565b600554610f119084906001600160a01b0316610ea884866111df565b50506007805460ff1916905550565b6007805460ff191660011790555f6103e8610f396104ee565b610f4390846111c8565b610f4d91906111f2565b90508015610f5f57610f5f8482610b96565b610ead8484610ea884866111df565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610fb7575f80fd5b50565b5f8060408385031215610fcb575f80fd5b8235610fd681610fa3565b946020939093013593505050565b5f805f60608486031215610ff6575f80fd5b833561100181610fa3565b9250602084013561101181610fa3565b929592945050506040919091013590565b5f60208284031215611032575f80fd5b813561103d81610fa3565b9392505050565b5f8060408385031215611055575f80fd5b823561106081610fa3565b9150602083013561107081610fa3565b809150509250929050565b600181811c9082168061108f57607f821691505b6020821081036110ad57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610370576103706110b3565b600181815b8085111561111457815f19048211156110fa576110fa6110b3565b8085161561110757918102915b93841c93908002906110df565b509250929050565b5f8261112a57506001610370565b8161113657505f610370565b816001811461114c576002811461115657611172565b6001915050610370565b60ff841115611167576111676110b3565b50506001821b610370565b5060208310610133831016604e8410600b8410161715611195575081810a610370565b61119f83836110da565b805f19048211156111b2576111b26110b3565b029392505050565b5f61103d60ff84168361111c565b8082028115828204841417610370576103706110b3565b81810381811115610370576103706110b3565b5f8261120c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611221575f80fd5b815161103d81610fa3565b5f805f6060848603121561123e575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220de15f77406ad97d825a7d106f3ef511044f69ce214d00b5bb4caee614d9f2bad64736f6c63430008190033

Deployed Bytecode Sourcemap

10488:3459:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4174:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5444:226;;;;;;;;;;-1:-1:-1;5444:226:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;5444:226:0;893:187:1;4655:108:0;;;;;;;;;;-1:-1:-1;4743:12:0;;4655:108;;;1231:25:1;;;1219:2;1204:18;4655:108:0;1085:177:1;5680:295:0;;;;;;;;;;-1:-1:-1;5680:295:0;;;;;:::i;:::-;;:::i;4507:83::-;;;;;;;;;;-1:-1:-1;4507:83:0;;3918:1;1870:36:1;;1858:2;1843:18;4507:83:0;1728:184:1;5985:263:0;;;;;;;;;;-1:-1:-1;5985:263:0;;;;;:::i;:::-;;:::i;10836:37::-;;;;;;;;;;;;10870:3;10836:37;;13834:110;;;;;;;;;;;;;:::i;4826:143::-;;;;;;;;;;-1:-1:-1;4826:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4943:18:0;4916:7;4943:18;;;;;;;;;;;;4826:143;11453:406;;;;;;;;;;;;;:::i;11867:343::-;;;;;;;;;;;;;:::i;4393:104::-;;;;;;;;;;;;;:::i;9714:583::-;;;:::i;:::-;;6258:498;;;;;;;;;;-1:-1:-1;6258:498:0;;;;;:::i;:::-;;:::i;4977:218::-;;;;;;;;;;-1:-1:-1;4977:218:0;;;;;:::i;:::-;;:::i;5258:176::-;;;;;;;;;;-1:-1:-1;5258:176:0;;;;;:::i;:::-;;:::i;4174:100::-;4228:13;4261:5;4254:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4174:100;:::o;5444:226::-;5552:4;2534:10;5608:32;2534:10;5624:7;5633:6;5608:8;:32::i;:::-;5658:4;5651:11;;;5444:226;;;;;:::o;5680:295::-;5811:4;2534:10;5869:38;5885:4;2534:10;5900:6;5869:15;:38::i;:::-;5918:27;5928:4;5934:2;5938:6;5918:9;:27::i;:::-;-1:-1:-1;5963:4:0;;5680:295;-1:-1:-1;;;;5680:295:0:o;5985:263::-;6098:4;2534:10;6154:64;2534:10;6170:7;6207:10;6179:25;2534:10;6170:7;6179:9;:25::i;:::-;:38;;;;:::i;:::-;6154:8;:64::i;13834:110::-;13876:7;13923:13;4743:12;;;4655:108;13923:13;10566:15;3918:1;10566:2;:15;:::i;:::-;10559:23;;:3;:23;:::i;:::-;13903:33;;;;:::i;:::-;13896:40;;13834:110;:::o;11453:406::-;11492:7;11517:11;10373:5;;-1:-1:-1;;;;;10373:5:0;:19;;;10305:95;11517:11;11512:42;;10566:15;3918:1;10566:2;:15;:::i;:::-;10559:23;;:3;:23;:::i;11512:42::-;11565:13;10759:6;10707:2;11671:10;;11653:15;:28;;;;:::i;:::-;10566:15;3918:1;10566:2;:15;:::i;:::-;10559:23;;:3;:23;:::i;:::-;11615:67;;;;:::i;:::-;:110;;;;:::i;:::-;11614:147;;;;:::i;:::-;10652:5;10566:15;3918:1;10566:2;:15;:::i;:::-;10559:23;;:3;:23;:::i;:::-;10627:21;;10647:1;10627:21;:::i;:::-;10626:31;;;;:::i;:::-;11581:180;;;;:::i;:::-;11565:196;-1:-1:-1;10566:15:0;3918:1;10566:2;:15;:::i;:::-;10559:23;;:3;:23;:::i;:::-;11776:5;:25;11772:56;;;10566:15;3918:1;10566:2;:15;:::i;:::-;10559:23;;:3;:23;:::i;:::-;11803:25;;11772:56;11846:5;11453:406;-1:-1:-1;11453:406:0:o;11867:343::-;11911:7;11936:11;10373:5;;-1:-1:-1;;;;;10373:5:0;:19;;;10305:95;11936:11;11931:26;;-1:-1:-1;11956:1:0;;11867:343::o;11931:26::-;11968:17;12006:10;;11988:15;:28;;;;:::i;:::-;11968:48;;10988:4;12031:9;:36;12027:50;;12076:1;12069:8;;;11867:343;:::o;12027:50::-;10988:4;12126:35;12152:9;10988:4;12126:35;:::i;:::-;12109:53;;10934:4;12109:53;:::i;:::-;12108:94;;;;:::i;:::-;12088:114;;;11867:343;:::o;4393:104::-;4449:13;4482:7;4475:14;;;;;:::i;9714:583::-;9486:42;-1:-1:-1;;;;;9790:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9772:55:0;;9850:4;9486:42;-1:-1:-1;;;;;9870:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9772:131;;-1:-1:-1;;;;;;9772:131:0;;;;;;;-1:-1:-1;;;;;5600:15:1;;;9772:131:0;;;5582:34:1;5652:15;;5632:18;;;5625:43;5517:18;;9772:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9764:5;:139;;-1:-1:-1;;;;;;9764:139:0;-1:-1:-1;;;;;9764:139:0;;;;;;;;;;9914:39;9928:4;9935:17;:15;:17::i;:::-;9914:5;:39::i;:::-;9964:68;9981:4;9486:42;-1:-1:-1;;9964:8:0;:68::i;:::-;9486:42;10043:31;10082:9;10115:4;10135:17;:15;:17::i;:::-;10043:207;;-1:-1:-1;;;;;;10043:207:0;;;;;;;-1:-1:-1;;;;;6038:15:1;;;10043:207:0;;;6020:34:1;6070:18;;;6063:34;10167:1:0;6113:18:1;;;6106:34;;;6156:18;;;6149:34;10199:10:0;6199:19:1;;;6192:44;10224:15:0;6252:19:1;;;6245:35;5954:19;;10043:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;10274:15:0;10261:10;:28;-1:-1:-1;9714:583:0:o;6258:498::-;6376:4;2534:10;6376:4;6459:25;2534:10;6476:7;6459:9;:25::i;:::-;6432:52;;6537:15;6517:16;:35;;6495:122;;;;-1:-1:-1;;;6495:122:0;;6804:2:1;6495:122:0;;;6786:21:1;6843:2;6823:18;;;6816:30;6882:34;6862:18;;;6855:62;-1:-1:-1;;;6933:18:1;;;6926:35;6978:19;;6495:122:0;;;;;;;;;6653:60;6662:5;6669:7;6697:15;6678:16;:34;6653:8;:60::i;4977:218::-;5081:4;2534:10;5137:28;2534:10;5154:2;5158:6;5137:9;:28::i;5258:176::-;-1:-1:-1;;;;;5399:18:0;;;5372:7;5399:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5258:176::o;8472:380::-;-1:-1:-1;;;;;8608:19:0;;8600:68;;;;-1:-1:-1;;;8600:68:0;;7210:2:1;8600:68:0;;;7192:21:1;7249:2;7229:18;;;7222:30;7288:34;7268:18;;;7261:62;-1:-1:-1;;;7339:18:1;;;7332:34;7383:19;;8600:68:0;7008:400:1;8600:68:0;-1:-1:-1;;;;;8687:21:0;;8679:68;;;;-1:-1:-1;;;8679:68:0;;7615:2:1;8679:68:0;;;7597:21:1;7654:2;7634:18;;;7627:30;7693:34;7673:18;;;7666:62;-1:-1:-1;;;7744:18:1;;;7737:32;7786:19;;8679:68:0;7413:398:1;8679:68:0;-1:-1:-1;;;;;8760:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8812:32;;1231:25:1;;;8812:32:0;;1204:18:1;8812:32:0;;;;;;;;8472:380;;;:::o;8862:502::-;8997:24;9024:25;9034:5;9041:7;9024:9;:25::i;:::-;8997:52;;-1:-1:-1;;9064:16:0;:37;9060:297;;9164:6;9144:16;:26;;9118:117;;;;-1:-1:-1;;;9118:117:0;;8018:2:1;9118:117:0;;;8000:21:1;8057:2;8037:18;;;8030:30;8096:31;8076:18;;;8069:59;8145:18;;9118:117:0;7816:353:1;9118:117:0;9279:51;9288:5;9295:7;9323:6;9304:16;:25;9279:8;:51::i;:::-;8986:378;8862:502;;;:::o;12218:824::-;-1:-1:-1;;;;;12372:16:0;;12368:89;;12405:19;12411:4;12417:6;12405:5;:19::i;:::-;12218:824;;;:::o;12368:89::-;-1:-1:-1;;;;;12502:18:0;;;;:43;;-1:-1:-1;;;;;;12524:21:0;;12540:4;12524:21;12502:43;12498:130;;;12562:33;12578:4;12584:2;12588:6;12562:15;:33::i;12498:130::-;12675:10;;;;12671:364;;;12702:33;12718:4;12724:2;12728:6;12702:15;:33::i;12671:364::-;12801:5;;-1:-1:-1;;;;;12801:5:0;;;12793:13;;;;12789:234;;12827:15;12831:2;12835:6;12827:3;:15::i;12789:234::-;12899:5;;-1:-1:-1;;;;;12899:5:0;;;12893:11;;;;12889:134;;12925:18;12930:4;12936:6;12925:4;:18::i;12889:134::-;12990:33;13006:4;13012:2;13016:6;12990:15;:33::i;11334:111::-;11393:7;10566:15;3918:1;10566:2;:15;:::i;7475:425::-;-1:-1:-1;;;;;7559:21:0;;7551:65;;;;-1:-1:-1;;;7551:65:0;;8376:2:1;7551:65:0;;;8358:21:1;8415:2;8395:18;;;8388:30;8454:33;8434:18;;;8427:61;8505:18;;7551:65:0;8174:355:1;7551:65:0;7645:6;7629:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7800:18:0;;:9;:18;;;;;;;;;;;:28;;;;;;7855:37;1231:25:1;;;7855:37:0;;1204:18:1;7855:37:0;;;;;;;7475:425;;:::o;7910:552::-;-1:-1:-1;;;;;7994:21:0;;7986:67;;;;-1:-1:-1;;;7986:67:0;;8736:2:1;7986:67:0;;;8718:21:1;8775:2;8755:18;;;8748:30;8814:34;8794:18;;;8787:62;-1:-1:-1;;;8865:18:1;;;8858:31;8906:19;;7986:67:0;8534:397:1;7986:67:0;-1:-1:-1;;;;;8091:18:0;;8066:22;8091:18;;;;;;;;;;;8128:24;;;;8120:71;;;;-1:-1:-1;;;8120:71:0;;9138:2:1;8120:71:0;;;9120:21:1;9177:2;9157:18;;;9150:30;9216:34;9196:18;;;9189:62;-1:-1:-1;;;9267:18:1;;;9260:32;9309:19;;8120:71:0;8936:398:1;8120:71:0;-1:-1:-1;;;;;8227:18:0;;:9;:18;;;;;;;;;;;8248:23;;;8227:44;;8366:12;:22;;;;;;;8417:37;1231:25:1;;;8227:9:0;;:18;8417:37;;1204:18:1;8417:37:0;1085:177:1;6764:701:0;-1:-1:-1;;;;;6895:18:0;;6887:68;;;;-1:-1:-1;;;6887:68:0;;9541:2:1;6887:68:0;;;9523:21:1;9580:2;9560:18;;;9553:30;9619:34;9599:18;;;9592:62;-1:-1:-1;;;9670:18:1;;;9663:35;9715:19;;6887:68:0;9339:401:1;6887:68:0;-1:-1:-1;;;;;6990:15:0;;6968:19;6990:15;;;;;;;;;;;7038:21;;;;7016:109;;;;-1:-1:-1;;;7016:109:0;;9947:2:1;7016:109:0;;;9929:21:1;9986:2;9966:18;;;9959:30;10025:34;10005:18;;;9998:62;-1:-1:-1;;;10076:18:1;;;10069:36;10122:19;;7016:109:0;9745:402:1;7016:109:0;-1:-1:-1;;;;;7161:15:0;;;:9;:15;;;;;;;;;;;7179:20;;;7161:38;;7379:13;;;;;;;;;;:23;;;;;;7431:26;;1231:25:1;;;7379:13:0;;7431:26;;1204:18:1;7431:26:0;;;;;;;6876:589;6764:701;;;:::o;13050:260::-;13136:6;11174:8;:6;:8::i;:::-;11164:6;:18;;11156:46;;;;-1:-1:-1;;;11156:46:0;;10354:2:1;11156:46:0;;;10336:21:1;10393:2;10373:18;;;10366:30;-1:-1:-1;;;10412:18:1;;;10405:45;10467:18;;11156:46:0;10152:339:1;11156:46:0;11260:10:::1;:17:::0;;-1:-1:-1;;11260:17:0::1;11273:4;11260:17;::::0;;:10:::1;10934:4:::2;13178:15;10805:3;13178:6:::0;:15:::2;:::i;:::-;13177:33;;;;:::i;:::-;13163:47:::0;-1:-1:-1;13225:7:0;;13221:30:::2;;13240:5;::::0;13234:17:::2;::::0;-1:-1:-1;;;;;13240:5:0::2;13247:3:::0;13234:5:::2;:17::i;:::-;13278:5;::::0;13262:40:::2;::::0;-1:-1:-1;;;;;13278:5:0::2;13285:2:::0;13289:12:::2;13298:3:::0;13289:6;:12:::2;:::i;:::-;13262:15;:40::i;:::-;-1:-1:-1::0;;11300:10:0::1;:18:::0;;-1:-1:-1;;11300:18:0::1;::::0;;-1:-1:-1;;13050:260:0:o;13318:220::-;11260:10;:17;;-1:-1:-1;;11260:17:0;11273:4;11260:17;;;:10;10934:4:::1;13404:16;10870:3;13404:6:::0;:16:::1;:::i;:::-;13403:34;;;;:::i;:::-;13389:48:::0;-1:-1:-1;13452:7:0;;13448:29:::1;;13461:16;13467:4;13473:3;13461:5;:16::i;:::-;13510:5;::::0;13488:42:::1;::::0;13504:4;;-1:-1:-1;;;;;13510:5:0::1;13517:12;13526:3:::0;13517:6;:12:::1;:::i;13488:42::-;-1:-1:-1::0;;11300:10:0;:18;;-1:-1:-1;;11300:18:0;;;-1:-1:-1;13318:220:0:o;13546:280::-;11260:10;:17;;-1:-1:-1;;11260:17:0;11273:4;11260:17;;;:10;10934:4:::1;13698:13;:11;:13::i;:::-;13689:22;::::0;:6;:22:::1;:::i;:::-;13688:40;;;;:::i;:::-;13674:54:::0;-1:-1:-1;13743:7:0;;13739:29:::1;;13752:16;13758:4;13764:3;13752:5;:16::i;:::-;13779:39;13795:4:::0;13801:2;13805:12:::1;13814:3:::0;13805:6;:12:::1;:::i;14:418:1:-:0;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:315::-;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;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;1917:247;-1:-1:-1;;;1917:247:1:o;2169:388::-;2237:6;2245;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;:::-;2422:5;-1:-1:-1;2479:2:1;2464:18;;2451:32;2492:33;2451:32;2492:33;:::i;:::-;2544:7;2534:17;;;2169:388;;;;;:::o;2562:380::-;2641:1;2637:12;;;;2684;;;2705:61;;2759:4;2751:6;2747:17;2737:27;;2705:61;2812:2;2804:6;2801:14;2781:18;2778:38;2775:161;;2858:10;2853:3;2849:20;2846:1;2839:31;2893:4;2890:1;2883:15;2921:4;2918:1;2911:15;2775:161;;2562:380;;;:::o;2947:127::-;3008:10;3003:3;2999:20;2996:1;2989:31;3039:4;3036:1;3029:15;3063:4;3060:1;3053:15;3079:125;3144:9;;;3165:10;;;3162:36;;;3178:18;;:::i;3209:416::-;3298:1;3335:5;3298:1;3349:270;3370:7;3360:8;3357:21;3349:270;;;3429:4;3425:1;3421:6;3417:17;3411:4;3408:27;3405:53;;;3438:18;;:::i;:::-;3488:7;3478:8;3474:22;3471:55;;;3508:16;;;;3471:55;3587:22;;;;3547:15;;;;3349:270;;;3353:3;3209:416;;;;;:::o;3630:806::-;3679:5;3709:8;3699:80;;-1:-1:-1;3750:1:1;3764:5;;3699:80;3798:4;3788:76;;-1:-1:-1;3835:1:1;3849:5;;3788:76;3880:4;3898:1;3893:59;;;;3966:1;3961:130;;;;3873:218;;3893:59;3923:1;3914:10;;3937:5;;;3961:130;3998:3;3988:8;3985:17;3982:43;;;4005:18;;:::i;:::-;-1:-1:-1;;4061:1:1;4047:16;;4076:5;;3873:218;;4175:2;4165:8;4162:16;4156:3;4150:4;4147:13;4143:36;4137:2;4127:8;4124:16;4119:2;4113:4;4110:12;4106:35;4103:77;4100:159;;;-1:-1:-1;4212:19:1;;;4244:5;;4100:159;4291:34;4316:8;4310:4;4291:34;:::i;:::-;4361:6;4357:1;4353:6;4349:19;4340:7;4337:32;4334:58;;;4372:18;;:::i;:::-;4410:20;;3630:806;-1:-1:-1;;;3630:806:1:o;4441:140::-;4499:5;4528:47;4569:4;4559:8;4555:19;4549:4;4528:47;:::i;4586:168::-;4659:9;;;4690;;4707:15;;;4701:22;;4687:37;4677:71;;4728:18;;:::i;4759:128::-;4826:9;;;4847:11;;;4844:37;;;4861:18;;:::i;4892:217::-;4932:1;4958;4948:132;;5002:10;4997:3;4993:20;4990:1;4983:31;5037:4;5034:1;5027:15;5065:4;5062:1;5055:15;4948:132;-1:-1:-1;5094:9:1;;4892:217::o;5114:251::-;5184:6;5237:2;5225:9;5216:7;5212:23;5208:32;5205:52;;;5253:1;5250;5243:12;5205:52;5285:9;5279:16;5304:31;5329:5;5304:31;:::i;6291:306::-;6379:6;6387;6395;6448:2;6436:9;6427:7;6423:23;6419:32;6416:52;;;6464:1;6461;6454:12;6416:52;6493:9;6487:16;6477:26;;6543:2;6532:9;6528:18;6522:25;6512:35;;6587:2;6576:9;6572:18;6566:25;6556:35;;6291:306;;;;;:::o

Swarm Source

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