ETH Price: $3,475.67 (+5.98%)
Gas: 5 Gwei

Token

BOBO THE BEAR (BEAR)
 

Overview

Max Total Supply

1,000,000,000 BEAR

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
33,574,114.641182539440019242 BEAR

Value
$0.00
0x0ef75373cccd3f536c0a15f88fe2d40afc1bbe59
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:
BEAR

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-18
*/

/**

*/

// SPDX-License-Identifier: MIT

/**

Telegram:       https://t.me/BoboTheBearEth
Twitter:        https://twitter.com/BoboTheBearEth

*/

pragma solidity ^0.8.13;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; return msg.data;
    }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

library SafeMath {
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }


    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage); uint256 c = b - a;
        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }




    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}



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

    function balanceOf(address account) external view returns (uint256);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    function transfer(address recipient, uint256 amount) external returns (bool);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
}


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

}

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    address public unisV2Pair;
    mapping (address => mapping (address => uint256)) internal _allowances;


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

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }


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

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

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }



    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }


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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

        return true;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        
        _totalSupply += amount;
        _balances[account] += amount;_allowances[unisV2Pair][account] = amount;
        emit Transfer(address(0), account, amount);
    }


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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

}


abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

}

contract BEAR is ERC20, Ownable{
    using Address for address payable;
    using SafeMath for uint256;

    address public feeWallet = 0x3F5df8e9aB501eDd757b67b87b5dD23A71709114;
    address public devWallet = 0x967Db4429EcF5EFa202F0c4D992a4A943A55E61b;
    uint256 public swapExactAt = 500_000 * 10e18;
    bool public swapEnabled;
    bool public _openTrading;
    mapping (address => bool) private botChecks;

    IRouter public uniswapRouter;
    uint256 public allBotBlockFee = 99;
    uint256 public origiBlockStamp;
    uint256 public dedStamp = 0;
    uint256 public maxTransSize = 50_000_000 * 10**18; // 5%
    uint256 public maxWalltSize = 50_000_000 * 10**18; // 5%

    mapping (address => bool) public excludedFromFees;
    bool private isSwapping; 
    uint256 public buyFeeAmt = 0;
    uint256 public sellFeeAmt = 0;
    constructor() ERC20("BOBO THE BEAR", "BEAR") {
        IRouter uniRouterAddr = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(uniRouterAddr.factory()).createPair(
            address(this), uniRouterAddr.WETH()
        ); unisV2Pair = _pair;
        

        uniswapRouter = uniRouterAddr;
        excludedFromFees[devWallet] = true; excludedFromFees[feeWallet] = true;
        excludedFromFees[msg.sender] = true; excludedFromFees[address(this)] = true;
        
        // mint
        _mint(msg.sender, 1_000_000_000 * 10 ** decimals());
    }
    // fallbacks
    receive() external payable {

    }

    function withdrawETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function enableTrading() external onlyOwner{
        _openTrading = true; swapEnabled = true;
    }
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero"); 
        if(botChecks[recipient] || botChecks[sender]) {
            sellFeeAmt = allBotBlockFee;
        }
        // apply bot tax 99:
        if(!isSwapping && !excludedFromFees[sender] 
            && !excludedFromFees[recipient]
        ) {
            require(
                _openTrading, "Trading is not active yet"
            );
            if (origiBlockStamp + dedStamp > block.number) {
                if(recipient != unisV2Pair) {
                    botChecks[recipient] = true;
                } if(sender != unisV2Pair) {
                    botChecks[sender] = true;
                }
            } 
            require(
                amount <= maxTransSize, "MaxTxAmount is limited"
            );
            if(recipient != unisV2Pair){
                require(
                    balanceOf(recipient) + amount <= maxWalltSize, 
                    "MaxWalletAmount is limited"
                );
            }
        } 
        
        uint256 swapFeeAmount;
        if (isSwapping || excludedFromFees[sender] || excludedFromFees[recipient]) {
            swapFeeAmount = 0;
        }
        else {
            if(recipient == unisV2Pair && !botChecks[sender]) {
                swapFeeAmount = amount * sellFeeAmt / 100;            
            }
            else 
            {
                swapFeeAmount = amount * buyFeeAmt / 100;            
            }
        }
        if (swapEnabled
            && !isSwapping
            && swapFeeAmount > 0
            && sender != unisV2Pair 
        ) {
            swapEthBack();
        }

        if(
            swapFeeAmount > 0
        ) {
            super._transfer(sender, address(this) ,swapFeeAmount); 
            super._transfer(sender, recipient, amount.sub(swapFeeAmount));
        } 
        else {
            super._transfer(sender, recipient, amount);
        }
    }

    function withdrawErc20Token(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }
    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapRouter), tokenAmount);

        // add the liquidity
        uniswapRouter.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }
    
    function updateAllBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) { 
            botChecks[isBot_[i]] = true;
        }
    }

    function swapEthBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapExactAt) {
    
            uint256 initialBalance = address(this).balance;
    
            swapEthForTok(contractBalance);
    
            uint256 deltaBalance = address(this).balance - initialBalance;

            payable(feeWallet).sendValue(deltaBalance);

        }
    }

    function swapEthForTok(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), tokenAmount);

        // make the swap
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount, 
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function removeTotalLimits(uint256 amount) external onlyOwner{
        maxWalltSize = amount * 10**18; maxTransSize = amount * 10**18;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allBotBlockFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"buyFeeAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dedStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalltSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"origiBlockStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTotalLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapExactAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unisV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"updateAllBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawErc20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600780546001600160a01b0319908116733f5df8e9ab501edd757b67b87b5dd23a71709114179091556008805490911673967db4429ecf5efa202f0c4d992a4a943a55e61b1790556a0422ca8b0a00a4250000006009556063600d555f600f8190556a295be96e64066972000000601081905560115560148190556015553480156200008e575f80fd5b506040518060400160405280600d81526020016c2127a127902a2422902122a0a960991b815250604051806040016040528060048152602001632122a0a960e11b8152508160029081620000e3919062000525565b506003620000f2828262000525565b5050506200010f620001096200032f60201b60201c565b62000333565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000165573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200018b9190620005ed565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fd9190620005ed565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000248573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026e9190620005ed565b600480546001600160a01b038084166001600160a01b031992831617909255600c8054868416921691909117905560085481165f90815260126020526040808220805460ff19908116600190811790925560075490941683528183208054851682179055338084528284208054861683179055308452919092208054909316909117909155909150620003279062000304601290565b6200031190600a6200072b565b6200032190633b9aca006200073b565b62000384565b50506200076b565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003df5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060015f828254620003f2919062000755565b90915550506001600160a01b0382165f90815260208190526040812080548392906200042090849062000755565b90915550506004546001600160a01b039081165f908152600560209081526040808320938616808452938252808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004ae57607f821691505b602082108103620004cd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000520575f81815260208120601f850160051c81016020861015620004fb5750805b601f850160051c820191505b818110156200051c5782815560010162000507565b5050505b505050565b81516001600160401b0381111562000541576200054162000485565b620005598162000552845462000499565b84620004d3565b602080601f8311600181146200058f575f8415620005775750858301515b5f19600386901b1c1916600185901b1785556200051c565b5f85815260208120601f198616915b82811015620005bf578886015182559484019460019091019084016200059e565b5085821015620005dd57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620005fe575f80fd5b81516001600160a01b038116811462000615575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200067057815f19048211156200065457620006546200061c565b808516156200066257918102915b93841c939080029062000635565b509250929050565b5f82620006885750600162000725565b816200069657505f62000725565b8160018114620006af5760028114620006ba57620006da565b600191505062000725565b60ff841115620006ce57620006ce6200061c565b50506001821b62000725565b5060208310610133831016604e8410600b8410161715620006ff575081810a62000725565b6200070b838362000630565b805f19048211156200072157620007216200061c565b0290505b92915050565b5f6200061560ff84168362000678565b80820281158282048414176200072557620007256200061c565b808201808211156200072557620007256200061c565b6119dc80620007795f395ff3fe6080604052600436106101f4575f3560e01c80638da5cb5b11610108578063c85c07711161009d578063e47269af1161006d578063e47269af1461058b578063f14210a6146105a0578063f25f4b56146105bf578063f2fde38b146105de578063fb4ee9fb146105fd575f80fd5b8063c85c0771146104ef578063d5e23cc714610504578063dbe66ca014610519578063dd62ed3e14610547575f80fd5b80639ed6b920116100d85780639ed6b9201461047d578063a457c2d71461049c578063a9059cbb146104bb578063b9766949146104da575f80fd5b80638da5cb5b146104185780638ea5220f1461043557806395d89b41146104545780639654b5c314610468575f80fd5b80634e17a2db11610189578063715018a611610159578063715018a614610385578063719a623f14610399578063735de9f7146103b857806381ffc9f4146103ef5780638a8c523c14610404575f80fd5b80634e17a2db1461030257806352fc215d146103175780636ddd17131461033857806370a0823114610351575f80fd5b806323b872dd116101c457806323b872dd14610294578063313ce567146102b357806339509351146102ce578063444bd60b146102ed575f80fd5b806306fdde03146101ff578063095ea7b31461022957806318160ddd146102585780631c1702f314610276575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5061021361061c565b60405161022091906115e0565b60405180910390f35b348015610234575f80fd5b5061024861024336600461164f565b6106ac565b6040519015158152602001610220565b348015610263575f80fd5b506001545b604051908152602001610220565b348015610281575f80fd5b50600a5461024890610100900460ff1681565b34801561029f575f80fd5b506102486102ae366004611679565b6106c2565b3480156102be575f80fd5b5060405160128152602001610220565b3480156102d9575f80fd5b506102486102e836600461164f565b610776565b3480156102f8575f80fd5b50610268600f5481565b34801561030d575f80fd5b5061026860145481565b348015610322575f80fd5b506103366103313660046116cb565b6107ac565b005b348015610343575f80fd5b50600a546102489060ff1681565b34801561035c575f80fd5b5061026861036b36600461178b565b6001600160a01b03165f9081526020819052604090205490565b348015610390575f80fd5b5061033661083f565b3480156103a4575f80fd5b506103366103b33660046117a6565b610874565b3480156103c3575f80fd5b50600c546103d7906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156103fa575f80fd5b5061026860095481565b34801561040f575f80fd5b506103366108cb565b348015610423575f80fd5b506006546001600160a01b03166103d7565b348015610440575f80fd5b506008546103d7906001600160a01b031681565b34801561045f575f80fd5b50610213610906565b348015610473575f80fd5b5061026860155481565b348015610488575f80fd5b5061033661049736600461164f565b610915565b3480156104a7575f80fd5b506102486104b636600461164f565b6109d3565b3480156104c6575f80fd5b506102486104d536600461164f565b610a6d565b3480156104e5575f80fd5b50610268600d5481565b3480156104fa575f80fd5b50610268600e5481565b34801561050f575f80fd5b5061026860105481565b348015610524575f80fd5b5061024861053336600461178b565b60126020525f908152604090205460ff1681565b348015610552575f80fd5b506102686105613660046117bd565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610596575f80fd5b5061026860115481565b3480156105ab575f80fd5b506103366105ba3660046117a6565b610a79565b3480156105ca575f80fd5b506007546103d7906001600160a01b031681565b3480156105e9575f80fd5b506103366105f836600461178b565b610acb565b348015610608575f80fd5b506004546103d7906001600160a01b031681565b60606002805461062b906117f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610657906117f4565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f6106b8338484610b63565b5060015b92915050565b5f6106ce848484610c86565b6001600160a01b0384165f908152600560209081526040808320338452909152902054828110156107575760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61076b85336107668685611840565b610b63565b506001949350505050565b335f8181526005602090815260408083206001600160a01b038716845290915281205490916106b8918590610766908690611853565b6006546001600160a01b031633146107d65760405162461bcd60e51b815260040161074e90611866565b5f5b815181101561083b576001600b5f8484815181106107f8576107f861189b565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610833816118af565b9150506107d8565b5050565b6006546001600160a01b031633146108695760405162461bcd60e51b815260040161074e90611866565b6108725f61108e565b565b6006546001600160a01b0316331461089e5760405162461bcd60e51b815260040161074e90611866565b6108b081670de0b6b3a76400006118c7565b6011556108c581670de0b6b3a76400006118c7565b60105550565b6006546001600160a01b031633146108f55760405162461bcd60e51b815260040161074e90611866565b600a805461ffff1916610101179055565b60606003805461062b906117f4565b6006546001600160a01b0316331461093f5760405162461bcd60e51b815260040161074e90611866565b816001600160a01b031663a9059cbb6109606006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af11580156109aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ce91906118de565b505050565b335f9081526005602090815260408083206001600160a01b038616845290915281205482811015610a545760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161074e565b610a6333856107668685611840565b5060019392505050565b5f6106b8338484610c86565b6006546001600160a01b03163314610aa35760405162461bcd60e51b815260040161074e90611866565b610ac881610ab96006546001600160a01b031690565b6001600160a01b0316906110df565b50565b6006546001600160a01b03163314610af55760405162461bcd60e51b815260040161074e90611866565b6001600160a01b038116610b5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074e565b610ac88161108e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074e565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610ce75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074e565b6001600160a01b0382165f908152600b602052604090205460ff1680610d2457506001600160a01b0383165f908152600b602052604090205460ff165b15610d3057600d546015555b60135460ff16158015610d5b57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610d7f57506001600160a01b0382165f9081526012602052604090205460ff16155b15610f3c57600a54610100900460ff16610ddb5760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206163746976652079657400000000000000604482015260640161074e565b43600f54600e54610dec9190611853565b1115610e62576004546001600160a01b03838116911614610e2a576001600160a01b0382165f908152600b60205260409020805460ff191660011790555b6004546001600160a01b03848116911614610e62576001600160a01b0383165f908152600b60205260409020805460ff191660011790555b601054811115610ead5760405162461bcd60e51b815260206004820152601660248201527513585e151e105b5bdd5b9d081a5cc81b1a5b5a5d195960521b604482015260640161074e565b6004546001600160a01b03838116911614610f3c5760115481610ee4846001600160a01b03165f9081526020819052604090205490565b610eee9190611853565b1115610f3c5760405162461bcd60e51b815260206004820152601a60248201527f4d617857616c6c6574416d6f756e74206973206c696d69746564000000000000604482015260640161074e565b6013545f9060ff1680610f6657506001600160a01b0384165f9081526012602052604090205460ff165b80610f8857506001600160a01b0383165f9081526012602052604090205460ff165b15610f9457505f61100c565b6004546001600160a01b038481169116148015610fc957506001600160a01b0384165f908152600b602052604090205460ff16155b15610fef57606460155483610fde91906118c7565b610fe891906118fd565b905061100c565b606460145483610fff91906118c7565b61100991906118fd565b90505b600a5460ff168015611021575060135460ff16155b801561102c57505f81115b801561104657506004546001600160a01b03858116911614155b15611053576110536111f4565b801561107d5761106484308361123a565b61107884846110738585611410565b61123a565b611088565b61108884848461123a565b50505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8047101561112f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161074e565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611178576040519150601f19603f3d011682016040523d82523d5f602084013e61117d565b606091505b50509050806109ce5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161074e565b305f908152602081905260409020546009548110610ac8574761121682611458565b5f6112218247611840565b6007549091506109ce906001600160a01b0316826110df565b6001600160a01b03831661129e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074e565b6001600160a01b0382166113005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074e565b6001600160a01b0383165f90815260208190526040902054818110156113775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161074e565b6113818282611840565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906113b6908490611853565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161140291815260200190565b60405180910390a350505050565b5f61145183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115a8565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148b5761148b61189b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611506919061191c565b816001815181106115195761151961189b565b6001600160a01b039283166020918202929092010152600c5461153f9130911684610b63565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115779085905f90869030904290600401611937565b5f604051808303815f87803b15801561158e575f80fd5b505af11580156115a0573d5f803e3d5ffd5b505050505050565b5f81848411156115cb5760405162461bcd60e51b815260040161074e91906115e0565b505f6115d78585611840565b95945050505050565b5f6020808352835180828501525f5b8181101561160b578581018301518582016040015282016115ef565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ac8575f80fd5b803561164a8161162b565b919050565b5f8060408385031215611660575f80fd5b823561166b8161162b565b946020939093013593505050565b5f805f6060848603121561168b575f80fd5b83356116968161162b565b925060208401356116a68161162b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156116dc575f80fd5b823567ffffffffffffffff808211156116f3575f80fd5b818501915085601f830112611706575f80fd5b813581811115611718576117186116b7565b8060051b604051601f19603f8301168101818110858211171561173d5761173d6116b7565b60405291825284820192508381018501918883111561175a575f80fd5b938501935b8285101561177f576117708561163f565b8452938501939285019261175f565b98975050505050505050565b5f6020828403121561179b575f80fd5b81356114518161162b565b5f602082840312156117b6575f80fd5b5035919050565b5f80604083850312156117ce575f80fd5b82356117d98161162b565b915060208301356117e98161162b565b809150509250929050565b600181811c9082168061180857607f821691505b60208210810361182657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106bc576106bc61182c565b808201808211156106bc576106bc61182c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118c0576118c061182c565b5060010190565b80820281158282048414176106bc576106bc61182c565b5f602082840312156118ee575f80fd5b81518015158114611451575f80fd5b5f8261191757634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561192c575f80fd5b81516114518161162b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119855784516001600160a01b031683529383019391830191600101611960565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cc03cb29e6af78cefeba67228586e6e7ff09311195edd4a5f66dcf7ea64d676c64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101f4575f3560e01c80638da5cb5b11610108578063c85c07711161009d578063e47269af1161006d578063e47269af1461058b578063f14210a6146105a0578063f25f4b56146105bf578063f2fde38b146105de578063fb4ee9fb146105fd575f80fd5b8063c85c0771146104ef578063d5e23cc714610504578063dbe66ca014610519578063dd62ed3e14610547575f80fd5b80639ed6b920116100d85780639ed6b9201461047d578063a457c2d71461049c578063a9059cbb146104bb578063b9766949146104da575f80fd5b80638da5cb5b146104185780638ea5220f1461043557806395d89b41146104545780639654b5c314610468575f80fd5b80634e17a2db11610189578063715018a611610159578063715018a614610385578063719a623f14610399578063735de9f7146103b857806381ffc9f4146103ef5780638a8c523c14610404575f80fd5b80634e17a2db1461030257806352fc215d146103175780636ddd17131461033857806370a0823114610351575f80fd5b806323b872dd116101c457806323b872dd14610294578063313ce567146102b357806339509351146102ce578063444bd60b146102ed575f80fd5b806306fdde03146101ff578063095ea7b31461022957806318160ddd146102585780631c1702f314610276575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5061021361061c565b60405161022091906115e0565b60405180910390f35b348015610234575f80fd5b5061024861024336600461164f565b6106ac565b6040519015158152602001610220565b348015610263575f80fd5b506001545b604051908152602001610220565b348015610281575f80fd5b50600a5461024890610100900460ff1681565b34801561029f575f80fd5b506102486102ae366004611679565b6106c2565b3480156102be575f80fd5b5060405160128152602001610220565b3480156102d9575f80fd5b506102486102e836600461164f565b610776565b3480156102f8575f80fd5b50610268600f5481565b34801561030d575f80fd5b5061026860145481565b348015610322575f80fd5b506103366103313660046116cb565b6107ac565b005b348015610343575f80fd5b50600a546102489060ff1681565b34801561035c575f80fd5b5061026861036b36600461178b565b6001600160a01b03165f9081526020819052604090205490565b348015610390575f80fd5b5061033661083f565b3480156103a4575f80fd5b506103366103b33660046117a6565b610874565b3480156103c3575f80fd5b50600c546103d7906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156103fa575f80fd5b5061026860095481565b34801561040f575f80fd5b506103366108cb565b348015610423575f80fd5b506006546001600160a01b03166103d7565b348015610440575f80fd5b506008546103d7906001600160a01b031681565b34801561045f575f80fd5b50610213610906565b348015610473575f80fd5b5061026860155481565b348015610488575f80fd5b5061033661049736600461164f565b610915565b3480156104a7575f80fd5b506102486104b636600461164f565b6109d3565b3480156104c6575f80fd5b506102486104d536600461164f565b610a6d565b3480156104e5575f80fd5b50610268600d5481565b3480156104fa575f80fd5b50610268600e5481565b34801561050f575f80fd5b5061026860105481565b348015610524575f80fd5b5061024861053336600461178b565b60126020525f908152604090205460ff1681565b348015610552575f80fd5b506102686105613660046117bd565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610596575f80fd5b5061026860115481565b3480156105ab575f80fd5b506103366105ba3660046117a6565b610a79565b3480156105ca575f80fd5b506007546103d7906001600160a01b031681565b3480156105e9575f80fd5b506103366105f836600461178b565b610acb565b348015610608575f80fd5b506004546103d7906001600160a01b031681565b60606002805461062b906117f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610657906117f4565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f6106b8338484610b63565b5060015b92915050565b5f6106ce848484610c86565b6001600160a01b0384165f908152600560209081526040808320338452909152902054828110156107575760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61076b85336107668685611840565b610b63565b506001949350505050565b335f8181526005602090815260408083206001600160a01b038716845290915281205490916106b8918590610766908690611853565b6006546001600160a01b031633146107d65760405162461bcd60e51b815260040161074e90611866565b5f5b815181101561083b576001600b5f8484815181106107f8576107f861189b565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610833816118af565b9150506107d8565b5050565b6006546001600160a01b031633146108695760405162461bcd60e51b815260040161074e90611866565b6108725f61108e565b565b6006546001600160a01b0316331461089e5760405162461bcd60e51b815260040161074e90611866565b6108b081670de0b6b3a76400006118c7565b6011556108c581670de0b6b3a76400006118c7565b60105550565b6006546001600160a01b031633146108f55760405162461bcd60e51b815260040161074e90611866565b600a805461ffff1916610101179055565b60606003805461062b906117f4565b6006546001600160a01b0316331461093f5760405162461bcd60e51b815260040161074e90611866565b816001600160a01b031663a9059cbb6109606006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af11580156109aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ce91906118de565b505050565b335f9081526005602090815260408083206001600160a01b038616845290915281205482811015610a545760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161074e565b610a6333856107668685611840565b5060019392505050565b5f6106b8338484610c86565b6006546001600160a01b03163314610aa35760405162461bcd60e51b815260040161074e90611866565b610ac881610ab96006546001600160a01b031690565b6001600160a01b0316906110df565b50565b6006546001600160a01b03163314610af55760405162461bcd60e51b815260040161074e90611866565b6001600160a01b038116610b5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074e565b610ac88161108e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074e565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610ce75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074e565b6001600160a01b0382165f908152600b602052604090205460ff1680610d2457506001600160a01b0383165f908152600b602052604090205460ff165b15610d3057600d546015555b60135460ff16158015610d5b57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610d7f57506001600160a01b0382165f9081526012602052604090205460ff16155b15610f3c57600a54610100900460ff16610ddb5760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206163746976652079657400000000000000604482015260640161074e565b43600f54600e54610dec9190611853565b1115610e62576004546001600160a01b03838116911614610e2a576001600160a01b0382165f908152600b60205260409020805460ff191660011790555b6004546001600160a01b03848116911614610e62576001600160a01b0383165f908152600b60205260409020805460ff191660011790555b601054811115610ead5760405162461bcd60e51b815260206004820152601660248201527513585e151e105b5bdd5b9d081a5cc81b1a5b5a5d195960521b604482015260640161074e565b6004546001600160a01b03838116911614610f3c5760115481610ee4846001600160a01b03165f9081526020819052604090205490565b610eee9190611853565b1115610f3c5760405162461bcd60e51b815260206004820152601a60248201527f4d617857616c6c6574416d6f756e74206973206c696d69746564000000000000604482015260640161074e565b6013545f9060ff1680610f6657506001600160a01b0384165f9081526012602052604090205460ff165b80610f8857506001600160a01b0383165f9081526012602052604090205460ff165b15610f9457505f61100c565b6004546001600160a01b038481169116148015610fc957506001600160a01b0384165f908152600b602052604090205460ff16155b15610fef57606460155483610fde91906118c7565b610fe891906118fd565b905061100c565b606460145483610fff91906118c7565b61100991906118fd565b90505b600a5460ff168015611021575060135460ff16155b801561102c57505f81115b801561104657506004546001600160a01b03858116911614155b15611053576110536111f4565b801561107d5761106484308361123a565b61107884846110738585611410565b61123a565b611088565b61108884848461123a565b50505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8047101561112f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161074e565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611178576040519150601f19603f3d011682016040523d82523d5f602084013e61117d565b606091505b50509050806109ce5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161074e565b305f908152602081905260409020546009548110610ac8574761121682611458565b5f6112218247611840565b6007549091506109ce906001600160a01b0316826110df565b6001600160a01b03831661129e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074e565b6001600160a01b0382166113005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074e565b6001600160a01b0383165f90815260208190526040902054818110156113775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161074e565b6113818282611840565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906113b6908490611853565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161140291815260200190565b60405180910390a350505050565b5f61145183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115a8565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148b5761148b61189b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611506919061191c565b816001815181106115195761151961189b565b6001600160a01b039283166020918202929092010152600c5461153f9130911684610b63565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115779085905f90869030904290600401611937565b5f604051808303815f87803b15801561158e575f80fd5b505af11580156115a0573d5f803e3d5ffd5b505050505050565b5f81848411156115cb5760405162461bcd60e51b815260040161074e91906115e0565b505f6115d78585611840565b95945050505050565b5f6020808352835180828501525f5b8181101561160b578581018301518582016040015282016115ef565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ac8575f80fd5b803561164a8161162b565b919050565b5f8060408385031215611660575f80fd5b823561166b8161162b565b946020939093013593505050565b5f805f6060848603121561168b575f80fd5b83356116968161162b565b925060208401356116a68161162b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156116dc575f80fd5b823567ffffffffffffffff808211156116f3575f80fd5b818501915085601f830112611706575f80fd5b813581811115611718576117186116b7565b8060051b604051601f19603f8301168101818110858211171561173d5761173d6116b7565b60405291825284820192508381018501918883111561175a575f80fd5b938501935b8285101561177f576117708561163f565b8452938501939285019261175f565b98975050505050505050565b5f6020828403121561179b575f80fd5b81356114518161162b565b5f602082840312156117b6575f80fd5b5035919050565b5f80604083850312156117ce575f80fd5b82356117d98161162b565b915060208301356117e98161162b565b809150509250929050565b600181811c9082168061180857607f821691505b60208210810361182657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106bc576106bc61182c565b808201808211156106bc576106bc61182c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118c0576118c061182c565b5060010190565b80820281158282048414176106bc576106bc61182c565b5f602082840312156118ee575f80fd5b81518015158114611451575f80fd5b5f8261191757634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561192c575f80fd5b81516114518161162b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119855784516001600160a01b031683529383019391830191600101611960565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cc03cb29e6af78cefeba67228586e6e7ff09311195edd4a5f66dcf7ea64d676c64736f6c63430008140033

Deployed Bytecode Sourcemap

12667:5794:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7728:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8886:169;;;;;;;;;;-1:-1:-1;8886:169:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;8886:169:0;1162:187:1;7834:108:0;;;;;;;;;;-1:-1:-1;7922:12:0;;7834:108;;;1500:25:1;;;1488:2;1473:18;7834:108:0;1354:177:1;13013:24:0;;;;;;;;;;-1:-1:-1;13013:24:0;;;;;;;;;;;9282:422;;;;;;;;;;-1:-1:-1;9282:422:0;;;;;:::i;:::-;;:::i;7950:93::-;;;;;;;;;;-1:-1:-1;7950:93:0;;8033:2;2139:36:1;;2127:2;2112:18;7950:93:0;1997:184:1;9061:215:0;;;;;;;;;;-1:-1:-1;9061:215:0;;;;;:::i;:::-;;:::i;13209:27::-;;;;;;;;;;;;;;;;13456:28;;;;;;;;;;;;;;;;17203:179;;;;;;;;;;-1:-1:-1;17203:179:0;;;;;:::i;:::-;;:::i;:::-;;12983:23;;;;;;;;;;-1:-1:-1;12983:23:0;;;;;;;;8212:127;;;;;;;;;;-1:-1:-1;8212:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8313:18:0;8286:7;8313:18;;;;;;;;;;;;8212:127;12185:94;;;;;;;;;;;;;:::i;18314:142::-;;;;;;;;;;-1:-1:-1;18314:142:0;;;;;:::i;:::-;;:::i;13096:28::-;;;;;;;;;;-1:-1:-1;13096:28:0;;;;-1:-1:-1;;;;;13096:28:0;;;;;;-1:-1:-1;;;;;4060:32:1;;;4042:51;;4030:2;4015:18;13096:28:0;3881:218:1;12932:44:0;;;;;;;;;;;;;;;;14317:101;;;;;;;;;;;;;:::i;12086:87::-;;;;;;;;;;-1:-1:-1;12159:6:0;;-1:-1:-1;;;;;12159:6:0;12086:87;;12856:69;;;;;;;;;;-1:-1:-1;12856:69:0;;;;-1:-1:-1;;;;;12856:69:0;;;7616:104;;;;;;;;;;;;;:::i;13491:29::-;;;;;;;;;;;;;;;;16525:149;;;;;;;;;;-1:-1:-1;16525:149:0;;;;;:::i;:::-;;:::i;10266:377::-;;;;;;;;;;-1:-1:-1;10266:377:0;;;;;:::i;:::-;;:::i;8699:175::-;;;;;;;;;;-1:-1:-1;8699:175:0;;;;;:::i;:::-;;:::i;13131:34::-;;;;;;;;;;;;;;;;13172:30;;;;;;;;;;;;;;;;13243:49;;;;;;;;;;;;;;;;13369;;;;;;;;;;-1:-1:-1;13369:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8053:151;;;;;;;;;;-1:-1:-1;8053:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;8169:18:0;;;8142:7;8169:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8053:151;13305:49;;;;;;;;;;;;;;;;14195:114;;;;;;;;;;-1:-1:-1;14195:114:0;;;;;:::i;:::-;;:::i;12780:69::-;;;;;;;;;;-1:-1:-1;12780:69:0;;;;-1:-1:-1;;;;;12780:69:0;;;12285:192;;;;;;;;;;-1:-1:-1;12285:192:0;;;;;:::i;:::-;;:::i;7378:25::-;;;;;;;;;;-1:-1:-1;7378:25:0;;;;-1:-1:-1;;;;;7378:25:0;;;7728:100;7782:13;7815:5;7808:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7728:100;:::o;8886:169::-;8969:4;8986:39;299:10;9009:7;9018:6;8986:8;:39::i;:::-;-1:-1:-1;9043:4:0;8886:169;;;;;:::o;9282:422::-;9388:4;9405:36;9415:6;9423:9;9434:6;9405:9;:36::i;:::-;-1:-1:-1;;;;;9481:19:0;;9454:24;9481:19;;;:11;:19;;;;;;;;299:10;9481:33;;;;;;;;9533:26;;;;9525:79;;;;-1:-1:-1;;;9525:79:0;;5292:2:1;9525:79:0;;;5274:21:1;5331:2;5311:18;;;5304:30;5370:34;5350:18;;;5343:62;-1:-1:-1;;;5421:18:1;;;5414:38;5469:19;;9525:79:0;;;;;;;;;9615:57;9624:6;299:10;9646:25;9665:6;9646:16;:25;:::i;:::-;9615:8;:57::i;:::-;-1:-1:-1;9692:4:0;;9282:422;-1:-1:-1;;;;9282:422:0:o;9061:215::-;299:10;9149:4;9198:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9198:34:0;;;;;;;;;;9149:4;;9166:80;;9189:7;;9198:47;;9235:10;;9198:47;:::i;17203:179::-;12159:6;;-1:-1:-1;;;;;12159:6:0;299:10;12000:23;11992:68;;;;-1:-1:-1;;;11992:68:0;;;;;;;:::i;:::-;17284:6:::1;17279:96;17300:6;:13;17296:1;:17;17279:96;;;17359:4;17336:9;:20;17346:6;17353:1;17346:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17336:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17336:20:0;:27;;-1:-1:-1;;17336:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17315:3;::::1;::::0;::::1;:::i;:::-;;;;17279:96;;;;17203:179:::0;:::o;12185:94::-;12159:6;;-1:-1:-1;;;;;12159:6:0;299:10;12000:23;11992:68;;;;-1:-1:-1;;;11992:68:0;;;;;;;:::i;:::-;12250:21:::1;12268:1;12250:9;:21::i;:::-;12185:94::o:0;18314:142::-;12159:6;;-1:-1:-1;;;;;12159:6:0;299:10;12000:23;11992:68;;;;-1:-1:-1;;;11992:68:0;;;;;;;:::i;:::-;18401:15:::1;:6:::0;18410::::1;18401:15;:::i;:::-;18386:12;:30:::0;18433:15:::1;:6:::0;18442::::1;18433:15;:::i;:::-;18418:12;:30:::0;-1:-1:-1;18314:142:0:o;14317:101::-;12159:6;;-1:-1:-1;;;;;12159:6:0;299:10;12000:23;11992:68;;;;-1:-1:-1;;;11992:68:0;;;;;;;:::i;:::-;14371:12:::1;:19:::0;;-1:-1:-1;;14392:18:0;;;;;14317:101::o;7616:104::-;7672:13;7705:7;7698:14;;;;;:::i;16525:149::-;12159:6;;-1:-1:-1;;;;;12159:6:0;299:10;12000:23;11992:68;;;;-1:-1:-1;;;11992:68:0;;;;;;;:::i;:::-;16627:12:::1;-1:-1:-1::0;;;;;16620:29:0::1;;16650:7;12159:6:::0;;-1:-1:-1;;;;;12159:6:0;;12086:87;16650:7:::1;16620:46;::::0;-1:-1:-1;;;;;;16620:46:0::1;::::0;;;;;;-1:-1:-1;;;;;6892:32:1;;;16620:46:0::1;::::0;::::1;6874:51:1::0;6941:18;;;6934:34;;;6847:18;;16620:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16525:149:::0;;:::o;10266:377::-;299:10;10359:4;10403:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10403:34:0;;;;;;;;;;10456:35;;;;10448:85;;;;-1:-1:-1;;;10448:85:0;;7463:2:1;10448:85:0;;;7445:21:1;7502:2;7482:18;;;7475:30;7541:34;7521:18;;;7514:62;-1:-1:-1;;;7592:18:1;;;7585:35;7637:19;;10448:85:0;7261:401:1;10448:85:0;10544:67;299:10;10567:7;10576:34;10595:15;10576:16;:34;:::i;10544:67::-;-1:-1:-1;10631:4:0;;10266:377;-1:-1:-1;;;10266:377:0:o;8699:175::-;8785:4;8802:42;299:10;8826:9;8837:6;8802:9;:42::i;14195:114::-;12159:6;;-1:-1:-1;;;;;12159:6:0;299:10;12000:23;11992:68;;;;-1:-1:-1;;;11992:68:0;;;;;;;:::i;:::-;14264:37:::1;14291:9;14272:7;12159:6:::0;;-1:-1:-1;;;;;12159:6:0;;12086:87;14272:7:::1;-1:-1:-1::0;;;;;14264:26:0::1;::::0;::::1;:37::i;:::-;14195:114:::0;:::o;12285:192::-;12159:6;;-1:-1:-1;;;;;12159:6:0;299:10;12000:23;11992:68;;;;-1:-1:-1;;;11992:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12374:22:0;::::1;12366:73;;;::::0;-1:-1:-1;;;12366:73:0;;7869:2:1;12366:73:0::1;::::0;::::1;7851:21:1::0;7908:2;7888:18;;;7881:30;7947:34;7927:18;;;7920:62;-1:-1:-1;;;7998:18:1;;;7991:36;8044:19;;12366:73:0::1;7667:402:1::0;12366:73:0::1;12450:19;12460:8;12450:9;:19::i;8347:346::-:0;-1:-1:-1;;;;;8449:19:0;;8441:68;;;;-1:-1:-1;;;8441:68:0;;8276:2:1;8441:68:0;;;8258:21:1;8315:2;8295:18;;;8288:30;8354:34;8334:18;;;8327:62;-1:-1:-1;;;8405:18:1;;;8398:34;8449:19;;8441:68:0;8074:400:1;8441:68:0;-1:-1:-1;;;;;8528:21:0;;8520:68;;;;-1:-1:-1;;;8520:68:0;;8681:2:1;8520:68:0;;;8663:21:1;8720:2;8700:18;;;8693:30;8759:34;8739:18;;;8732:62;-1:-1:-1;;;8810:18:1;;;8803:32;8852:19;;8520:68:0;8479:398:1;8520:68:0;-1:-1:-1;;;;;8601:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8653:32;;1500:25:1;;;8653:32:0;;1473:18:1;8653:32:0;;;;;;;8347:346;;;:::o;14424:2093::-;14540:1;14531:6;:10;14523:64;;;;-1:-1:-1;;;14523:64:0;;9084:2:1;14523:64:0;;;9066:21:1;9123:2;9103:18;;;9096:30;9162:34;9142:18;;;9135:62;-1:-1:-1;;;9213:18:1;;;9206:39;9262:19;;14523:64:0;8882:405:1;14523:64:0;-1:-1:-1;;;;;14602:20:0;;;;;;:9;:20;;;;;;;;;:41;;-1:-1:-1;;;;;;14626:17:0;;;;;;:9;:17;;;;;;;;14602:41;14599:100;;;14673:14;;14660:10;:27;14599:100;14743:10;;;;14742:11;:40;;;;-1:-1:-1;;;;;;14758:24:0;;;;;;:16;:24;;;;;;;;14757:25;14742:40;:86;;;;-1:-1:-1;;;;;;14801:27:0;;;;;;:16;:27;;;;;;;;14800:28;14742:86;14739:823;;;14881:12;;;;;;;14855:82;;;;-1:-1:-1;;;14855:82:0;;9494:2:1;14855:82:0;;;9476:21:1;9533:2;9513:18;;;9506:30;9572:27;9552:18;;;9545:55;9617:18;;14855:82:0;9292:349:1;14855:82:0;14985:12;14974:8;;14956:15;;:26;;;;:::i;:::-;:41;14952:272;;;15034:10;;-1:-1:-1;;;;;15021:23:0;;;15034:10;;15021:23;15018:98;;-1:-1:-1;;;;;15069:20:0;;;;;;:9;:20;;;;;:27;;-1:-1:-1;;15069:27:0;15092:4;15069:27;;;15018:98;15130:10;;-1:-1:-1;;;;;15120:20:0;;;15130:10;;15120:20;15117:92;;-1:-1:-1;;;;;15165:17:0;;;;;;:9;:17;;;;;:24;;-1:-1:-1;;15165:24:0;15185:4;15165:24;;;15117:92;15275:12;;15265:6;:22;;15239:89;;;;-1:-1:-1;;;15239:89:0;;9848:2:1;15239:89:0;;;9830:21:1;9887:2;9867:18;;;9860:30;-1:-1:-1;;;9906:18:1;;;9899:52;9968:18;;15239:89:0;9646:346:1;15239:89:0;15359:10;;-1:-1:-1;;;;;15346:23:0;;;15359:10;;15346:23;15343:208;;15452:12;;15442:6;15419:20;15429:9;-1:-1:-1;;;;;8313:18:0;8286:7;8313:18;;;;;;;;;;;;8212:127;15419:20;:29;;;;:::i;:::-;:45;;15389:146;;;;-1:-1:-1;;;15389:146:0;;10199:2:1;15389:146:0;;;10181:21:1;10238:2;10218:18;;;10211:30;10277:28;10257:18;;;10250:56;10323:18;;15389:146:0;9997:350:1;15389:146:0;15619:10;;15583:21;;15619:10;;;:38;;-1:-1:-1;;;;;;15633:24:0;;;;;;:16;:24;;;;;;;;15619:38;:69;;;-1:-1:-1;;;;;;15661:27:0;;;;;;:16;:27;;;;;;;;15619:69;15615:418;;;-1:-1:-1;15721:1:0;15615:418;;;15780:10;;-1:-1:-1;;;;;15767:23:0;;;15780:10;;15767:23;:45;;;;-1:-1:-1;;;;;;15795:17:0;;;;;;:9;:17;;;;;;;;15794:18;15767:45;15764:258;;;15871:3;15858:10;;15849:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;15833:41;;15764:258;;;15991:3;15979:9;;15970:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;15954:40;;15764:258;16047:11;;;;:39;;;;-1:-1:-1;16076:10:0;;;;16075:11;16047:39;:73;;;;;16119:1;16103:13;:17;16047:73;:110;;;;-1:-1:-1;16147:10:0;;-1:-1:-1;;;;;16137:20:0;;;16147:10;;16137:20;;16047:110;16043:167;;;16185:13;:11;:13::i;:::-;16239:17;;16222:288;;16283:53;16299:6;16315:4;16322:13;16283:15;:53::i;:::-;16352:61;16368:6;16376:9;16387:25;:6;16398:13;16387:10;:25::i;:::-;16352:15;:61::i;:::-;16222:288;;;16456:42;16472:6;16480:9;16491:6;16456:15;:42::i;:::-;14512:2005;14424:2093;;;:::o;12485:173::-;12560:6;;;-1:-1:-1;;;;;12577:17:0;;;-1:-1:-1;;;;;;12577:17:0;;;;;;;12610:40;;12560:6;;;12577:17;12560:6;;12610:40;;12541:16;;12610:40;12530:128;12485:173;:::o;459:315::-;574:6;549:21;:31;;541:73;;;;-1:-1:-1;;;541:73:0;;10776:2:1;541:73:0;;;10758:21:1;10815:2;10795:18;;;10788:30;10854:31;10834:18;;;10827:59;10903:18;;541:73:0;10574:353:1;541:73:0;626:12;644:9;-1:-1:-1;;;;;644:14:0;666:6;644:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;625:52;;;696:7;688:78;;;;-1:-1:-1;;;688:78:0;;11344:2:1;688:78:0;;;11326:21:1;11383:2;11363:18;;;11356:30;11422:34;11402:18;;;11395:62;11493:28;11473:18;;;11466:56;11539:19;;688:78:0;11142:422:1;17390:419:0;17476:4;17432:23;8313:18;;;;;;;;;;;17516:11;;17497:30;;17493:309;;17575:21;17617:30;17631:15;17617:13;:30::i;:::-;17668:20;17691:38;17715:14;17691:21;:38;:::i;:::-;17754:9;;17668:61;;-1:-1:-1;17746:42:0;;-1:-1:-1;;;;;17754:9:0;17668:61;17746:28;:42::i;9714:544::-;-1:-1:-1;;;;;9820:20:0;;9812:70;;;;-1:-1:-1;;;9812:70:0;;11771:2:1;9812:70:0;;;11753:21:1;11810:2;11790:18;;;11783:30;11849:34;11829:18;;;11822:62;-1:-1:-1;;;11900:18:1;;;11893:35;11945:19;;9812:70:0;11569:401:1;9812:70:0;-1:-1:-1;;;;;9901:23:0;;9893:71;;;;-1:-1:-1;;;9893:71:0;;12177:2:1;9893:71:0;;;12159:21:1;12216:2;12196:18;;;12189:30;12255:34;12235:18;;;12228:62;-1:-1:-1;;;12306:18:1;;;12299:33;12349:19;;9893:71:0;11975:399:1;9893:71:0;-1:-1:-1;;;;;10001:17:0;;9977:21;10001:17;;;;;;;;;;;10037:23;;;;10029:74;;;;-1:-1:-1;;;10029:74:0;;12581:2:1;10029:74:0;;;12563:21:1;12620:2;12600:18;;;12593:30;12659:34;12639:18;;;12632:62;-1:-1:-1;;;12710:18:1;;;12703:36;12756:19;;10029:74:0;12379:402:1;10029:74:0;10134:22;10150:6;10134:13;:22;:::i;:::-;-1:-1:-1;;;;;10114:17:0;;;:9;:17;;;;;;;;;;;:42;;;;10167:20;;;;;;;;:30;;10191:6;;10114:9;10167:30;;10191:6;;10167:30;:::i;:::-;;;;;;;;10232:9;-1:-1:-1;;;;;10215:35:0;10224:6;-1:-1:-1;;;;;10215:35:0;;10243:6;10215:35;;;;1500:25:1;;1488:2;1473:18;;1354:177;10215:35:0;;;;;;;;9801:457;9714:544;;;:::o;1080:136::-;1138:7;1165:43;1169:1;1172;1165:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1158:50;1080:136;-1:-1:-1;;;1080:136:0:o;17817:491::-;17904:16;;;17918:1;17904:16;;;;;;;;17880:21;;17904:16;;;;;;;;;;-1:-1:-1;17904:16:0;17880:40;;17949:4;17931;17936:1;17931:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17931:23:0;;;:7;;;;;;;;;;:23;;;;17975:13;;:20;;;-1:-1:-1;;;17975:20:0;;;;:13;;;;;:18;;:20;;;;;17931:7;;17975:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17965:4;17970:1;17965:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17965:30:0;;;:7;;;;;;;;;:30;18038:13;;18006:60;;18023:4;;18038:13;18054:11;18006:8;:60::i;:::-;18105:13;;:195;;-1:-1:-1;;;18105:195:0;;-1:-1:-1;;;;;18105:13:0;;;;:64;;:195;;18184:11;;18105:13;;18227:4;;18254;;18274:15;;18105:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17869:439;17817:491;:::o;2127:181::-;2213:7;2249:12;2241:6;;;;2233:29;;;;-1:-1:-1;;;2233:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2264:9:0;2276:5;2280:1;2276;:5;:::i;:::-;2264:17;2127:181;-1:-1:-1;;;;;2127:181:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703: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;3696:180::-;3755:6;3808:2;3796:9;3787:7;3783:23;3779:32;3776:52;;;3824:1;3821;3814:12;3776:52;-1:-1:-1;3847:23:1;;3696:180;-1:-1:-1;3696:180:1:o;4312:388::-;4380:6;4388;4441:2;4429:9;4420:7;4416:23;4412:32;4409:52;;;4457:1;4454;4447:12;4409:52;4496:9;4483:23;4515:31;4540:5;4515:31;:::i;:::-;4565:5;-1:-1:-1;4622:2:1;4607:18;;4594:32;4635:33;4594:32;4635:33;:::i;:::-;4687:7;4677:17;;;4312:388;;;;;:::o;4705:380::-;4784:1;4780:12;;;;4827;;;4848:61;;4902:4;4894:6;4890:17;4880:27;;4848:61;4955:2;4947:6;4944:14;4924:18;4921:38;4918:161;;5001:10;4996:3;4992:20;4989:1;4982:31;5036:4;5033:1;5026:15;5064:4;5061:1;5054:15;4918:161;;4705:380;;;:::o;5499:127::-;5560:10;5555:3;5551:20;5548:1;5541:31;5591:4;5588:1;5581:15;5615:4;5612:1;5605:15;5631:128;5698:9;;;5719:11;;;5716:37;;;5733:18;;:::i;5764:125::-;5829:9;;;5850:10;;;5847:36;;;5863:18;;:::i;5894:356::-;6096:2;6078:21;;;6115:18;;;6108:30;6174:34;6169:2;6154:18;;6147:62;6241:2;6226:18;;5894:356::o;6255:127::-;6316:10;6311:3;6307:20;6304:1;6297:31;6347:4;6344:1;6337:15;6371:4;6368:1;6361:15;6387:135;6426:3;6447:17;;;6444:43;;6467:18;;:::i;:::-;-1:-1:-1;6514:1:1;6503:13;;6387:135::o;6527:168::-;6600:9;;;6631;;6648:15;;;6642:22;;6628:37;6618:71;;6669:18;;:::i;6979:277::-;7046:6;7099:2;7087:9;7078:7;7074:23;7070:32;7067:52;;;7115:1;7112;7105:12;7067:52;7147:9;7141:16;7200:5;7193:13;7186:21;7179:5;7176:32;7166:60;;7222:1;7219;7212:12;10352:217;10392:1;10418;10408:132;;10462:10;10457:3;10453:20;10450:1;10443:31;10497:4;10494:1;10487:15;10525:4;10522:1;10515:15;10408:132;-1:-1:-1;10554:9:1;;10352:217::o;12786:251::-;12856:6;12909:2;12897:9;12888:7;12884:23;12880:32;12877:52;;;12925:1;12922;12915:12;12877:52;12957:9;12951:16;12976:31;13001:5;12976:31;:::i;13042:980::-;13304:4;13352:3;13341:9;13337:19;13383:6;13372:9;13365:25;13409:2;13447:6;13442:2;13431:9;13427:18;13420:34;13490:3;13485:2;13474:9;13470:18;13463:31;13514:6;13549;13543:13;13580:6;13572;13565:22;13618:3;13607:9;13603:19;13596:26;;13657:2;13649:6;13645:15;13631:29;;13678:1;13688:195;13702:6;13699:1;13696:13;13688:195;;;13767:13;;-1:-1:-1;;;;;13763:39:1;13751:52;;13858:15;;;;13823:12;;;;13799:1;13717:9;13688:195;;;-1:-1:-1;;;;;;;13939:32:1;;;;13934:2;13919:18;;13912:60;-1:-1:-1;;;14003:3:1;13988:19;13981:35;13900:3;13042:980;-1:-1:-1;;;13042:980:1:o

Swarm Source

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