ETH Price: $3,005.53 (+5.42%)
Gas: 2 Gwei

Token

CROG on ETH (CROG)
 

Overview

Max Total Supply

1,000,000,000 CROG

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
23,943,695.967587948 CROG

Value
$0.00
0xecb544e145531c8be2584e13543e8c652d85381c
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:
CROG

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-03
*/

/**

CROG is a memecoin on the "in a while, crocodile" narrative.

Website:     https://crogcoin.vip
Telegram:    https://t.me/crog_erc
Twitter:     https://twitter.com/crog_erc

**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.24;

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

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

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

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

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

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

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

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

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

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

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

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedCROG;
    mapping(address => bool) private bots;

    bool private inSwap = false;
    bool private swapEnabled = false;
   
    ICROGRouter private crogRouter;
    address private crogPair;
    bool private tradingOpen;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"CROG on ETH";
    string private constant _symbol = unicode"CROG";

    uint256 public _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 public _maxTaxSwap = _tTotal.mul(1).div(100);
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _totalCROG = _tTotal.mul(80).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100);
    
    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;

    address payable private _walletCROG;
    uint256 firstBlock;
    
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _walletCROG = payable(0x8d1605d1A65D0423eEa0Ce1a103B3EE7C9390846);
        _balances[_msgSender()] = _tTotal;
        _isExcludedCROG[owner()] = true;
        _isExcludedCROG[address(this)] = true;
        _isExcludedCROG[_walletCROG] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function startCROG() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        crogRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            _totalCROG,
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(crogPair).approve(address(crogRouter), type(uint).max);

        swapEnabled = true;
        tradingOpen = true;

        firstBlock = block.number;
    }

    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 min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    receive() external payable {}

    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) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            bool takeCROGBack = contractTokenBalance > _taxSwapThreshold;

            if (
                from == crogPair &&
                to != address(crogRouter) &&
                !_isExcludedCROG[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

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

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

            if (
                !inSwap &&
                swapEnabled &&
                to == crogPair &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedCROG[from] &&
                !_isExcludedCROG[to]
            ) {
                if(takeCROGBack){
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                _walletCROG.transfer(address(this).balance);
            }
        }
        
        _transferCROG(from, to, amount);
    }

    function createCROG() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        crogRouter = ICROGRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(crogRouter), _tTotal);

        crogPair = ICROGFactory(crogRouter.factory()).createPair(
            address(this),
            crogRouter.WETH()
        );
    }

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

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

    function _transferCROG(
        address from,
        address to,
        uint256 amount
    ) internal {
        bool takeCROGFees = true;
        if (_isExcludedCROG[from]) takeCROGFees = false;

        if (takeCROGFees) {
            uint256 feeCROG = 0;
            feeCROG = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            if (to == crogPair && from != address(this)) {
                feeCROG = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }
            if (feeCROG > 0) {
                _balances[address(this)] = _balances[address(this)].add(
                    feeCROG
                );
                emit Transfer(from, address(this), feeCROG);
            }
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount.sub(feeCROG));
            emit Transfer(from, to, amount.sub(feeCROG));
        } else {
            unchecked {
                _balances[from] = _balances[from] - amount;
                _balances[to] = _balances[to] + amount;
            }
            emit Transfer(from, to, amount);
        }
    }

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

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

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

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":[],"name":"_totalCROG","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":"createCROG","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":"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":"startCROG","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"}]

60806040526005805461ffff19169055620000476064620000406002620000296009600a62000483565b6200003990633b9aca0062000493565b9062000260565b90620002f3565b600755620000646064620000406001620000296009600a62000483565b600855620000756009600a62000483565b6200008290606462000493565b600955620000a160646200004060506009600a62000029919062000483565b600a55620000c060646200004060026009600a62000029919062000483565b600b556014600c556014600d555f600e555f600f55600a601055600a601155600a6012555f601355348015620000f4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601480546001600160a01b031916738d1605d1a65d0423eea0ce1a103b3ee7c9390846179055620001696009600a62000483565b6200017990633b9aca0062000493565b335f908152600160208190526040822092909255600390620001a25f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601454909116835291208054909216179055620002003390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002396009600a62000483565b6200024990633b9aca0062000493565b60405190815260200160405180910390a36200051b565b5f825f036200027157505f620002ed565b5f6200027e838562000493565b9050826200028d8583620004ad565b14620002ea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620002ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200033c60201b60201c565b5f81836200035f5760405162461bcd60e51b8152600401620002e19190620004cd565b505f6200036d8486620004ad565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003ca57815f1904821115620003ae57620003ae62000376565b80851615620003bc57918102915b93841c93908002906200038f565b509250929050565b5f82620003e257506001620002ed565b81620003f057505f620002ed565b8160018114620004095760028114620004145762000434565b6001915050620002ed565b60ff84111562000428576200042862000376565b50506001821b620002ed565b5060208310610133831016604e8410600b841016171562000459575081810a620002ed565b6200046583836200038a565b805f19048211156200047b576200047b62000376565b029392505050565b5f620002ea60ff841683620003d2565b8082028115828204841417620002ed57620002ed62000376565b5f82620004c857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b81811015620004fb57858101830151858201604001528201620004dd565b505f604082860101526040601f19601f8301168501019250505092915050565b611c8380620005295f395ff3fe608060405260043610610134575f3560e01c8063715018a6116100a857806391b9480d1161006d57806391b9480d1461035157806395d89b4114610365578063a9059cbb14610391578063bf474bed146103b0578063d34628cc146103c5578063dd62ed3e146103e4575f80fd5b8063715018a6146102d9578063751039fc146102ed5780637d1db4a5146103015780638da5cb5b146103165780638f9a55c01461033c575f80fd5b806323b872dd116100f957806323b872dd14610200578063313ce5671461021f57806331c2d8471461023a5780633bbac579146102595780634acbc8eb1461029057806370a08231146102a5575f80fd5b806306fdde031461013f578063095ea7b3146101845780630faee56f146101b3578063135be7cf146101d657806318160ddd146101ec575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600b81526a086a49e8e40dedc408aa8960ab1b60208201525b60405161017b919061176f565b60405180910390f35b34801561018f575f80fd5b506101a361019e3660046117e2565b610428565b604051901515815260200161017b565b3480156101be575f80fd5b506101c860085481565b60405190815260200161017b565b3480156101e1575f80fd5b506101ea61043e565b005b3480156101f7575f80fd5b506101c86106ae565b34801561020b575f80fd5b506101a361021a36600461180c565b6106ce565b34801561022a575f80fd5b506040516009815260200161017b565b348015610245575f80fd5b506101ea61025436600461185e565b610730565b348015610264575f80fd5b506101a361027336600461191e565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561029b575f80fd5b506101c8600a5481565b3480156102b0575f80fd5b506101c86102bf36600461191e565b6001600160a01b03165f9081526001602052604090205490565b3480156102e4575f80fd5b506101ea6107b7565b3480156102f8575f80fd5b506101ea610828565b34801561030c575f80fd5b506101c860075481565b348015610321575f80fd5b505f546040516001600160a01b03909116815260200161017b565b348015610347575f80fd5b506101c8600b5481565b34801561035c575f80fd5b506101ea6108d9565b348015610370575f80fd5b5060408051808201909152600481526343524f4760e01b602082015261016e565b34801561039c575f80fd5b506101a36103ab3660046117e2565b610ac5565b3480156103bb575f80fd5b506101c860095481565b3480156103d0575f80fd5b506101ea6103df36600461185e565b610ad1565b3480156103ef575f80fd5b506101c86103fe366004611939565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610434338484610b55565b5060015b92915050565b5f546001600160a01b031633146104705760405162461bcd60e51b815260040161046790611970565b60405180910390fd5b600654600160a01b900460ff16156104c45760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610467565b6005805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d000017908190556105259030906001600160a01b0362010000909104166105126009600a611a99565b61052090633b9aca00611aa7565b610b55565b600560029054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610576573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059a9190611abe565b6001600160a01b031663c9c6539630600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061e9190611abe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190611abe565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f6106bb6009600a611a99565b6106c990633b9aca00611aa7565b905090565b5f6106da848484610c79565b610726843361052085604051806060016040528060288152602001611c06602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e9565b5060019392505050565b5f546001600160a01b031633146107595760405162461bcd60e51b815260040161046790611970565b5f5b81518110156107b3575f60045f84848151811061077a5761077a611ad9565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161075b565b5050565b5f546001600160a01b031633146107e05760405162461bcd60e51b815260040161046790611970565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108515760405162461bcd60e51b815260040161046790611970565b61085d6009600a611a99565b61086b90633b9aca00611aa7565b60075561087a6009600a611a99565b61088890633b9aca00611aa7565b600b557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108b86009600a611a99565b6108c690633b9aca00611aa7565b60405190815260200160405180910390a1565b5f546001600160a01b031633146109025760405162461bcd60e51b815260040161046790611970565b600654600160a01b900460ff16156109565760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610467565b600560029054906101000a90046001600160a01b03166001600160a01b031663f305d7194730600a545f806109925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109f8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a1d9190611aed565b505060065460055460405163095ea7b360e01b81526001600160a01b0362010000909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9c9190611b18565b506005805461ff0019166101001790556006805460ff60a01b1916600160a01b17905543601555565b5f610434338484610c79565b5f546001600160a01b03163314610afa5760405162461bcd60e51b815260040161046790611970565b5f5b81518110156107b357600160045f848481518110610b1c57610b1c611ad9565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610afc565b6001600160a01b038316610bb75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610c185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cdd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610d3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610da05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b600554610100900460ff161580610db9575060055460ff165b15610e4e576001600160a01b0383165f90815260016020526040902054610de09082611221565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610e0e9082611269565b6001600160a01b038084165f8181526001602052604090819020939093559151908516905f80516020611c2e83398151915290610c6c9085815260200190565b305f9081526001602052604081205490546001600160a01b03858116911614801590610e8757505f546001600160a01b03848116911614155b156111d8576001600160a01b0384165f9081526004602052604090205460ff16158015610ecc57506001600160a01b0383165f9081526004602052604090205460ff16155b610ed4575f80fd5b600954600654908211906001600160a01b038681169116148015610f0c57506005546001600160a01b03858116620100009092041614155b8015610f3057506001600160a01b0384165f9081526003602052604090205460ff16155b1561103757600754831115610f875760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b600b5483610fa9866001600160a01b03165f9081526001602052604090205490565b610fb39190611b37565b11156110015760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b4360155460036110119190611b37565b111561102257833b15611022575f80fd5b60138054905f61103183611b4a565b91905055505b6006546001600160a01b0385811691161480159061106d57506001600160a01b0384165f9081526003602052604090205460ff16155b156110ec57600b5483611094866001600160a01b03165f9081526001602052604090205490565b61109e9190611b37565b11156110ec5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b60055460ff161580156111065750600554610100900460ff165b801561111f57506006546001600160a01b038581169116145b801561112e5750601254601354115b801561115257506001600160a01b0385165f9081526003602052604090205460ff16155b801561117657506001600160a01b0384165f9081526003602052604090205460ff16155b156111d657801561119e5761119e61119984611194856008546112c7565b6112c7565b6112db565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156111d4573d5f803e3d5ffd5b505b505b6111e3848484611467565b50505050565b5f818484111561120c5760405162461bcd60e51b8152600401610467919061176f565b505f6112188486611b62565b95945050505050565b5f61126283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e9565b9392505050565b5f806112758385611b37565b9050838110156112625760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f8183116112d55782611262565b50919050565b6005805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131b5761131b611ad9565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b09190611abe565b816001815181106113c3576113c3611ad9565b6001600160a01b0392831660209182029290920101526005546113ef9130916201000090041684610b55565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061142c9085905f90869030904290600401611b75565b5f604051808303815f87803b158015611443575f80fd5b505af1158015611455573d5f803e3d5ffd5b50506005805460ff1916905550505050565b6001600160a01b0383165f9081526003602052604090205460019060ff161561148d57505f5b801561162d575f6114c060646114ba601054601354116114af57600c546114b3565b600e545b8690611689565b90611707565b6006549091506001600160a01b0385811691161480156114e957506001600160a01b0385163014155b156115165761151360646114ba6011546013541161150957600d546114b3565b600f548690611689565b90505b801561157b57305f908152600160205260409020546115359082611269565b305f81815260016020526040908190209290925590516001600160a01b038716905f80516020611c2e833981519152906115729085815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461159d9084611221565b6001600160a01b0386165f908152600160205260409020556115e06115c28483611221565b6001600160a01b0386165f9081526001602052604090205490611269565b6001600160a01b038086165f8181526001602052604090209290925586165f80516020611c2e8339815191526116168685611221565b60405190815260200160405180910390a3506111e3565b6001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591515f80516020611c2e8339815191529061167b9086815260200190565b60405180910390a350505050565b5f825f0361169857505f610438565b5f6116a38385611aa7565b9050826116b08583611be6565b146112625760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b5f61126283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836117635760405162461bcd60e51b8152600401610467919061176f565b505f6112188486611be6565b5f602080835283518060208501525f5b8181101561179b5785810183015185820160400152820161177f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117cf575f80fd5b50565b80356117dd816117bb565b919050565b5f80604083850312156117f3575f80fd5b82356117fe816117bb565b946020939093013593505050565b5f805f6060848603121561181e575f80fd5b8335611829816117bb565b92506020840135611839816117bb565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561186f575f80fd5b823567ffffffffffffffff80821115611886575f80fd5b818501915085601f830112611899575f80fd5b8135818111156118ab576118ab61184a565b8060051b604051601f19603f830116810181811085821117156118d0576118d061184a565b6040529182528482019250838101850191888311156118ed575f80fd5b938501935b8285101561191257611903856117d2565b845293850193928501926118f2565b98975050505050505050565b5f6020828403121561192e575f80fd5b8135611262816117bb565b5f806040838503121561194a575f80fd5b8235611955816117bb565b91506020830135611965816117bb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119f357815f19048211156119d9576119d96119a5565b808516156119e657918102915b93841c93908002906119be565b509250929050565b5f82611a0957506001610438565b81611a1557505f610438565b8160018114611a2b5760028114611a3557611a51565b6001915050610438565b60ff841115611a4657611a466119a5565b50506001821b610438565b5060208310610133831016604e8410600b8410161715611a74575081810a610438565b611a7e83836119b9565b805f1904821115611a9157611a916119a5565b029392505050565b5f61126260ff8416836119fb565b8082028115828204841417610438576104386119a5565b5f60208284031215611ace575f80fd5b8151611262816117bb565b634e487b7160e01b5f52603260045260245ffd5b5f805f60608486031215611aff575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b28575f80fd5b81518015158114611262575f80fd5b80820180821115610438576104386119a5565b5f60018201611b5b57611b5b6119a5565b5060010190565b81810381811115610438576104386119a5565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611bc55784516001600160a01b031683529383019391830191600101611ba0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611c0057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209653e9c921543576a6ddd079cb06aa03f1af744a429d8975e4fb33fadae9b35064736f6c63430008180033

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063715018a6116100a857806391b9480d1161006d57806391b9480d1461035157806395d89b4114610365578063a9059cbb14610391578063bf474bed146103b0578063d34628cc146103c5578063dd62ed3e146103e4575f80fd5b8063715018a6146102d9578063751039fc146102ed5780637d1db4a5146103015780638da5cb5b146103165780638f9a55c01461033c575f80fd5b806323b872dd116100f957806323b872dd14610200578063313ce5671461021f57806331c2d8471461023a5780633bbac579146102595780634acbc8eb1461029057806370a08231146102a5575f80fd5b806306fdde031461013f578063095ea7b3146101845780630faee56f146101b3578063135be7cf146101d657806318160ddd146101ec575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600b81526a086a49e8e40dedc408aa8960ab1b60208201525b60405161017b919061176f565b60405180910390f35b34801561018f575f80fd5b506101a361019e3660046117e2565b610428565b604051901515815260200161017b565b3480156101be575f80fd5b506101c860085481565b60405190815260200161017b565b3480156101e1575f80fd5b506101ea61043e565b005b3480156101f7575f80fd5b506101c86106ae565b34801561020b575f80fd5b506101a361021a36600461180c565b6106ce565b34801561022a575f80fd5b506040516009815260200161017b565b348015610245575f80fd5b506101ea61025436600461185e565b610730565b348015610264575f80fd5b506101a361027336600461191e565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561029b575f80fd5b506101c8600a5481565b3480156102b0575f80fd5b506101c86102bf36600461191e565b6001600160a01b03165f9081526001602052604090205490565b3480156102e4575f80fd5b506101ea6107b7565b3480156102f8575f80fd5b506101ea610828565b34801561030c575f80fd5b506101c860075481565b348015610321575f80fd5b505f546040516001600160a01b03909116815260200161017b565b348015610347575f80fd5b506101c8600b5481565b34801561035c575f80fd5b506101ea6108d9565b348015610370575f80fd5b5060408051808201909152600481526343524f4760e01b602082015261016e565b34801561039c575f80fd5b506101a36103ab3660046117e2565b610ac5565b3480156103bb575f80fd5b506101c860095481565b3480156103d0575f80fd5b506101ea6103df36600461185e565b610ad1565b3480156103ef575f80fd5b506101c86103fe366004611939565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610434338484610b55565b5060015b92915050565b5f546001600160a01b031633146104705760405162461bcd60e51b815260040161046790611970565b60405180910390fd5b600654600160a01b900460ff16156104c45760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610467565b6005805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d000017908190556105259030906001600160a01b0362010000909104166105126009600a611a99565b61052090633b9aca00611aa7565b610b55565b600560029054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610576573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059a9190611abe565b6001600160a01b031663c9c6539630600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061e9190611abe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190611abe565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f6106bb6009600a611a99565b6106c990633b9aca00611aa7565b905090565b5f6106da848484610c79565b610726843361052085604051806060016040528060288152602001611c06602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e9565b5060019392505050565b5f546001600160a01b031633146107595760405162461bcd60e51b815260040161046790611970565b5f5b81518110156107b3575f60045f84848151811061077a5761077a611ad9565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161075b565b5050565b5f546001600160a01b031633146107e05760405162461bcd60e51b815260040161046790611970565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108515760405162461bcd60e51b815260040161046790611970565b61085d6009600a611a99565b61086b90633b9aca00611aa7565b60075561087a6009600a611a99565b61088890633b9aca00611aa7565b600b557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108b86009600a611a99565b6108c690633b9aca00611aa7565b60405190815260200160405180910390a1565b5f546001600160a01b031633146109025760405162461bcd60e51b815260040161046790611970565b600654600160a01b900460ff16156109565760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610467565b600560029054906101000a90046001600160a01b03166001600160a01b031663f305d7194730600a545f806109925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109f8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a1d9190611aed565b505060065460055460405163095ea7b360e01b81526001600160a01b0362010000909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9c9190611b18565b506005805461ff0019166101001790556006805460ff60a01b1916600160a01b17905543601555565b5f610434338484610c79565b5f546001600160a01b03163314610afa5760405162461bcd60e51b815260040161046790611970565b5f5b81518110156107b357600160045f848481518110610b1c57610b1c611ad9565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610afc565b6001600160a01b038316610bb75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610c185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cdd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610d3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610da05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b600554610100900460ff161580610db9575060055460ff165b15610e4e576001600160a01b0383165f90815260016020526040902054610de09082611221565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610e0e9082611269565b6001600160a01b038084165f8181526001602052604090819020939093559151908516905f80516020611c2e83398151915290610c6c9085815260200190565b305f9081526001602052604081205490546001600160a01b03858116911614801590610e8757505f546001600160a01b03848116911614155b156111d8576001600160a01b0384165f9081526004602052604090205460ff16158015610ecc57506001600160a01b0383165f9081526004602052604090205460ff16155b610ed4575f80fd5b600954600654908211906001600160a01b038681169116148015610f0c57506005546001600160a01b03858116620100009092041614155b8015610f3057506001600160a01b0384165f9081526003602052604090205460ff16155b1561103757600754831115610f875760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b600b5483610fa9866001600160a01b03165f9081526001602052604090205490565b610fb39190611b37565b11156110015760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b4360155460036110119190611b37565b111561102257833b15611022575f80fd5b60138054905f61103183611b4a565b91905055505b6006546001600160a01b0385811691161480159061106d57506001600160a01b0384165f9081526003602052604090205460ff16155b156110ec57600b5483611094866001600160a01b03165f9081526001602052604090205490565b61109e9190611b37565b11156110ec5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b60055460ff161580156111065750600554610100900460ff165b801561111f57506006546001600160a01b038581169116145b801561112e5750601254601354115b801561115257506001600160a01b0385165f9081526003602052604090205460ff16155b801561117657506001600160a01b0384165f9081526003602052604090205460ff16155b156111d657801561119e5761119e61119984611194856008546112c7565b6112c7565b6112db565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156111d4573d5f803e3d5ffd5b505b505b6111e3848484611467565b50505050565b5f818484111561120c5760405162461bcd60e51b8152600401610467919061176f565b505f6112188486611b62565b95945050505050565b5f61126283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e9565b9392505050565b5f806112758385611b37565b9050838110156112625760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f8183116112d55782611262565b50919050565b6005805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131b5761131b611ad9565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b09190611abe565b816001815181106113c3576113c3611ad9565b6001600160a01b0392831660209182029290920101526005546113ef9130916201000090041684610b55565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061142c9085905f90869030904290600401611b75565b5f604051808303815f87803b158015611443575f80fd5b505af1158015611455573d5f803e3d5ffd5b50506005805460ff1916905550505050565b6001600160a01b0383165f9081526003602052604090205460019060ff161561148d57505f5b801561162d575f6114c060646114ba601054601354116114af57600c546114b3565b600e545b8690611689565b90611707565b6006549091506001600160a01b0385811691161480156114e957506001600160a01b0385163014155b156115165761151360646114ba6011546013541161150957600d546114b3565b600f548690611689565b90505b801561157b57305f908152600160205260409020546115359082611269565b305f81815260016020526040908190209290925590516001600160a01b038716905f80516020611c2e833981519152906115729085815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461159d9084611221565b6001600160a01b0386165f908152600160205260409020556115e06115c28483611221565b6001600160a01b0386165f9081526001602052604090205490611269565b6001600160a01b038086165f8181526001602052604090209290925586165f80516020611c2e8339815191526116168685611221565b60405190815260200160405180910390a3506111e3565b6001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591515f80516020611c2e8339815191529061167b9086815260200190565b60405180910390a350505050565b5f825f0361169857505f610438565b5f6116a38385611aa7565b9050826116b08583611be6565b146112625760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b5f61126283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836117635760405162461bcd60e51b8152600401610467919061176f565b505f6112188486611be6565b5f602080835283518060208501525f5b8181101561179b5785810183015185820160400152820161177f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117cf575f80fd5b50565b80356117dd816117bb565b919050565b5f80604083850312156117f3575f80fd5b82356117fe816117bb565b946020939093013593505050565b5f805f6060848603121561181e575f80fd5b8335611829816117bb565b92506020840135611839816117bb565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561186f575f80fd5b823567ffffffffffffffff80821115611886575f80fd5b818501915085601f830112611899575f80fd5b8135818111156118ab576118ab61184a565b8060051b604051601f19603f830116810181811085821117156118d0576118d061184a565b6040529182528482019250838101850191888311156118ed575f80fd5b938501935b8285101561191257611903856117d2565b845293850193928501926118f2565b98975050505050505050565b5f6020828403121561192e575f80fd5b8135611262816117bb565b5f806040838503121561194a575f80fd5b8235611955816117bb565b91506020830135611965816117bb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156119f357815f19048211156119d9576119d96119a5565b808516156119e657918102915b93841c93908002906119be565b509250929050565b5f82611a0957506001610438565b81611a1557505f610438565b8160018114611a2b5760028114611a3557611a51565b6001915050610438565b60ff841115611a4657611a466119a5565b50506001821b610438565b5060208310610133831016604e8410600b8410161715611a74575081810a610438565b611a7e83836119b9565b805f1904821115611a9157611a916119a5565b029392505050565b5f61126260ff8416836119fb565b8082028115828204841417610438576104386119a5565b5f60208284031215611ace575f80fd5b8151611262816117bb565b634e487b7160e01b5f52603260045260245ffd5b5f805f60608486031215611aff575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611b28575f80fd5b81518015158114611262575f80fd5b80820180821115610438576104386119a5565b5f60018201611b5b57611b5b6119a5565b5060010190565b81810381811115610438576104386119a5565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611bc55784516001600160a01b031683529383019391830191600101611ba0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611c0057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209653e9c921543576a6ddd079cb06aa03f1af744a429d8975e4fb33fadae9b35064736f6c63430008180033

Deployed Bytecode Sourcemap

3913:9872:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13283:83;;;;;;;;;;-1:-1:-1;13353:5:0;;;;;;;;;;;;-1:-1:-1;;;13353:5:0;;;;13283:83;;;;;;;:::i;:::-;;;;;;;;6724:186;;;;;;;;;;-1:-1:-1;6724:186:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6724:186:0;1162:187:1;4694:52:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4694:52:0;1354:177:1;10058:419:0;;;;;;;;;;;;;:::i;:::-;;13560:95;;;;;;;;;;;;;:::i;6918:446::-;;;;;;;;;;-1:-1:-1;6918:446:0;;;;;:::i;:::-;;:::i;13469:83::-;;;;;;;;;;-1:-1:-1;13469:83:0;;4438:1;2139:36:1;;2127:2;2112:18;13469:83:0;1997:184:1;10827:168:0;;;;;;;;;;-1:-1:-1;10827:168:0;;;;;:::i;:::-;;:::i;11003:86::-;;;;;;;;;;-1:-1:-1;11003:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;11074:7:0;11050:4;11074:7;;;:4;:7;;;;;;;;;11003:86;4816:52;;;;;;;;;;;;;;;;13663:119;;;;;;;;;;-1:-1:-1;13663:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;13756:18:0;13729:7;13756:18;;;:9;:18;;;;;;;13663:119;3758:148;;;;;;;;;;;;;:::i;10485:162::-;;;;;;;;;;;;;:::i;4634:53::-;;;;;;;;;;;;;;;;3544:79;;;;;;;;;;-1:-1:-1;3582:7:0;3609:6;3544:79;;-1:-1:-1;;;;;3609:6:0;;;3842:51:1;;3830:2;3815:18;3544:79:0;3696:203:1;4875:55:0;;;;;;;;;;;;;;;;5846:494;;;;;;;;;;;;;:::i;13374:87::-;;;;;;;;;;-1:-1:-1;13446:7:0;;;;;;;;;;;;-1:-1:-1;;;13446:7:0;;;;13374:87;;6348:192;;;;;;;;;;-1:-1:-1;6348:192:0;;;;;:::i;:::-;;:::i;4753:56::-;;;;;;;;;;;;;;;;10655:164;;;;;;;;;;-1:-1:-1;10655:164:0;;;;;:::i;:::-;;:::i;6548:168::-;;;;;;;;;;-1:-1:-1;6548:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6681:18:0;;;6654:7;6681:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6548:168;6724:186;6824:4;6841:39;1164:10;6864:7;6873:6;6841:8;:39::i;:::-;-1:-1:-1;6898:4:0;6724:186;;;;;:::o;10058:419::-;3671:6;;-1:-1:-1;;;;;3671:6:0;1164:10;3671:22;3663:67;;;;-1:-1:-1;;;3663:67:0;;;;;;;:::i;:::-;;;;;;;;;10119:11:::1;::::0;-1:-1:-1;;;10119:11:0;::::1;;;10118:12;10110:48;;;::::0;-1:-1:-1;;;10110:48:0;;4860:2:1;10110:48:0::1;::::0;::::1;4842:21:1::0;4899:2;4879:18;;;4872:30;-1:-1:-1;;;4918:18:1;;;4911:53;4981:18;;10110:48:0::1;4658:347:1::0;10110:48:0::1;10171:10;:92:::0;;-1:-1:-1;;;;;;10171:92:0::1;::::0;::::1;::::0;;;;10276:53:::1;::::0;10293:4:::1;::::0;-1:-1:-1;;;;;10171:92:0;10308:10;;::::1;;4497:15;4438:1;4497:2;:15;:::i;:::-;4481:31;::::0;:13:::1;:31;:::i;:::-;10276:8;:53::i;:::-;10366:10;;;;;;;;;-1:-1:-1::0;;;;;10366:10:0::1;-1:-1:-1::0;;;;;10366:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10353:45:0::1;;10421:4;10441:10;;;;;;;;;-1:-1:-1::0;;;;;10441:10:0::1;-1:-1:-1::0;;;;;10441:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10353:116;::::0;-1:-1:-1;;;;;;10353:116:0::1;::::0;;;;;;-1:-1:-1;;;;;7178:15:1;;;10353:116:0::1;::::0;::::1;7160:34:1::0;7230:15;;7210:18;;;7203:43;7095:18;;10353:116:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10342:8;:127:::0;;-1:-1:-1;;;;;;10342:127:0::1;-1:-1:-1::0;;;;;10342:127:0;;;::::1;::::0;;;::::1;::::0;;10058:419::o;13560:95::-;13613:7;4497:15;4438:1;4497:2;:15;:::i;:::-;4481:31;;:13;:31;:::i;:::-;13633:14;;13560:95;:::o;6918:446::-;7050:4;7067:36;7077:6;7085:9;7096:6;7067:9;:36::i;:::-;7114:220;7137:6;1164:10;7185:138;7241:6;7185:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7185:19:0;;;;;;:11;:19;;;;;;;;1164:10;7185:33;;;;;;;;;;:37;:138::i;7114:220::-;-1:-1:-1;7352:4:0;6918:446;;;;;:::o;10827:168::-;3671:6;;-1:-1:-1;;;;;3671:6:0;1164:10;3671:22;3663:67;;;;-1:-1:-1;;;3663:67:0;;;;;;;:::i;:::-;10902:6:::1;10897:91;10918:6;:13;10914:1;:17;10897:91;;;10971:5;10953:4;:15;10958:6;10965:1;10958:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10953:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10953:15:0;:23;;-1:-1:-1;;10953:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10933:3:0::1;10897:91;;;;10827:168:::0;:::o;3758:148::-;3671:6;;-1:-1:-1;;;;;3671:6:0;1164:10;3671:22;3663:67;;;;-1:-1:-1;;;3663:67:0;;;;;;;:::i;:::-;3865:1:::1;3849:6:::0;;3828:40:::1;::::0;-1:-1:-1;;;;;3849:6:0;;::::1;::::0;3828:40:::1;::::0;3865:1;;3828:40:::1;3896:1;3879:19:::0;;-1:-1:-1;;;;;;3879:19:0::1;::::0;;3758:148::o;10485:162::-;3671:6;;-1:-1:-1;;;;;3671:6:0;1164:10;3671:22;3663:67;;;;-1:-1:-1;;;3663:67:0;;;;;;;:::i;:::-;4497:15:::1;4438:1;4497:2;:15;:::i;:::-;4481:31;::::0;:13:::1;:31;:::i;:::-;10539:12;:22:::0;4497:15:::1;4438:1;4497:2;:15;:::i;:::-;4481:31;::::0;:13:::1;:31;:::i;:::-;10572:14;:24:::0;10612:27:::1;4497:15;4438:1;4497:2;:15;:::i;:::-;4481:31;::::0;:13:::1;:31;:::i;:::-;10612:27;::::0;1500:25:1;;;1488:2;1473:18;10612:27:0::1;;;;;;;10485:162::o:0;5846:494::-;3671:6;;-1:-1:-1;;;;;3671:6:0;1164:10;3671:22;3663:67;;;;-1:-1:-1;;;3663:67:0;;;;;;;:::i;:::-;5906:11:::1;::::0;-1:-1:-1;;;5906:11:0;::::1;;;5905:12;5897:48;;;::::0;-1:-1:-1;;;5897:48:0;;4860:2:1;5897:48:0::1;::::0;::::1;4842:21:1::0;4899:2;4879:18;;;4872:30;-1:-1:-1;;;4918:18:1;;;4911:53;4981:18;;5897:48:0::1;4658:347:1::0;5897:48:0::1;5956:10;;;;;;;;;-1:-1:-1::0;;;;;5956:10:0::1;-1:-1:-1::0;;;;;5956:26:0::1;;5990:21;6035:4;6055:10;;6080:1;6096::::0;6112:7:::1;3582::::0;3609:6;-1:-1:-1;;;;;3609:6:0;;3544:79;6112:7:::1;5956:204;::::0;::::1;::::0;;;-1:-1:-1;;;;;;5956:204:0;;;-1:-1:-1;;;;;7748:15:1;;;5956:204:0::1;::::0;::::1;7730:34:1::0;7780:18;;;7773:34;;;;7823:18;;;7816:34;;;;7866:18;;;7859:34;7930:15;;;7909:19;;;7902:44;6134:15:0::1;7962:19:1::0;;;7955:35;7664:19;;5956:204:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6180:8:0::1;::::0;6206:10:::1;::::0;6173:61:::1;::::0;-1:-1:-1;;;6173:61:0;;-1:-1:-1;;;;;6206:10:0;;;::::1;::::0;::::1;6173:61;::::0;::::1;8486:51:1::0;-1:-1:-1;;8553:18:1;;;8546:34;6180:8:0;::::1;::::0;-1:-1:-1;6173:24:0::1;::::0;8459:18:1;;6173:61:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6247:11:0::1;:18:::0;;-1:-1:-1;;6247:18:0::1;;;::::0;;6276:11:::1;:18:::0;;-1:-1:-1;;;;6276:18:0::1;-1:-1:-1::0;;;6276:18:0::1;::::0;;6320:12:::1;6307:10;:25:::0;5846:494::o;6348:192::-;6451:4;6468:42;1164:10;6492:9;6503:6;6468:9;:42::i;10655:164::-;3671:6;;-1:-1:-1;;;;;3671:6:0;1164:10;3671:22;3663:67;;;;-1:-1:-1;;;3663:67:0;;;;;;;:::i;:::-;10729:6:::1;10724:88;10745:5;:12;10741:1;:16;10724:88;;;10796:4;10779;:14;10784:5;10790:1;10784:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10779:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10779:14:0;:21;;-1:-1:-1;;10779:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10759:3:0::1;10724:88;;7372:335:::0;-1:-1:-1;;;;;7465:19:0;;7457:68;;;;-1:-1:-1;;;7457:68:0;;9075:2:1;7457:68:0;;;9057:21:1;9114:2;9094:18;;;9087:30;9153:34;9133:18;;;9126:62;-1:-1:-1;;;9204:18:1;;;9197:34;9248:19;;7457:68:0;8873:400:1;7457:68:0;-1:-1:-1;;;;;7544:21:0;;7536:68;;;;-1:-1:-1;;;7536:68:0;;9480:2:1;7536:68:0;;;9462:21:1;9519:2;9499:18;;;9492:30;9558:34;9538:18;;;9531:62;-1:-1:-1;;;9609:18:1;;;9602:32;9651:19;;7536:68:0;9278:398:1;7536:68:0;-1:-1:-1;;;;;7615:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7667:32;;1500:25:1;;;7667:32:0;;1473:18:1;7667:32:0;;;;;;;;7372:335;;;:::o;7871:2179::-;-1:-1:-1;;;;;7959:18:0;;7951:68;;;;-1:-1:-1;;;7951:68:0;;9883:2:1;7951:68:0;;;9865:21:1;9922:2;9902:18;;;9895:30;9961:34;9941:18;;;9934:62;-1:-1:-1;;;10012:18:1;;;10005:35;10057:19;;7951:68:0;9681:401:1;7951:68:0;-1:-1:-1;;;;;8038:16:0;;8030:64;;;;-1:-1:-1;;;8030:64:0;;10289:2:1;8030:64:0;;;10271:21:1;10328:2;10308:18;;;10301:30;10367:34;10347:18;;;10340:62;-1:-1:-1;;;10418:18:1;;;10411:33;10461:19;;8030:64:0;10087:399:1;8030:64:0;8122:1;8113:6;:10;8105:64;;;;-1:-1:-1;;;8105:64:0;;10693:2:1;8105:64:0;;;10675:21:1;10732:2;10712:18;;;10705:30;10771:34;10751:18;;;10744:62;-1:-1:-1;;;10822:18:1;;;10815:39;10871:19;;8105:64:0;10491:405:1;8105:64:0;8187:11;;;;;;;8186:12;;:22;;-1:-1:-1;8202:6:0;;;;8186:22;8182:223;;;-1:-1:-1;;;;;8243:15:0;;;;;;:9;:15;;;;;;:27;;8263:6;8243:19;:27::i;:::-;-1:-1:-1;;;;;8225:15:0;;;;;;;:9;:15;;;;;;:45;;;;8301:13;;;;;;;:25;;8319:6;8301:17;:25::i;:::-;-1:-1:-1;;;;;8285:13:0;;;;;;;:9;:13;;;;;;;:41;;;;8346:26;;;;;;-1:-1:-1;;;;;;;;;;;8346:26:0;;;8365:6;1500:25:1;;1488:2;1473:18;;1354:177;8182:223:0;8466:4;8417:28;13756:18;;;:9;:18;;;;;;3609:6;;-1:-1:-1;;;;;8487:15:0;;;3609:6;;8487:15;;;;:32;;-1:-1:-1;3582:7:0;3609:6;-1:-1:-1;;;;;8506:13:0;;;3609:6;;8506:13;;8487:32;8483:1508;;;-1:-1:-1;;;;;8545:10:0;;;;;;:4;:10;;;;;;;;8544:11;:24;;;;-1:-1:-1;;;;;;8560:8:0;;;;;;:4;:8;;;;;;;;8559:9;8544:24;8536:33;;;;;;8629:17;;8693:8;;8606:40;;;;-1:-1:-1;;;;;8685:16:0;;;8693:8;;8685:16;:62;;;;-1:-1:-1;8736:10:0;;-1:-1:-1;;;;;8722:25:0;;;8736:10;;;;;8722:25;;8685:62;:103;;;;-1:-1:-1;;;;;;8769:19:0;;;;;;:15;:19;;;;;;;;8768:20;8685:103;8663:547;;;8841:12;;8831:6;:22;;8823:60;;;;-1:-1:-1;;;8823:60:0;;11103:2:1;8823:60:0;;;11085:21:1;11142:2;11122:18;;;11115:30;11181:27;11161:18;;;11154:55;11226:18;;8823:60:0;10901:349:1;8823:60:0;8958:14;;8948:6;8932:13;8942:2;-1:-1:-1;;;;;13756:18:0;13729:7;13756:18;;;:9;:18;;;;;;;13663:119;8932:13;:22;;;;:::i;:::-;:40;;8902:140;;;;-1:-1:-1;;;8902:140:0;;11587:2:1;8902:140:0;;;11569:21:1;11626:2;11606:18;;;11599:30;11665:28;11645:18;;;11638:56;11711:18;;8902:140:0;11385:350:1;8902:140:0;9084:12;9067:10;;9080:1;9067:14;;;;:::i;:::-;:29;9063:102;;;12735:20;;12783:8;9121:24;;;;;;9183:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8663:547;9236:8;;-1:-1:-1;;;;;9230:14:0;;;9236:8;;9230:14;;;;:38;;-1:-1:-1;;;;;;9249:19:0;;;;;;:15;:19;;;;;;;;9248:20;9230:38;9226:219;;;9345:14;;9335:6;9319:13;9329:2;-1:-1:-1;;;;;13756:18:0;13729:7;13756:18;;;:9;:18;;;;;;;13663:119;9319:13;:22;;;;:::i;:::-;:40;;9289:140;;;;-1:-1:-1;;;9289:140:0;;11587:2:1;9289:140:0;;;11569:21:1;11626:2;11606:18;;;11599:30;11665:28;11645:18;;;11638:56;11711:18;;9289:140:0;11385:350:1;9289:140:0;9484:6;;;;9483:7;:39;;;;-1:-1:-1;9511:11:0;;;;;;;9483:39;:74;;;;-1:-1:-1;9549:8:0;;-1:-1:-1;;;;;9543:14:0;;;9549:8;;9543:14;9483:74;:125;;;;;9590:18;;9578:9;;:30;9483:125;:168;;;;-1:-1:-1;;;;;;9630:21:0;;;;;;:15;:21;;;;;;;;9629:22;9483:168;:209;;;;-1:-1:-1;;;;;;9673:19:0;;;;;;:15;:19;;;;;;;;9672:20;9483:209;9461:519;;;9730:12;9727:176;;;9766:117;9809:51;9813:6;9821:38;9825:20;9847:11;;9821:3;:38::i;:::-;9809:3;:51::i;:::-;9766:16;:117::i;:::-;9921:11;;:43;;-1:-1:-1;;;;;9921:11:0;;;;9942:21;9921:43;;;;;:11;:43;:11;:43;9942:21;9921:11;:43;;;;;;;;;;;;;;;;;;;;;9461:519;8521:1470;8483:1508;10011:31;10025:4;10031:2;10035:6;10011:13;:31::i;:::-;7940:2110;7871:2179;;;:::o;2346:224::-;2466:7;2502:12;2494:6;;;;2486:29;;;;-1:-1:-1;;;2486:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2526:9:0;2538:5;2542:1;2538;:5;:::i;:::-;2526:17;2346:224;-1:-1:-1;;;;;2346:224:0:o;2202:136::-;2260:7;2287:43;2291:1;2294;2287:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2280:50;2202:136;-1:-1:-1;;;2202:136:0:o;2015:179::-;2073:7;;2105:5;2109:1;2105;:5;:::i;:::-;2093:17;;2134:1;2129;:6;;2121:46;;;;-1:-1:-1;;;2121:46:0;;12215:2:1;2121:46:0;;;12197:21:1;12254:2;12234:18;;;12227:30;12293:29;12273:18;;;12266:57;12340:18;;2121:46:0;12013:351:1;7719:107:0;7776:7;7808:1;7804;:5;7803:15;;7817:1;7803:15;;;-1:-1:-1;7813:1:0;7719:107;-1:-1:-1;7719:107:0:o;12807:468::-;5435:6;:13;;-1:-1:-1;;5435:13:0;5444:4;5435:13;;;12909:16:::1;::::0;;12923:1:::1;12909:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12909:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12909:16:0::1;12885:40;;12954:4;12936;12941:1;12936:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12936:23:0::1;;;-1:-1:-1::0;;;;;12936:23:0::1;;;::::0;::::1;12980:10;;;;;;;;;-1:-1:-1::0;;;;;12980:10:0::1;-1:-1:-1::0;;;;;12980:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12970:4;12975:1;12970:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12970:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;:27;13040:10:::1;::::0;13008:57:::1;::::0;13025:4:::1;::::0;13040:10;;::::1;;13053:11:::0;13008:8:::1;:57::i;:::-;13076:10;::::0;:191:::1;::::0;-1:-1:-1;;;13076:191:0;;:10;;;::::1;-1:-1:-1::0;;;;;13076:10:0::1;::::0;:61:::1;::::0;:191:::1;::::0;13152:11;;13178:1:::1;::::0;13194:4;;13221::::1;::::0;13241:15:::1;::::0;13076:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5471:6:0;:14;;-1:-1:-1;;5471:14:0;;;-1:-1:-1;;;;12807:468:0:o;11097:1499::-;-1:-1:-1;;;;;11255:21:0;;11216:17;11255:21;;;:15;:21;;;;;;11236:4;;11255:21;;11251:47;;;-1:-1:-1;11293:5:0;11251:47;11315:12;11311:1278;;;11344:15;11388:208;11592:3;11388:181;11452:15;;11440:9;;:27;11439:111;;11536:14;;11439:111;;;11496:12;;11439:111;11388:6;;:28;:181::i;:::-;:203;;:208::i;:::-;11621:8;;11378:218;;-1:-1:-1;;;;;;11615:14:0;;;11621:8;;11615:14;:39;;;;-1:-1:-1;;;;;;11633:21:0;;11649:4;11633:21;;11615:39;11611:325;;;11685:235;11916:3;11685:204;11757:16;;11745:9;;:28;11744:122;;11851:15;;11744:122;;;11806:13;;11685:6;;:32;:204::i;:235::-;11675:245;;11611:325;11954:11;;11950:218;;12031:4;12013:24;;;;:9;:24;;;;;;:77;;12064:7;12013:28;:77::i;:::-;12004:4;11986:24;;;;:9;:24;;;;;;;:104;;;;12114:38;;-1:-1:-1;;;;;12114:38:0;;;-1:-1:-1;;;;;;;;;;;12114:38:0;;;12144:7;1500:25:1;;1488:2;1473:18;;1354:177;12114:38:0;;;;;;;;11950:218;-1:-1:-1;;;;;12200:15:0;;;;;;:9;:15;;;;;;:27;;12220:6;12200:19;:27::i;:::-;-1:-1:-1;;;;;12182:15:0;;;;;;:9;:15;;;;;:45;12258:38;12276:19;:6;12287:7;12276:10;:19::i;:::-;-1:-1:-1;;;;;12258:13:0;;;;;;:9;:13;;;;;;;:17;:38::i;:::-;-1:-1:-1;;;;;12242:13:0;;;;;;;:9;:13;;;;;:54;;;;12316:39;;-1:-1:-1;;;;;;;;;;;12335:19:0;:6;12346:7;12335:10;:19::i;:::-;12316:39;;1500:25:1;;;1488:2;1473:18;12316:39:0;;;;;;;11329:1038;11311:1278;;;-1:-1:-1;;;;;12435:15:0;;;;;;;:9;:15;;;;;;;;:24;;;12417:42;;12494:13;;;;;;;;;;;;:22;;12478:38;;12551:26;;-1:-1:-1;;;;;;;;;;;12551:26:0;;;12453:6;1500:25:1;;1488:2;1473:18;;1354:177;12551:26:0;;;;;;;;11205:1391;11097:1499;;;:::o;2578:246::-;2636:7;2660:1;2665;2660:6;2656:47;;-1:-1:-1;2690:1:0;2683:8;;2656:47;2713:9;2725:5;2729:1;2725;:5;:::i;:::-;2713:17;-1:-1:-1;2758:1:0;2749:5;2753:1;2713:17;2749:5;:::i;:::-;:10;2741:56;;;;-1:-1:-1;;;2741:56:0;;13778:2:1;2741:56:0;;;13760:21:1;13817:2;13797:18;;;13790:30;13856:34;13836:18;;;13829:62;-1:-1:-1;;;13907:18:1;;;13900:31;13948:19;;2741:56:0;13576:397:1;2832:132:0;2890:7;2917:39;2921:1;2924;2917:39;;;;;;;;;;;;;;;;;3092:7;3127:12;3120:5;3112:28;;;;-1:-1:-1;;;3112:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3151:9:0;3163:5;3167:1;3163;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:356::-;4499:2;4481:21;;;4518:18;;;4511:30;4577:34;4572:2;4557:18;;4550:62;4644:2;4629:18;;4297:356::o;5010:127::-;5071:10;5066:3;5062:20;5059:1;5052:31;5102:4;5099:1;5092:15;5126:4;5123:1;5116:15;5142:416;5231:1;5268:5;5231:1;5282:270;5303:7;5293:8;5290:21;5282:270;;;5362:4;5358:1;5354:6;5350:17;5344:4;5341:27;5338:53;;;5371:18;;:::i;:::-;5421:7;5411:8;5407:22;5404:55;;;5441:16;;;;5404:55;5520:22;;;;5480:15;;;;5282:270;;;5286:3;5142:416;;;;;:::o;5563:806::-;5612:5;5642:8;5632:80;;-1:-1:-1;5683:1:1;5697:5;;5632:80;5731:4;5721:76;;-1:-1:-1;5768:1:1;5782:5;;5721:76;5813:4;5831:1;5826:59;;;;5899:1;5894:130;;;;5806:218;;5826:59;5856:1;5847:10;;5870:5;;;5894:130;5931:3;5921:8;5918:17;5915:43;;;5938:18;;:::i;:::-;-1:-1:-1;;5994:1:1;5980:16;;6009:5;;5806:218;;6108:2;6098:8;6095:16;6089:3;6083:4;6080:13;6076:36;6070:2;6060:8;6057:16;6052:2;6046:4;6043:12;6039:35;6036:77;6033:159;;;-1:-1:-1;6145:19:1;;;6177:5;;6033:159;6224:34;6249:8;6243:4;6224:34;:::i;:::-;6294:6;6290:1;6286:6;6282:19;6273:7;6270:32;6267:58;;;6305:18;;:::i;:::-;6343:20;;5563:806;-1:-1:-1;;;5563:806:1:o;6374:140::-;6432:5;6461:47;6502:4;6492:8;6488:19;6482:4;6461:47;:::i;6519:168::-;6592:9;;;6623;;6640:15;;;6634:22;;6620:37;6610:71;;6661:18;;:::i;6692:251::-;6762:6;6815:2;6803:9;6794:7;6790:23;6786:32;6783:52;;;6831:1;6828;6821:12;6783:52;6863:9;6857:16;6882:31;6907:5;6882:31;:::i;7257:127::-;7318:10;7313:3;7309:20;7306:1;7299:31;7349:4;7346:1;7339:15;7373:4;7370:1;7363:15;8001:306;8089:6;8097;8105;8158:2;8146:9;8137:7;8133:23;8129:32;8126:52;;;8174:1;8171;8164:12;8126:52;8203:9;8197:16;8187:26;;8253:2;8242:9;8238:18;8232:25;8222:35;;8297:2;8286:9;8282:18;8276:25;8266:35;;8001:306;;;;;:::o;8591:277::-;8658:6;8711:2;8699:9;8690:7;8686:23;8682:32;8679:52;;;8727:1;8724;8717:12;8679:52;8759:9;8753:16;8812:5;8805:13;8798:21;8791:5;8788:32;8778:60;;8834:1;8831;8824:12;11255:125;11320:9;;;11341:10;;;11338:36;;;11354:18;;:::i;11740:135::-;11779:3;11800:17;;;11797:43;;11820:18;;:::i;:::-;-1:-1:-1;11867:1:1;11856:13;;11740:135::o;11880:128::-;11947:9;;;11968:11;;;11965:37;;;11982:18;;:::i;12369:980::-;12631:4;12679:3;12668:9;12664:19;12710:6;12699:9;12692:25;12736:2;12774:6;12769:2;12758:9;12754:18;12747:34;12817:3;12812:2;12801:9;12797:18;12790:31;12841:6;12876;12870:13;12907:6;12899;12892:22;12945:3;12934:9;12930:19;12923:26;;12984:2;12976:6;12972:15;12958:29;;13005:1;13015:195;13029:6;13026:1;13023:13;13015:195;;;13094:13;;-1:-1:-1;;;;;13090:39:1;13078:52;;13185:15;;;;13150:12;;;;13126:1;13044:9;13015:195;;;-1:-1:-1;;;;;;;13266:32:1;;;;13261:2;13246:18;;13239:60;-1:-1:-1;;;13330:3:1;13315:19;13308:35;13227:3;12369:980;-1:-1:-1;;;12369:980:1:o;13354:217::-;13394:1;13420;13410:132;;13464:10;13459:3;13455:20;13452:1;13445:31;13499:4;13496:1;13489:15;13527:4;13524:1;13517:15;13410:132;-1:-1:-1;13556:9:1;;13354:217::o

Swarm Source

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