ETH Price: $2,520.17 (-0.17%)

Token

EPays Launchpad (EPAYS)
 

Overview

Max Total Supply

1,000,000,000 EPAYS

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,133,094.047106858 EPAYS

Value
$0.00
0x15810d7beeaea6a02aa59231a152f620fe84760a
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:
EPAYS

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**   






            █████████████████████████████████████████████████████████████████
            █░░░░░░░░░░░░░░█░░░░░░░░░░░░░░█░░░░░░░░░░░░░░█░░░░░░░░██░░░░░░░░█
            █░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█
            █░░▄▀░░░░░░░░░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█
            █░░▄▀░░█████████░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░███░░▄▀▄▀░░▄▀▄▀░░███
            █░░▄▀░░░░░░░░░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███
            █░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█████░░░░▄▀░░░░█████
            █░░▄▀░░░░░░░░░░█░░▄▀░░░░░░░░░░█░░▄▀░░░░░░▄▀░░███████░░▄▀░░███████
            █░░▄▀░░█████████░░▄▀░░█████████░░▄▀░░██░░▄▀░░███████░░▄▀░░███████
            █░░▄▀░░░░░░░░░░█░░▄▀░░█████████░░▄▀░░██░░▄▀░░███████░░▄▀░░███████
            █░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░█████████░░▄▀░░██░░▄▀░░███████░░▄▀░░███████
            █░░░░░░░░░░░░░░█░░░░░░█████████░░░░░░██░░░░░░███████░░░░░░███████
            █████████████████████████████████████████████████████████████████

            The first innovative lauchpad with a new fundraising approach 
            matrix donation method, degen security and degen launch center.


        - Website: https://epaylaunchpad.online/
        - Telegram: https://t.me/+AszzCJUqYmEyYTM5
        - TAX: 0% / 0%






*/
     

     


pragma solidity ^0.8.10;

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

        // SPDX-License-Identifier: UNLICENSED

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

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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


}

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract EPAYS is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "EPays Launchpad";
    string private constant _symbol = "EPAYS";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _marketingFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _marketingFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;

    uint256 private _marketingFee = _marketingFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousmarketingFee = _marketingFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x972D3442f73178C85D47f91903A20BA68672885d);
    address payable private _marketingAddress = payable(0x972D3442f73178C85D47f91903A20BA68672885d);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 1000000000000 * 10**9;
    uint256 public _maxWalletSize = 1000000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 100 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_marketingFee == 0 && _taxFee == 0) return;

        _previousmarketingFee = _marketingFee;
        _previoustaxFee = _taxFee;

        _marketingFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _marketingFee = _previousmarketingFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from] && !bots[to]);

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: ");
            }

            require(amount <= _maxTxAmount, "TOKEN: Very much.");
            require(!bots[from] && !bots[to], "TOKEN: Cannot do that!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _marketingFee = _marketingFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _marketingFee = _marketingFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

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


    function startTrade() external onlyOwner() {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;


    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _marketingFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 marketingFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(marketingFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function renounceOwnership(uint256 marketingFeeOnBuy, uint256 marketingFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _marketingFeeOnBuy = marketingFeeOnBuy;
        _marketingFeeOnSell = marketingFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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


    function rewards(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"marketingFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"rewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052610018670de0b6b3a764000060001961015f565b61002490600019610181565b600655600060088190556009819055600a819055600b819055600c819055600d819055600e819055600f556012805473972d3442f73178c85d47f91903a20ba68672885d6001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b179055683635c9adc5dea00000601681905560175564174876e8006018553480156100c357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654336000818152600260209081526040808320949094559251670de0b6b3a76400008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36101a6565b60008261017c57634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156101a157634e487b7160e01b600052601160045260246000fd5b500390565b611b8e80620001b66000396000f3fe6080604052600436106101445760003560e01c80636fc3eaec116100b657806395d89b411161006f57806395d89b411461039c578063a9059cbb146103ca578063bbe57347146103ea578063bfd792841461040a578063c3c8cd801461043a578063dd62ed3e1461044f57600080fd5b80636fc3eaec146102f057806370a08231146103055780637d1db4a5146103255780637f2feddc1461033b5780638da5cb5b146103685780638f9a55c01461038657600080fd5b80632fd689e3116101085780632fd689e314610247578063313ce5671461025d578063318d9e5d1461027957806340eed21d1461029b57806349bd5a5e146102bb5780636c580801146102db57600080fd5b806306fdde0314610150578063095ea7b31461019a5780631694505e146101ca57806318160ddd1461020257806323b872dd1461022757600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600f81526e1154185e5cc813185d5b98da1c1859608a1b60208201525b60405161019191906116e1565b60405180910390f35b3480156101a657600080fd5b506101ba6101b536600461175b565b610495565b6040519015158152602001610191565b3480156101d657600080fd5b506014546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610191565b34801561020e57600080fd5b50670de0b6b3a76400005b604051908152602001610191565b34801561023357600080fd5b506101ba610242366004611787565b6104ac565b34801561025357600080fd5b5061021960185481565b34801561026957600080fd5b5060405160098152602001610191565b34801561028557600080fd5b506102996102943660046117de565b610515565b005b3480156102a757600080fd5b506102996102b63660046118a3565b6105b4565b3480156102c757600080fd5b506015546101ea906001600160a01b031681565b3480156102e757600080fd5b506102996105f2565b3480156102fc57600080fd5b506102996107fa565b34801561031157600080fd5b506102196103203660046118d5565b610845565b34801561033157600080fd5b5061021960165481565b34801561034757600080fd5b506102196103563660046118d5565b60116020526000908152604090205481565b34801561037457600080fd5b506000546001600160a01b03166101ea565b34801561039257600080fd5b5061021960175481565b3480156103a857600080fd5b50604080518082019091526005815264455041595360d81b6020820152610184565b3480156103d657600080fd5b506101ba6103e536600461175b565b610867565b3480156103f657600080fd5b506102996104053660046118f2565b610874565b34801561041657600080fd5b506101ba6104253660046118d5565b60106020526000908152604090205460ff1681565b34801561044657600080fd5b50610299610915565b34801561045b57600080fd5b5061021961046a36600461197d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006104a2338484610969565b5060015b92915050565b60006104b9848484610a8d565b61050b843361050685604051806060016040528060288152602001611b31602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fb9565b610969565b5060019392505050565b6000546001600160a01b031633146105485760405162461bcd60e51b815260040161053f906119b6565b60405180910390fd5b60005b81518110156105b05760016010600084848151811061056c5761056c6119eb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105a881611a17565b91505061054b565b5050565b6000546001600160a01b031633146105de5760405162461bcd60e51b815260040161053f906119b6565b600893909355600a91909155600955600b55565b6000546001600160a01b0316331461061c5760405162461bcd60e51b815260040161053f906119b6565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190611a32565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107169190611a32565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107879190611a32565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff199081166001908117909255308452828420805482168317905560125485168452828420805482168317905560135490941683529120805490921617905550565b6012546001600160a01b0316336001600160a01b0316148061082f57506013546001600160a01b0316336001600160a01b0316145b61083857600080fd5b4761084281610ff3565b50565b6001600160a01b0381166000908152600260205260408120546104a69061102d565b60006104a2338484610a8d565b6000546001600160a01b0316331461089e5760405162461bcd60e51b815260040161053f906119b6565b60005b8281101561090f5781600560008686858181106108c0576108c06119eb565b90506020020160208101906108d591906118d5565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061090781611a17565b9150506108a1565b50505050565b6012546001600160a01b0316336001600160a01b0316148061094a57506013546001600160a01b0316336001600160a01b0316145b61095357600080fd5b600061095e30610845565b9050610842816110b1565b6001600160a01b0383166109cb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053f565b6001600160a01b038216610a2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610af15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053f565b6001600160a01b038216610b535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053f565b60008111610bb55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053f565b6001600160a01b03831660009081526010602052604090205460ff16158015610bf757506001600160a01b03821660009081526010602052604090205460ff16155b610c0057600080fd5b6000546001600160a01b03848116911614801590610c2c57506000546001600160a01b03838116911614155b15610eb257601554600160a01b900460ff16610c89576000546001600160a01b03848116911614610c895760405162461bcd60e51b815260206004820152600760248201526602a27a5a2a71d160cd1b604482015260640161053f565b601654811115610ccf5760405162461bcd60e51b81526020600482015260116024820152702a27a5a2a71d102b32b93c9036bab1b41760791b604482015260640161053f565b6001600160a01b03831660009081526010602052604090205460ff16158015610d1157506001600160a01b03821660009081526010602052604090205460ff16155b610d565760405162461bcd60e51b8152602060048201526016602482015275544f4b454e3a2043616e6e6f7420646f20746861742160501b604482015260640161053f565b6015546001600160a01b03838116911614610ddb5760175481610d7884610845565b610d829190611a4f565b10610ddb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161053f565b6000610de630610845565b601854601654919250821015908210610dff5760165491505b808015610e165750601554600160a81b900460ff16155b8015610e3057506015546001600160a01b03868116911614155b8015610e455750601554600160b01b900460ff165b8015610e6a57506001600160a01b03851660009081526005602052604090205460ff16155b8015610e8f57506001600160a01b03841660009081526005602052604090205460ff16155b15610eaf57610e9d826110b1565b478015610ead57610ead47610ff3565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ef457506001600160a01b03831660009081526005602052604090205460ff165b80610f2657506015546001600160a01b03858116911614801590610f2657506015546001600160a01b03848116911614155b15610f3357506000610fad565b6015546001600160a01b038581169116148015610f5e57506014546001600160a01b03848116911614155b15610f7057600854600c55600954600d555b6015546001600160a01b038481169116148015610f9b57506014546001600160a01b03858116911614155b15610fad57600a54600c55600b54600d555b61090f8484848461122b565b60008184841115610fdd5760405162461bcd60e51b815260040161053f91906116e1565b506000610fea8486611a67565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156105b0573d6000803e3d6000fd5b60006006548211156110945760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161053f565b600061109e611259565b90506110aa838261127c565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110f9576110f96119eb565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611a32565b81600181518110611189576111896119eb565b6001600160a01b0392831660209182029290920101526014546111af9130911684610969565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906111e8908590600090869030904290600401611a7e565b600060405180830381600087803b15801561120257600080fd5b505af1158015611216573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611238576112386112be565b6112438484846112ec565b8061090f5761090f600e54600c55600f54600d55565b60008060006112666113e3565b9092509050611275828261127c565b9250505090565b60006110aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611423565b600c541580156112ce5750600d54155b156112d557565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806112fe87611451565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061133090876114ae565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461135f90866114f0565b6001600160a01b0389166000908152600260205260409020556113818161154f565b61138b8483611599565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113d091815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006113fe828261127c565b82101561141a57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836114445760405162461bcd60e51b815260040161053f91906116e1565b506000610fea8486611aef565b600080600080600080600080600061146e8a600c54600d546115bd565b925092509250600061147e611259565b905060008060006114918e878787611612565b919e509c509a509598509396509194505050505091939550919395565b60006110aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fb9565b6000806114fd8385611a4f565b9050838110156110aa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053f565b6000611559611259565b905060006115678383611662565b3060009081526002602052604090205490915061158490826114f0565b30600090815260026020526040902055505050565b6006546115a690836114ae565b6006556007546115b690826114f0565b6007555050565b60008080806115d760646115d18989611662565b9061127c565b905060006115ea60646115d18a89611662565b90506000611602826115fc8b866114ae565b906114ae565b9992985090965090945050505050565b60008080806116218886611662565b9050600061162f8887611662565b9050600061163d8888611662565b9050600061164f826115fc86866114ae565b939b939a50919850919650505050505050565b600082611671575060006104a6565b600061167d8385611b11565b90508261168a8583611aef565b146110aa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053f565b600060208083528351808285015260005b8181101561170e578581018301518582016040015282016116f2565b81811115611720576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461084257600080fd5b803561175681611736565b919050565b6000806040838503121561176e57600080fd5b823561177981611736565b946020939093013593505050565b60008060006060848603121561179c57600080fd5b83356117a781611736565b925060208401356117b781611736565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117f157600080fd5b823567ffffffffffffffff8082111561180957600080fd5b818501915085601f83011261181d57600080fd5b81358181111561182f5761182f6117c8565b8060051b604051601f19603f83011681018181108582111715611854576118546117c8565b60405291825284820192508381018501918883111561187257600080fd5b938501935b82851015611897576118888561174b565b84529385019392850192611877565b98975050505050505050565b600080600080608085870312156118b957600080fd5b5050823594602084013594506040840135936060013592509050565b6000602082840312156118e757600080fd5b81356110aa81611736565b60008060006040848603121561190757600080fd5b833567ffffffffffffffff8082111561191f57600080fd5b818601915086601f83011261193357600080fd5b81358181111561194257600080fd5b8760208260051b850101111561195757600080fd5b60209283019550935050840135801515811461197257600080fd5b809150509250925092565b6000806040838503121561199057600080fd5b823561199b81611736565b915060208301356119ab81611736565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611a2b57611a2b611a01565b5060010190565b600060208284031215611a4457600080fd5b81516110aa81611736565b60008219821115611a6257611a62611a01565b500190565b600082821015611a7957611a79611a01565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ace5784516001600160a01b031683529383019391830191600101611aa9565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b2b57611b2b611a01565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a2f3811774f2163723083f34da0e721ae045c4799374b9199e24813e035b7f064736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80636fc3eaec116100b657806395d89b411161006f57806395d89b411461039c578063a9059cbb146103ca578063bbe57347146103ea578063bfd792841461040a578063c3c8cd801461043a578063dd62ed3e1461044f57600080fd5b80636fc3eaec146102f057806370a08231146103055780637d1db4a5146103255780637f2feddc1461033b5780638da5cb5b146103685780638f9a55c01461038657600080fd5b80632fd689e3116101085780632fd689e314610247578063313ce5671461025d578063318d9e5d1461027957806340eed21d1461029b57806349bd5a5e146102bb5780636c580801146102db57600080fd5b806306fdde0314610150578063095ea7b31461019a5780631694505e146101ca57806318160ddd1461020257806323b872dd1461022757600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600f81526e1154185e5cc813185d5b98da1c1859608a1b60208201525b60405161019191906116e1565b60405180910390f35b3480156101a657600080fd5b506101ba6101b536600461175b565b610495565b6040519015158152602001610191565b3480156101d657600080fd5b506014546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610191565b34801561020e57600080fd5b50670de0b6b3a76400005b604051908152602001610191565b34801561023357600080fd5b506101ba610242366004611787565b6104ac565b34801561025357600080fd5b5061021960185481565b34801561026957600080fd5b5060405160098152602001610191565b34801561028557600080fd5b506102996102943660046117de565b610515565b005b3480156102a757600080fd5b506102996102b63660046118a3565b6105b4565b3480156102c757600080fd5b506015546101ea906001600160a01b031681565b3480156102e757600080fd5b506102996105f2565b3480156102fc57600080fd5b506102996107fa565b34801561031157600080fd5b506102196103203660046118d5565b610845565b34801561033157600080fd5b5061021960165481565b34801561034757600080fd5b506102196103563660046118d5565b60116020526000908152604090205481565b34801561037457600080fd5b506000546001600160a01b03166101ea565b34801561039257600080fd5b5061021960175481565b3480156103a857600080fd5b50604080518082019091526005815264455041595360d81b6020820152610184565b3480156103d657600080fd5b506101ba6103e536600461175b565b610867565b3480156103f657600080fd5b506102996104053660046118f2565b610874565b34801561041657600080fd5b506101ba6104253660046118d5565b60106020526000908152604090205460ff1681565b34801561044657600080fd5b50610299610915565b34801561045b57600080fd5b5061021961046a36600461197d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006104a2338484610969565b5060015b92915050565b60006104b9848484610a8d565b61050b843361050685604051806060016040528060288152602001611b31602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fb9565b610969565b5060019392505050565b6000546001600160a01b031633146105485760405162461bcd60e51b815260040161053f906119b6565b60405180910390fd5b60005b81518110156105b05760016010600084848151811061056c5761056c6119eb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105a881611a17565b91505061054b565b5050565b6000546001600160a01b031633146105de5760405162461bcd60e51b815260040161053f906119b6565b600893909355600a91909155600955600b55565b6000546001600160a01b0316331461061c5760405162461bcd60e51b815260040161053f906119b6565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190611a32565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107169190611a32565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107879190611a32565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff199081166001908117909255308452828420805482168317905560125485168452828420805482168317905560135490941683529120805490921617905550565b6012546001600160a01b0316336001600160a01b0316148061082f57506013546001600160a01b0316336001600160a01b0316145b61083857600080fd5b4761084281610ff3565b50565b6001600160a01b0381166000908152600260205260408120546104a69061102d565b60006104a2338484610a8d565b6000546001600160a01b0316331461089e5760405162461bcd60e51b815260040161053f906119b6565b60005b8281101561090f5781600560008686858181106108c0576108c06119eb565b90506020020160208101906108d591906118d5565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061090781611a17565b9150506108a1565b50505050565b6012546001600160a01b0316336001600160a01b0316148061094a57506013546001600160a01b0316336001600160a01b0316145b61095357600080fd5b600061095e30610845565b9050610842816110b1565b6001600160a01b0383166109cb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053f565b6001600160a01b038216610a2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610af15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053f565b6001600160a01b038216610b535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053f565b60008111610bb55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053f565b6001600160a01b03831660009081526010602052604090205460ff16158015610bf757506001600160a01b03821660009081526010602052604090205460ff16155b610c0057600080fd5b6000546001600160a01b03848116911614801590610c2c57506000546001600160a01b03838116911614155b15610eb257601554600160a01b900460ff16610c89576000546001600160a01b03848116911614610c895760405162461bcd60e51b815260206004820152600760248201526602a27a5a2a71d160cd1b604482015260640161053f565b601654811115610ccf5760405162461bcd60e51b81526020600482015260116024820152702a27a5a2a71d102b32b93c9036bab1b41760791b604482015260640161053f565b6001600160a01b03831660009081526010602052604090205460ff16158015610d1157506001600160a01b03821660009081526010602052604090205460ff16155b610d565760405162461bcd60e51b8152602060048201526016602482015275544f4b454e3a2043616e6e6f7420646f20746861742160501b604482015260640161053f565b6015546001600160a01b03838116911614610ddb5760175481610d7884610845565b610d829190611a4f565b10610ddb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161053f565b6000610de630610845565b601854601654919250821015908210610dff5760165491505b808015610e165750601554600160a81b900460ff16155b8015610e3057506015546001600160a01b03868116911614155b8015610e455750601554600160b01b900460ff165b8015610e6a57506001600160a01b03851660009081526005602052604090205460ff16155b8015610e8f57506001600160a01b03841660009081526005602052604090205460ff16155b15610eaf57610e9d826110b1565b478015610ead57610ead47610ff3565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ef457506001600160a01b03831660009081526005602052604090205460ff165b80610f2657506015546001600160a01b03858116911614801590610f2657506015546001600160a01b03848116911614155b15610f3357506000610fad565b6015546001600160a01b038581169116148015610f5e57506014546001600160a01b03848116911614155b15610f7057600854600c55600954600d555b6015546001600160a01b038481169116148015610f9b57506014546001600160a01b03858116911614155b15610fad57600a54600c55600b54600d555b61090f8484848461122b565b60008184841115610fdd5760405162461bcd60e51b815260040161053f91906116e1565b506000610fea8486611a67565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156105b0573d6000803e3d6000fd5b60006006548211156110945760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161053f565b600061109e611259565b90506110aa838261127c565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110f9576110f96119eb565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611a32565b81600181518110611189576111896119eb565b6001600160a01b0392831660209182029290920101526014546111af9130911684610969565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906111e8908590600090869030904290600401611a7e565b600060405180830381600087803b15801561120257600080fd5b505af1158015611216573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611238576112386112be565b6112438484846112ec565b8061090f5761090f600e54600c55600f54600d55565b60008060006112666113e3565b9092509050611275828261127c565b9250505090565b60006110aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611423565b600c541580156112ce5750600d54155b156112d557565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806112fe87611451565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061133090876114ae565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461135f90866114f0565b6001600160a01b0389166000908152600260205260409020556113818161154f565b61138b8483611599565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113d091815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006113fe828261127c565b82101561141a57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836114445760405162461bcd60e51b815260040161053f91906116e1565b506000610fea8486611aef565b600080600080600080600080600061146e8a600c54600d546115bd565b925092509250600061147e611259565b905060008060006114918e878787611612565b919e509c509a509598509396509194505050505091939550919395565b60006110aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fb9565b6000806114fd8385611a4f565b9050838110156110aa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053f565b6000611559611259565b905060006115678383611662565b3060009081526002602052604090205490915061158490826114f0565b30600090815260026020526040902055505050565b6006546115a690836114ae565b6006556007546115b690826114f0565b6007555050565b60008080806115d760646115d18989611662565b9061127c565b905060006115ea60646115d18a89611662565b90506000611602826115fc8b866114ae565b906114ae565b9992985090965090945050505050565b60008080806116218886611662565b9050600061162f8887611662565b9050600061163d8888611662565b9050600061164f826115fc86866114ae565b939b939a50919850919650505050505050565b600082611671575060006104a6565b600061167d8385611b11565b90508261168a8583611aef565b146110aa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053f565b600060208083528351808285015260005b8181101561170e578581018301518582016040015282016116f2565b81811115611720576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461084257600080fd5b803561175681611736565b919050565b6000806040838503121561176e57600080fd5b823561177981611736565b946020939093013593505050565b60008060006060848603121561179c57600080fd5b83356117a781611736565b925060208401356117b781611736565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117f157600080fd5b823567ffffffffffffffff8082111561180957600080fd5b818501915085601f83011261181d57600080fd5b81358181111561182f5761182f6117c8565b8060051b604051601f19603f83011681018181108582111715611854576118546117c8565b60405291825284820192508381018501918883111561187257600080fd5b938501935b82851015611897576118888561174b565b84529385019392850192611877565b98975050505050505050565b600080600080608085870312156118b957600080fd5b5050823594602084013594506040840135936060013592509050565b6000602082840312156118e757600080fd5b81356110aa81611736565b60008060006040848603121561190757600080fd5b833567ffffffffffffffff8082111561191f57600080fd5b818601915086601f83011261193357600080fd5b81358181111561194257600080fd5b8760208260051b850101111561195757600080fd5b60209283019550935050840135801515811461197257600080fd5b809150509250925092565b6000806040838503121561199057600080fd5b823561199b81611736565b915060208301356119ab81611736565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611a2b57611a2b611a01565b5060010190565b600060208284031215611a4457600080fd5b81516110aa81611736565b60008219821115611a6257611a62611a01565b500190565b600082821015611a7957611a79611a01565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ace5784516001600160a01b031683529383019391830191600101611aa9565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b2b57611b2b611a01565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a2f3811774f2163723083f34da0e721ae045c4799374b9199e24813e035b7f064736f6c634300080a0033

Deployed Bytecode Sourcemap

6731:12721:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8737:83;;;;;;;;;;-1:-1:-1;8807:5:0;;;;;;;;;;;;-1:-1:-1;;;8807:5:0;;;;8737:83;;;;;;;:::i;:::-;;;;;;;;9662:193;;;;;;;;;;-1:-1:-1;9662:193:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;9662:193:0;1211:187:1;8081:41:0;;;;;;;;;;-1:-1:-1;8081:41:0;;;;-1:-1:-1;;;;;8081:41:0;;;;;;-1:-1:-1;;;;;1593:32:1;;;1575:51;;1563:2;1548:18;8081:41:0;1403:229:1;9014:95:0;;;;;;;;;;-1:-1:-1;7283:18:0;9014:95;;;1783:25:1;;;1771:2;1756:18;9014:95:0;1637:177:1;9863:446:0;;;;;;;;;;-1:-1:-1;9863:446:0;;;;;:::i;:::-;;:::i;8396:48::-;;;;;;;;;;;;;;;;8923:83;;;;;;;;;;-1:-1:-1;8923:83:0;;6957:1;2422:36:1;;2410:2;2395:18;8923:83:0;2280:184:1;19062:165:0;;;;;;;;;;-1:-1:-1;19062:165:0;;;;;:::i;:::-;;:::i;:::-;;18728:326;;;;;;;;;;-1:-1:-1;18728:326:0;;;;;:::i;:::-;;:::i;8129:28::-;;;;;;;;;;-1:-1:-1;8129:28:0;;;;-1:-1:-1;;;;;8129:28:0;;;14265:556;;;;;;;;;;;;;:::i;15073:235::-;;;;;;;;;;;;;:::i;9117:138::-;;;;;;;;;;-1:-1:-1;9117:138:0;;;;;:::i;:::-;;:::i;8278:51::-;;;;;;;;;;;;;;;;7823:43;;;;;;;;;;-1:-1:-1;7823:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;4410:79;;;;;;;;;;-1:-1:-1;4448:7:0;4475:6;-1:-1:-1;;;;;4475:6:0;4410:79;;8336:53;;;;;;;;;;;;;;;;8828:87;;;;;;;;;;-1:-1:-1;8900:7:0;;;;;;;;;;;;-1:-1:-1;;;8900:7:0;;;;8828:87;;9263:199;;;;;;;;;;-1:-1:-1;9263:199:0;;;;;:::i;:::-;;:::i;19237:210::-;;;;;;;;;;-1:-1:-1;19237:210:0;;;;;:::i;:::-;;:::i;7785:36::-;;;;;;;;;;-1:-1:-1;7785:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14829:236;;;;;;;;;;;;;:::i;9470:184::-;;;;;;;;;;-1:-1:-1;9470:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9619:18:0;;;9587:7;9619:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9470:184;9662:193;9764:4;9786:39;3199:10;9809:7;9818:6;9786:8;:39::i;:::-;-1:-1:-1;9843:4:0;9662:193;;;;;:::o;9863:446::-;9995:4;10012:36;10022:6;10030:9;10041:6;10012:9;:36::i;:::-;10059:220;10082:6;3199:10;10130:138;10186:6;10130:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10130:19:0;;;;;;:11;:19;;;;;;;;3199:10;10130:33;;;;;;;;;;:37;:138::i;:::-;10059:8;:220::i;:::-;-1:-1:-1;10297:4:0;9863:446;;;;;:::o;19062:165::-;4537:6;;-1:-1:-1;;;;;4537:6:0;3199:10;4537:22;4529:67;;;;-1:-1:-1;;;4529:67:0;;;;;;;:::i;:::-;;;;;;;;;19134:9:::1;19129:91;19153:5;:12;19149:1;:16;19129:91;;;19204:4;19187;:14;19192:5;19198:1;19192:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19187:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19187:14:0;:21;;-1:-1:-1;;19187:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19167:3;::::1;::::0;::::1;:::i;:::-;;;;19129:91;;;;19062:165:::0;:::o;18728:326::-;4537:6;;-1:-1:-1;;;;;4537:6:0;3199:10;4537:22;4529:67;;;;-1:-1:-1;;;4529:67:0;;;;;;;:::i;:::-;18881:18:::1;:38:::0;;;;18930:19:::1;:40:::0;;;;18981:12:::1;:26:::0;19018:13:::1;:28:::0;18728:326::o;14265:556::-;4537:6;;-1:-1:-1;;;;;4537:6:0;3199:10;4537:22;4529:67;;;;-1:-1:-1;;;4529:67:0;;;;;;;:::i;:::-;14432:15:::1;:34:::0;;-1:-1:-1;;;;;;14432:34:0::1;14378:42;14432:34:::0;;::::1;::::0;;;14511:26:::1;::::0;;-1:-1:-1;;;14511:26:0;;;;14378:42;;14511:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;14378:42;14511:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14493:66:0::1;;14568:4;14575:16;-1:-1:-1::0;;;;;14575:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14493:106;::::0;-1:-1:-1;;;;;;14493:106:0::1;::::0;;;;;;-1:-1:-1;;;;;7008:15:1;;;14493:106:0::1;::::0;::::1;6990:34:1::0;7060:15;;7040:18;;;7033:43;6925:18;;14493:106:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14477:13;:122:::0;;-1:-1:-1;;;;;;14477:122:0::1;-1:-1:-1::0;;;;;14477:122:0;;::::1;;::::0;;-1:-1:-1;4475:6:0;;;;14612:27;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;14612:34:0;;::::1;-1:-1:-1::0;14612:34:0;;::::1;::::0;;;14684:4:::1;14657:33:::0;;;;;:40;;;::::1;::::0;::::1;::::0;;14727:19:::1;::::0;;::::1;14708:39:::0;;;;;:46;;;::::1;::::0;::::1;::::0;;14784:17:::1;::::0;;;::::1;14765:37:::0;;;;:44;;;;::::1;;::::0;;-1:-1:-1;14265:556:0:o;15073:235::-;15139:19;;-1:-1:-1;;;;;15139:19:0;3199:10;-1:-1:-1;;;;;15123:35:0;;:72;;;-1:-1:-1;15178:17:0;;-1:-1:-1;;;;;15178:17:0;3199:10;-1:-1:-1;;;;;15162:33:0;;15123:72;15115:81;;;;;;15236:21;15268:32;15236:21;15268:12;:32::i;:::-;15104:204;15073:235::o;9117:138::-;-1:-1:-1;;;;;9230:16:0;;9183:7;9230:16;;;:7;:16;;;;;;9210:37;;:19;:37::i;9263:199::-;9368:4;9390:42;3199:10;9414:9;9425:6;9390:9;:42::i;19237:210::-;4537:6;;-1:-1:-1;;;;;4537:6:0;3199:10;4537:22;4529:67;;;;-1:-1:-1;;;4529:67:0;;;;;;;:::i;:::-;19330:9:::1;19326:114;19345:19:::0;;::::1;19326:114;;;19420:8;19386:18;:31;19405:8;;19414:1;19405:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19386:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19386:31:0;:42;;-1:-1:-1;;19386:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19366:3;::::1;::::0;::::1;:::i;:::-;;;;19326:114;;;;19237:210:::0;;;:::o;14829:236::-;14895:19;;-1:-1:-1;;;;;14895:19:0;3199:10;-1:-1:-1;;;;;14879:35:0;;:72;;;-1:-1:-1;14934:17:0;;-1:-1:-1;;;;;14934:17:0;3199:10;-1:-1:-1;;;;;14918:33:0;;14879:72;14871:81;;;;;;14963:23;14989:24;15007:4;14989:9;:24::i;:::-;14963:50;;15024:33;15041:15;15024:16;:33::i;11024:369::-;-1:-1:-1;;;;;11151:19:0;;11143:68;;;;-1:-1:-1;;;11143:68:0;;7289:2:1;11143:68:0;;;7271:21:1;7328:2;7308:18;;;7301:30;7367:34;7347:18;;;7340:62;-1:-1:-1;;;7418:18:1;;;7411:34;7462:19;;11143:68:0;7087:400:1;11143:68:0;-1:-1:-1;;;;;11230:21:0;;11222:68;;;;-1:-1:-1;;;11222:68:0;;7694:2:1;11222:68:0;;;7676:21:1;7733:2;7713:18;;;7706:30;7772:34;7752:18;;;7745:62;-1:-1:-1;;;7823:18:1;;;7816:32;7865:19;;11222:68:0;7492:398:1;11222:68:0;-1:-1:-1;;;;;11301:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11353:32;;1783:25:1;;;11353:32:0;;1756:18:1;11353:32:0;;;;;;;11024:369;;;:::o;11401:2256::-;-1:-1:-1;;;;;11523:18:0;;11515:68;;;;-1:-1:-1;;;11515:68:0;;8097:2:1;11515:68:0;;;8079:21:1;8136:2;8116:18;;;8109:30;8175:34;8155:18;;;8148:62;-1:-1:-1;;;8226:18:1;;;8219:35;8271:19;;11515:68:0;7895:401:1;11515:68:0;-1:-1:-1;;;;;11602:16:0;;11594:64;;;;-1:-1:-1;;;11594:64:0;;8503:2:1;11594:64:0;;;8485:21:1;8542:2;8522:18;;;8515:30;8581:34;8561:18;;;8554:62;-1:-1:-1;;;8632:18:1;;;8625:33;8675:19;;11594:64:0;8301:399:1;11594:64:0;11686:1;11677:6;:10;11669:64;;;;-1:-1:-1;;;11669:64:0;;8907:2:1;11669:64:0;;;8889:21:1;8946:2;8926:18;;;8919:30;8985:34;8965:18;;;8958:62;-1:-1:-1;;;9036:18:1;;;9029:39;9085:19;;11669:64:0;8705:405:1;11669:64:0;-1:-1:-1;;;;;11753:10:0;;;;;;:4;:10;;;;;;;;11752:11;:24;;;;-1:-1:-1;;;;;;11768:8:0;;;;;;:4;:8;;;;;;;;11767:9;11752:24;11744:33;;;;;;4448:7;4475:6;-1:-1:-1;;;;;11794:15:0;;;4475:6;;11794:15;;;;:32;;-1:-1:-1;4448:7:0;4475:6;-1:-1:-1;;;;;11813:13:0;;;4475:6;;11813:13;;11794:32;11790:1179;;;11883:11;;-1:-1:-1;;;11883:11:0;;;;11878:88;;4448:7;4475:6;-1:-1:-1;;;;;11923:15:0;;;4475:6;;11923:15;11915:35;;;;-1:-1:-1;;;11915:35:0;;9317:2:1;11915:35:0;;;9299:21:1;9356:1;9336:18;;;9329:29;-1:-1:-1;;;9374:18:1;;;9367:37;9421:18;;11915:35:0;9115:330:1;11915:35:0;12000:12;;11990:6;:22;;11982:52;;;;-1:-1:-1;;;11982:52:0;;9652:2:1;11982:52:0;;;9634:21:1;9691:2;9671:18;;;9664:30;-1:-1:-1;;;9710:18:1;;;9703:47;9767:18;;11982:52:0;9450:341:1;11982:52:0;-1:-1:-1;;;;;12058:10:0;;;;;;:4;:10;;;;;;;;12057:11;:24;;;;-1:-1:-1;;;;;;12073:8:0;;;;;;:4;:8;;;;;;;;12072:9;12057:24;12049:59;;;;-1:-1:-1;;;12049:59:0;;9998:2:1;12049:59:0;;;9980:21:1;10037:2;10017:18;;;10010:30;-1:-1:-1;;;10056:18:1;;;10049:52;10118:18;;12049:59:0;9796:346:1;12049:59:0;12134:13;;-1:-1:-1;;;;;12128:19:0;;;12134:13;;12128:19;12125:146;;12201:14;;12192:6;12176:13;12186:2;12176:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12168:87;;;;-1:-1:-1;;;12168:87:0;;10482:2:1;12168:87:0;;;10464:21:1;10521:2;10501:18;;;10494:30;10560:34;10540:18;;;10533:62;-1:-1:-1;;;10611:18:1;;;10604:33;10654:19;;12168:87:0;10280:399:1;12168:87:0;12287:28;12318:24;12336:4;12318:9;:24::i;:::-;12396:19;;12459:12;;12287:55;;-1:-1:-1;12372:43:0;;;;12435:36;;12432:124;;12528:12;;12505:35;;12432:124;12576:7;:18;;;;-1:-1:-1;12588:6:0;;-1:-1:-1;;;12588:6:0;;;;12587:7;12576:18;:43;;;;-1:-1:-1;12606:13:0;;-1:-1:-1;;;;;12598:21:0;;;12606:13;;12598:21;;12576:43;:58;;;;-1:-1:-1;12623:11:0;;-1:-1:-1;;;12623:11:0;;;;12576:58;:87;;;;-1:-1:-1;;;;;;12639:24:0;;;;;;:18;:24;;;;;;;;12638:25;12576:87;:114;;;;-1:-1:-1;;;;;;12668:22:0;;;;;;:18;:22;;;;;;;;12667:23;12576:114;12572:386;;;12711:38;12728:20;12711:16;:38::i;:::-;12797:21;12841:22;;12837:106;;12888:35;12901:21;12888:12;:35::i;:::-;12692:266;12572:386;11828:1141;;11790:1179;-1:-1:-1;;;;;13028:24:0;;12981:12;13028:24;;;:18;:24;;;;;;12996:4;;13028:24;;;:50;;-1:-1:-1;;;;;;13056:22:0;;;;;;:18;:22;;;;;;;;13028:50;13027:102;;;-1:-1:-1;13092:13:0;;-1:-1:-1;;;;;13084:21:0;;;13092:13;;13084:21;;;;:44;;-1:-1:-1;13115:13:0;;-1:-1:-1;;;;;13109:19:0;;;13115:13;;13109:19;;13084:44;13023:573;;;-1:-1:-1;13156:5:0;13023:573;;;13221:13;;-1:-1:-1;;;;;13213:21:0;;;13221:13;;13213:21;:55;;;;-1:-1:-1;13252:15:0;;-1:-1:-1;;;;;13238:30:0;;;13252:15;;13238:30;;13213:55;13210:170;;;13305:18;;13289:13;:34;13352:12;;13342:7;:22;13210:170;13420:13;;-1:-1:-1;;;;;13414:19:0;;;13420:13;;13414:19;:55;;;;-1:-1:-1;13453:15:0;;-1:-1:-1;;;;;13437:32:0;;;13453:15;;13437:32;;13414:55;13410:173;;;13506:19;;13490:13;:35;13554:13;;13544:7;:23;13410:173;13608:41;13623:4;13629:2;13633:6;13641:7;13608:14;:41::i;4982:224::-;5102:7;5138:12;5130:6;;;;5122:29;;;;-1:-1:-1;;;5122:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5162:9:0;5174:5;5178:1;5174;:5;:::i;:::-;5162:17;4982:224;-1:-1:-1;;;;;4982:224:0:o;14156:99::-;14213:17;;:34;;-1:-1:-1;;;;;14213:17:0;;;;:34;;;;;14240:6;;14213:17;:34;:17;:34;14240:6;14213:17;:34;;;;;;;;;;;;;;;;;;;10317:323;10412:7;10470;;10459;:18;;10437:110;;;;-1:-1:-1;;;10437:110:0;;11016:2:1;10437:110:0;;;10998:21:1;11055:2;11035:18;;;11028:30;11094:34;11074:18;;;11067:62;-1:-1:-1;;;11145:18:1;;;11138:40;11195:19;;10437:110:0;10814:406:1;10437:110:0;10558:19;10580:10;:8;:10::i;:::-;10558:32;-1:-1:-1;10608:24:0;:7;10558:32;10608:11;:24::i;:::-;10601:31;10317:323;-1:-1:-1;;;10317:323:0:o;13665:483::-;8538:6;:13;;-1:-1:-1;;;;8538:13:0;-1:-1:-1;;;8538:13:0;;;13767:16:::1;::::0;;13781:1:::1;13767:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13767:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13767:16:0::1;13743:40;;13812:4;13794;13799:1;13794:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13794:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13838:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13838:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13794:7;;13838:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13828:4;13833:1;13828:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13828:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13903:15:::1;::::0;13871:62:::1;::::0;13888:4:::1;::::0;13903:15:::1;13921:11:::0;13871:8:::1;:62::i;:::-;13944:15;::::0;:196:::1;::::0;-1:-1:-1;;;13944:196:0;;-1:-1:-1;;;;;13944:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14025:11;;13944:15:::1;::::0;14067:4;;14094::::1;::::0;14114:15:::1;::::0;13944:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8574:6:0;:14;;-1:-1:-1;;;;8574:14:0;;;-1:-1:-1;;;;13665:483:0:o;15318:282::-;15474:7;15469:28;;15483:14;:12;:14::i;:::-;15508:44;15526:6;15534:9;15545:6;15508:17;:44::i;:::-;15568:7;15563:29;;15577:15;10951:21;;10935:13;:37;10993:15;;10983:7;:25;10891:125;18291:164;18333:7;18354:15;18371;18390:19;:17;:19::i;:::-;18353:56;;-1:-1:-1;18353:56:0;-1:-1:-1;18427:20:0;18353:56;;18427:11;:20::i;:::-;18420:27;;;;18291:164;:::o;5468:132::-;5526:7;5553:39;5557:1;5560;5553:39;;;;;;;;;;;;;;;;;:3;:39::i;10648:235::-;10695:13;;:18;:34;;;;-1:-1:-1;10717:7:0;;:12;10695:34;10691:47;;;10648:235::o;10691:47::-;10774:13;;;10750:21;:37;10816:7;;;10798:15;:25;-1:-1:-1;10836:17:0;;;;10864:11;10648:235::o;15608:610::-;15755:15;15785:23;15823:12;15850:23;15888:12;15915:13;15942:19;15953:7;15942:10;:19::i;:::-;-1:-1:-1;;;;;15990:15:0;;;;;;:7;:15;;;;;;15740:221;;-1:-1:-1;15740:221:0;;-1:-1:-1;15740:221:0;;-1:-1:-1;15740:221:0;-1:-1:-1;15740:221:0;-1:-1:-1;15740:221:0;-1:-1:-1;15990:28:0;;15740:221;15990:19;:28::i;:::-;-1:-1:-1;;;;;15972:15:0;;;;;;;:7;:15;;;;;;:46;;;;16050:18;;;;;;;:39;;16073:15;16050:22;:39::i;:::-;-1:-1:-1;;;;;16029:18:0;;;;;;:7;:18;;;;;:60;16100:16;16110:5;16100:9;:16::i;:::-;16127:23;16139:4;16145;16127:11;:23::i;:::-;16183:9;-1:-1:-1;;;;;16166:44:0;16175:6;-1:-1:-1;;;;;16166:44:0;;16194:15;16166:44;;;;1783:25:1;;1771:2;1756:18;;1637:177;16166:44:0;;;;;;;;15729:489;;;;;;15608:610;;;:::o;18463:257::-;18561:7;;18514;;;;7283:18;18629:20;18561:7;7283:18;18629:11;:20::i;:::-;18619:7;:30;18615:61;;;-1:-1:-1;;18659:7:0;;;7283:18;;-1:-1:-1;18463:257:0;-1:-1:-1;18463:257:0:o;18615:61::-;18695:7;;18704;;-1:-1:-1;18463:257:0;-1:-1:-1;18463:257:0:o;5608:223::-;5728:7;5763:12;5756:5;5748:28;;;;-1:-1:-1;;;5748:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5787:9:0;5799:5;5803:1;5799;:5;:::i;16637:619::-;16737:7;16759;16781;16803;16825;16847;16883:23;16908:12;16922:13;16952:44;16964:7;16973:13;;16988:7;;16952:11;:44::i;:::-;16882:114;;;;;;17007:19;17029:10;:8;:10::i;:::-;17007:32;;17051:15;17068:23;17093:12;17122:46;17134:7;17143:4;17149:5;17156:11;17122;:46::i;:::-;17050:118;;-1:-1:-1;17050:118:0;-1:-1:-1;17050:118:0;-1:-1:-1;17219:15:0;;-1:-1:-1;17236:4:0;;-1:-1:-1;17242:5:0;;-1:-1:-1;;;;;16637:619:0;;;;;;;:::o;4838:136::-;4896:7;4923:43;4927:1;4930;4923:43;;;;;;;;;;;;;;;;;:3;:43::i;4651:179::-;4709:7;;4741:5;4745:1;4741;:5;:::i;:::-;4729:17;;4770:1;4765;:6;;4757:46;;;;-1:-1:-1;;;4757:46:0;;12634:2:1;4757:46:0;;;12616:21:1;12673:2;12653:18;;;12646:30;12712:29;12692:18;;;12685:57;12759:18;;4757:46:0;12432:351:1;16226:211:0;16279:19;16301:10;:8;:10::i;:::-;16279:32;-1:-1:-1;16322:13:0;16338:22;:5;16279:32;16338:9;:22::i;:::-;16412:4;16396:22;;;;:7;:22;;;;;;16322:38;;-1:-1:-1;16396:33:0;;16322:38;16396:26;:33::i;:::-;16387:4;16371:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16226:211:0:o;16445:147::-;16523:7;;:17;;16535:4;16523:11;:17::i;:::-;16513:7;:27;16564:10;;:20;;16579:4;16564:14;:20::i;:::-;16551:10;:33;-1:-1:-1;;16445:147:0:o;17264:477::-;17437:7;;;;17531:34;17561:3;17531:25;:7;17543:12;17531:11;:25::i;:::-;:29;;:34::i;:::-;17516:49;-1:-1:-1;17576:13:0;17592:28;17616:3;17592:19;:7;17604:6;17592:11;:19::i;:28::-;17576:44;-1:-1:-1;17631:23:0;17657:28;17576:44;17657:17;:7;17669:4;17657:11;:17::i;:::-;:21;;:28::i;:::-;17631:54;17721:4;;-1:-1:-1;17727:5:0;;-1:-1:-1;17264:477:0;;-1:-1:-1;;;;;17264:477:0:o;17749:534::-;17943:7;;;;18040:24;:7;18052:11;18040;:24::i;:::-;18022:42;-1:-1:-1;18075:12:0;18090:21;:4;18099:11;18090:8;:21::i;:::-;18075:36;-1:-1:-1;18122:13:0;18138:22;:5;18148:11;18138:9;:22::i;:::-;18122:38;-1:-1:-1;18171:23:0;18197:28;18122:38;18197:17;:7;18209:4;18197:11;:17::i;:28::-;18244:7;;;;-1:-1:-1;18270:4:0;;-1:-1:-1;17749:534:0;;-1:-1:-1;;;;;;;17749:534:0:o;5214:246::-;5272:7;5296:6;5292:47;;-1:-1:-1;5326:1:0;5319:8;;5292:47;5349:9;5361:5;5365:1;5361;:5;:::i;:::-;5349:17;-1:-1:-1;5394:1:0;5385:5;5389:1;5349:17;5385:5;:::i;:::-;:10;5377:56;;;;-1:-1:-1;;;5377:56:0;;13163:2:1;5377:56:0;;;13145:21:1;13202:2;13182:18;;;13175:30;13241:34;13221:18;;;13214:62;-1:-1:-1;;;13292:18:1;;;13285:31;13333:19;;5377:56:0;12961:397:1;14:597;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;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;1819:456::-;1896:6;1904;1912;1965:2;1953:9;1944:7;1940:23;1936:32;1933:52;;;1981:1;1978;1971:12;1933:52;2020:9;2007:23;2039:31;2064:5;2039:31;:::i;:::-;2089:5;-1:-1:-1;2146:2:1;2131:18;;2118:32;2159:33;2118:32;2159:33;:::i;:::-;1819:456;;2211:7;;-1:-1:-1;;;2265:2:1;2250:18;;;;2237:32;;1819:456::o;2469:127::-;2530:10;2525:3;2521:20;2518:1;2511:31;2561:4;2558:1;2551:15;2585:4;2582:1;2575:15;2601:1121;2685:6;2716:2;2759;2747:9;2738:7;2734:23;2730:32;2727:52;;;2775:1;2772;2765:12;2727:52;2815:9;2802:23;2844:18;2885:2;2877:6;2874:14;2871:34;;;2901:1;2898;2891:12;2871:34;2939:6;2928:9;2924:22;2914:32;;2984:7;2977:4;2973:2;2969:13;2965:27;2955:55;;3006:1;3003;2996:12;2955:55;3042:2;3029:16;3064:2;3060;3057:10;3054:36;;;3070:18;;:::i;:::-;3116:2;3113:1;3109:10;3148:2;3142:9;3211:2;3207:7;3202:2;3198;3194:11;3190:25;3182:6;3178:38;3266:6;3254:10;3251:22;3246:2;3234:10;3231:18;3228:46;3225:72;;;3277:18;;:::i;:::-;3313:2;3306:22;3363:18;;;3397:15;;;;-1:-1:-1;3439:11:1;;;3435:20;;;3467:19;;;3464:39;;;3499:1;3496;3489:12;3464:39;3523:11;;;;3543:148;3559:6;3554:3;3551:15;3543:148;;;3625:23;3644:3;3625:23;:::i;:::-;3613:36;;3576:12;;;;3669;;;;3543:148;;;3710:6;2601:1121;-1:-1:-1;;;;;;;;2601:1121:1:o;3727:385::-;3813:6;3821;3829;3837;3890:3;3878:9;3869:7;3865:23;3861:33;3858:53;;;3907:1;3904;3897:12;3858:53;-1:-1:-1;;3930:23:1;;;4000:2;3985:18;;3972:32;;-1:-1:-1;4051:2:1;4036:18;;4023:32;;4102:2;4087:18;4074:32;;-1:-1:-1;3727:385:1;-1:-1:-1;3727:385:1:o;4325:247::-;4384:6;4437:2;4425:9;4416:7;4412:23;4408:32;4405:52;;;4453:1;4450;4443:12;4405:52;4492:9;4479:23;4511:31;4536:5;4511:31;:::i;4577:782::-;4669:6;4677;4685;4738:2;4726:9;4717:7;4713:23;4709:32;4706:52;;;4754:1;4751;4744:12;4706:52;4794:9;4781:23;4823:18;4864:2;4856:6;4853:14;4850:34;;;4880:1;4877;4870:12;4850:34;4918:6;4907:9;4903:22;4893:32;;4963:7;4956:4;4952:2;4948:13;4944:27;4934:55;;4985:1;4982;4975:12;4934:55;5025:2;5012:16;5051:2;5043:6;5040:14;5037:34;;;5067:1;5064;5057:12;5037:34;5122:7;5115:4;5105:6;5102:1;5098:14;5094:2;5090:23;5086:34;5083:47;5080:67;;;5143:1;5140;5133:12;5080:67;5174:4;5166:13;;;;-1:-1:-1;5198:6:1;-1:-1:-1;;5239:20:1;;5226:34;5296:13;;5289:21;5279:32;;5269:60;;5325:1;5322;5315:12;5269:60;5348:5;5338:15;;;4577:782;;;;;:::o;5364:388::-;5432:6;5440;5493:2;5481:9;5472:7;5468:23;5464:32;5461:52;;;5509:1;5506;5499:12;5461:52;5548:9;5535:23;5567:31;5592:5;5567:31;:::i;:::-;5617:5;-1:-1:-1;5674:2:1;5659:18;;5646:32;5687:33;5646:32;5687:33;:::i;:::-;5739:7;5729:17;;;5364:388;;;;;:::o;5757:356::-;5959:2;5941:21;;;5978:18;;;5971:30;6037:34;6032:2;6017:18;;6010:62;6104:2;6089:18;;5757:356::o;6118:127::-;6179:10;6174:3;6170:20;6167:1;6160:31;6210:4;6207:1;6200:15;6234:4;6231:1;6224:15;6250:127;6311:10;6306:3;6302:20;6299:1;6292:31;6342:4;6339:1;6332:15;6366:4;6363:1;6356:15;6382:135;6421:3;-1:-1:-1;;6442:17:1;;6439:43;;;6462:18;;:::i;:::-;-1:-1:-1;6509:1:1;6498:13;;6382:135::o;6522:251::-;6592:6;6645:2;6633:9;6624:7;6620:23;6616:32;6613:52;;;6661:1;6658;6651:12;6613:52;6693:9;6687:16;6712:31;6737:5;6712:31;:::i;10147:128::-;10187:3;10218:1;10214:6;10211:1;10208:13;10205:39;;;10224:18;;:::i;:::-;-1:-1:-1;10260:9:1;;10147:128::o;10684:125::-;10724:4;10752:1;10749;10746:8;10743:34;;;10757:18;;:::i;:::-;-1:-1:-1;10794:9:1;;10684:125::o;11225:980::-;11487:4;11535:3;11524:9;11520:19;11566:6;11555:9;11548:25;11592:2;11630:6;11625:2;11614:9;11610:18;11603:34;11673:3;11668:2;11657:9;11653:18;11646:31;11697:6;11732;11726:13;11763:6;11755;11748:22;11801:3;11790:9;11786:19;11779:26;;11840:2;11832:6;11828:15;11814:29;;11861:1;11871:195;11885:6;11882:1;11879:13;11871:195;;;11950:13;;-1:-1:-1;;;;;11946:39:1;11934:52;;12041:15;;;;12006:12;;;;11982:1;11900:9;11871:195;;;-1:-1:-1;;;;;;;12122:32:1;;;;12117:2;12102:18;;12095:60;-1:-1:-1;;;12186:3:1;12171:19;12164:35;12083:3;11225:980;-1:-1:-1;;;11225:980:1:o;12210:217::-;12250:1;12276;12266:132;;12320:10;12315:3;12311:20;12308:1;12301:31;12355:4;12352:1;12345:15;12383:4;12380:1;12373:15;12266:132;-1:-1:-1;12412:9:1;;12210:217::o;12788:168::-;12828:7;12894:1;12890;12886:6;12882:14;12879:1;12876:21;12871:1;12864:9;12857:17;12853:45;12850:71;;;12901:18;;:::i;:::-;-1:-1:-1;12941:9:1;;12788:168::o

Swarm Source

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