ETH Price: $3,478.82 (+0.25%)
Gas: 2 Gwei

Token

Halloween Inu (HINU)
 

Overview

Max Total Supply

1,000,000,000 HINU

Holders

163

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
504,733.958454032 HINU

Value
$0.00
0x227f49760d1925575c51d09fb6e4bb2605a75f20
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:
HINU

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-22
*/

/**
Website:  https://halloweeninu.xyz
Telegram: https://t.me/Halloweeninu_erc
Twitter: https://twitter.com/HalloweenInuERC

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.19;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract HINU is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Halloween Inu";
    string private constant _symbol = "HINU";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 30;  

    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 60;
 
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _developmentAddress = payable(_msgSender()); 
    address payable private _marketingAddress = payable(_msgSender());
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool public transferDelayEnabled = true;
 
    uint256 public _maxTxAmount = 20000000 * 10**9; 
    uint256 public _maxWalletSize = 20000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 1000000 * 10**9;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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 _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 (from != owner() && to != owner()) {
 
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] <
                            block.number,  
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        require(!tradingOpen,"trading is already open");
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be 0%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 30, "Buy tax must be between 0% and 30%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be 0%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 90, "Sell tax must be between 0% and 90%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
	require(
            maxTxAmount >= ((totalSupply() * 1) / 100),
            "Cannot set maxTransactionAmount lower than 1%"
        );
	_maxTxAmount = maxTxAmount;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
	require(
            maxWalletSize >= ((totalSupply() * 1) / 100),
            "Cannot set maxWalletAmount lower than 1%"
        );
        _maxWalletSize = maxWalletSize;
    }

    function removeLimits() public onlyOwner {
        transferDelayEnabled = false;
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

}

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":"_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":"_swapTokensAtAmount","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a670de0b6b3a76400006000196200038e565b6200002890600019620003b1565b6007556000600955601e600a556000600b55603c600c55600b54600d55600c54600e55600d54600f55600e54601055620000676200038a60201b60201c565b601180546001600160a01b0319166001600160a01b03929092169190911790556200008f3390565b601280546001600160a01b0319166001600160a01b03929092169190911790556014805463ffffffff60a01b1916630101000160a01b17905566470de4df820000601581905560165566038d7ea4c68000601755348015620000f057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d49190620003d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000222573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002489190620003d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000296573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bc9190620003d9565b601480546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601154851684528284208054821683179055601254909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200037b91815260200190565b60405180910390a3506200040b565b3390565b600082620003ac57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620003d357634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620003ec57600080fd5b81516001600160a01b03811681146200040457600080fd5b9392505050565b611d72806200041b6000396000f3fe6080604052600436106101a05760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c876d0b911610064578063c876d0b9146104a0578063dd62ed3e146104c1578063ea1644d514610507578063f2fde38b1461052757600080fd5b8063a2a957bb1461044b578063a9059cbb1461046b578063c3c8cd801461048b57600080fd5b80638f70ccf7116100c65780638f70ccf7146103c85780638f9a55c0146103e857806395d89b41146103fe57806398a5c3151461042b57600080fd5b8063751039fc1461037f5780637d1db4a5146103945780638da5cb5b146103aa57600080fd5b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461031557806370a082311461032a578063715018a61461034a57806374010ece1461035f57600080fd5b8063313ce567146102b757806349bd5a5e146102d35780636d8aa8f8146102f357600080fd5b806306fdde03146101ac578063095ea7b3146101f45780631694505e1461022457806318160ddd1461025c57806323b872dd146102815780632fd689e3146102a157600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600d81526c48616c6c6f7765656e20496e7560981b60208201525b6040516101eb9190611a33565b60405180910390f35b34801561020057600080fd5b5061021461020f366004611a96565b610547565b60405190151581526020016101eb565b34801561023057600080fd5b50601354610244906001600160a01b031681565b6040516001600160a01b0390911681526020016101eb565b34801561026857600080fd5b50670de0b6b3a76400005b6040519081526020016101eb565b34801561028d57600080fd5b5061021461029c366004611ac2565b61055e565b3480156102ad57600080fd5b5061027360175481565b3480156102c357600080fd5b50604051600981526020016101eb565b3480156102df57600080fd5b50601454610244906001600160a01b031681565b3480156102ff57600080fd5b5061031361030e366004611b03565b6105c7565b005b34801561032157600080fd5b50610313610618565b34801561033657600080fd5b50610273610345366004611b25565b610663565b34801561035657600080fd5b50610313610685565b34801561036b57600080fd5b5061031361037a366004611b42565b6106f9565b34801561038b57600080fd5b506103136107ac565b3480156103a057600080fd5b5061027360155481565b3480156103b657600080fd5b506000546001600160a01b0316610244565b3480156103d457600080fd5b506103136103e3366004611b03565b6107f6565b3480156103f457600080fd5b5061027360165481565b34801561040a57600080fd5b5060408051808201909152600481526348494e5560e01b60208201526101de565b34801561043757600080fd5b50610313610446366004611b42565b610898565b34801561045757600080fd5b50610313610466366004611b5b565b6108c7565b34801561047757600080fd5b50610214610486366004611a96565b610a53565b34801561049757600080fd5b50610313610a60565b3480156104ac57600080fd5b5060145461021490600160b81b900460ff1681565b3480156104cd57600080fd5b506102736104dc366004611b8d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561051357600080fd5b50610313610522366004611b42565b610ab4565b34801561053357600080fd5b50610313610542366004611b25565b610b62565b6000610554338484610c4c565b5060015b92915050565b600061056b848484610d70565b6105bd84336105b885604051806060016040528060288152602001611d15602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611304565b610c4c565b5060019392505050565b6000546001600160a01b031633146105fa5760405162461bcd60e51b81526004016105f190611bc6565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061064d57506012546001600160a01b0316336001600160a01b0316145b61065657600080fd5b476106608161133e565b50565b6001600160a01b0381166000908152600260205260408120546105589061137c565b6000546001600160a01b031633146106af5760405162461bcd60e51b81526004016105f190611bc6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107235760405162461bcd60e51b81526004016105f190611bc6565b6064610738670de0b6b3a76400006001611c11565b6107429190611c28565b8110156107a75760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526c6c6f776572207468616e20312560981b60648201526084016105f1565b601555565b6000546001600160a01b031633146107d65760405162461bcd60e51b81526004016105f190611bc6565b6014805460ff60b81b19169055670de0b6b3a76400006015819055601655565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016105f190611bc6565b601454600160a01b900460ff161561087a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105f1565b60148054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146108c25760405162461bcd60e51b81526004016105f190611bc6565b601755565b6000546001600160a01b031633146108f15760405162461bcd60e51b81526004016105f190611bc6565b83156109385760405162461bcd60e51b81526020600482015260166024820152754275792072657761726473206d75737420626520302560501b60448201526064016105f1565b601e8211156109945760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642033604482015261302560f01b60648201526084016105f1565b82156109e25760405162461bcd60e51b815260206004820152601760248201527f53656c6c2072657761726473206d75737420626520302500000000000000000060448201526064016105f1565b605a811115610a3f5760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239302560e81b60648201526084016105f1565b600993909355600b91909155600a55600c55565b6000610554338484610d70565b6011546001600160a01b0316336001600160a01b03161480610a9557506012546001600160a01b0316336001600160a01b0316145b610a9e57600080fd5b6000610aa930610663565b905061066081611400565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016105f190611bc6565b6064610af3670de0b6b3a76400006001611c11565b610afd9190611c28565b811015610b5d5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f776572604482015267207468616e20312560c01b60648201526084016105f1565b601655565b6000546001600160a01b03163314610b8c5760405162461bcd60e51b81526004016105f190611bc6565b6001600160a01b038116610bf15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610cae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f1565b6001600160a01b038216610d0f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f1565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f1565b6001600160a01b038216610e365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f1565b60008111610e985760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105f1565b6000546001600160a01b03848116911614801590610ec457506000546001600160a01b03838116911614155b156111f757601454600160a01b900460ff16610f5d576000546001600160a01b03848116911614610f5d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105f1565b601454600160b81b900460ff1615611049576013546001600160a01b03838116911614801590610f9b57506014546001600160a01b03838116911614155b15611049573260009081526005602052604090205443116110365760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016105f1565b3260009081526005602052604090204390555b60155481111561109b5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105f1565b6014546001600160a01b0383811691161461112057601654816110bd84610663565b6110c79190611c4a565b106111205760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105f1565b600061112b30610663565b6017546015549192508210159082106111445760155491505b80801561115b5750601454600160a81b900460ff16155b801561117557506014546001600160a01b03868116911614155b801561118a5750601454600160b01b900460ff165b80156111af57506001600160a01b03851660009081526006602052604090205460ff16155b80156111d457506001600160a01b03841660009081526006602052604090205460ff16155b156111f4576111e282611400565b4780156111f2576111f24761133e565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061123957506001600160a01b03831660009081526006602052604090205460ff165b8061126b57506014546001600160a01b0385811691161480159061126b57506014546001600160a01b03848116911614155b15611278575060006112f2565b6014546001600160a01b0385811691161480156112a357506013546001600160a01b03848116911614155b156112b557600954600d55600a54600e555b6014546001600160a01b0384811691161480156112e057506013546001600160a01b03858116911614155b156112f257600b54600d55600c54600e555b6112fe8484848461157a565b50505050565b600081848411156113285760405162461bcd60e51b81526004016105f19190611a33565b5060006113358486611c5d565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611378573d6000803e3d6000fd5b5050565b60006007548211156113e35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105f1565b60006113ed6115a8565b90506113f983826115cb565b9392505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061144857611448611c70565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c59190611c86565b816001815181106114d8576114d8611c70565b6001600160a01b0392831660209182029290920101526013546114fe9130911684610c4c565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611537908590600090869030904290600401611ca3565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b806115875761158761160d565b61159284848461163b565b806112fe576112fe600f54600d55601054600e55565b60008060006115b5611732565b90925090506115c482826115cb565b9250505090565b60006113f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611772565b600d5415801561161d5750600e54155b1561162457565b600d8054600f55600e805460105560009182905555565b60008060008060008061164d876117a0565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061167f90876117fd565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546116ae908661183f565b6001600160a01b0389166000908152600260205260409020556116d08161189e565b6116da84836118e8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161171f91815260200190565b60405180910390a3505050505050505050565b6007546000908190670de0b6b3a764000061174d82826115cb565b82101561176957505060075492670de0b6b3a764000092509050565b90939092509050565b600081836117935760405162461bcd60e51b81526004016105f19190611a33565b5060006113358486611c28565b60008060008060008060008060006117bd8a600d54600e5461190c565b92509250925060006117cd6115a8565b905060008060006117e08e878787611961565b919e509c509a509598509396509194505050505091939550919395565b60006113f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611304565b60008061184c8385611c4a565b9050838110156113f95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f1565b60006118a86115a8565b905060006118b683836119b1565b306000908152600260205260409020549091506118d3908261183f565b30600090815260026020526040902055505050565b6007546118f590836117fd565b600755600854611905908261183f565b6008555050565b6000808080611926606461192089896119b1565b906115cb565b9050600061193960646119208a896119b1565b905060006119518261194b8b866117fd565b906117fd565b9992985090965090945050505050565b600080808061197088866119b1565b9050600061197e88876119b1565b9050600061198c88886119b1565b9050600061199e8261194b86866117fd565b939b939a50919850919650505050505050565b6000826000036119c357506000610558565b60006119cf8385611c11565b9050826119dc8583611c28565b146113f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f1565b600060208083528351808285015260005b81811015611a6057858101830151858201604001528201611a44565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461066057600080fd5b60008060408385031215611aa957600080fd5b8235611ab481611a81565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b8335611ae281611a81565b92506020840135611af281611a81565b929592945050506040919091013590565b600060208284031215611b1557600080fd5b813580151581146113f957600080fd5b600060208284031215611b3757600080fd5b81356113f981611a81565b600060208284031215611b5457600080fd5b5035919050565b60008060008060808587031215611b7157600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611ba057600080fd5b8235611bab81611a81565b91506020830135611bbb81611a81565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761055857610558611bfb565b600082611c4557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561055857610558611bfb565b8181038181111561055857610558611bfb565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c9857600080fd5b81516113f981611a81565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cf35784516001600160a01b031683529383019391830191600101611cce565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b478f43eaa73f6475a15f5d4cf847ce75ca2469a33fa5f89663c5ae11ccc098064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c876d0b911610064578063c876d0b9146104a0578063dd62ed3e146104c1578063ea1644d514610507578063f2fde38b1461052757600080fd5b8063a2a957bb1461044b578063a9059cbb1461046b578063c3c8cd801461048b57600080fd5b80638f70ccf7116100c65780638f70ccf7146103c85780638f9a55c0146103e857806395d89b41146103fe57806398a5c3151461042b57600080fd5b8063751039fc1461037f5780637d1db4a5146103945780638da5cb5b146103aa57600080fd5b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461031557806370a082311461032a578063715018a61461034a57806374010ece1461035f57600080fd5b8063313ce567146102b757806349bd5a5e146102d35780636d8aa8f8146102f357600080fd5b806306fdde03146101ac578063095ea7b3146101f45780631694505e1461022457806318160ddd1461025c57806323b872dd146102815780632fd689e3146102a157600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600d81526c48616c6c6f7765656e20496e7560981b60208201525b6040516101eb9190611a33565b60405180910390f35b34801561020057600080fd5b5061021461020f366004611a96565b610547565b60405190151581526020016101eb565b34801561023057600080fd5b50601354610244906001600160a01b031681565b6040516001600160a01b0390911681526020016101eb565b34801561026857600080fd5b50670de0b6b3a76400005b6040519081526020016101eb565b34801561028d57600080fd5b5061021461029c366004611ac2565b61055e565b3480156102ad57600080fd5b5061027360175481565b3480156102c357600080fd5b50604051600981526020016101eb565b3480156102df57600080fd5b50601454610244906001600160a01b031681565b3480156102ff57600080fd5b5061031361030e366004611b03565b6105c7565b005b34801561032157600080fd5b50610313610618565b34801561033657600080fd5b50610273610345366004611b25565b610663565b34801561035657600080fd5b50610313610685565b34801561036b57600080fd5b5061031361037a366004611b42565b6106f9565b34801561038b57600080fd5b506103136107ac565b3480156103a057600080fd5b5061027360155481565b3480156103b657600080fd5b506000546001600160a01b0316610244565b3480156103d457600080fd5b506103136103e3366004611b03565b6107f6565b3480156103f457600080fd5b5061027360165481565b34801561040a57600080fd5b5060408051808201909152600481526348494e5560e01b60208201526101de565b34801561043757600080fd5b50610313610446366004611b42565b610898565b34801561045757600080fd5b50610313610466366004611b5b565b6108c7565b34801561047757600080fd5b50610214610486366004611a96565b610a53565b34801561049757600080fd5b50610313610a60565b3480156104ac57600080fd5b5060145461021490600160b81b900460ff1681565b3480156104cd57600080fd5b506102736104dc366004611b8d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561051357600080fd5b50610313610522366004611b42565b610ab4565b34801561053357600080fd5b50610313610542366004611b25565b610b62565b6000610554338484610c4c565b5060015b92915050565b600061056b848484610d70565b6105bd84336105b885604051806060016040528060288152602001611d15602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611304565b610c4c565b5060019392505050565b6000546001600160a01b031633146105fa5760405162461bcd60e51b81526004016105f190611bc6565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061064d57506012546001600160a01b0316336001600160a01b0316145b61065657600080fd5b476106608161133e565b50565b6001600160a01b0381166000908152600260205260408120546105589061137c565b6000546001600160a01b031633146106af5760405162461bcd60e51b81526004016105f190611bc6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107235760405162461bcd60e51b81526004016105f190611bc6565b6064610738670de0b6b3a76400006001611c11565b6107429190611c28565b8110156107a75760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526c6c6f776572207468616e20312560981b60648201526084016105f1565b601555565b6000546001600160a01b031633146107d65760405162461bcd60e51b81526004016105f190611bc6565b6014805460ff60b81b19169055670de0b6b3a76400006015819055601655565b6000546001600160a01b031633146108205760405162461bcd60e51b81526004016105f190611bc6565b601454600160a01b900460ff161561087a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105f1565b60148054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146108c25760405162461bcd60e51b81526004016105f190611bc6565b601755565b6000546001600160a01b031633146108f15760405162461bcd60e51b81526004016105f190611bc6565b83156109385760405162461bcd60e51b81526020600482015260166024820152754275792072657761726473206d75737420626520302560501b60448201526064016105f1565b601e8211156109945760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642033604482015261302560f01b60648201526084016105f1565b82156109e25760405162461bcd60e51b815260206004820152601760248201527f53656c6c2072657761726473206d75737420626520302500000000000000000060448201526064016105f1565b605a811115610a3f5760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239302560e81b60648201526084016105f1565b600993909355600b91909155600a55600c55565b6000610554338484610d70565b6011546001600160a01b0316336001600160a01b03161480610a9557506012546001600160a01b0316336001600160a01b0316145b610a9e57600080fd5b6000610aa930610663565b905061066081611400565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016105f190611bc6565b6064610af3670de0b6b3a76400006001611c11565b610afd9190611c28565b811015610b5d5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f776572604482015267207468616e20312560c01b60648201526084016105f1565b601655565b6000546001600160a01b03163314610b8c5760405162461bcd60e51b81526004016105f190611bc6565b6001600160a01b038116610bf15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610cae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f1565b6001600160a01b038216610d0f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f1565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f1565b6001600160a01b038216610e365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f1565b60008111610e985760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105f1565b6000546001600160a01b03848116911614801590610ec457506000546001600160a01b03838116911614155b156111f757601454600160a01b900460ff16610f5d576000546001600160a01b03848116911614610f5d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105f1565b601454600160b81b900460ff1615611049576013546001600160a01b03838116911614801590610f9b57506014546001600160a01b03838116911614155b15611049573260009081526005602052604090205443116110365760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016105f1565b3260009081526005602052604090204390555b60155481111561109b5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105f1565b6014546001600160a01b0383811691161461112057601654816110bd84610663565b6110c79190611c4a565b106111205760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105f1565b600061112b30610663565b6017546015549192508210159082106111445760155491505b80801561115b5750601454600160a81b900460ff16155b801561117557506014546001600160a01b03868116911614155b801561118a5750601454600160b01b900460ff165b80156111af57506001600160a01b03851660009081526006602052604090205460ff16155b80156111d457506001600160a01b03841660009081526006602052604090205460ff16155b156111f4576111e282611400565b4780156111f2576111f24761133e565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061123957506001600160a01b03831660009081526006602052604090205460ff165b8061126b57506014546001600160a01b0385811691161480159061126b57506014546001600160a01b03848116911614155b15611278575060006112f2565b6014546001600160a01b0385811691161480156112a357506013546001600160a01b03848116911614155b156112b557600954600d55600a54600e555b6014546001600160a01b0384811691161480156112e057506013546001600160a01b03858116911614155b156112f257600b54600d55600c54600e555b6112fe8484848461157a565b50505050565b600081848411156113285760405162461bcd60e51b81526004016105f19190611a33565b5060006113358486611c5d565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611378573d6000803e3d6000fd5b5050565b60006007548211156113e35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105f1565b60006113ed6115a8565b90506113f983826115cb565b9392505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061144857611448611c70565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c59190611c86565b816001815181106114d8576114d8611c70565b6001600160a01b0392831660209182029290920101526013546114fe9130911684610c4c565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611537908590600090869030904290600401611ca3565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b806115875761158761160d565b61159284848461163b565b806112fe576112fe600f54600d55601054600e55565b60008060006115b5611732565b90925090506115c482826115cb565b9250505090565b60006113f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611772565b600d5415801561161d5750600e54155b1561162457565b600d8054600f55600e805460105560009182905555565b60008060008060008061164d876117a0565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061167f90876117fd565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546116ae908661183f565b6001600160a01b0389166000908152600260205260409020556116d08161189e565b6116da84836118e8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161171f91815260200190565b60405180910390a3505050505050505050565b6007546000908190670de0b6b3a764000061174d82826115cb565b82101561176957505060075492670de0b6b3a764000092509050565b90939092509050565b600081836117935760405162461bcd60e51b81526004016105f19190611a33565b5060006113358486611c28565b60008060008060008060008060006117bd8a600d54600e5461190c565b92509250925060006117cd6115a8565b905060008060006117e08e878787611961565b919e509c509a509598509396509194505050505091939550919395565b60006113f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611304565b60008061184c8385611c4a565b9050838110156113f95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f1565b60006118a86115a8565b905060006118b683836119b1565b306000908152600260205260409020549091506118d3908261183f565b30600090815260026020526040902055505050565b6007546118f590836117fd565b600755600854611905908261183f565b6008555050565b6000808080611926606461192089896119b1565b906115cb565b9050600061193960646119208a896119b1565b905060006119518261194b8b866117fd565b906117fd565b9992985090965090945050505050565b600080808061197088866119b1565b9050600061197e88876119b1565b9050600061198c88886119b1565b9050600061199e8261194b86866117fd565b939b939a50919850919650505050505050565b6000826000036119c357506000610558565b60006119cf8385611c11565b9050826119dc8583611c28565b146113f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f1565b600060208083528351808285015260005b81811015611a6057858101830151858201604001528201611a44565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461066057600080fd5b60008060408385031215611aa957600080fd5b8235611ab481611a81565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b8335611ae281611a81565b92506020840135611af281611a81565b929592945050506040919091013590565b600060208284031215611b1557600080fd5b813580151581146113f957600080fd5b600060208284031215611b3757600080fd5b81356113f981611a81565b600060208284031215611b5457600080fd5b5035919050565b60008060008060808587031215611b7157600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611ba057600080fd5b8235611bab81611a81565b91506020830135611bbb81611a81565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761055857610558611bfb565b600082611c4557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561055857610558611bfb565b8181038181111561055857610558611bfb565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c9857600080fd5b81516113f981611a81565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cf35784516001600160a01b031683529383019391830191600101611cce565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b478f43eaa73f6475a15f5d4cf847ce75ca2469a33fa5f89663c5ae11ccc098064736f6c63430008130033

Deployed Bytecode Sourcemap

4229:14257:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6708:83;;;;;;;;;;-1:-1:-1;6778:5:0;;;;;;;;;;;;-1:-1:-1;;;6778:5:0;;;;6708:83;;;;;;;:::i;:::-;;;;;;;;7640:193;;;;;;;;;;-1:-1:-1;7640:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7640:193:0;1023:187:1;5494:41:0;;;;;;;;;;-1:-1:-1;5494:41:0;;;;-1:-1:-1;;;;;5494:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5494:41:0;1215:229:1;6988:95:0;;;;;;;;;;-1:-1:-1;4851:18:0;6988:95;;;1595:25:1;;;1583:2;1568:18;6988:95:0;1449:177:1;7842:446:0;;;;;;;;;;-1:-1:-1;7842:446:0;;;;;:::i;:::-;;:::i;5849:52::-;;;;;;;;;;;;;;;;6896:83;;;;;;;;;;-1:-1:-1;6896:83:0;;4453:1;2234:36:1;;2222:2;2207:18;6896:83:0;2092:184:1;5542:28:0;;;;;;;;;;-1:-1:-1;5542:28:0;;;;-1:-1:-1;;;;;5542:28:0;;;17662:101;;;;;;;;;;-1:-1:-1;17662:101:0;;;;;:::i;:::-;;:::i;:::-;;13104:235;;;;;;;;;;;;;:::i;7092:138::-;;;;;;;;;;-1:-1:-1;7092:138:0;;;;;:::i;:::-;;:::i;1705:148::-;;;;;;;;;;;;;:::i;17803:252::-;;;;;;;;;;-1:-1:-1;17803:252:0;;;;;:::i;:::-;;:::i;18325:156::-;;;;;;;;;;;;;:::i;5739:46::-;;;;;;;;;;;;;;;;1489:79;;;;;;;;;;-1:-1:-1;1527:7:0;1554:6;-1:-1:-1;;;;;1554:6:0;1489:79;;12691:159;;;;;;;;;;-1:-1:-1;12691:159:0;;;;;:::i;:::-;;:::i;5793:48::-;;;;;;;;;;;;;;;;6800:87;;;;;;;;;;-1:-1:-1;6872:7:0;;;;;;;;;;;;-1:-1:-1;;;6872:7:0;;;;6800:87;;17470:139;;;;;;;;;;-1:-1:-1;17470:139:0;;;;;:::i;:::-;;:::i;16756:661::-;;;;;;;;;;-1:-1:-1;16756:661:0;;;;;:::i;:::-;;:::i;7239:199::-;;;;;;;;;;-1:-1:-1;7239:199:0;;;;;:::i;:::-;;:::i;12859:236::-;;;;;;;;;;;;;:::i;5690:39::-;;;;;;;;;;-1:-1:-1;5690:39:0;;;;-1:-1:-1;;;5690:39:0;;;;;;7447:184;;;;;;;;;;-1:-1:-1;7447:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7596:18:0;;;7564:7;7596:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7447:184;18064:253;;;;;;;;;;-1:-1:-1;18064:253:0;;;;;:::i;:::-;;:::i;1862:244::-;;;;;;;;;;-1:-1:-1;1862:244:0;;;;;:::i;:::-;;:::i;7640:193::-;7742:4;7764:39;318:10;7787:7;7796:6;7764:8;:39::i;:::-;-1:-1:-1;7821:4:0;7640:193;;;;;:::o;7842:446::-;7974:4;7991:36;8001:6;8009:9;8020:6;7991:9;:36::i;:::-;8038:220;8061:6;318:10;8109:138;8165:6;8109:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8109:19:0;;;;;;:11;:19;;;;;;;;318:10;8109:33;;;;;;;;;;:37;:138::i;:::-;8038:8;:220::i;:::-;-1:-1:-1;8276:4:0;7842:446;;;;;:::o;17662:101::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;;;;;;;;;17729:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17729:26:0::1;-1:-1:-1::0;;;;17729:26:0;;::::1;::::0;;;::::1;::::0;;17662:101::o;13104:235::-;13170:19;;-1:-1:-1;;;;;13170:19:0;318:10;-1:-1:-1;;;;;13154:35:0;;:72;;;-1:-1:-1;13209:17:0;;-1:-1:-1;;;;;13209:17:0;318:10;-1:-1:-1;;;;;13193:33:0;;13154:72;13146:81;;;;;;13267:21;13299:32;13267:21;13299:12;:32::i;:::-;13135:204;13104:235::o;7092:138::-;-1:-1:-1;;;;;7205:16:0;;7158:7;7205:16;;;:7;:16;;;;;;7185:37;;:19;:37::i;1705:148::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;1812:1:::1;1796:6:::0;;1775:40:::1;::::0;-1:-1:-1;;;;;1796:6:0;;::::1;::::0;1775:40:::1;::::0;1812:1;;1775:40:::1;1843:1;1826:19:::0;;-1:-1:-1;;;;;;1826:19:0::1;::::0;;1705:148::o;17803:252::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;17930:3:::1;17909:17;4851:18:::0;17925:1:::1;17909:17;:::i;:::-;17908:25;;;;:::i;:::-;17892:11;:42;;17870:137;;;::::0;-1:-1:-1;;;17870:137:0;;5077:2:1;17870:137:0::1;::::0;::::1;5059:21:1::0;5116:2;5096:18;;;5089:30;5155:34;5135:18;;;5128:62;-1:-1:-1;;;5206:18:1;;;5199:43;5259:19;;17870:137:0::1;4875:409:1::0;17870:137:0::1;18011:12;:26:::0;17803:252::o;18325:156::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;18377:20:::1;:28:::0;;-1:-1:-1;;;;18377:28:0::1;::::0;;4851:18:::1;18416:12;:22:::0;;;18449:14:::1;:24:::0;18325:156::o;12691:159::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;12767:11:::1;::::0;-1:-1:-1;;;12767:11:0;::::1;;;12766:12;12758:47;;;::::0;-1:-1:-1;;;12758:47:0;;5491:2:1;12758:47:0::1;::::0;::::1;5473:21:1::0;5530:2;5510:18;;;5503:30;5569:25;5549:18;;;5542:53;5612:18;;12758:47:0::1;5289:347:1::0;12758:47:0::1;12816:11;:26:::0;;;::::1;;-1:-1:-1::0;;;12816:26:0::1;-1:-1:-1::0;;;;12816:26:0;;::::1;::::0;;;::::1;::::0;;12691:159::o;17470:139::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;17561:19:::1;:40:::0;17470:139::o;16756:661::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;16920:18;;16890:75:::1;;;::::0;-1:-1:-1;;;16890:75:0;;5843:2:1;16890:75:0::1;::::0;::::1;5825:21:1::0;5882:2;5862:18;;;5855:30;-1:-1:-1;;;5901:18:1;;;5894:52;5963:18;;16890:75:0::1;5641:346:1::0;16890:75:0::1;17019:2;17004:11;:17;;16976:84;;;::::0;-1:-1:-1;;;16976:84:0;;6194:2:1;16976:84:0::1;::::0;::::1;6176:21:1::0;6233:2;6213:18;;;6206:30;6272:34;6252:18;;;6245:62;-1:-1:-1;;;6323:18:1;;;6316:32;6365:19;;16976:84:0::1;5992:398:1::0;16976:84:0::1;17102:19:::0;;17071:78:::1;;;::::0;-1:-1:-1;;;17071:78:0;;6597:2:1;17071:78:0::1;::::0;::::1;6579:21:1::0;6636:2;6616:18;;;6609:30;6675:25;6655:18;;;6648:53;6718:18;;17071:78:0::1;6395:347:1::0;17071:78:0::1;17205:2;17189:12;:18;;17160:87;;;::::0;-1:-1:-1;;;17160:87:0;;6949:2:1;17160:87:0::1;::::0;::::1;6931:21:1::0;6988:2;6968:18;;;6961:30;7027:34;7007:18;;;7000:62;-1:-1:-1;;;7078:18:1;;;7071:33;7121:19;;17160:87:0::1;6747:399:1::0;17160:87:0::1;17260:14;:30:::0;;;;17301:15:::1;:32:::0;;;;17344:12:::1;:26:::0;17381:13:::1;:28:::0;16756:661::o;7239:199::-;7344:4;7366:42;318:10;7390:9;7401:6;7366:9;:42::i;12859:236::-;12925:19;;-1:-1:-1;;;;;12925:19:0;318:10;-1:-1:-1;;;;;12909:35:0;;:72;;;-1:-1:-1;12964:17:0;;-1:-1:-1;;;;;12964:17:0;318:10;-1:-1:-1;;;;;12948:33:0;;12909:72;12901:81;;;;;;12993:23;13019:24;13037:4;13019:9;:24::i;:::-;12993:50;;13054:33;13071:15;13054:16;:33::i;18064:253::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;18196:3:::1;18175:17;4851:18:::0;18191:1:::1;18175:17;:::i;:::-;18174:25;;;;:::i;:::-;18156:13;:44;;18134:134;;;::::0;-1:-1:-1;;;18134:134:0;;7353:2:1;18134:134:0::1;::::0;::::1;7335:21:1::0;7392:2;7372:18;;;7365:30;7431:34;7411:18;;;7404:62;-1:-1:-1;;;7482:18:1;;;7475:38;7530:19;;18134:134:0::1;7151:404:1::0;18134:134:0::1;18279:14;:30:::0;18064:253::o;1862:244::-;1617:6;;-1:-1:-1;;;;;1617:6:0;318:10;1617:22;1609:67;;;;-1:-1:-1;;;1609:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1951:22:0;::::1;1943:73;;;::::0;-1:-1:-1;;;1943:73:0;;7762:2:1;1943:73:0::1;::::0;::::1;7744:21:1::0;7801:2;7781:18;;;7774:30;7840:34;7820:18;;;7813:62;-1:-1:-1;;;7891:18:1;;;7884:36;7937:19;;1943:73:0::1;7560:402:1::0;1943:73:0::1;2053:6;::::0;;2032:38:::1;::::0;-1:-1:-1;;;;;2032:38:0;;::::1;::::0;2053:6;::::1;::::0;2032:38:::1;::::0;::::1;2081:6;:17:::0;;-1:-1:-1;;;;;;2081:17:0::1;-1:-1:-1::0;;;;;2081:17:0;;;::::1;::::0;;;::::1;::::0;;1862:244::o;8985:369::-;-1:-1:-1;;;;;9112:19:0;;9104:68;;;;-1:-1:-1;;;9104:68:0;;8169:2:1;9104:68:0;;;8151:21:1;8208:2;8188:18;;;8181:30;8247:34;8227:18;;;8220:62;-1:-1:-1;;;8298:18:1;;;8291:34;8342:19;;9104:68:0;7967:400:1;9104:68:0;-1:-1:-1;;;;;9191:21:0;;9183:68;;;;-1:-1:-1;;;9183:68:0;;8574:2:1;9183:68:0;;;8556:21:1;8613:2;8593:18;;;8586:30;8652:34;8632:18;;;8625:62;-1:-1:-1;;;8703:18:1;;;8696:32;8745:19;;9183:68:0;8372:398:1;9183:68:0;-1:-1:-1;;;;;9262:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9314:32;;1595:25:1;;;9314:32:0;;1568:18:1;9314:32:0;;;;;;;8985:369;;;:::o;9363:2719::-;-1:-1:-1;;;;;9485:18:0;;9477:68;;;;-1:-1:-1;;;9477:68:0;;8977:2:1;9477:68:0;;;8959:21:1;9016:2;8996:18;;;8989:30;9055:34;9035:18;;;9028:62;-1:-1:-1;;;9106:18:1;;;9099:35;9151:19;;9477:68:0;8775:401:1;9477:68:0;-1:-1:-1;;;;;9564:16:0;;9556:64;;;;-1:-1:-1;;;9556:64:0;;9383:2:1;9556:64:0;;;9365:21:1;9422:2;9402:18;;;9395:30;9461:34;9441:18;;;9434:62;-1:-1:-1;;;9512:18:1;;;9505:33;9555:19;;9556:64:0;9181:399:1;9556:64:0;9648:1;9639:6;:10;9631:64;;;;-1:-1:-1;;;9631:64:0;;9787:2:1;9631:64:0;;;9769:21:1;9826:2;9806:18;;;9799:30;9865:34;9845:18;;;9838:62;-1:-1:-1;;;9916:18:1;;;9909:39;9965:19;;9631:64:0;9585:405:1;9631:64:0;1527:7;1554:6;-1:-1:-1;;;;;9713:15:0;;;1554:6;;9713:15;;;;:32;;-1:-1:-1;1527:7:0;1554:6;-1:-1:-1;;;;;9732:13:0;;;1554:6;;9732:13;;9713:32;9709:1652;;;9770:11;;-1:-1:-1;;;9770:11:0;;;;9765:144;;1527:7;1554:6;-1:-1:-1;;;;;9810:15:0;;;1554:6;;9810:15;9802:91;;;;-1:-1:-1;;;9802:91:0;;10197:2:1;9802:91:0;;;10179:21:1;10236:2;10216:18;;;10209:30;10275:34;10255:18;;;10248:62;10346:33;10326:18;;;10319:61;10397:19;;9802:91:0;9995:427:1;9802:91:0;9929:20;;-1:-1:-1;;;9929:20:0;;;;9925:492;;;9988:15;;-1:-1:-1;;;;;9974:30:0;;;9988:15;;9974:30;;;;:62;;-1:-1:-1;10022:13:0;;-1:-1:-1;;;;;10008:28:0;;;10022:13;;10008:28;;9974:62;9970:432;;;10124:9;10095:39;;;;:28;:39;;;;;;10166:12;-1:-1:-1;10061:244:0;;;;-1:-1:-1;;;10061:244:0;;10629:2:1;10061:244:0;;;10611:21:1;10668:2;10648:18;;;10641:30;10707:34;10687:18;;;10680:62;10778:34;10758:18;;;10751:62;-1:-1:-1;;;10829:19:1;;;10822:40;10879:19;;10061:244:0;10427:477:1;10061:244:0;10357:9;10328:39;;;;:28;:39;;;;;10370:12;10328:54;;9970:432;10452:12;;10442:6;:22;;10434:63;;;;-1:-1:-1;;;10434:63:0;;11111:2:1;10434:63:0;;;11093:21:1;11150:2;11130:18;;;11123:30;11189;11169:18;;;11162:58;11237:18;;10434:63:0;10909:352:1;10434:63:0;10523:13;;-1:-1:-1;;;;;10517:19:0;;;10523:13;;10517:19;10514:146;;10590:14;;10581:6;10565:13;10575:2;10565:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10557:87;;;;-1:-1:-1;;;10557:87:0;;11598:2:1;10557:87:0;;;11580:21:1;11637:2;11617:18;;;11610:30;11676:34;11656:18;;;11649:62;-1:-1:-1;;;11727:18:1;;;11720:33;11770:19;;10557:87:0;11396:399:1;10557:87:0;10677:28;10708:24;10726:4;10708:9;:24::i;:::-;10786:19;;10850:12;;10677:55;;-1:-1:-1;10762:43:0;;;;10826:36;;10823:124;;10919:12;;10896:35;;10823:124;10968:7;:18;;;;-1:-1:-1;10980:6:0;;-1:-1:-1;;;10980:6:0;;;;10979:7;10968:18;:43;;;;-1:-1:-1;10998:13:0;;-1:-1:-1;;;;;10990:21:0;;;10998:13;;10990:21;;10968:43;:58;;;;-1:-1:-1;11015:11:0;;-1:-1:-1;;;11015:11:0;;;;10968:58;:87;;;;-1:-1:-1;;;;;;11031:24:0;;;;;;:18;:24;;;;;;;;11030:25;10968:87;:114;;;;-1:-1:-1;;;;;;11060:22:0;;;;;;:18;:22;;;;;;;;11059:23;10968:114;10964:386;;;11103:38;11120:20;11103:16;:38::i;:::-;11189:21;11233:22;;11229:106;;11280:35;11293:21;11280:12;:35::i;:::-;11084:266;10964:386;9747:1614;;9709:1652;-1:-1:-1;;;;;11439:24:0;;11374:12;11439:24;;;:18;:24;;;;;;11389:4;;11439:24;;;:50;;-1:-1:-1;;;;;;11467:22:0;;;;;;:18;:22;;;;;;;;11439:50;11438:102;;;-1:-1:-1;11503:13:0;;-1:-1:-1;;;;;11495:21:0;;;11503:13;;11495:21;;;;:44;;-1:-1:-1;11526:13:0;;-1:-1:-1;;;;;11520:19:0;;;11526:13;;11520:19;;11495:44;11434:586;;;-1:-1:-1;11567:5:0;11434:586;;;11647:13;;-1:-1:-1;;;;;11639:21:0;;;11647:13;;11639:21;:55;;;;-1:-1:-1;11678:15:0;;-1:-1:-1;;;;;11664:30:0;;;11678:15;;11664:30;;11639:55;11636:162;;;11727:14;;11715:9;:26;11770:12;;11760:7;:22;11636:162;11854:13;;-1:-1:-1;;;;;11848:19:0;;;11854:13;;11848:19;:55;;;;-1:-1:-1;11887:15:0;;-1:-1:-1;;;;;11871:32:0;;;11887:15;;11871:32;;11848:55;11844:165;;;11936:15;;11924:9;:27;11980:13;;11970:7;:23;11844:165;12033:41;12048:4;12054:2;12058:6;12066:7;12033:14;:41::i;:::-;9466:2616;9363:2719;;;:::o;2471:224::-;2591:7;2627:12;2619:6;;;;2611:29;;;;-1:-1:-1;;;2611:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2651:9:0;2663:5;2667:1;2663;:5;:::i;:::-;2651:17;2471:224;-1:-1:-1;;;;;2471:224:0:o;12583:99::-;12640:17;;:34;;-1:-1:-1;;;;;12640:17:0;;;;:34;;;;;12667:6;;12640:17;:34;:17;:34;12667:6;12640:17;:34;;;;;;;;;;;;;;;;;;;;;12583:99;:::o;8297:323::-;8392:7;8450;;8439;:18;;8417:110;;;;-1:-1:-1;;;8417:110:0;;12135:2:1;8417:110:0;;;12117:21:1;12174:2;12154:18;;;12147:30;12213:34;12193:18;;;12186:62;-1:-1:-1;;;12264:18:1;;;12257:40;12314:19;;8417:110:0;11933:406:1;8417:110:0;8538:19;8560:10;:8;:10::i;:::-;8538:32;-1:-1:-1;8588:24:0;:7;8538:32;8588:11;:24::i;:::-;8581:31;8297:323;-1:-1:-1;;;8297:323:0:o;12091:483::-;5996:6;:13;;-1:-1:-1;;;;5996:13:0;-1:-1:-1;;;5996:13:0;;;12193:16:::1;::::0;;12207:1:::1;12193:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12193:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12193:16:0::1;12169:40;;12238:4;12220;12225:1;12220:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12220:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12264:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12264:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12220:7;;12264:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12254:4;12259:1;12254:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12254:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12329:15:::1;::::0;12297:62:::1;::::0;12314:4:::1;::::0;12329:15:::1;12347:11:::0;12297:8:::1;:62::i;:::-;12370:15;::::0;:196:::1;::::0;-1:-1:-1;;;12370:196:0;;-1:-1:-1;;;;;12370:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12451:11;;12370:15:::1;::::0;12493:4;;12520::::1;::::0;12540:15:::1;::::0;12370:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6032:6:0;:14;;-1:-1:-1;;;;6032:14:0;;;-1:-1:-1;;;;12091:483:0:o;13348:282::-;13504:7;13499:28;;13513:14;:12;:14::i;:::-;13538:44;13556:6;13564:9;13575:6;13538:17;:44::i;:::-;13598:7;13593:29;;13607:15;8915:17;;8903:9;:29;8953:15;;8943:7;:25;8859:117;16317:164;16359:7;16380:15;16397;16416:19;:17;:19::i;:::-;16379:56;;-1:-1:-1;16379:56:0;-1:-1:-1;16453:20:0;16379:56;;16453:11;:20::i;:::-;16446:27;;;;16317:164;:::o;2959:132::-;3017:7;3044:39;3048:1;3051;3044:39;;;;;;;;;;;;;;;;;:3;:39::i;8629:221::-;8676:9;;:14;:30;;;;-1:-1:-1;8694:7:0;;:12;8676:30;8672:43;;;8629:221::o;8672:43::-;8748:9;;;8728:17;:29;8786:7;;;8768:15;:25;-1:-1:-1;8807:13:0;;;;8831:11;8629:221::o;13639:610::-;13786:15;13816:23;13854:12;13881:23;13919:12;13946:13;13973:19;13984:7;13973:10;:19::i;:::-;-1:-1:-1;;;;;14021:15:0;;;;;;:7;:15;;;;;;13771:221;;-1:-1:-1;13771:221:0;;-1:-1:-1;13771:221:0;;-1:-1:-1;13771:221:0;-1:-1:-1;13771:221:0;-1:-1:-1;13771:221:0;-1:-1:-1;14021:28:0;;13771:221;14021:19;:28::i;:::-;-1:-1:-1;;;;;14003:15:0;;;;;;;:7;:15;;;;;;:46;;;;14081:18;;;;;;;:39;;14104:15;14081:22;:39::i;:::-;-1:-1:-1;;;;;14060:18:0;;;;;;:7;:18;;;;;:60;14131:16;14141:5;14131:9;:16::i;:::-;14158:23;14170:4;14176;14158:11;:23::i;:::-;14214:9;-1:-1:-1;;;;;14197:44:0;14206:6;-1:-1:-1;;;;;14197:44:0;;14225:15;14197:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;14197:44:0;;;;;;;;13760:489;;;;;;13639:610;;;:::o;16490:257::-;16588:7;;16541;;;;4851:18;16656:20;16588:7;4851:18;16656:11;:20::i;:::-;16646:7;:30;16642:61;;;-1:-1:-1;;16686:7:0;;;4851:18;;-1:-1:-1;16490:257:0;-1:-1:-1;16490:257:0:o;16642:61::-;16722:7;;16731;;-1:-1:-1;16490:257:0;-1:-1:-1;16490:257:0:o;3100:223::-;3220:7;3255:12;3248:5;3240:28;;;;-1:-1:-1;;;3240:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3279:9:0;3291:5;3295:1;3291;:5;:::i;14672:615::-;14772:7;14794;14816;14838;14860;14882;14918:23;14943:12;14957:13;14987:40;14999:7;15008:9;;15019:7;;14987:11;:40::i;:::-;14917:110;;;;;;15038:19;15060:10;:8;:10::i;:::-;15038:32;;15082:15;15099:23;15124:12;15153:46;15165:7;15174:4;15180:5;15187:11;15153;:46::i;:::-;15081:118;;-1:-1:-1;15081:118:0;-1:-1:-1;15081:118:0;-1:-1:-1;15250:15:0;;-1:-1:-1;15267:4:0;;-1:-1:-1;15273:5:0;;-1:-1:-1;;;;;14672:615:0;;;;;;;:::o;2326:136::-;2384:7;2411:43;2415:1;2418;2411:43;;;;;;;;;;;;;;;;;:3;:43::i;2138:179::-;2196:7;;2228:5;2232:1;2228;:5;:::i;:::-;2216:17;;2257:1;2252;:6;;2244:46;;;;-1:-1:-1;;;2244:46:0;;14051:2:1;2244:46:0;;;14033:21:1;14090:2;14070:18;;;14063:30;14129:29;14109:18;;;14102:57;14176:18;;2244:46:0;13849:351:1;14258:211:0;14311:19;14333:10;:8;:10::i;:::-;14311:32;-1:-1:-1;14354:13:0;14370:22;:5;14311:32;14370:9;:22::i;:::-;14444:4;14428:22;;;;:7;:22;;;;;;14354:38;;-1:-1:-1;14428:33:0;;14354:38;14428:26;:33::i;:::-;14419:4;14403:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14258:211:0:o;14478:147::-;14556:7;;:17;;14568:4;14556:11;:17::i;:::-;14546:7;:27;14597:10;;:20;;14612:4;14597:14;:20::i;:::-;14584:10;:33;-1:-1:-1;;14478:147:0:o;15296:469::-;15465:7;;;;15559:30;15585:3;15559:21;:7;15571:8;15559:11;:21::i;:::-;:25;;:30::i;:::-;15544:45;-1:-1:-1;15600:13:0;15616:28;15640:3;15616:19;:7;15628:6;15616:11;:19::i;:28::-;15600:44;-1:-1:-1;15655:23:0;15681:28;15600:44;15681:17;:7;15693:4;15681:11;:17::i;:::-;:21;;:28::i;:::-;15655:54;15745:4;;-1:-1:-1;15751:5:0;;-1:-1:-1;15296:469:0;;-1:-1:-1;;;;;15296:469:0:o;15774:534::-;15968:7;;;;16065:24;:7;16077:11;16065;:24::i;:::-;16047:42;-1:-1:-1;16100:12:0;16115:21;:4;16124:11;16115:8;:21::i;:::-;16100:36;-1:-1:-1;16147:13:0;16163:22;:5;16173:11;16163:9;:22::i;:::-;16147:38;-1:-1:-1;16196:23:0;16222:28;16147:38;16222:17;:7;16234:4;16222:11;:17::i;:28::-;16269:7;;;;-1:-1:-1;16295:4:0;;-1:-1:-1;15774:534:0;;-1:-1:-1;;;;;;;15774:534:0:o;2704:246::-;2762:7;2786:1;2791;2786:6;2782:47;;-1:-1:-1;2816:1:0;2809:8;;2782:47;2839:9;2851:5;2855:1;2851;:5;:::i;:::-;2839:17;-1:-1:-1;2884:1:0;2875:5;2879:1;2839:17;2875:5;:::i;:::-;:10;2867:56;;;;-1:-1:-1;;;2867:56:0;;14407:2:1;2867:56:0;;;14389:21:1;14446:2;14426:18;;;14419:30;14485:34;14465:18;;;14458:62;-1:-1:-1;;;14536:18:1;;;14529:31;14577:19;;2867:56:0;14205:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:273::-;2545:6;2598:2;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2653:9;2640:23;2706:5;2699:13;2692:21;2685:5;2682:32;2672:60;;2728:1;2725;2718:12;2767:247;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:31;2978:5;2953:31;:::i;3019:180::-;3078:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:52;;;3147:1;3144;3137:12;3099:52;-1:-1:-1;3170:23:1;;3019:180;-1:-1:-1;3019:180:1:o;3204:385::-;3290:6;3298;3306;3314;3367:3;3355:9;3346:7;3342:23;3338:33;3335:53;;;3384:1;3381;3374:12;3335:53;-1:-1:-1;;3407:23:1;;;3477:2;3462:18;;3449:32;;-1:-1:-1;3528:2:1;3513:18;;3500:32;;3579:2;3564:18;3551:32;;-1:-1:-1;3204:385:1;-1:-1:-1;3204:385:1:o;3594:388::-;3662:6;3670;3723:2;3711:9;3702:7;3698:23;3694:32;3691:52;;;3739:1;3736;3729:12;3691:52;3778:9;3765:23;3797:31;3822:5;3797:31;:::i;:::-;3847:5;-1:-1:-1;3904:2:1;3889:18;;3876:32;3917:33;3876:32;3917:33;:::i;:::-;3969:7;3959:17;;;3594:388;;;;;:::o;3987:356::-;4189:2;4171:21;;;4208:18;;;4201:30;4267:34;4262:2;4247:18;;4240:62;4334:2;4319:18;;3987:356::o;4348:127::-;4409:10;4404:3;4400:20;4397:1;4390:31;4440:4;4437:1;4430:15;4464:4;4461:1;4454:15;4480:168;4553:9;;;4584;;4601:15;;;4595:22;;4581:37;4571:71;;4622:18;;:::i;4653:217::-;4693:1;4719;4709:132;;4763:10;4758:3;4754:20;4751:1;4744:31;4798:4;4795:1;4788:15;4826:4;4823:1;4816:15;4709:132;-1:-1:-1;4855:9:1;;4653:217::o;11266:125::-;11331:9;;;11352:10;;;11349:36;;;11365:18;;:::i;11800:128::-;11867:9;;;11888:11;;;11885:37;;;11902:18;;:::i;12476:127::-;12537:10;12532:3;12528:20;12525:1;12518:31;12568:4;12565:1;12558:15;12592:4;12589:1;12582:15;12608:251;12678:6;12731:2;12719:9;12710:7;12706:23;12702:32;12699:52;;;12747:1;12744;12737:12;12699:52;12779:9;12773:16;12798:31;12823:5;12798:31;:::i;12864:980::-;13126:4;13174:3;13163:9;13159:19;13205:6;13194:9;13187:25;13231:2;13269:6;13264:2;13253:9;13249:18;13242:34;13312:3;13307:2;13296:9;13292:18;13285:31;13336:6;13371;13365:13;13402:6;13394;13387:22;13440:3;13429:9;13425:19;13418:26;;13479:2;13471:6;13467:15;13453:29;;13500:1;13510:195;13524:6;13521:1;13518:13;13510:195;;;13589:13;;-1:-1:-1;;;;;13585:39:1;13573:52;;13680:15;;;;13645:12;;;;13621:1;13539:9;13510:195;;;-1:-1:-1;;;;;;;13761:32:1;;;;13756:2;13741:18;;13734:60;-1:-1:-1;;;13825:3:1;13810:19;13803:35;13722:3;12864:980;-1:-1:-1;;;12864:980:1:o

Swarm Source

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