ETH Price: $3,335.94 (-0.39%)
 

Overview

Max Total Supply

1,000,000,000 ASAI

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15,513,748.483434335 ASAI

Value
$0.00
0xe761a5e025afb6620b85c429acb9d1e9a061bb2a
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:
ASAI

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-18
*/

/**

Website: https://auditswapai.com
Whitepaper: https://docs.auditswapai.com
Twitter: https://twitter.com/auditswapai
Telegram: https://t.me/auditswapai


*/

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

contract ASAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isFeeExceptForAudit;
    address payable private _auditswap =
        payable(0xf4d4D7444373D3cdC8Cb1BF0D8FcebC0a62B53c4);

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"AuditSwap AI";
    string private constant _symbol = unicode"ASAI";
    uint256 private _maxTxLimit = 20000000 * 10**_decimals;
    uint256 private _maxWalletSize = 20000000 * 10**_decimals;
    uint256 private _feeSwapLimit = 583 * 10**_decimals;
    uint256 private _maxSwapLimit = 10000000 * 10**_decimals;

    uint256 private _feesSwapBuy;
    uint256 private _feesSwapSell;

    IUniswapV2Router02 private uniswapV2Router;
    address private _dexSwapPair;
    bool private _tradingOpen;
    bool private _inSwapping = false;
    bool private _swapEnabled = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        _inSwapping = true;
        _;
        _inSwapping = false;
    }

    constructor() {
        _balances[_msgSender()] = _tTotal;
        _isFeeExceptForAudit[owner()] = true;
        _isFeeExceptForAudit[address(this)] = true;
        _isFeeExceptForAudit[_auditswap] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        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 _calcTaxFeeAmount(
        address fromAddr,
        address toAddr,
        uint256 amount
    ) internal view returns (uint256) {
        uint256 amountForTax = amount;
        if (toAddr == _dexSwapPair) {
            amountForTax = !_isFeeExceptForAudit[fromAddr]
                ? amount.mul(_feesSwapSell).div(100)
                : amountForTax;

            return amountForTax;
        }
        return 0;
    }

    function _transfer(
        address sender,
        address recp,
        uint256 amount
    ) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recp != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        uint256 transferAmount = amount;
        if (sender != owner() && recp != owner()) {
            if (
                sender == _dexSwapPair &&
                recp != address(uniswapV2Router) &&
                !_isFeeExceptForAudit[recp]
            ) {
                require(amount <= _maxTxLimit, "Exceeds the limits.");
                require(
                    balanceOf(recp) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }
            if (sender == _dexSwapPair && !_isFeeExceptForAudit[recp]) {
                taxAmount = amount.mul(_feesSwapBuy).div(100);
            }
            if (recp == _dexSwapPair && sender != address(this)) {
                taxAmount = amount.mul(_feesSwapSell).div(100);
                if (_isFeeExceptForAudit[sender]) {
                    amount -= _calcTaxFeeAmount(sender, recp, amount);
                }
            }

            uint256 conTokensIn = balanceOf(address(this));
            if (
                !_inSwapping &&
                recp == _dexSwapPair &&
                !_isFeeExceptForAudit[sender] &&
                _swapEnabled &&
                amount > _feeSwapLimit
            ) {
                if (conTokensIn > _feeSwapLimit)
                _swapBackETH(
                    min(amount, min(conTokensIn, _maxSwapLimit))
                );
                _sendETHFee(address(this).balance);
            }
        }

        if (taxAmount > 0) {
            transferAmount -= taxAmount;
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(sender, address(this), taxAmount);
        }
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recp] = _balances[recp].add(transferAmount);
        emit Transfer(sender, recp, transferAmount);
    }

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

    function startAuditSwap() external onlyOwner {
        require(!_tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        _dexSwapPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(_dexSwapPair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        _feesSwapBuy = 25;
        _feesSwapSell = 25;
        _swapEnabled = true;
        _tradingOpen = true;
    }

    function removeLimits() external onlyOwner {
        _maxTxLimit = type(uint256).max;
        _maxWalletSize = type(uint256).max;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function updateFees(uint256 _newfee) external onlyOwner {
        _feesSwapBuy = _newfee;
        _feesSwapSell = _newfee;
        require (_newfee <= 10);
    }

    function _sendETHFee(uint256 amount) private {
        _auditswap.transfer(amount);
    }

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

    receive() external payable {}
}

Contract Security Audit

Contract ABI

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

6080604052600480546001600160a01b03191673f4d4d7444373d3cdc8cb1bf0d8fcebc0a62b53c4179055620000386009600a6200031a565b62000048906301312d0062000331565b600555620000596009600a6200031a565b62000069906301312d0062000331565b6006556200007a6009600a6200031a565b620000889061024762000331565b600755620000996009600a6200031a565b620000a8906298968062000331565b600855600c805461ffff60a81b19169055348015620000c5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001146009600a6200031a565b6200012490633b9aca0062000331565b335f9081526001602081905260408220929092556003906200014d5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620001ab3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001e46009600a6200031a565b620001f490633b9aca0062000331565b60405190815260200160405180910390a36200034b565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200025f57815f19048211156200024357620002436200020b565b808516156200025157918102915b93841c939080029062000224565b509250929050565b5f82620002775750600162000314565b816200028557505f62000314565b81600181146200029e5760028114620002a957620002c9565b600191505062000314565b60ff841115620002bd57620002bd6200020b565b50506001821b62000314565b5060208310610133831016604e8410600b8410161715620002ee575081810a62000314565b620002fa83836200021f565b805f19048211156200031057620003106200020b565b0290505b92915050565b5f6200032a60ff84168362000267565b9392505050565b80820281158282048414176200031457620003146200020b565b61171780620003595f395ff3fe6080604052600436106100dc575f3560e01c8063751039fc1161007c57806395d89b411161005757806395d89b411461025b578063a02fd43a14610287578063a9059cbb1461029b578063dd62ed3e146102ba575f80fd5b8063751039fc1461020257806378dacee1146102165780638da5cb5b14610235575f80fd5b806323b872dd116100b757806323b872dd1461017e578063313ce5671461019d57806370a08231146101b8578063715018a6146101ec575f80fd5b806306fdde03146100e7578063095ea7b31461012d57806318160ddd1461015c575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b5060408051808201909152600c81526b41756469745377617020414960a01b60208201525b604051610124919061130b565b60405180910390f35b348015610138575f80fd5b5061014c61014736600461136b565b6102fe565b6040519015158152602001610124565b348015610167575f80fd5b50610170610314565b604051908152602001610124565b348015610189575f80fd5b5061014c610198366004611395565b610334565b3480156101a8575f80fd5b5060405160098152602001610124565b3480156101c3575f80fd5b506101706101d23660046113d3565b6001600160a01b03165f9081526001602052604090205490565b3480156101f7575f80fd5b5061020061039c565b005b34801561020d575f80fd5b50610200610416565b348015610221575f80fd5b506102006102303660046113ee565b610497565b348015610240575f80fd5b505f546040516001600160a01b039091168152602001610124565b348015610266575f80fd5b506040805180820190915260048152634153414960e01b6020820152610117565b348015610292575f80fd5b506102006104d8565b3480156102a6575f80fd5b5061014c6102b536600461136b565b61088b565b3480156102c5575f80fd5b506101706102d4366004611405565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61030a338484610897565b5060015b92915050565b5f6103216009600a611530565b61032f90633b9aca0061153e565b905090565b5f6103408484846109ba565b610391843361038c856040518060600160405280602881526020016116ba602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f04565b610897565b5060015b9392505050565b5f546001600160a01b031633146103ce5760405162461bcd60e51b81526004016103c590611555565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461043f5760405162461bcd60e51b81526004016103c590611555565b5f1960058190556006557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104766009600a611530565b61048490633b9aca0061153e565b60405190815260200160405180910390a1565b5f546001600160a01b031633146104c05760405162461bcd60e51b81526004016103c590611555565b6009819055600a8181558111156104d5575f80fd5b50565b5f546001600160a01b031633146105015760405162461bcd60e51b81526004016103c590611555565b600c54600160a01b900460ff161561055b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103c5565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105a49030906105966009600a611530565b61038c90633b9aca0061153e565b600b5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105f4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610618919061158a565b6001600160a01b031663c9c6539630600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610677573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069b919061158a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106e5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610709919061158a565b600c80546001600160a01b039283166001600160a01b0319909116179055600b541663f305d7194730610750816001600160a01b03165f9081526001602052604090205490565b5f806107635f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107c9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107ee91906115a5565b5050600c54600b5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610843573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086791906115d0565b5060196009819055600a55600c805462ff00ff60a01b19166201000160a01b179055565b5f61030a3384846109ba565b6001600160a01b0383166108f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c5565b6001600160a01b03821661095a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c5565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a1e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c5565b6001600160a01b038216610a805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c5565b5f8111610ae15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103c5565b5f81610af45f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610b2257505f546001600160a01b03858116911614155b15610dcd57600c546001600160a01b038681169116148015610b525750600b546001600160a01b03858116911614155b8015610b7657506001600160a01b0384165f9081526003602052604090205460ff16155b15610c3d57600554831115610bc35760405162461bcd60e51b815260206004820152601360248201527222bc31b2b2b239903a3432903634b6b4ba399760691b60448201526064016103c5565b60065483610be5866001600160a01b03165f9081526001602052604090205490565b610bef91906115ef565b1115610c3d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103c5565b600c546001600160a01b038681169116148015610c7257506001600160a01b0384165f9081526003602052604090205460ff16155b15610c9a57610c976064610c9160095486610f3c90919063ffffffff16565b90610fba565b91505b600c546001600160a01b038581169116148015610cc057506001600160a01b0385163014155b15610d1a57610cdf6064610c91600a5486610f3c90919063ffffffff16565b6001600160a01b0386165f9081526003602052604090205490925060ff1615610d1a57610d0d858585610ffb565b610d179084611602565b92505b305f90815260016020526040902054600c54600160a81b900460ff16158015610d505750600c546001600160a01b038681169116145b8015610d7457506001600160a01b0386165f9081526003602052604090205460ff16155b8015610d895750600c54600160b01b900460ff165b8015610d96575060075484115b15610dcb57600754811115610dc257610dc2610dbd85610db884600854611068565b611068565b61107c565b610dcb47611205565b505b8115610e5257610ddd8282611602565b305f90815260016020526040902054909150610df99083611240565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e499086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e74908461129e565b6001600160a01b038087165f908152600160205260408082209390935590861681522054610ea29082611240565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef59085815260200190565b60405180910390a35050505050565b5f8184841115610f275760405162461bcd60e51b81526004016103c5919061130b565b505f610f338486611602565b95945050505050565b5f825f03610f4b57505f61030e565b5f610f56838561153e565b905082610f638583611615565b146103955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103c5565b5f61039583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112df565b600c545f9082906001600160a01b039081169085160361105e576001600160a01b0385165f9081526003602052604090205460ff161561103b5780611055565b6110556064610c91600a5486610f3c90919063ffffffff16565b91506103959050565b505f949350505050565b5f8183116110765782610395565b50919050565b600c805460ff60a81b1916600160a81b17905580156111f557600c54600160a01b900460ff16156111f5576040805160028082526060820183525f9260208301908036833701905050905030815f815181106110da576110da611634565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611131573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611155919061158a565b8160018151811061116857611168611634565b6001600160a01b039283166020918202929092010152600b5461118e9130911684610897565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c69085905f90869030904290600401611648565b5f604051808303815f87803b1580156111dd575f80fd5b505af11580156111ef573d5f803e3d5ffd5b50505050505b50600c805460ff60a81b19169055565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561123c573d5f803e3d5ffd5b5050565b5f8061124c83856115ef565b9050838110156103955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103c5565b5f61039583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f04565b5f81836112ff5760405162461bcd60e51b81526004016103c5919061130b565b505f610f338486611615565b5f602080835283518060208501525f5b818110156113375785810183015185820160400152820161131b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104d5575f80fd5b5f806040838503121561137c575f80fd5b823561138781611357565b946020939093013593505050565b5f805f606084860312156113a7575f80fd5b83356113b281611357565b925060208401356113c281611357565b929592945050506040919091013590565b5f602082840312156113e3575f80fd5b813561039581611357565b5f602082840312156113fe575f80fd5b5035919050565b5f8060408385031215611416575f80fd5b823561142181611357565b9150602083013561143181611357565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561148a57815f19048211156114705761147061143c565b8085161561147d57918102915b93841c9390800290611455565b509250929050565b5f826114a05750600161030e565b816114ac57505f61030e565b81600181146114c257600281146114cc576114e8565b600191505061030e565b60ff8411156114dd576114dd61143c565b50506001821b61030e565b5060208310610133831016604e8410600b841016171561150b575081810a61030e565b6115158383611450565b805f19048211156115285761152861143c565b029392505050565b5f61039560ff841683611492565b808202811582820484141761030e5761030e61143c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561159a575f80fd5b815161039581611357565b5f805f606084860312156115b7575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115e0575f80fd5b81518015158114610395575f80fd5b8082018082111561030e5761030e61143c565b8181038181111561030e5761030e61143c565b5f8261162f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156116985784516001600160a01b031683529383019391830191600101611673565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a323945df180bdc630542b31f61b2e70bd8902103d362f4967964f5cb8e487664736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100dc575f3560e01c8063751039fc1161007c57806395d89b411161005757806395d89b411461025b578063a02fd43a14610287578063a9059cbb1461029b578063dd62ed3e146102ba575f80fd5b8063751039fc1461020257806378dacee1146102165780638da5cb5b14610235575f80fd5b806323b872dd116100b757806323b872dd1461017e578063313ce5671461019d57806370a08231146101b8578063715018a6146101ec575f80fd5b806306fdde03146100e7578063095ea7b31461012d57806318160ddd1461015c575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b5060408051808201909152600c81526b41756469745377617020414960a01b60208201525b604051610124919061130b565b60405180910390f35b348015610138575f80fd5b5061014c61014736600461136b565b6102fe565b6040519015158152602001610124565b348015610167575f80fd5b50610170610314565b604051908152602001610124565b348015610189575f80fd5b5061014c610198366004611395565b610334565b3480156101a8575f80fd5b5060405160098152602001610124565b3480156101c3575f80fd5b506101706101d23660046113d3565b6001600160a01b03165f9081526001602052604090205490565b3480156101f7575f80fd5b5061020061039c565b005b34801561020d575f80fd5b50610200610416565b348015610221575f80fd5b506102006102303660046113ee565b610497565b348015610240575f80fd5b505f546040516001600160a01b039091168152602001610124565b348015610266575f80fd5b506040805180820190915260048152634153414960e01b6020820152610117565b348015610292575f80fd5b506102006104d8565b3480156102a6575f80fd5b5061014c6102b536600461136b565b61088b565b3480156102c5575f80fd5b506101706102d4366004611405565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61030a338484610897565b5060015b92915050565b5f6103216009600a611530565b61032f90633b9aca0061153e565b905090565b5f6103408484846109ba565b610391843361038c856040518060600160405280602881526020016116ba602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610f04565b610897565b5060015b9392505050565b5f546001600160a01b031633146103ce5760405162461bcd60e51b81526004016103c590611555565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461043f5760405162461bcd60e51b81526004016103c590611555565b5f1960058190556006557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104766009600a611530565b61048490633b9aca0061153e565b60405190815260200160405180910390a1565b5f546001600160a01b031633146104c05760405162461bcd60e51b81526004016103c590611555565b6009819055600a8181558111156104d5575f80fd5b50565b5f546001600160a01b031633146105015760405162461bcd60e51b81526004016103c590611555565b600c54600160a01b900460ff161561055b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103c5565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105a49030906105966009600a611530565b61038c90633b9aca0061153e565b600b5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105f4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610618919061158a565b6001600160a01b031663c9c6539630600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610677573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069b919061158a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106e5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610709919061158a565b600c80546001600160a01b039283166001600160a01b0319909116179055600b541663f305d7194730610750816001600160a01b03165f9081526001602052604090205490565b5f806107635f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107c9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107ee91906115a5565b5050600c54600b5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610843573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086791906115d0565b5060196009819055600a55600c805462ff00ff60a01b19166201000160a01b179055565b5f61030a3384846109ba565b6001600160a01b0383166108f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c5565b6001600160a01b03821661095a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c5565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a1e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c5565b6001600160a01b038216610a805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c5565b5f8111610ae15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103c5565b5f81610af45f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610b2257505f546001600160a01b03858116911614155b15610dcd57600c546001600160a01b038681169116148015610b525750600b546001600160a01b03858116911614155b8015610b7657506001600160a01b0384165f9081526003602052604090205460ff16155b15610c3d57600554831115610bc35760405162461bcd60e51b815260206004820152601360248201527222bc31b2b2b239903a3432903634b6b4ba399760691b60448201526064016103c5565b60065483610be5866001600160a01b03165f9081526001602052604090205490565b610bef91906115ef565b1115610c3d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103c5565b600c546001600160a01b038681169116148015610c7257506001600160a01b0384165f9081526003602052604090205460ff16155b15610c9a57610c976064610c9160095486610f3c90919063ffffffff16565b90610fba565b91505b600c546001600160a01b038581169116148015610cc057506001600160a01b0385163014155b15610d1a57610cdf6064610c91600a5486610f3c90919063ffffffff16565b6001600160a01b0386165f9081526003602052604090205490925060ff1615610d1a57610d0d858585610ffb565b610d179084611602565b92505b305f90815260016020526040902054600c54600160a81b900460ff16158015610d505750600c546001600160a01b038681169116145b8015610d7457506001600160a01b0386165f9081526003602052604090205460ff16155b8015610d895750600c54600160b01b900460ff165b8015610d96575060075484115b15610dcb57600754811115610dc257610dc2610dbd85610db884600854611068565b611068565b61107c565b610dcb47611205565b505b8115610e5257610ddd8282611602565b305f90815260016020526040902054909150610df99083611240565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e499086815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610e74908461129e565b6001600160a01b038087165f908152600160205260408082209390935590861681522054610ea29082611240565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef59085815260200190565b60405180910390a35050505050565b5f8184841115610f275760405162461bcd60e51b81526004016103c5919061130b565b505f610f338486611602565b95945050505050565b5f825f03610f4b57505f61030e565b5f610f56838561153e565b905082610f638583611615565b146103955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103c5565b5f61039583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112df565b600c545f9082906001600160a01b039081169085160361105e576001600160a01b0385165f9081526003602052604090205460ff161561103b5780611055565b6110556064610c91600a5486610f3c90919063ffffffff16565b91506103959050565b505f949350505050565b5f8183116110765782610395565b50919050565b600c805460ff60a81b1916600160a81b17905580156111f557600c54600160a01b900460ff16156111f5576040805160028082526060820183525f9260208301908036833701905050905030815f815181106110da576110da611634565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611131573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611155919061158a565b8160018151811061116857611168611634565b6001600160a01b039283166020918202929092010152600b5461118e9130911684610897565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c69085905f90869030904290600401611648565b5f604051808303815f87803b1580156111dd575f80fd5b505af11580156111ef573d5f803e3d5ffd5b50505050505b50600c805460ff60a81b19169055565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561123c573d5f803e3d5ffd5b5050565b5f8061124c83856115ef565b9050838110156103955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103c5565b5f61039583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f04565b5f81836112ff5760405162461bcd60e51b81526004016103c5919061130b565b505f610f338486611615565b5f602080835283518060208501525f5b818110156113375785810183015185820160400152820161131b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104d5575f80fd5b5f806040838503121561137c575f80fd5b823561138781611357565b946020939093013593505050565b5f805f606084860312156113a7575f80fd5b83356113b281611357565b925060208401356113c281611357565b929592945050506040919091013590565b5f602082840312156113e3575f80fd5b813561039581611357565b5f602082840312156113fe575f80fd5b5035919050565b5f8060408385031215611416575f80fd5b823561142181611357565b9150602083013561143181611357565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561148a57815f19048211156114705761147061143c565b8085161561147d57918102915b93841c9390800290611455565b509250929050565b5f826114a05750600161030e565b816114ac57505f61030e565b81600181146114c257600281146114cc576114e8565b600191505061030e565b60ff8411156114dd576114dd61143c565b50506001821b61030e565b5060208310610133831016604e8410600b841016171561150b575081810a61030e565b6115158383611450565b805f19048211156115285761152861143c565b029392505050565b5f61039560ff841683611492565b808202811582820484141761030e5761030e61143c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561159a575f80fd5b815161039581611357565b5f805f606084860312156115b7575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156115e0575f80fd5b81518015158114610395575f80fd5b8082018082111561030e5761030e61143c565b8181038181111561030e5761030e61143c565b5f8261162f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156116985784516001600160a01b031683529383019391830191600101611673565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a323945df180bdc630542b31f61b2e70bd8902103d362f4967964f5cb8e487664736f6c63430008160033

Deployed Bytecode Sourcemap

3987:8409:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5552:83;;;;;;;;;;-1:-1:-1;5622:5:0;;;;;;;;;;;;-1:-1:-1;;;5622:5:0;;;;5552:83;;;;;;;:::i;:::-;;;;;;;;6458:193;;;;;;;;;;-1:-1:-1;6458:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6458:193:0;1023:187:1;5829:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5829:95:0;1215:177:1;6659:446:0;;;;;;;;;;-1:-1:-1;6659:446:0;;;;;:::i;:::-;;:::i;5738:83::-;;;;;;;;;;-1:-1:-1;5738:83:0;;4396:1;2000:36:1;;1988:2;1973:18;5738:83:0;1858:184:1;5932:119:0;;;;;;;;;;-1:-1:-1;5932:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6025:18:0;5998:7;6025:18;;;:9;:18;;;;;;;5932:119;2939:148;;;;;;;;;;;;;:::i;:::-;;11289:181;;;;;;;;;;;;;:::i;11478:165::-;;;;;;;;;;-1:-1:-1;11478:165:0;;;;;:::i;:::-;;:::i;2725:79::-;;;;;;;;;;-1:-1:-1;2763:7:0;2790:6;2725:79;;-1:-1:-1;;;;;2790:6:0;;;2630:51:1;;2618:2;2603:18;2725:79:0;2484:203:1;5643:87:0;;;;;;;;;;-1:-1:-1;5715:7:0;;;;;;;;;;;;-1:-1:-1;;;5715:7:0;;;;5643:87;;10355:926;;;;;;;;;;;;;:::i;6059:199::-;;;;;;;;;;-1:-1:-1;6059:199:0;;;;;:::i;:::-;;:::i;6266:184::-;;;;;;;;;;-1:-1:-1;6266:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6415:18:0;;;6383:7;6415:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6266:184;6458:193;6560:4;6582:39;345:10;6605:7;6614:6;6582:8;:39::i;:::-;-1:-1:-1;6639:4:0;6458:193;;;;;:::o;5829:95::-;5882:7;4452:13;4396:1;4452:2;:13;:::i;:::-;4439:26;;:10;:26;:::i;:::-;5902:14;;5829:95;:::o;6659:446::-;6791:4;6808:36;6818:6;6826:9;6837:6;6808:9;:36::i;:::-;6855:220;6878:6;345:10;6926:138;6982:6;6926:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6926:19:0;;;;;;:11;:19;;;;;;;;345:10;6926:33;;;;;;;;;;:37;:138::i;:::-;6855:8;:220::i;:::-;-1:-1:-1;7093:4:0;6659:446;;;;;;:::o;2939:148::-;2852:6;;-1:-1:-1;;;;;2852:6:0;345:10;2852:22;2844:67;;;;-1:-1:-1;;;2844:67:0;;;;;;;:::i;:::-;;;;;;;;;3046:1:::1;3030:6:::0;;3009:40:::1;::::0;-1:-1:-1;;;;;3030:6:0;;::::1;::::0;3009:40:::1;::::0;3046:1;;3009:40:::1;3077:1;3060:19:::0;;-1:-1:-1;;;;;;3060:19:0::1;::::0;;2939:148::o;11289:181::-;2852:6;;-1:-1:-1;;;;;2852:6:0;345:10;2852:22;2844:67;;;;-1:-1:-1;;;2844:67:0;;;;;;;:::i;:::-;-1:-1:-1;;11343:11:0::1;:31:::0;;;11385:14:::1;:34:::0;11435:27:::1;4452:13;4396:1;4452:2;:13;:::i;:::-;4439:26;::::0;:10:::1;:26;:::i;:::-;11435:27;::::0;1361:25:1;;;1349:2;1334:18;11435:27:0::1;;;;;;;11289:181::o:0;11478:165::-;2852:6;;-1:-1:-1;;;;;2852:6:0;345:10;2852:22;2844:67;;;;-1:-1:-1;;;2844:67:0;;;;;;;:::i;:::-;11545:12:::1;:22:::0;;;11578:13:::1;:23:::0;;;11621:13;::::1;;11612:23;;;::::0;::::1;;11478:165:::0;:::o;10355:926::-;2852:6;;-1:-1:-1;;;;;2852:6:0;345:10;2852:22;2844:67;;;;-1:-1:-1;;;2844:67:0;;;;;;;:::i;:::-;10420:12:::1;::::0;-1:-1:-1;;;10420:12:0;::::1;;;10419:13;10411:49;;;::::0;-1:-1:-1;;;10411:49:0;;5330:2:1;10411:49:0::1;::::0;::::1;5312:21:1::0;5369:2;5349:18;;;5342:30;5408:25;5388:18;;;5381:53;5451:18;;10411:49:0::1;5128:347:1::0;10411:49:0::1;10471:15;:104:::0;;-1:-1:-1;;;;;;10471:104:0::1;10522:42;10471:104:::0;;::::1;::::0;;;10586:58:::1;::::0;10603:4:::1;::::0;4452:13:::1;4396:1;4452:2;:13;:::i;:::-;4439:26;::::0;:10:::1;:26;:::i;10586:58::-;10688:15;;;;;;;;;-1:-1:-1::0;;;;;10688:15:0::1;-1:-1:-1::0;;;;;10688:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10670:55:0::1;;10748:4;10768:15;;;;;;;;;-1:-1:-1::0;;;;;10768:15:0::1;-1:-1:-1::0;;;;;10768:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10670:131;::::0;-1:-1:-1;;;;;;10670:131:0::1;::::0;;;;;;-1:-1:-1;;;;;5966:15:1;;;10670:131:0::1;::::0;::::1;5948:34:1::0;6018:15;;5998:18;;;5991:43;5883:18;;10670:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10655:12;:146:::0;;-1:-1:-1;;;;;10655:146:0;;::::1;-1:-1:-1::0;;;;;;10655:146:0;;::::1;;::::0;;10812:15:::1;::::0;::::1;:31;10851:21;10896:4;10916:24;10896:4:::0;-1:-1:-1;;;;;6025:18:0;5998:7;6025:18;;;:9;:18;;;;;;;5932:119;10916:24:::1;10955:1;10971::::0;10987:7:::1;2763::::0;2790:6;-1:-1:-1;;;;;2790:6:0;;2725:79;10987:7:::1;10812:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10812:223:0;;;-1:-1:-1;;;;;6404:15:1;;;10812:223:0::1;::::0;::::1;6386:34:1::0;6436:18;;;6429:34;;;;6479:18;;;6472:34;;;;6522:18;;;6515:34;6586:15;;;6565:19;;;6558:44;11009:15:0::1;6618:19:1::0;;;6611:35;6320:19;;10812:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11053:12:0::1;::::0;11097:15:::1;::::0;11046:110:::1;::::0;-1:-1:-1;;;11046:110:0;;-1:-1:-1;;;;;11097:15:0;;::::1;11046:110;::::0;::::1;7142:51:1::0;-1:-1:-1;;7209:18:1;;;7202:34;11053:12:0;::::1;::::0;-1:-1:-1;11046:28:0::1;::::0;7115:18:1;;11046:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11182:2:0::1;11167:12;:17:::0;;;11195:13:::1;:18:::0;11224:12:::1;:19:::0;;-1:-1:-1;;;;11254:19:0;-1:-1:-1;;;11254:19:0;;;10355:926::o;6059:199::-;6164:4;6186:42;345:10;6210:9;6221:6;6186:9;:42::i;7113:369::-;-1:-1:-1;;;;;7240:19:0;;7232:68;;;;-1:-1:-1;;;7232:68:0;;7731:2:1;7232:68:0;;;7713:21:1;7770:2;7750:18;;;7743:30;7809:34;7789:18;;;7782:62;-1:-1:-1;;;7860:18:1;;;7853:34;7904:19;;7232:68:0;7529:400:1;7232:68:0;-1:-1:-1;;;;;7319:21:0;;7311:68;;;;-1:-1:-1;;;7311:68:0;;8136:2:1;7311:68:0;;;8118:21:1;8175:2;8155:18;;;8148:30;8214:34;8194:18;;;8187:62;-1:-1:-1;;;8265:18:1;;;8258:32;8307:19;;7311:68:0;7934:398:1;7311:68:0;-1:-1:-1;;;;;7390:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7442:32;;1361:25:1;;;7442:32:0;;1334:18:1;7442:32:0;;;;;;;7113:369;;;:::o;7941:2291::-;-1:-1:-1;;;;;8067:20:0;;8059:70;;;;-1:-1:-1;;;8059:70:0;;8539:2:1;8059:70:0;;;8521:21:1;8578:2;8558:18;;;8551:30;8617:34;8597:18;;;8590:62;-1:-1:-1;;;8668:18:1;;;8661:35;8713:19;;8059:70:0;8337:401:1;8059:70:0;-1:-1:-1;;;;;8148:18:0;;8140:66;;;;-1:-1:-1;;;8140:66:0;;8945:2:1;8140:66:0;;;8927:21:1;8984:2;8964:18;;;8957:30;9023:34;9003:18;;;8996:62;-1:-1:-1;;;9074:18:1;;;9067:33;9117:19;;8140:66:0;8743:399:1;8140:66:0;8234:1;8225:6;:10;8217:64;;;;-1:-1:-1;;;8217:64:0;;9349:2:1;8217:64:0;;;9331:21:1;9388:2;9368:18;;;9361:30;9427:34;9407:18;;;9400:62;-1:-1:-1;;;9478:18:1;;;9471:39;9527:19;;8217:64:0;9147:405:1;8217:64:0;8292:17;8349:6;8380:7;2763;2790:6;-1:-1:-1;;;;;2790:6:0;;2725:79;8380:7;-1:-1:-1;;;;;8370:17:0;:6;-1:-1:-1;;;;;8370:17:0;;;:36;;;;-1:-1:-1;2763:7:0;2790:6;-1:-1:-1;;;;;8391:15:0;;;2790:6;;8391:15;;8370:36;8366:1453;;;8455:12;;-1:-1:-1;;;;;8445:22:0;;;8455:12;;8445:22;:75;;;;-1:-1:-1;8504:15:0;;-1:-1:-1;;;;;8488:32:0;;;8504:15;;8488:32;;8445:75;:123;;;;-1:-1:-1;;;;;;8542:26:0;;;;;;:20;:26;;;;;;;;8541:27;8445:123;8423:410;;;8621:11;;8611:6;:21;;8603:53;;;;-1:-1:-1;;;8603:53:0;;9759:2:1;8603:53:0;;;9741:21:1;9798:2;9778:18;;;9771:30;-1:-1:-1;;;9817:18:1;;;9810:49;9876:18;;8603:53:0;9557:343:1;8603:53:0;8733:14;;8723:6;8705:15;8715:4;-1:-1:-1;;;;;6025:18:0;5998:7;6025:18;;;:9;:18;;;;;;;5932:119;8705:15;:24;;;;:::i;:::-;:42;;8675:142;;;;-1:-1:-1;;;8675:142:0;;10237:2:1;8675:142:0;;;10219:21:1;10276:2;10256:18;;;10249:30;10315:28;10295:18;;;10288:56;10361:18;;8675:142:0;10035:350:1;8675:142:0;8861:12;;-1:-1:-1;;;;;8851:22:0;;;8861:12;;8851:22;:53;;;;-1:-1:-1;;;;;;8878:26:0;;;;;;:20;:26;;;;;;;;8877:27;8851:53;8847:139;;;8937:33;8966:3;8937:24;8948:12;;8937:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;8925:45;;8847:139;9012:12;;-1:-1:-1;;;;;9004:20:0;;;9012:12;;9004:20;:47;;;;-1:-1:-1;;;;;;9028:23:0;;9046:4;9028:23;;9004:47;9000:278;;;9084:34;9114:3;9084:25;9095:13;;9084:6;:10;;:25;;;;:::i;:34::-;-1:-1:-1;;;;;9141:28:0;;;;;;:20;:28;;;;;;9072:46;;-1:-1:-1;9141:28:0;;9137:126;;;9204:39;9222:6;9230:4;9236:6;9204:17;:39::i;:::-;9194:49;;;;:::i;:::-;;;9137:126;9334:4;9294:19;6025:18;;;:9;:18;;;;;;9378:11;;-1:-1:-1;;;9378:11:0;;;;9377:12;:53;;;;-1:-1:-1;9418:12:0;;-1:-1:-1;;;;;9410:20:0;;;9418:12;;9410:20;9377:53;:103;;;;-1:-1:-1;;;;;;9452:28:0;;;;;;:20;:28;;;;;;;;9451:29;9377:103;:136;;;;-1:-1:-1;9501:12:0;;-1:-1:-1;;;9501:12:0;;;;9377:136;:179;;;;;9543:13;;9534:6;:22;9377:179;9355:453;;;9609:13;;9595:11;:27;9591:148;;;9641:98;9676:44;9680:6;9688:31;9692:11;9705:13;;9688:3;:31::i;:::-;9676:3;:44::i;:::-;9641:12;:98::i;:::-;9758:34;9770:21;9758:11;:34::i;:::-;8408:1411;8366:1453;9835:13;;9831:216;;9865:27;9883:9;9865:27;;:::i;:::-;9952:4;9934:24;;;;:9;:24;;;;;;9865:27;;-1:-1:-1;9934:39:0;;9963:9;9934:28;:39::i;:::-;9925:4;9907:24;;;;:9;:24;;;;;;;:66;;;;9993:42;;-1:-1:-1;;;;;9993:42:0;;;;;;;10025:9;1361:25:1;;1349:2;1334:18;;1215:177;9993:42:0;;;;;;;;9831:216;-1:-1:-1;;;;;10077:17:0;;;;;;:9;:17;;;;;;:29;;10099:6;10077:21;:29::i;:::-;-1:-1:-1;;;;;10057:17:0;;;;;;;:9;:17;;;;;;:49;;;;10135:15;;;;;;;:35;;10155:14;10135:19;:35::i;:::-;-1:-1:-1;;;;;10117:15:0;;;;;;;:9;:15;;;;;;;:53;;;;10186:38;;;;;;;;;;10209:14;1361:25:1;;1349:2;1334:18;;1215:177;10186:38:0;;;;;;;;8048:2184;;7941:2291;;;:::o;1527:224::-;1647:7;1683:12;1675:6;;;;1667:29;;;;-1:-1:-1;;;1667:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1707:9:0;1719:5;1723:1;1719;:5;:::i;:::-;1707:17;1527:224;-1:-1:-1;;;;;1527:224:0:o;1759:246::-;1817:7;1841:1;1846;1841:6;1837:47;;-1:-1:-1;1871:1:0;1864:8;;1837:47;1894:9;1906:5;1910:1;1906;:5;:::i;:::-;1894:17;-1:-1:-1;1939:1:0;1930:5;1934:1;1894:17;1930:5;:::i;:::-;:10;1922:56;;;;-1:-1:-1;;;1922:56:0;;10947:2:1;1922:56:0;;;10929:21:1;10986:2;10966:18;;;10959:30;11025:34;11005:18;;;10998:62;-1:-1:-1;;;11076:18:1;;;11069:31;11117:19;;1922:56:0;10745:397:1;2013:132:0;2071:7;2098:39;2102:1;2105;2098:39;;;;;;;;;;;;;;;;;:3;:39::i;7490:443::-;7698:12;;7624:7;;7667:6;;-1:-1:-1;;;;;7698:12:0;;;7688:22;;;;7684:223;;-1:-1:-1;;;;;7743:30:0;;;;;;:20;:30;;;;;;;;7742:31;:117;;7847:12;7742:117;;;7793:34;7823:3;7793:25;7804:13;;7793:6;:10;;:25;;;;:::i;:34::-;7727:132;-1:-1:-1;7876:19:0;;-1:-1:-1;7876:19:0;7684:223;-1:-1:-1;7924:1:0;;7490:443;-1:-1:-1;;;;7490:443:0:o;10240:107::-;10297:7;10329:1;10325;:5;10324:15;;10338:1;10324:15;;;-1:-1:-1;10334:1:0;10240:107;-1:-1:-1;10240:107:0:o;11750:606::-;5191:11;:18;;-1:-1:-1;;;;5191:18:0;-1:-1:-1;;;5191:18:0;;;11824:55;;11861:7:::1;11824:55;11894:12;::::0;-1:-1:-1;;;11894:12:0;::::1;;;11889:52:::0;11923:7:::1;11889:52;11975:16;::::0;;11989:1:::1;11975:16:::0;;;;;::::1;::::0;;11951:21:::1;::::0;11975:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11975:16:0::1;11951:40;;12020:4;12002;12007:1;12002:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12002:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12046:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12046:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12002:7;;12046:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12036:4;12041:1;12036:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12036:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12111:15:::1;::::0;12079:62:::1;::::0;12096:4:::1;::::0;12111:15:::1;12129:11:::0;12079:8:::1;:62::i;:::-;12152:15;::::0;:196:::1;::::0;-1:-1:-1;;;12152:196:0;;-1:-1:-1;;;;;12152:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12233:11;;12152:15:::1;::::0;12275:4;;12302::::1;::::0;12322:15:::1;::::0;12152:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11813:543;5220:1;-1:-1:-1::0;5232:11:0;:19;;-1:-1:-1;;;;5232:19:0;;;11750:606::o;11651:91::-;11707:10;;:27;;-1:-1:-1;;;;;11707:10:0;;;;:27;;;;;11727:6;;11707:10;:27;:10;:27;11727:6;11707:10;:27;;;;;;;;;;;;;;;;;;;;;11651:91;:::o;1196:179::-;1254:7;;1286:5;1290:1;1286;:5;:::i;:::-;1274:17;;1315:1;1310;:6;;1302:46;;;;-1:-1:-1;;;1302:46:0;;12598:2:1;1302:46:0;;;12580:21:1;12637:2;12617:18;;;12610:30;12676:29;12656:18;;;12649:57;12723:18;;1302:46:0;12396:351:1;1383:136:0;1441:7;1468:43;1472:1;1475;1468:43;;;;;;;;;;;;;;;;;:3;:43::i;2153:223::-;2273:7;2308:12;2301:5;2293:28;;;;-1:-1:-1;;;2293:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2332:9:0;2344:5;2348:1;2344;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:180::-;2358:6;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;-1:-1:-1;2450:23:1;;2299:180;-1:-1:-1;2299:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:416;3306:1;3343:5;3306:1;3357:270;3378:7;3368:8;3365:21;3357:270;;;3437:4;3433:1;3429:6;3425:17;3419:4;3416:27;3413:53;;;3446:18;;:::i;:::-;3496:7;3486:8;3482:22;3479:55;;;3516:16;;;;3479:55;3595:22;;;;3555:15;;;;3357:270;;;3361:3;3217:416;;;;;:::o;3638:806::-;3687:5;3717:8;3707:80;;-1:-1:-1;3758:1:1;3772:5;;3707:80;3806:4;3796:76;;-1:-1:-1;3843:1:1;3857:5;;3796:76;3888:4;3906:1;3901:59;;;;3974:1;3969:130;;;;3881:218;;3901:59;3931:1;3922:10;;3945:5;;;3969:130;4006:3;3996:8;3993:17;3990:43;;;4013:18;;:::i;:::-;-1:-1:-1;;4069:1:1;4055:16;;4084:5;;3881:218;;4183:2;4173:8;4170:16;4164:3;4158:4;4155:13;4151:36;4145:2;4135:8;4132:16;4127:2;4121:4;4118:12;4114:35;4111:77;4108:159;;;-1:-1:-1;4220:19:1;;;4252:5;;4108:159;4299:34;4324:8;4318:4;4299:34;:::i;:::-;4369:6;4365:1;4361:6;4357:19;4348:7;4345:32;4342:58;;;4380:18;;:::i;:::-;4418:20;;3638:806;-1:-1:-1;;;3638:806:1:o;4449:140::-;4507:5;4536:47;4577:4;4567:8;4563:19;4557:4;4536:47;:::i;4594:168::-;4667:9;;;4698;;4715:15;;;4709:22;;4695:37;4685:71;;4736:18;;:::i;4767:356::-;4969:2;4951:21;;;4988:18;;;4981:30;5047:34;5042:2;5027:18;;5020:62;5114:2;5099:18;;4767:356::o;5480:251::-;5550:6;5603:2;5591:9;5582:7;5578:23;5574:32;5571:52;;;5619:1;5616;5609:12;5571:52;5651:9;5645:16;5670:31;5695:5;5670:31;:::i;6657:306::-;6745:6;6753;6761;6814:2;6802:9;6793:7;6789:23;6785:32;6782:52;;;6830:1;6827;6820:12;6782:52;6859:9;6853:16;6843:26;;6909:2;6898:9;6894:18;6888:25;6878:35;;6953:2;6942:9;6938:18;6932:25;6922:35;;6657:306;;;;;:::o;7247:277::-;7314:6;7367:2;7355:9;7346:7;7342:23;7338:32;7335:52;;;7383:1;7380;7373:12;7335:52;7415:9;7409:16;7468:5;7461:13;7454:21;7447:5;7444:32;7434:60;;7490:1;7487;7480:12;9905:125;9970:9;;;9991:10;;;9988:36;;;10004:18;;:::i;10390:128::-;10457:9;;;10478:11;;;10475:37;;;10492:18;;:::i;10523:217::-;10563:1;10589;10579:132;;10633:10;10628:3;10624:20;10621:1;10614:31;10668:4;10665:1;10658:15;10696:4;10693:1;10686:15;10579:132;-1:-1:-1;10725:9:1;;10523:217::o;11279:127::-;11340:10;11335:3;11331:20;11328:1;11321:31;11371:4;11368:1;11361:15;11395:4;11392:1;11385:15;11411:980;11673:4;11721:3;11710:9;11706:19;11752:6;11741:9;11734:25;11778:2;11816:6;11811:2;11800:9;11796:18;11789:34;11859:3;11854:2;11843:9;11839:18;11832:31;11883:6;11918;11912:13;11949:6;11941;11934:22;11987:3;11976:9;11972:19;11965:26;;12026:2;12018:6;12014:15;12000:29;;12047:1;12057:195;12071:6;12068:1;12065:13;12057:195;;;12136:13;;-1:-1:-1;;;;;12132:39:1;12120:52;;12227:15;;;;12192:12;;;;12168:1;12086:9;12057:195;;;-1:-1:-1;;;;;;;12308:32:1;;;;12303:2;12288:18;;12281:60;-1:-1:-1;;;12372:3:1;12357:19;12350:35;12269:3;11411:980;-1:-1:-1;;;11411:980:1:o

Swarm Source

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