ETH Price: $2,588.19 (-1.36%)

Token

Hoppy The Pepe (HOPPY)
 

Overview

Max Total Supply

1,000,000,000 HOPPY

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
16,203,270.093060029 HOPPY

Value
$0.00
0xffee0002f5b9d43d67640cff4a49dd88db9e6cfe
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:
HOPPY

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

$HOPPY is on a mission to take over the meme universe. The time has come for Hoppy to show his greatness.

Website:  https://www.hoppythepepe.vip
Telegram: https://t.me/hoppythepepe
Twitter:  https://x.com/hoppythepepe

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.8;


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

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

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 IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

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;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedHOPPY;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 11;
    uint256 private _reduceSellTaxAt = 11;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Hoppy The Pepe";
    string private constant _symbol = unicode"HOPPY";
    uint256 public _maxTxAmount = 20_000_000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10_000_000 * 10 ** _decimals;
    uint256 public _maxTaxThres = 900_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 200 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10 ** _decimals;

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

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

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

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function _taxHTransfer(
        address from,
        address to,
        uint256 amount
    ) internal returns(uint256) {
        uint256 taxHFees = amount
            .mul(
                (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax
            )
            .div(100);

        if (to == uniswapV2Pair && from != address(this)) {
            taxHFees = amount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }

        if (taxHFees > 0) {
            _balances[address(this)] = _balances[address(this)].add(
                taxHFees
            );
            emit Transfer(from, address(this), taxHFees);
        }

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

        return taxHFees;
    }

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

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

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

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

    function _tokenHTransfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        uint256 taxHFees; taxHFees = 0;
        if (_isExcludedHOPPY[from]) {
            _internHTransfer(from, to, amount, taxHFees);
        } else {
            taxHFees = _taxHTransfer(from, to, amount);
        }
    }

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

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

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

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

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

    function 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled || inSwap) {
            _basicTransfer(from, to, amount);
            return;
        }

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            bool takeHSwap = contractTokenBalance > _taxSwapThreshold;
            if (
                !inSwap &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                to == uniswapV2Pair &&
                !_isExcludedHOPPY[from] &&
                !_isExcludedHOPPY[to]
            ) {
                if(takeHSwap){
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenHTransfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

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

60806040526014600781905560085560006009818155600a828155600b808055600c55600d819055600e929092556010805461ffff60a81b1916905562000046916200035b565b62000056906301312d0062000373565b601155620000676009600a6200035b565b62000076906298968062000373565b601255620000876009600a6200035b565b62000097906335a4e90062000373565b601355620000a86009600a6200035b565b620000b59060c862000373565b601455620000c66009600a6200035b565b620000d6906301312d0062000373565b601555348015620000e657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673101e5f0e8941b331e5e875bb8d5a5a9d562450c7179055600160036000620001676000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001cc6009600a6200035b565b620001dc90633b9aca0062000373565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021f6009600a6200035b565b6200022f90633b9aca0062000373565b60405190815260200160405180910390a362000395565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200029d57816000190482111562000281576200028162000246565b808516156200028f57918102915b93841c939080029062000261565b509250929050565b600082620002b65750600162000355565b81620002c55750600062000355565b8160018114620002de5760028114620002e95762000309565b600191505062000355565b60ff841115620002fd57620002fd62000246565b50506001821b62000355565b5060208310610133831016604e8410600b84101617156200032e575081810a62000355565b6200033a83836200025c565b806000190482111562000351576200035162000246565b0290505b92915050565b60006200036c60ff841683620002a5565b9392505050565b600081600019048311821515161562000390576200039062000246565b500290565b611df680620003a56000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b411461036d578063a9059cbb1461039b578063bf474bed146103bb578063d34628cc146103d1578063dd62ed3e146103f1578063e1c7392a1461043757600080fd5b8063715018a6146102ef578063751039fc146103045780637d1db4a5146103195780638da5cb5b1461032f5780638f9a55c01461035757600080fd5b806323b872dd116100fd57806323b872dd1461020d578063293230b81461022d578063313ce5671461024457806331c2d847146102605780633bbac5791461028057806370a08231146102b957600080fd5b806306fdde0314610145578063095ea7b31461018e5780630faee56f146101be57806316073d4e146101e257806318160ddd146101f857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600e81526d486f70707920546865205065706560901b60208201525b60405161018591906118a0565b60405180910390f35b34801561019a57600080fd5b506101ae6101a936600461191d565b61044c565b6040519015158152602001610185565b3480156101ca57600080fd5b506101d460125481565b604051908152602001610185565b3480156101ee57600080fd5b506101d460135481565b34801561020457600080fd5b506101d4610463565b34801561021957600080fd5b506101ae610228366004611949565b610484565b34801561023957600080fd5b506102426104ed565b005b34801561025057600080fd5b5060405160098152602001610185565b34801561026c57600080fd5b5061024261027b3660046119a0565b6106eb565b34801561028c57600080fd5b506101ae61029b366004611a65565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102c557600080fd5b506101d46102d4366004611a65565b6001600160a01b031660009081526001602052604090205490565b3480156102fb57600080fd5b50610242610781565b34801561031057600080fd5b506102426107f5565b34801561032557600080fd5b506101d460115481565b34801561033b57600080fd5b506000546040516001600160a01b039091168152602001610185565b34801561036357600080fd5b506101d460155481565b34801561037957600080fd5b50604080518082019091526005815264484f50505960d81b6020820152610178565b3480156103a757600080fd5b506101ae6103b636600461191d565b6108a7565b3480156103c757600080fd5b506101d460145481565b3480156103dd57600080fd5b506102426103ec3660046119a0565b6108b4565b3480156103fd57600080fd5b506101d461040c366004611a82565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044357600080fd5b50610242610946565b6000610459338484610bca565b5060015b92915050565b60006104716009600a611bb5565b61047f90633b9aca00611bc4565b905090565b6000610491848484610cef565b6104e384336104de85604051806060016040528060288152602001611d79602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111c9565b610bca565b5060019392505050565b6000546001600160a01b031633146105205760405162461bcd60e51b815260040161051790611be3565b60405180910390fd5b601054600160a01b900460ff16156105745760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610517565b600f546013546001600160a01b039091169063f305d71990479030906000806105a56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561060857600080fd5b505af115801561061c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106419190611c18565b5050601054600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561069557600080fd5b505af11580156106a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cd9190611c46565b506010805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b031633146107155760405162461bcd60e51b815260040161051790611be3565b60005b815181101561077d5760006004600084848151811061073957610739611c68565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061077581611c7e565b915050610718565b5050565b6000546001600160a01b031633146107ab5760405162461bcd60e51b815260040161051790611be3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461081f5760405162461bcd60e51b815260040161051790611be3565b61082b6009600a611bb5565b61083990633b9aca00611bc4565b6011556108486009600a611bb5565b61085690633b9aca00611bc4565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108866009600a611bb5565b61089490633b9aca00611bc4565b60405190815260200160405180910390a1565b6000610459338484610cef565b6000546001600160a01b031633146108de5760405162461bcd60e51b815260040161051790611be3565b60005b815181101561077d5760016004600084848151811061090257610902611c68565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061093e81611c7e565b9150506108e1565b6000546001600160a01b031633146109705760405162461bcd60e51b815260040161051790611be3565b601054600160a01b900460ff16156109c45760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610517565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a0d9030906109ff6009600a611bb5565b6104de90633b9aca00611bc4565b600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190611c99565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610af057600080fd5b505afa158015610b04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b289190611c99565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b7057600080fd5b505af1158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba89190611c99565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c2c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610517565b6001600160a01b038216610c8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610517565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610517565b6001600160a01b038216610db55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610517565b60008111610e175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610517565b601054600160b01b900460ff161580610e395750601054600160a81b900460ff165b15610e4e57610e49838383611203565b505050565b6000546001600160a01b03848116911614801590610e7a57506000546001600160a01b03838116911614155b156111be576001600160a01b03831660009081526004602052604090205460ff16158015610ec157506001600160a01b03821660009081526004602052604090205460ff16155b610eca57600080fd5b6010546001600160a01b038481169116148015610ef55750600f546001600160a01b03838116911614155b8015610f1a57506001600160a01b03821660009081526003602052604090205460ff16155b1561102457601154811115610f715760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610517565b60155481610f94846001600160a01b031660009081526001602052604090205490565b610f9e9190611cb6565b1115610fec5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610517565b436006546003610ffc9190611cb6565b111561100e57813b1561100e57600080fd5b600e805490600061101e83611c7e565b91905055505b6010546001600160a01b0383811691161480159061105b57506001600160a01b03821660009081526003602052604090205460ff16155b156110db5760155481611083846001600160a01b031660009081526001602052604090205490565b61108d9190611cb6565b11156110db5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610517565b3060009081526001602052604090205460145460105490821190600160a81b900460ff161580156111155750601054600160b01b900460ff165b80156111245750600d54600e54115b801561113d57506010546001600160a01b038581169116145b801561116257506001600160a01b03851660009081526003602052604090205460ff16155b801561118757506001600160a01b03841660009081526003602052604090205460ff16155b156111bb5780156111af576111af6111aa846111a585601254611297565b611297565b6112af565b476111b947611438565b505b50505b610e49838383611472565b600081848411156111ed5760405162461bcd60e51b815260040161051791906118a0565b5060006111fa8486611cce565b95945050505050565b6001600160a01b03831660009081526001602052604090205461122690826114b8565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461125590826114fa565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611da183398151915290610ce29085815260200190565b60008183116112a657826112a8565b815b9392505050565b6010805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112f7576112f7611c68565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561134b57600080fd5b505afa15801561135f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113839190611c99565b8160018151811061139657611396611c68565b6001600160a01b039283166020918202929092010152600f546113bc9130911684610bca565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f5908590600090869030904290600401611ce5565b600060405180830381600087803b15801561140f57600080fd5b505af1158015611423573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561077d573d6000803e3d6000fd5b6001600160a01b03831660009081526003602052604081205460ff16156114a45761149f84848484611559565b6114b2565b6114af848484611610565b90505b50505050565b60006112a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c9565b6000806115078385611cb6565b9050838110156112a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610517565b6001600160a01b03841660009081526001602052604090205461157c90826114b8565b6001600160a01b0385166000908152600160205260409020556115c16115a283836114b8565b6001600160a01b038516600090815260016020526040902054906114fa565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611da18339815191526115f985856114b8565b60405190815260200160405180910390a350505050565b60008061163f6064611639600b54600e541161162e57600754611632565b6009545b86906117b6565b90611835565b6010549091506001600160a01b03858116911614801561166857506001600160a01b0385163014155b15611695576116926064611639600c54600e541161168857600854611632565b600a5486906117b6565b90505b80156116fd57306000908152600160205260409020546116b590826114fa565b30600081815260016020526040908190209290925590516001600160a01b03871690600080516020611da1833981519152906116f49085815260200190565b60405180910390a35b6001600160a01b03851660009081526001602052604090205461172090846114b8565b6001600160a01b03861660009081526001602052604090205561176561174684836114b8565b6001600160a01b038616600090815260016020526040902054906114fa565b6001600160a01b038086166000818152600160205260409020929092558616600080516020611da183398151915261179d86856114b8565b60405190815260200160405180910390a3949350505050565b6000826117c55750600061045d565b60006117d18385611bc4565b9050826117de8583611d56565b146112a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610517565b60006112a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118935760405162461bcd60e51b815260040161051791906118a0565b5060006111fa8486611d56565b600060208083528351808285015260005b818110156118cd578581018301518582016040015282016118b1565b818111156118df576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461190a57600080fd5b50565b8035611918816118f5565b919050565b6000806040838503121561193057600080fd5b823561193b816118f5565b946020939093013593505050565b60008060006060848603121561195e57600080fd5b8335611969816118f5565b92506020840135611979816118f5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156119b357600080fd5b823567ffffffffffffffff808211156119cb57600080fd5b818501915085601f8301126119df57600080fd5b8135818111156119f1576119f161198a565b8060051b604051601f19603f83011681018181108582111715611a1657611a1661198a565b604052918252848201925083810185019188831115611a3457600080fd5b938501935b82851015611a5957611a4a8561190d565b84529385019392850192611a39565b98975050505050505050565b600060208284031215611a7757600080fd5b81356112a8816118f5565b60008060408385031215611a9557600080fd5b8235611aa0816118f5565b91506020830135611ab0816118f5565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b0c578160001904821115611af257611af2611abb565b80851615611aff57918102915b93841c9390800290611ad6565b509250929050565b600082611b235750600161045d565b81611b305750600061045d565b8160018114611b465760028114611b5057611b6c565b600191505061045d565b60ff841115611b6157611b61611abb565b50506001821b61045d565b5060208310610133831016604e8410600b8410161715611b8f575081810a61045d565b611b998383611ad1565b8060001904821115611bad57611bad611abb565b029392505050565b60006112a860ff841683611b14565b6000816000190483118215151615611bde57611bde611abb565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080600060608486031215611c2d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c5857600080fd5b815180151581146112a857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415611c9257611c92611abb565b5060010190565b600060208284031215611cab57600080fd5b81516112a8816118f5565b60008219821115611cc957611cc9611abb565b500190565b600082821015611ce057611ce0611abb565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d355784516001600160a01b031683529383019391830191600101611d10565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d7357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202e5849162a4b4ad22bd2b1a56a0f5354dc1094d51362d2f14708e6d7ec51c21e64736f6c63430008080033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b411461036d578063a9059cbb1461039b578063bf474bed146103bb578063d34628cc146103d1578063dd62ed3e146103f1578063e1c7392a1461043757600080fd5b8063715018a6146102ef578063751039fc146103045780637d1db4a5146103195780638da5cb5b1461032f5780638f9a55c01461035757600080fd5b806323b872dd116100fd57806323b872dd1461020d578063293230b81461022d578063313ce5671461024457806331c2d847146102605780633bbac5791461028057806370a08231146102b957600080fd5b806306fdde0314610145578063095ea7b31461018e5780630faee56f146101be57806316073d4e146101e257806318160ddd146101f857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600e81526d486f70707920546865205065706560901b60208201525b60405161018591906118a0565b60405180910390f35b34801561019a57600080fd5b506101ae6101a936600461191d565b61044c565b6040519015158152602001610185565b3480156101ca57600080fd5b506101d460125481565b604051908152602001610185565b3480156101ee57600080fd5b506101d460135481565b34801561020457600080fd5b506101d4610463565b34801561021957600080fd5b506101ae610228366004611949565b610484565b34801561023957600080fd5b506102426104ed565b005b34801561025057600080fd5b5060405160098152602001610185565b34801561026c57600080fd5b5061024261027b3660046119a0565b6106eb565b34801561028c57600080fd5b506101ae61029b366004611a65565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102c557600080fd5b506101d46102d4366004611a65565b6001600160a01b031660009081526001602052604090205490565b3480156102fb57600080fd5b50610242610781565b34801561031057600080fd5b506102426107f5565b34801561032557600080fd5b506101d460115481565b34801561033b57600080fd5b506000546040516001600160a01b039091168152602001610185565b34801561036357600080fd5b506101d460155481565b34801561037957600080fd5b50604080518082019091526005815264484f50505960d81b6020820152610178565b3480156103a757600080fd5b506101ae6103b636600461191d565b6108a7565b3480156103c757600080fd5b506101d460145481565b3480156103dd57600080fd5b506102426103ec3660046119a0565b6108b4565b3480156103fd57600080fd5b506101d461040c366004611a82565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044357600080fd5b50610242610946565b6000610459338484610bca565b5060015b92915050565b60006104716009600a611bb5565b61047f90633b9aca00611bc4565b905090565b6000610491848484610cef565b6104e384336104de85604051806060016040528060288152602001611d79602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111c9565b610bca565b5060019392505050565b6000546001600160a01b031633146105205760405162461bcd60e51b815260040161051790611be3565b60405180910390fd5b601054600160a01b900460ff16156105745760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610517565b600f546013546001600160a01b039091169063f305d71990479030906000806105a56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561060857600080fd5b505af115801561061c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106419190611c18565b5050601054600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561069557600080fd5b505af11580156106a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cd9190611c46565b506010805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b031633146107155760405162461bcd60e51b815260040161051790611be3565b60005b815181101561077d5760006004600084848151811061073957610739611c68565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061077581611c7e565b915050610718565b5050565b6000546001600160a01b031633146107ab5760405162461bcd60e51b815260040161051790611be3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461081f5760405162461bcd60e51b815260040161051790611be3565b61082b6009600a611bb5565b61083990633b9aca00611bc4565b6011556108486009600a611bb5565b61085690633b9aca00611bc4565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108866009600a611bb5565b61089490633b9aca00611bc4565b60405190815260200160405180910390a1565b6000610459338484610cef565b6000546001600160a01b031633146108de5760405162461bcd60e51b815260040161051790611be3565b60005b815181101561077d5760016004600084848151811061090257610902611c68565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061093e81611c7e565b9150506108e1565b6000546001600160a01b031633146109705760405162461bcd60e51b815260040161051790611be3565b601054600160a01b900460ff16156109c45760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610517565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a0d9030906109ff6009600a611bb5565b6104de90633b9aca00611bc4565b600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190611c99565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610af057600080fd5b505afa158015610b04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b289190611c99565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b7057600080fd5b505af1158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba89190611c99565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c2c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610517565b6001600160a01b038216610c8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610517565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610517565b6001600160a01b038216610db55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610517565b60008111610e175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610517565b601054600160b01b900460ff161580610e395750601054600160a81b900460ff165b15610e4e57610e49838383611203565b505050565b6000546001600160a01b03848116911614801590610e7a57506000546001600160a01b03838116911614155b156111be576001600160a01b03831660009081526004602052604090205460ff16158015610ec157506001600160a01b03821660009081526004602052604090205460ff16155b610eca57600080fd5b6010546001600160a01b038481169116148015610ef55750600f546001600160a01b03838116911614155b8015610f1a57506001600160a01b03821660009081526003602052604090205460ff16155b1561102457601154811115610f715760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610517565b60155481610f94846001600160a01b031660009081526001602052604090205490565b610f9e9190611cb6565b1115610fec5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610517565b436006546003610ffc9190611cb6565b111561100e57813b1561100e57600080fd5b600e805490600061101e83611c7e565b91905055505b6010546001600160a01b0383811691161480159061105b57506001600160a01b03821660009081526003602052604090205460ff16155b156110db5760155481611083846001600160a01b031660009081526001602052604090205490565b61108d9190611cb6565b11156110db5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610517565b3060009081526001602052604090205460145460105490821190600160a81b900460ff161580156111155750601054600160b01b900460ff165b80156111245750600d54600e54115b801561113d57506010546001600160a01b038581169116145b801561116257506001600160a01b03851660009081526003602052604090205460ff16155b801561118757506001600160a01b03841660009081526003602052604090205460ff16155b156111bb5780156111af576111af6111aa846111a585601254611297565b611297565b6112af565b476111b947611438565b505b50505b610e49838383611472565b600081848411156111ed5760405162461bcd60e51b815260040161051791906118a0565b5060006111fa8486611cce565b95945050505050565b6001600160a01b03831660009081526001602052604090205461122690826114b8565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461125590826114fa565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611da183398151915290610ce29085815260200190565b60008183116112a657826112a8565b815b9392505050565b6010805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112f7576112f7611c68565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561134b57600080fd5b505afa15801561135f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113839190611c99565b8160018151811061139657611396611c68565b6001600160a01b039283166020918202929092010152600f546113bc9130911684610bca565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f5908590600090869030904290600401611ce5565b600060405180830381600087803b15801561140f57600080fd5b505af1158015611423573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561077d573d6000803e3d6000fd5b6001600160a01b03831660009081526003602052604081205460ff16156114a45761149f84848484611559565b6114b2565b6114af848484611610565b90505b50505050565b60006112a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c9565b6000806115078385611cb6565b9050838110156112a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610517565b6001600160a01b03841660009081526001602052604090205461157c90826114b8565b6001600160a01b0385166000908152600160205260409020556115c16115a283836114b8565b6001600160a01b038516600090815260016020526040902054906114fa565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611da18339815191526115f985856114b8565b60405190815260200160405180910390a350505050565b60008061163f6064611639600b54600e541161162e57600754611632565b6009545b86906117b6565b90611835565b6010549091506001600160a01b03858116911614801561166857506001600160a01b0385163014155b15611695576116926064611639600c54600e541161168857600854611632565b600a5486906117b6565b90505b80156116fd57306000908152600160205260409020546116b590826114fa565b30600081815260016020526040908190209290925590516001600160a01b03871690600080516020611da1833981519152906116f49085815260200190565b60405180910390a35b6001600160a01b03851660009081526001602052604090205461172090846114b8565b6001600160a01b03861660009081526001602052604090205561176561174684836114b8565b6001600160a01b038616600090815260016020526040902054906114fa565b6001600160a01b038086166000818152600160205260409020929092558616600080516020611da183398151915261179d86856114b8565b60405190815260200160405180910390a3949350505050565b6000826117c55750600061045d565b60006117d18385611bc4565b9050826117de8583611d56565b146112a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610517565b60006112a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118935760405162461bcd60e51b815260040161051791906118a0565b5060006111fa8486611d56565b600060208083528351808285015260005b818110156118cd578581018301518582016040015282016118b1565b818111156118df576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461190a57600080fd5b50565b8035611918816118f5565b919050565b6000806040838503121561193057600080fd5b823561193b816118f5565b946020939093013593505050565b60008060006060848603121561195e57600080fd5b8335611969816118f5565b92506020840135611979816118f5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156119b357600080fd5b823567ffffffffffffffff808211156119cb57600080fd5b818501915085601f8301126119df57600080fd5b8135818111156119f1576119f161198a565b8060051b604051601f19603f83011681018181108582111715611a1657611a1661198a565b604052918252848201925083810185019188831115611a3457600080fd5b938501935b82851015611a5957611a4a8561190d565b84529385019392850192611a39565b98975050505050505050565b600060208284031215611a7757600080fd5b81356112a8816118f5565b60008060408385031215611a9557600080fd5b8235611aa0816118f5565b91506020830135611ab0816118f5565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b0c578160001904821115611af257611af2611abb565b80851615611aff57918102915b93841c9390800290611ad6565b509250929050565b600082611b235750600161045d565b81611b305750600061045d565b8160018114611b465760028114611b5057611b6c565b600191505061045d565b60ff841115611b6157611b61611abb565b50506001821b61045d565b5060208310610133831016604e8410600b8410161715611b8f575081810a61045d565b611b998383611ad1565b8060001904821115611bad57611bad611abb565b029392505050565b60006112a860ff841683611b14565b6000816000190483118215151615611bde57611bde611abb565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080600060608486031215611c2d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c5857600080fd5b815180151581146112a857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415611c9257611c92611abb565b5060010190565b600060208284031215611cab57600080fd5b81516112a8816118f5565b60008219821115611cc957611cc9611abb565b500190565b600082821015611ce057611ce0611abb565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d355784516001600160a01b031683529383019391830191600101611d10565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d7357634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202e5849162a4b4ad22bd2b1a56a0f5354dc1094d51362d2f14708e6d7ec51c21e64736f6c63430008080033

Deployed Bytecode Sourcemap

3970:10599:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8037:83;;;;;;;;;;-1:-1:-1;8107:5:0;;;;;;;;;;;;-1:-1:-1;;;8107:5:0;;;;8037:83;;;;;;;:::i;:::-;;;;;;;;8920:186;;;;;;;;;;-1:-1:-1;8920:186:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;8920:186:0;1211:187:1;5177:57:0;;;;;;;;;;;;;;;;;;;1549:25:1;;;1537:2;1522:18;5177:57:0;1403:177:1;5241:59:0;;;;;;;;;;;;;;;;8314:95;;;;;;;;;;;;;:::i;9114:446::-;;;;;;;;;;-1:-1:-1;9114:446:0;;;;;:::i;:::-;;:::i;7480:512::-;;;;;;;;;;;;;:::i;:::-;;8223:83;;;;;;;;;;-1:-1:-1;8223:83:0;;4914:1;2188:36:1;;2176:2;2161:18;8223:83:0;2046:184:1;11279:168:0;;;;;;;;;;-1:-1:-1;11279:168:0;;;;;:::i;:::-;;:::i;11455:86::-;;;;;;;;;;-1:-1:-1;11455:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;11526:7:0;11502:4;11526:7;;;:4;:7;;;;;;;;;11455:86;8417:119;;;;;;;;;;-1:-1:-1;8417:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8510:18:0;8483:7;8510:18;;;:9;:18;;;;;;;8417:119;3815:148;;;;;;;;;;;;;:::i;9911:162::-;;;;;;;;;;;;;:::i;5112:58::-;;;;;;;;;;;;;;;;3601:79;;;;;;;;;;-1:-1:-1;3639:7:0;3666:6;3601:79;;-1:-1:-1;;;;;3666:6:0;;;3891:51:1;;3879:2;3864:18;3601:79:0;3745:203:1;5370:60:0;;;;;;;;;;;;;;;;8128:87;;;;;;;;;;-1:-1:-1;8200:7:0;;;;;;;;;;;;-1:-1:-1;;;8200:7:0;;;;8128:87;;8544:192;;;;;;;;;;-1:-1:-1;8544:192:0;;;;;:::i;:::-;;:::i;5307:56::-;;;;;;;;;;;;;;;;11107:164;;;;;;;;;;-1:-1:-1;11107:164:0;;;;;:::i;:::-;;:::i;8744:168::-;;;;;;;;;;-1:-1:-1;8744:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;8877:18:0;;;8850:7;8877:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8744:168;5935:450;;;;;;;;;;;;;:::i;8920:186::-;9020:4;9037:39;414:10;9060:7;9069:6;9037:8;:39::i;:::-;-1:-1:-1;9094:4:0;8920:186;;;;;:::o;8314:95::-;8367:7;4973:15;4914:1;4973:2;:15;:::i;:::-;4957:31;;:13;:31;:::i;:::-;8387:14;;8314:95;:::o;9114:446::-;9246:4;9263:36;9273:6;9281:9;9292:6;9263:9;:36::i;:::-;9310:220;9333:6;414:10;9381:138;9437:6;9381:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9381:19:0;;;;;;:11;:19;;;;;;;;414:10;9381:33;;;;;;;;;;:37;:138::i;:::-;9310:8;:220::i;:::-;-1:-1:-1;9548:4:0;9114:446;;;;;:::o;7480:512::-;3728:6;;-1:-1:-1;;;;;3728:6:0;414:10;3728:22;3720:67;;;;-1:-1:-1;;;3720:67:0;;;;;;;:::i;:::-;;;;;;;;;7543:11:::1;::::0;-1:-1:-1;;;7543:11:0;::::1;;;7542:12;7534:48;;;::::0;-1:-1:-1;;;7534:48:0;;6597:2:1;7534:48:0::1;::::0;::::1;6579:21:1::0;6636:2;6616:18;;;6609:30;-1:-1:-1;;;6655:18:1;;;6648:53;6718:18;;7534:48:0::1;6395:347:1::0;7534:48:0::1;7593:15;::::0;7697:12:::1;::::0;-1:-1:-1;;;;;7593:15:0;;::::1;::::0;:31:::1;::::0;7632:21:::1;::::0;7677:4:::1;::::0;7593:15:::1;::::0;7756:7:::1;3639::::0;3666:6;-1:-1:-1;;;;;3666:6:0;;3601:79;7756:7:::1;7593:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7593:211:0;;;-1:-1:-1;;;;;7106:15:1;;;7593:211:0::1;::::0;::::1;7088:34:1::0;7138:18;;;7131:34;;;;7181:18;;;7174:34;;;;7224:18;;;7217:34;7288:15;;;7267:19;;;7260:44;7778:15:0::1;7320:19:1::0;;;7313:35;7022:19;;7593:211:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7824:13:0::1;::::0;7855:15:::1;::::0;7817:71:::1;::::0;-1:-1:-1;;;7817:71:0;;-1:-1:-1;;;;;7855:15:0;;::::1;7817:71;::::0;::::1;7844:51:1::0;-1:-1:-1;;7911:18:1;;;7904:34;7824:13:0;::::1;::::0;-1:-1:-1;7817:29:0::1;::::0;:18:1;;:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7901:11:0::1;:18:::0;;-1:-1:-1;;;;7930:18:0;-1:-1:-1;;;7930:18:0;;;7972:12:::1;7959:10;:25:::0;7480:512::o;11279:168::-;3728:6;;-1:-1:-1;;;;;3728:6:0;414:10;3728:22;3720:67;;;;-1:-1:-1;;;3720:67:0;;;;;;;:::i;:::-;11354:6:::1;11349:91;11370:6;:13;11366:1;:17;11349:91;;;11423:5;11405:4;:15;11410:6;11417:1;11410:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11405:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11405:15:0;:23;;-1:-1:-1;;11405:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11385:3;::::1;::::0;::::1;:::i;:::-;;;;11349:91;;;;11279:168:::0;:::o;3815:148::-;3728:6;;-1:-1:-1;;;;;3728:6:0;414:10;3728:22;3720:67;;;;-1:-1:-1;;;3720:67:0;;;;;;;:::i;:::-;3922:1:::1;3906:6:::0;;3885:40:::1;::::0;-1:-1:-1;;;;;3906:6:0;;::::1;::::0;3885:40:::1;::::0;3922:1;;3885:40:::1;3953:1;3936:19:::0;;-1:-1:-1;;;;;;3936:19:0::1;::::0;;3815:148::o;9911:162::-;3728:6;;-1:-1:-1;;;;;3728:6:0;414:10;3728:22;3720:67;;;;-1:-1:-1;;;3720:67:0;;;;;;;:::i;:::-;4973:15:::1;4914:1;4973:2;:15;:::i;:::-;4957:31;::::0;:13:::1;:31;:::i;:::-;9965:12;:22:::0;4973:15:::1;4914:1;4973:2;:15;:::i;:::-;4957:31;::::0;:13:::1;:31;:::i;:::-;9998:14;:24:::0;10038:27:::1;4973:15;4914:1;4973:2;:15;:::i;:::-;4957:31;::::0;:13:::1;:31;:::i;:::-;10038:27;::::0;1549:25:1;;;1537:2;1522:18;10038:27:0::1;;;;;;;9911:162::o:0;8544:192::-;8647:4;8664:42;414:10;8688:9;8699:6;8664:9;:42::i;11107:164::-;3728:6;;-1:-1:-1;;;;;3728:6:0;414:10;3728:22;3720:67;;;;-1:-1:-1;;;3720:67:0;;;;;;;:::i;:::-;11181:6:::1;11176:88;11197:5;:12;11193:1;:16;11176:88;;;11248:4;11231;:14;11236:5;11242:1;11236:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11231:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11231:14:0;:21;;-1:-1:-1;;11231:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11211:3;::::1;::::0;::::1;:::i;:::-;;;;11176:88;;5935:450:::0;3728:6;;-1:-1:-1;;;;;3728:6:0;414:10;3728:22;3720:67;;;;-1:-1:-1;;;3720:67:0;;;;;;;:::i;:::-;5990:11:::1;::::0;-1:-1:-1;;;5990:11:0;::::1;;;5989:12;5981:48;;;::::0;-1:-1:-1;;;5981:48:0;;6597:2:1;5981:48:0::1;::::0;::::1;6579:21:1::0;6636:2;6616:18;;;6609:30;-1:-1:-1;;;6655:18:1;;;6648:53;6718:18;;5981:48:0::1;6395:347:1::0;5981:48:0::1;6042:15;:104:::0;;-1:-1:-1;;;;;;6042:104:0::1;6093:42;6042:104:::0;;::::1;::::0;;;6159:58:::1;::::0;6176:4:::1;::::0;4973:15:::1;4914:1;4973:2;:15;:::i;:::-;4957:31;::::0;:13:::1;:31;:::i;6159:58::-;6264:15;;;;;;;;;-1:-1:-1::0;;;;;6264:15:0::1;-1:-1:-1::0;;;;;6264:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6246:55:0::1;;6324:4;6344:15;;;;;;;;;-1:-1:-1::0;;;;;6344:15:0::1;-1:-1:-1::0;;;;;6344:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6246:131;::::0;-1:-1:-1;;;;;;6246:131:0::1;::::0;;;;;;-1:-1:-1;;;;;8989:15:1;;;6246:131:0::1;::::0;::::1;8971:34:1::0;9041:15;;9021:18;;;9014:43;8906:18;;6246:131:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6230:13;:147:::0;;-1:-1:-1;;;;;;6230:147:0::1;-1:-1:-1::0;;;;;6230:147:0;;;::::1;::::0;;;::::1;::::0;;5935:450::o;9568:335::-;-1:-1:-1;;;;;9661:19:0;;9653:68;;;;-1:-1:-1;;;9653:68:0;;9270:2:1;9653:68:0;;;9252:21:1;9309:2;9289:18;;;9282:30;9348:34;9328:18;;;9321:62;-1:-1:-1;;;9399:18:1;;;9392:34;9443:19;;9653:68:0;9068:400:1;9653:68:0;-1:-1:-1;;;;;9740:21:0;;9732:68;;;;-1:-1:-1;;;9732:68:0;;9675:2:1;9732:68:0;;;9657:21:1;9714:2;9694:18;;;9687:30;9753:34;9733:18;;;9726:62;-1:-1:-1;;;9804:18:1;;;9797:32;9846:19;;9732:68:0;9473:398:1;9732:68:0;-1:-1:-1;;;;;9811:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9863:32;;1549:25:1;;;9863:32:0;;1522:18:1;9863:32:0;;;;;;;;9568:335;;;:::o;12358:2208::-;-1:-1:-1;;;;;12446:18:0;;12438:68;;;;-1:-1:-1;;;12438:68:0;;10078:2:1;12438:68:0;;;10060:21:1;10117:2;10097:18;;;10090:30;10156:34;10136:18;;;10129:62;-1:-1:-1;;;10207:18:1;;;10200:35;10252:19;;12438:68:0;9876:401:1;12438:68:0;-1:-1:-1;;;;;12525:16:0;;12517:64;;;;-1:-1:-1;;;12517:64:0;;10484:2:1;12517:64:0;;;10466:21:1;10523:2;10503:18;;;10496:30;10562:34;10542:18;;;10535:62;-1:-1:-1;;;10613:18:1;;;10606:33;10656:19;;12517:64:0;10282:399:1;12517:64:0;12609:1;12600:6;:10;12592:64;;;;-1:-1:-1;;;12592:64:0;;10888:2:1;12592:64:0;;;10870:21:1;10927:2;10907:18;;;10900:30;10966:34;10946:18;;;10939:62;-1:-1:-1;;;11017:18:1;;;11010:39;11066:19;;12592:64:0;10686:405:1;12592:64:0;12672:11;;-1:-1:-1;;;12672:11:0;;;;12671:12;;:22;;-1:-1:-1;12687:6:0;;-1:-1:-1;;;12687:6:0;;;;12671:22;12667:108;;;12710:32;12725:4;12731:2;12735:6;12710:14;:32::i;:::-;12358:2208;;;:::o;12667:108::-;3639:7;3666:6;-1:-1:-1;;;;;12791:15:0;;;3666:6;;12791:15;;;;:32;;-1:-1:-1;3639:7:0;3666:6;-1:-1:-1;;;;;12810:13:0;;;3666:6;;12810:13;;12791:32;12787:1726;;;-1:-1:-1;;;;;12849:10:0;;;;;;:4;:10;;;;;;;;12848:11;:24;;;;-1:-1:-1;;;;;;12864:8:0;;;;;;:4;:8;;;;;;;;12863:9;12848:24;12840:33;;;;;;12920:13;;-1:-1:-1;;;;;12912:21:0;;;12920:13;;12912:21;:72;;;;-1:-1:-1;12968:15:0;;-1:-1:-1;;;;;12954:30:0;;;12968:15;;12954:30;;12912:72;:114;;;;-1:-1:-1;;;;;;13006:20:0;;;;;;:16;:20;;;;;;;;13005:21;12912:114;12890:558;;;13079:12;;13069:6;:22;;13061:60;;;;-1:-1:-1;;;13061:60:0;;11298:2:1;13061:60:0;;;11280:21:1;11337:2;11317:18;;;11310:30;11376:27;11356:18;;;11349:55;11421:18;;13061:60:0;11096:349:1;13061:60:0;13196:14;;13186:6;13170:13;13180:2;-1:-1:-1;;;;;8510:18:0;8483:7;8510:18;;;:9;:18;;;;;;;8417:119;13170:13;:22;;;;:::i;:::-;:40;;13140:140;;;;-1:-1:-1;;;13140:140:0;;11785:2:1;13140:140:0;;;11767:21:1;11824:2;11804:18;;;11797:30;11863:28;11843:18;;;11836:56;11909:18;;13140:140:0;11583:350:1;13140:140:0;13322:12;13305:10;;13318:1;13305:14;;;;:::i;:::-;:29;13301:102;;;11795:20;;11843:8;13359:24;;;;;;13421:9;:11;;;:9;:11;;;:::i;:::-;;;;;;12890:558;13474:13;;-1:-1:-1;;;;;13468:19:0;;;13474:13;;13468:19;;;;:44;;-1:-1:-1;;;;;;13492:20:0;;;;;;:16;:20;;;;;;;;13491:21;13468:44;13464:225;;;13589:14;;13579:6;13563:13;13573:2;-1:-1:-1;;;;;8510:18:0;8483:7;8510:18;;;:9;:18;;;;;;;8417:119;13563:13;:22;;;;:::i;:::-;:40;;13533:140;;;;-1:-1:-1;;;13533:140:0;;11785:2:1;13533:140:0;;;11767:21:1;11824:2;11804:18;;;11797:30;11863:28;11843:18;;;11836:56;11909:18;;13533:140:0;11583:350:1;13533:140:0;13754:4;13705:28;8510:18;;;:9;:18;;;;;;13815:17;;13870:6;;13792:40;;;;-1:-1:-1;;;13870:6:0;;;;13869:7;:39;;;;-1:-1:-1;13897:11:0;;-1:-1:-1;;;13897:11:0;;;;13869:39;:90;;;;;13941:18;;13929:9;;:30;13869:90;:130;;;;-1:-1:-1;13986:13:0;;-1:-1:-1;;;;;13980:19:0;;;13986:13;;13980:19;13869:130;:174;;;;-1:-1:-1;;;;;;14021:22:0;;;;;;:16;:22;;;;;;;;14020:23;13869:174;:216;;;;-1:-1:-1;;;;;;14065:20:0;;;;;;:16;:20;;;;;;;;14064:21;13869:216;13847:655;;;14123:9;14120:173;;;14156:117;14199:51;14203:6;14211:38;14215:20;14237:11;;14211:3;:38::i;:::-;14199:3;:51::i;:::-;14156:16;:117::i;:::-;14340:21;14432:35;14445:21;14432:12;:35::i;:::-;14101:401;13847:655;12825:1688;;12787:1726;14525:33;14541:4;14547:2;14551:6;14525:15;:33::i;945:224::-;1065:7;1101:12;1093:6;;;;1085:29;;;;-1:-1:-1;;;1085:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1125:9:0;1137:5;1141:1;1137;:5;:::i;:::-;1125:17;945:224;-1:-1:-1;;;;;945:224:0:o;10181:233::-;-1:-1:-1;;;;;10285:15:0;;;;;;:9;:15;;;;;;:27;;10305:6;10285:19;:27::i;:::-;-1:-1:-1;;;;;10267:15:0;;;;;;;:9;:15;;;;;;:45;;;;10339:13;;;;;;;:25;;10357:6;10339:17;:25::i;:::-;-1:-1:-1;;;;;10323:13:0;;;;;;;:9;:13;;;;;;;:41;;;;10380:26;;;;;;-1:-1:-1;;;;;;;;;;;10380:26:0;;;10399:6;1549:25:1;;1537:2;1522:18;;1403:177;11549:107:0;11606:7;11638:1;11634;:5;11633:15;;11647:1;11633:15;;;11643:1;11633:15;11626:22;11549:107;-1:-1:-1;;;11549:107:0:o;11867:483::-;5523:6;:13;;-1:-1:-1;;;;5523:13:0;-1:-1:-1;;;5523:13:0;;;11969:16:::1;::::0;;11983:1:::1;11969:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11969:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11969:16:0::1;11945:40;;12014:4;11996;12001:1;11996:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11996:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12040:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12040:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11996:7;;12040:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12030:4;12035:1;12030:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12030:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12105:15:::1;::::0;12073:62:::1;::::0;12090:4:::1;::::0;12105:15:::1;12123:11:::0;12073:8:::1;:62::i;:::-;12146:15;::::0;:196:::1;::::0;-1:-1:-1;;;12146:196:0;;-1:-1:-1;;;;;12146:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12227:11;;12146:15:::1;::::0;12269:4;;12296::::1;::::0;12316:15:::1;::::0;12146:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5559:6:0;:14;;-1:-1:-1;;;;5559:14:0;;;-1:-1:-1;;;;11867:483:0:o;10081:92::-;10138:10;;:27;;-1:-1:-1;;;;;10138:10:0;;;;:27;;;;;10158:6;;10138:10;:27;:10;:27;10158:6;10138:10;:27;;;;;;;;;;;;;;;;;;;10756:343;-1:-1:-1;;;;;10922:22:0;;10877:16;10922:22;;;:16;:22;;;;;;;;10918:174;;;10961:44;10978:4;10984:2;10988:6;10996:8;10961:16;:44::i;:::-;10918:174;;;11049:31;11063:4;11069:2;11073:6;11049:13;:31::i;:::-;11038:42;;10918:174;10866:233;10756:343;;;:::o;801:136::-;859:7;886:43;890:1;893;886:43;;;;;;;;;;;;;;;;;:3;:43::i;614:179::-;672:7;;704:5;708:1;704;:5;:::i;:::-;692:17;;733:1;728;:6;;720:46;;;;-1:-1:-1;;;720:46:0;;13255:2:1;720:46:0;;;13237:21:1;13294:2;13274:18;;;13267:30;13333:29;13313:18;;;13306:57;13380:18;;720:46:0;13053:351:1;10422:326:0;-1:-1:-1;;;;;10589:15:0;;;;;;:9;:15;;;;;;:29;;10609:8;10589:19;:29::i;:::-;-1:-1:-1;;;;;10571:15:0;;;;;;:9;:15;;;;;:47;10645:39;10663:20;:6;10674:8;10663:10;:20::i;:::-;-1:-1:-1;;;;;10645:13:0;;;;;;:9;:13;;;;;;;:17;:39::i;:::-;-1:-1:-1;;;;;10629:13:0;;;;;;;:9;:13;;;;;:55;;;;10700:40;;-1:-1:-1;;;;;;;;;;;10719:20:0;:6;10730:8;10719:10;:20::i;:::-;10700:40;;1549:25:1;;;1537:2;1522:18;10700:40:0;;;;;;;10422:326;;;;:::o;6393:1079::-;6509:7;6529:16;6548:184;6728:3;6548:161;6604:15;;6592:9;;:27;6591:103;;6680:14;;6591:103;;;6644:12;;6591:103;6548:6;;:24;:161::i;:::-;:179;;:184::i;:::-;6755:13;;6529:203;;-1:-1:-1;;;;;;6749:19:0;;;6755:13;;6749:19;:44;;;;-1:-1:-1;;;;;;6772:21:0;;6788:4;6772:21;;6749:44;6745:299;;;6821:211;7028:3;6821:184;6885:16;;6873:9;;:28;6872:114;;6971:15;;6872:114;;;6930:13;;6821:6;;:28;:184::i;:211::-;6810:222;;6745:299;7060:12;;7056:201;;7134:4;7116:24;;;;:9;:24;;;;;;:70;;7163:8;7116:28;:70::i;:::-;7107:4;7089:24;;;;:9;:24;;;;;;;:97;;;;7206:39;;-1:-1:-1;;;;;7206:39:0;;;-1:-1:-1;;;;;;;;;;;7206:39:0;;;7236:8;1549:25:1;;1537:2;1522:18;;1403:177;7206:39:0;;;;;;;;7056:201;-1:-1:-1;;;;;7287:15:0;;;;;;:9;:15;;;;;;:27;;7307:6;7287:19;:27::i;:::-;-1:-1:-1;;;;;7269:15:0;;;;;;:9;:15;;;;;:45;7341:39;7359:20;:6;7370:8;7359:10;:20::i;:::-;-1:-1:-1;;;;;7341:13:0;;;;;;:9;:13;;;;;;;:17;:39::i;:::-;-1:-1:-1;;;;;7325:13:0;;;;;;;:9;:13;;;;;:55;;;;7396:40;;-1:-1:-1;;;;;;;;;;;7415:20:0;:6;7426:8;7415:10;:20::i;:::-;7396:40;;1549:25:1;;;1537:2;1522:18;7396:40:0;;;;;;;7456:8;6393:1079;-1:-1:-1;;;;6393:1079:0:o;1177:246::-;1235:7;1259:6;1255:47;;-1:-1:-1;1289:1:0;1282:8;;1255:47;1312:9;1324:5;1328:1;1324;:5;:::i;:::-;1312:17;-1:-1:-1;1357:1:0;1348:5;1352:1;1312:17;1348:5;:::i;:::-;:10;1340:56;;;;-1:-1:-1;;;1340:56:0;;13833:2:1;1340:56:0;;;13815:21:1;13872:2;13852:18;;;13845:30;13911:34;13891:18;;;13884:62;-1:-1:-1;;;13962:18:1;;;13955:31;14003:19;;1340:56:0;13631:397:1;1431:132:0;1489:7;1516:39;1520:1;1523;1516:39;;;;;;;;;;;;;;;;;1691:7;1726:12;1719:5;1711:28;;;;-1:-1:-1;;;1711:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1750:9:0;1762:5;1766:1;1762;:5;:::i;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:134::-;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2235:127::-;2296:10;2291:3;2287:20;2284:1;2277:31;2327:4;2324:1;2317:15;2351:4;2348:1;2341:15;2367:1121;2451:6;2482:2;2525;2513:9;2504:7;2500:23;2496:32;2493:52;;;2541:1;2538;2531:12;2493:52;2581:9;2568:23;2610:18;2651:2;2643:6;2640:14;2637:34;;;2667:1;2664;2657:12;2637:34;2705:6;2694:9;2690:22;2680:32;;2750:7;2743:4;2739:2;2735:13;2731:27;2721:55;;2772:1;2769;2762:12;2721:55;2808:2;2795:16;2830:2;2826;2823:10;2820:36;;;2836:18;;:::i;:::-;2882:2;2879:1;2875:10;2914:2;2908:9;2977:2;2973:7;2968:2;2964;2960:11;2956:25;2948:6;2944:38;3032:6;3020:10;3017:22;3012:2;3000:10;2997:18;2994:46;2991:72;;;3043:18;;:::i;:::-;3079:2;3072:22;3129:18;;;3163:15;;;;-1:-1:-1;3205:11:1;;;3201:20;;;3233:19;;;3230:39;;;3265:1;3262;3255:12;3230:39;3289:11;;;;3309:148;3325:6;3320:3;3317:15;3309:148;;;3391:23;3410:3;3391:23;:::i;:::-;3379:36;;3342:12;;;;3435;;;;3309:148;;;3476:6;2367:1121;-1:-1:-1;;;;;;;;2367:1121:1:o;3493:247::-;3552:6;3605:2;3593:9;3584:7;3580:23;3576:32;3573:52;;;3621:1;3618;3611:12;3573:52;3660:9;3647:23;3679:31;3704:5;3679:31;:::i;3953:388::-;4021:6;4029;4082:2;4070:9;4061:7;4057:23;4053:32;4050:52;;;4098:1;4095;4088:12;4050:52;4137:9;4124:23;4156:31;4181:5;4156:31;:::i;:::-;4206:5;-1:-1:-1;4263:2:1;4248:18;;4235:32;4276:33;4235:32;4276:33;:::i;:::-;4328:7;4318:17;;;3953:388;;;;;:::o;4346:127::-;4407:10;4402:3;4398:20;4395:1;4388:31;4438:4;4435:1;4428:15;4462:4;4459:1;4452:15;4478:422;4567:1;4610:5;4567:1;4624:270;4645:7;4635:8;4632:21;4624:270;;;4704:4;4700:1;4696:6;4692:17;4686:4;4683:27;4680:53;;;4713:18;;:::i;:::-;4763:7;4753:8;4749:22;4746:55;;;4783:16;;;;4746:55;4862:22;;;;4822:15;;;;4624:270;;;4628:3;4478:422;;;;;:::o;4905:806::-;4954:5;4984:8;4974:80;;-1:-1:-1;5025:1:1;5039:5;;4974:80;5073:4;5063:76;;-1:-1:-1;5110:1:1;5124:5;;5063:76;5155:4;5173:1;5168:59;;;;5241:1;5236:130;;;;5148:218;;5168:59;5198:1;5189:10;;5212:5;;;5236:130;5273:3;5263:8;5260:17;5257:43;;;5280:18;;:::i;:::-;-1:-1:-1;;5336:1:1;5322:16;;5351:5;;5148:218;;5450:2;5440:8;5437:16;5431:3;5425:4;5422:13;5418:36;5412:2;5402:8;5399:16;5394:2;5388:4;5385:12;5381:35;5378:77;5375:159;;;-1:-1:-1;5487:19:1;;;5519:5;;5375:159;5566:34;5591:8;5585:4;5566:34;:::i;:::-;5636:6;5632:1;5628:6;5624:19;5615:7;5612:32;5609:58;;;5647:18;;:::i;:::-;5685:20;;4905:806;-1:-1:-1;;;4905:806:1:o;5716:140::-;5774:5;5803:47;5844:4;5834:8;5830:19;5824:4;5803:47;:::i;5861:168::-;5901:7;5967:1;5963;5959:6;5955:14;5952:1;5949:21;5944:1;5937:9;5930:17;5926:45;5923:71;;;5974:18;;:::i;:::-;-1:-1:-1;6014:9:1;;5861:168::o;6034:356::-;6236:2;6218:21;;;6255:18;;;6248:30;6314:34;6309:2;6294:18;;6287:62;6381:2;6366:18;;6034:356::o;7359:306::-;7447:6;7455;7463;7516:2;7504:9;7495:7;7491:23;7487:32;7484:52;;;7532:1;7529;7522:12;7484:52;7561:9;7555:16;7545:26;;7611:2;7600:9;7596:18;7590:25;7580:35;;7655:2;7644:9;7640:18;7634:25;7624:35;;7359:306;;;;;:::o;7949:277::-;8016:6;8069:2;8057:9;8048:7;8044:23;8040:32;8037:52;;;8085:1;8082;8075:12;8037:52;8117:9;8111:16;8170:5;8163:13;8156:21;8149:5;8146:32;8136:60;;8192:1;8189;8182:12;8231:127;8292:10;8287:3;8283:20;8280:1;8273:31;8323:4;8320:1;8313:15;8347:4;8344:1;8337:15;8363:135;8402:3;-1:-1:-1;;8423:17:1;;8420:43;;;8443:18;;:::i;:::-;-1:-1:-1;8490:1:1;8479:13;;8363:135::o;8503:251::-;8573:6;8626:2;8614:9;8605:7;8601:23;8597:32;8594:52;;;8642:1;8639;8632:12;8594:52;8674:9;8668:16;8693:31;8718:5;8693:31;:::i;11450:128::-;11490:3;11521:1;11517:6;11514:1;11511:13;11508:39;;;11527:18;;:::i;:::-;-1:-1:-1;11563:9:1;;11450:128::o;11938:125::-;11978:4;12006:1;12003;12000:8;11997:34;;;12011:18;;:::i;:::-;-1:-1:-1;12048:9:1;;11938:125::o;12068:980::-;12330:4;12378:3;12367:9;12363:19;12409:6;12398:9;12391:25;12435:2;12473:6;12468:2;12457:9;12453:18;12446:34;12516:3;12511:2;12500:9;12496:18;12489:31;12540:6;12575;12569:13;12606:6;12598;12591:22;12644:3;12633:9;12629:19;12622:26;;12683:2;12675:6;12671:15;12657:29;;12704:1;12714:195;12728:6;12725:1;12722:13;12714:195;;;12793:13;;-1:-1:-1;;;;;12789:39:1;12777:52;;12884:15;;;;12849:12;;;;12825:1;12743:9;12714:195;;;-1:-1:-1;;;;;;;12965:32:1;;;;12960:2;12945:18;;12938:60;-1:-1:-1;;;13029:3:1;13014:19;13007:35;12926:3;12068:980;-1:-1:-1;;;12068:980:1:o;13409:217::-;13449:1;13475;13465:132;;13519:10;13514:3;13510:20;13507:1;13500:31;13554:4;13551:1;13544:15;13582:4;13579:1;13572:15;13465:132;-1:-1:-1;13611:9:1;;13409:217::o

Swarm Source

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