ETH Price: $3,674.68 (+0.96%)
Gas: 6.53 Gwei
 

Overview

Max Total Supply

1,000,000,000 DOEGE

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
122,379,665.06111614458167414 DOEGE

Value
$0.00
0xD280ad40e0375ac5dd61C061Aab0e5FdCCFAF518
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:
DOEGE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-31
*/

/**
    Telegram: https://t.me/doegeerc20
    X: https://x.com/doegeerc20
    Website: https://droolydoege.xyz
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;


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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IUniswapV2Router02 {
    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
        );

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

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

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

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

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

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

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract DOEGE is IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    string private _name = "Drooly Doege";
    string private _symbol = "DOEGE";
    uint8 private _decimals = 18;

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private _doegeWallet;

    bool private swapping;

    uint256 public initialTotalSupply = 1_000_000_000 * 1e18;
    uint256 public maxTransactionAmount = 20_000_000 * 1e18;
    uint256 public maxWallet = 20_000_000 * 1e18;
    uint256 public swapTokensAtAmount = 5_000 * 1e18;
    uint256 public maxSwapAmount = 10_000_000 * 1e18;

    bool public enableTrading = false;

    uint256 public BuyFee = 0;
    uint256 public SellFee = 0;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _doegeWallet = payable(0x530a5Ba750b994D5011f55dE941eced681561C80);
        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(_doegeWallet), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(_doegeWallet), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _balances[owner()] = initialTotalSupply;
        emit Transfer(address(0), owner(), initialTotalSupply);
    }

    receive() external payable {}

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

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

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

    function totalSupply() public view override returns (uint256) {
        return initialTotalSupply;
    }

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

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

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

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

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

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

    function openDoege() external onlyOwner {
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);

        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        enableTrading = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) private {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) private {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: transfer amount must be greater than 0");

        bool isTransfer = !automatedMarketMakerPairs[from] &&
            !automatedMarketMakerPairs[to];

        if (from != owner() && to != owner()) {
            if (!enableTrading) {
                require(
                    _isExcludedFromFees[from] || _isExcludedFromFees[to],
                    "Trading is not active."
                );
            }

            if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Buy transfer amount exceeds the maxTransactionAmount."
                );
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            } else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Sell transfer amount exceeds the maxTransactionAmount."
                );
            } else if (!_isExcludedMaxTransactionAmount[to]) {
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }
        }

        if (
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !isTransfer &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        _internalTransfer(from, to, amount);
    }

    function _internalTransfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        bool takeFee = true;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        uint256 leftAmount = 0;

        if (from == owner() || from == address(this)) {
            leftAmount = amount;
        } else if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            } else {
                fees = amount.mul(BuyFee).div(100);
            }

            if (fees > 0) {
                _balances[from] = _balances[from].sub(fees);
                _balances[address(this)] = _balances[address(this)].add(fees);
                emit Transfer(from, address(this), fees);
            }
            leftAmount = amount - fees;
        }
        _balances[from] = _balances[from].sub(leftAmount);
        _balances[to] = _balances[to].add(amount.sub(fees));
        emit Transfer(from, to, amount.sub(fees));
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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 {
        maxTransactionAmount = type(uint256).max;
        maxWallet = type(uint256).max;
    }

    function setLevel(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 99 && _sellFee <= 99, "Fees cannot exceed 99%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > maxSwapAmount) {
            contractBalance = maxSwapAmount;
        }

        if (contractBalance > swapTokensAtAmount)
            swapTokensForEth(contractBalance);

        payable(_doegeWallet).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openDoege","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setLevel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600c60a09081526b44726f6f6c7920446f65676560a01b60c0526003906200002d908262000421565b50604080518082019091526005815264444f45474560d81b602082015260049062000059908262000421565b506005805460ff199081166012179091556b033b2e3c9fd0803ce80000006008556a108b2a2c280290940000006009819055600a5569010f0cf064dd59200000600b556a084595161401484a000000600c55600d805490911690556000600e819055600f55348015620000cb57600080fd5b50620000d733620002cd565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600780546001600160a01b03191673530a5ba750b994d5011f55de941eced681561c801790556200011d3390565b600680546001600160a01b0319166001600160a01b039283161790556000546200014a911660016200031d565b620001573060016200031d565b60075462000170906001600160a01b031660016200031d565b6200017f61dead60016200031d565b620001ba620001966000546001600160a01b031690565b6001600160a01b03166000908152601160205260409020805460ff19166001179055565b306000908152601160205260409020805460ff191660011790556007546001600160a01b03166000908152601160205260409020805460ff1916600117905561dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716805460ff19166001179055600854600160006200024a6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620002776000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620002bf91815260200190565b60405180910390a3620004ed565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003a757607f821691505b602082108103620003c857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200041c57600081815260208120601f850160051c81016020861015620003f75750805b601f850160051c820191505b81811015620004185782815560010162000403565b5050505b505050565b81516001600160401b038111156200043d576200043d6200037c565b62000455816200044e845462000392565b84620003ce565b602080601f8311600181146200048d5760008415620004745750858301515b600019600386901b1c1916600185901b17855562000418565b600085815260208120601f198616915b82811015620004be578886015182559484019460019091019084016200049d565b5085821015620004dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051611bd46200054160003960008181610256015281816105ae0152818161063f01528181610786015281816107b2015281816107db015281816115750152818161162e015261166a0152611bd46000f3fe60806040526004361061014f5760003560e01c80638a8c523c116100b6578063cf9522fd1161006f578063cf9522fd146103a9578063dd62ed3e146103bf578063dd85465214610405578063e2f456051461041b578063f2fde38b14610431578063f8b45b051461045157600080fd5b80638a8c523c146103105780638da5cb5b1461032a57806395d89b4114610348578063a9059cbb1461035d578063c8c8ebe41461037d578063cce987d41461039357600080fd5b8063313ce56711610108578063313ce56714610222578063583e05681461024457806370a082311461029057806370a93b36146102c6578063715018a6146102e6578063751039fc146102fb57600080fd5b806306fdde031461015b578063095ea7b31461018657806318160ddd146101b657806323b872dd146101d55780632f77608a146101f5578063311028af1461020c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610467565b60405161017d9190611878565b60405180910390f35b34801561019257600080fd5b506101a66101a13660046118db565b6104f9565b604051901515815260200161017d565b3480156101c257600080fd5b506008545b60405190815260200161017d565b3480156101e157600080fd5b506101a66101f0366004611907565b610510565b34801561020157600080fd5b5061020a610579565b005b34801561021857600080fd5b506101c760085481565b34801561022e57600080fd5b5060055460405160ff909116815260200161017d565b34801561025057600080fd5b506102787f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161017d565b34801561029c57600080fd5b506101c76102ab366004611948565b6001600160a01b031660009081526001602052604090205490565b3480156102d257600080fd5b5061020a6102e1366004611965565b6108dd565b3480156102f257600080fd5b5061020a610969565b34801561030757600080fd5b5061020a61099f565b34801561031c57600080fd5b50600d546101a69060ff1681565b34801561033657600080fd5b506000546001600160a01b0316610278565b34801561035457600080fd5b506101706109d6565b34801561036957600080fd5b506101a66103783660046118db565b6109e5565b34801561038957600080fd5b506101c760095481565b34801561039f57600080fd5b506101c7600c5481565b3480156103b557600080fd5b506101c7600f5481565b3480156103cb57600080fd5b506101c76103da366004611987565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041157600080fd5b506101c7600e5481565b34801561042757600080fd5b506101c7600b5481565b34801561043d57600080fd5b5061020a61044c366004611948565b6109f2565b34801561045d57600080fd5b506101c7600a5481565b606060038054610476906119c0565b80601f01602080910402602001604051908101604052809291908181526020018280546104a2906119c0565b80156104ef5780601f106104c4576101008083540402835291602001916104ef565b820191906000526020600020905b8154815290600101906020018083116104d257829003601f168201915b5050505050905090565b6000610506338484610a8d565b5060015b92915050565b600061051d848484610bb1565b61056f843361056a85604051806060016040528060288152602001611b77602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611121565b610a8d565b5060019392505050565b6000546001600160a01b031633146105ac5760405162461bcd60e51b81526004016105a3906119fa565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062e9190611a2f565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a2f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190611a2f565b60058054610100600160a81b0319166101006001600160a01b039384168102919091179182905561076592910416600161115b565b6005546107819061010090046001600160a01b031660016111af565b6107ac7f000000000000000000000000000000000000000000000000000000000000000060016111af565b6107d9307f0000000000000000000000000000000000000000000000000000000000000000600854610a8d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610829306001600160a01b031660009081526001602052604090205490565b60008061083e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108a6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108cb9190611a4c565b5050600d805460ff1916600117905550565b6000546001600160a01b031633146109075760405162461bcd60e51b81526004016105a3906119fa565b60638211158015610919575060638111155b61095e5760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642039392560501b60448201526064016105a3565b600e91909155600f55565b6000546001600160a01b031633146109935760405162461bcd60e51b81526004016105a3906119fa565b61099d60006111da565b565b6000546001600160a01b031633146109c95760405162461bcd60e51b81526004016105a3906119fa565b6000196009819055600a55565b606060048054610476906119c0565b6000610506338484610bb1565b6000546001600160a01b03163314610a1c5760405162461bcd60e51b81526004016105a3906119fa565b6001600160a01b038116610a815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a3565b610a8a816111da565b50565b6001600160a01b038316610aef5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a3565b6001600160a01b038216610b505760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a3565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a3565b6001600160a01b038216610c775760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a3565b60008111610cdd5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b60648201526084016105a3565b6001600160a01b03831660009081526012602052604081205460ff16158015610d1f57506001600160a01b03831660009081526012602052604090205460ff16155b9050610d336000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610d6257506000546001600160a01b03848116911614155b1561105b57600d5460ff16610df5576001600160a01b03841660009081526010602052604090205460ff1680610db057506001600160a01b03831660009081526010602052604090205460ff165b610df55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105a3565b6001600160a01b03841660009081526012602052604090205460ff168015610e3657506001600160a01b03831660009081526011602052604090205460ff16155b15610f1a57600954821115610eab5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016105a3565b600a546001600160a01b038416600090815260016020526040902054610ed19084611a90565b1115610f155760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a3565b61105b565b6001600160a01b03831660009081526012602052604090205460ff168015610f5b57506001600160a01b03841660009081526011602052604090205460ff16155b15610fd157600954821115610f155760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016105a3565b6001600160a01b03831660009081526011602052604090205460ff1661105b57600a546001600160a01b0384166000908152600160205260409020546110179084611a90565b111561105b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a3565b600754600160a01b900460ff1615801561108e57506001600160a01b03841660009081526012602052604090205460ff16155b8015611098575080155b80156110bd57506001600160a01b03841660009081526010602052604090205460ff16155b80156110e257506001600160a01b03831660009081526010602052604090205460ff16155b15611110576007805460ff60a01b1916600160a01b17905561110261122a565b6007805460ff60a01b191690555b61111b848484611299565b50505050565b600081848411156111455760405162461bcd60e51b81526004016105a39190611878565b5060006111528486611aa3565b95945050505050565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260016020526040902054600c548111156112495750600c545b600b5481111561125c5761125c8161151e565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611295573d6000803e3d6000fd5b5050565b6001600160a01b03831660009081526010602052604090205460019060ff16806112db57506001600160a01b03831660009081526010602052604090205460ff165b156112e4575060005b6000806112f96000546001600160a01b031690565b6001600160a01b0316866001600160a01b0316148061132057506001600160a01b03861630145b1561132c575082611453565b8215611453576001600160a01b03851660009081526012602052604090205460ff161561137a57611373606461136d600f54876116de90919063ffffffff16565b90611767565b9150611397565b611394606461136d600e54876116de90919063ffffffff16565b91505b8115611446576001600160a01b0386166000908152600160205260409020546113c090836117a9565b6001600160a01b0387166000908152600160205260408082209290925530815220546113ec90836117eb565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9086815260200190565b60405180910390a35b6114508285611aa3565b90505b6001600160a01b03861660009081526001602052604090205461147690826117a9565b6001600160a01b0387166000908152600160205260409020556114bb61149c85846117a9565b6001600160a01b038716600090815260016020526040902054906117eb565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61150587866117a9565b60405190815260200160405180910390a3505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061155357611553611ab6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f59190611a2f565b8160018151811061160857611608611ab6565b60200260200101906001600160a01b031690816001600160a01b031681525050611653307f000000000000000000000000000000000000000000000000000000000000000084610a8d565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906116a8908590600090869030904290600401611acc565b600060405180830381600087803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505050565b6000826000036116f05750600061050a565b60006116fc8385611b3d565b9050826117098583611b54565b146117605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a3565b9392505050565b600061176083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061184a565b600061176083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611121565b6000806117f88385611a90565b9050838110156117605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a3565b6000818361186b5760405162461bcd60e51b81526004016105a39190611878565b5060006111528486611b54565b600060208083528351808285015260005b818110156118a557858101830151858201604001528201611889565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a8a57600080fd5b600080604083850312156118ee57600080fd5b82356118f9816118c6565b946020939093013593505050565b60008060006060848603121561191c57600080fd5b8335611927816118c6565b92506020840135611937816118c6565b929592945050506040919091013590565b60006020828403121561195a57600080fd5b8135611760816118c6565b6000806040838503121561197857600080fd5b50508035926020909101359150565b6000806040838503121561199a57600080fd5b82356119a5816118c6565b915060208301356119b5816118c6565b809150509250929050565b600181811c908216806119d457607f821691505b6020821081036119f457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a4157600080fd5b8151611760816118c6565b600080600060608486031215611a6157600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050a5761050a611a7a565b8181038181111561050a5761050a611a7a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1c5784516001600160a01b031683529383019391830191600101611af7565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761050a5761050a611a7a565b600082611b7157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208add1aa7637f69a01545cdcebcf7e6450e2467c93698685bfae6434658c1ba0464736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638a8c523c116100b6578063cf9522fd1161006f578063cf9522fd146103a9578063dd62ed3e146103bf578063dd85465214610405578063e2f456051461041b578063f2fde38b14610431578063f8b45b051461045157600080fd5b80638a8c523c146103105780638da5cb5b1461032a57806395d89b4114610348578063a9059cbb1461035d578063c8c8ebe41461037d578063cce987d41461039357600080fd5b8063313ce56711610108578063313ce56714610222578063583e05681461024457806370a082311461029057806370a93b36146102c6578063715018a6146102e6578063751039fc146102fb57600080fd5b806306fdde031461015b578063095ea7b31461018657806318160ddd146101b657806323b872dd146101d55780632f77608a146101f5578063311028af1461020c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610467565b60405161017d9190611878565b60405180910390f35b34801561019257600080fd5b506101a66101a13660046118db565b6104f9565b604051901515815260200161017d565b3480156101c257600080fd5b506008545b60405190815260200161017d565b3480156101e157600080fd5b506101a66101f0366004611907565b610510565b34801561020157600080fd5b5061020a610579565b005b34801561021857600080fd5b506101c760085481565b34801561022e57600080fd5b5060055460405160ff909116815260200161017d565b34801561025057600080fd5b506102787f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161017d565b34801561029c57600080fd5b506101c76102ab366004611948565b6001600160a01b031660009081526001602052604090205490565b3480156102d257600080fd5b5061020a6102e1366004611965565b6108dd565b3480156102f257600080fd5b5061020a610969565b34801561030757600080fd5b5061020a61099f565b34801561031c57600080fd5b50600d546101a69060ff1681565b34801561033657600080fd5b506000546001600160a01b0316610278565b34801561035457600080fd5b506101706109d6565b34801561036957600080fd5b506101a66103783660046118db565b6109e5565b34801561038957600080fd5b506101c760095481565b34801561039f57600080fd5b506101c7600c5481565b3480156103b557600080fd5b506101c7600f5481565b3480156103cb57600080fd5b506101c76103da366004611987565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041157600080fd5b506101c7600e5481565b34801561042757600080fd5b506101c7600b5481565b34801561043d57600080fd5b5061020a61044c366004611948565b6109f2565b34801561045d57600080fd5b506101c7600a5481565b606060038054610476906119c0565b80601f01602080910402602001604051908101604052809291908181526020018280546104a2906119c0565b80156104ef5780601f106104c4576101008083540402835291602001916104ef565b820191906000526020600020905b8154815290600101906020018083116104d257829003601f168201915b5050505050905090565b6000610506338484610a8d565b5060015b92915050565b600061051d848484610bb1565b61056f843361056a85604051806060016040528060288152602001611b77602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611121565b610a8d565b5060019392505050565b6000546001600160a01b031633146105ac5760405162461bcd60e51b81526004016105a3906119fa565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062e9190611a2f565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a2f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190611a2f565b60058054610100600160a81b0319166101006001600160a01b039384168102919091179182905561076592910416600161115b565b6005546107819061010090046001600160a01b031660016111af565b6107ac7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d60016111af565b6107d9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600854610a8d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610829306001600160a01b031660009081526001602052604090205490565b60008061083e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108a6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108cb9190611a4c565b5050600d805460ff1916600117905550565b6000546001600160a01b031633146109075760405162461bcd60e51b81526004016105a3906119fa565b60638211158015610919575060638111155b61095e5760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642039392560501b60448201526064016105a3565b600e91909155600f55565b6000546001600160a01b031633146109935760405162461bcd60e51b81526004016105a3906119fa565b61099d60006111da565b565b6000546001600160a01b031633146109c95760405162461bcd60e51b81526004016105a3906119fa565b6000196009819055600a55565b606060048054610476906119c0565b6000610506338484610bb1565b6000546001600160a01b03163314610a1c5760405162461bcd60e51b81526004016105a3906119fa565b6001600160a01b038116610a815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a3565b610a8a816111da565b50565b6001600160a01b038316610aef5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a3565b6001600160a01b038216610b505760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a3565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a3565b6001600160a01b038216610c775760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a3565b60008111610cdd5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b60648201526084016105a3565b6001600160a01b03831660009081526012602052604081205460ff16158015610d1f57506001600160a01b03831660009081526012602052604090205460ff16155b9050610d336000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610d6257506000546001600160a01b03848116911614155b1561105b57600d5460ff16610df5576001600160a01b03841660009081526010602052604090205460ff1680610db057506001600160a01b03831660009081526010602052604090205460ff165b610df55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105a3565b6001600160a01b03841660009081526012602052604090205460ff168015610e3657506001600160a01b03831660009081526011602052604090205460ff16155b15610f1a57600954821115610eab5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016105a3565b600a546001600160a01b038416600090815260016020526040902054610ed19084611a90565b1115610f155760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a3565b61105b565b6001600160a01b03831660009081526012602052604090205460ff168015610f5b57506001600160a01b03841660009081526011602052604090205460ff16155b15610fd157600954821115610f155760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016105a3565b6001600160a01b03831660009081526011602052604090205460ff1661105b57600a546001600160a01b0384166000908152600160205260409020546110179084611a90565b111561105b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016105a3565b600754600160a01b900460ff1615801561108e57506001600160a01b03841660009081526012602052604090205460ff16155b8015611098575080155b80156110bd57506001600160a01b03841660009081526010602052604090205460ff16155b80156110e257506001600160a01b03831660009081526010602052604090205460ff16155b15611110576007805460ff60a01b1916600160a01b17905561110261122a565b6007805460ff60a01b191690555b61111b848484611299565b50505050565b600081848411156111455760405162461bcd60e51b81526004016105a39190611878565b5060006111528486611aa3565b95945050505050565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260016020526040902054600c548111156112495750600c545b600b5481111561125c5761125c8161151e565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611295573d6000803e3d6000fd5b5050565b6001600160a01b03831660009081526010602052604090205460019060ff16806112db57506001600160a01b03831660009081526010602052604090205460ff165b156112e4575060005b6000806112f96000546001600160a01b031690565b6001600160a01b0316866001600160a01b0316148061132057506001600160a01b03861630145b1561132c575082611453565b8215611453576001600160a01b03851660009081526012602052604090205460ff161561137a57611373606461136d600f54876116de90919063ffffffff16565b90611767565b9150611397565b611394606461136d600e54876116de90919063ffffffff16565b91505b8115611446576001600160a01b0386166000908152600160205260409020546113c090836117a9565b6001600160a01b0387166000908152600160205260408082209290925530815220546113ec90836117eb565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143d9086815260200190565b60405180910390a35b6114508285611aa3565b90505b6001600160a01b03861660009081526001602052604090205461147690826117a9565b6001600160a01b0387166000908152600160205260409020556114bb61149c85846117a9565b6001600160a01b038716600090815260016020526040902054906117eb565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61150587866117a9565b60405190815260200160405180910390a3505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061155357611553611ab6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f59190611a2f565b8160018151811061160857611608611ab6565b60200260200101906001600160a01b031690816001600160a01b031681525050611653307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610a8d565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906116a8908590600090869030904290600401611acc565b600060405180830381600087803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505050565b6000826000036116f05750600061050a565b60006116fc8385611b3d565b9050826117098583611b54565b146117605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a3565b9392505050565b600061176083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061184a565b600061176083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611121565b6000806117f88385611a90565b9050838110156117605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a3565b6000818361186b5760405162461bcd60e51b81526004016105a39190611878565b5060006111528486611b54565b600060208083528351808285015260005b818110156118a557858101830151858201604001528201611889565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a8a57600080fd5b600080604083850312156118ee57600080fd5b82356118f9816118c6565b946020939093013593505050565b60008060006060848603121561191c57600080fd5b8335611927816118c6565b92506020840135611937816118c6565b929592945050506040919091013590565b60006020828403121561195a57600080fd5b8135611760816118c6565b6000806040838503121561197857600080fd5b50508035926020909101359150565b6000806040838503121561199a57600080fd5b82356119a5816118c6565b915060208301356119b5816118c6565b809150509250929050565b600181811c908216806119d457607f821691505b6020821081036119f457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a4157600080fd5b8151611760816118c6565b600080600060608486031215611a6157600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050a5761050a611a7a565b8181038181111561050a5761050a611a7a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1c5784516001600160a01b031683529383019391830191600101611af7565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761050a5761050a611a7a565b600082611b7157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208add1aa7637f69a01545cdcebcf7e6450e2467c93698685bfae6434658c1ba0464736f6c63430008130033

Deployed Bytecode Sourcemap

4351:9781:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6446:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7363:193;;;;;;;;;;-1:-1:-1;7363:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7363:193:0;1023:187:1;6723:106:0;;;;;;;;;;-1:-1:-1;6803:18:0;;6723:106;;;1361:25:1;;;1349:2;1334:18;6723:106:0;1215:177:1;7564:446:0;;;;;;;;;;-1:-1:-1;7564:446:0;;;;;:::i;:::-;;:::i;8395:742::-;;;;;;;;;;;;;:::i;:::-;;4872:56;;;;;;;;;;;;;;;;6632:83;;;;;;;;;;-1:-1:-1;6698:9:0;;6632:83;;6698:9;;;;2000:36:1;;1988:2;1973:18;6632:83:0;1858:184:1;4673:52:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2236:32:1;;;2218:51;;2206:2;2191:18;4673:52:0;2047:228:1;6837:119:0;;;;;;;;;;-1:-1:-1;6837:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6930:18:0;6903:7;6930:18;;;:9;:18;;;;;;;6837:119;13539:213;;;;;;;;;;-1:-1:-1;13539:213:0;;;;;:::i;:::-;;:::i;3796:103::-;;;;;;;;;;;;;:::i;13389:142::-;;;;;;;;;;;;;:::i;5160:33::-;;;;;;;;;;-1:-1:-1;5160:33:0;;;;;;;;3573:87;;;;;;;;;;-1:-1:-1;3619:7:0;3646:6;-1:-1:-1;;;;;3646:6:0;3573:87;;6537;;;;;;;;;;;;;:::i;6964:199::-;;;;;;;;;;-1:-1:-1;6964:199:0;;;;;:::i;:::-;;:::i;4935:55::-;;;;;;;;;;;;;;;;5103:48;;;;;;;;;;;;;;;;5234:26;;;;;;;;;;;;;;;;7171:184;;;;;;;;;;-1:-1:-1;7171:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7320:18:0;;;7288:7;7320:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7171:184;5202:25;;;;;;;;;;;;;;;;5048:48;;;;;;;;;;;;;;;;3907:238;;;;;;;;;;-1:-1:-1;3907:238:0;;;;;:::i;:::-;;:::i;4997:44::-;;;;;;;;;;;;;;;;6446:83;6483:13;6516:5;6509:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6446:83;:::o;7363:193::-;7465:4;7487:39;300:10;7510:7;7519:6;7487:8;:39::i;:::-;-1:-1:-1;7544:4:0;7363:193;;;;;:::o;7564:446::-;7696:4;7713:36;7723:6;7731:9;7742:6;7713:9;:36::i;:::-;7760:220;7783:6;300:10;7831:138;7887:6;7831:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7831:19:0;;;;;;:11;:19;;;;;;;;300:10;7831:33;;;;;;;;;;:37;:138::i;:::-;7760:8;:220::i;:::-;-1:-1:-1;7998:4:0;7564:446;;;;;:::o;8395:742::-;3619:7;3646:6;-1:-1:-1;;;;;3646:6:0;300:10;3708:23;3700:68;;;;-1:-1:-1;;;3700:68:0;;;;;;;:::i;:::-;;;;;;;;;8480:16:::1;-1:-1:-1::0;;;;;8480:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8462:70:0::1;;8541:4;8548:16;-1:-1:-1::0;;;;;8548:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8462:110;::::0;-1:-1:-1;;;;;;8462:110:0::1;::::0;;;;;;-1:-1:-1;;;;;4618:15:1;;;8462:110:0::1;::::0;::::1;4600:34:1::0;4670:15;;4650:18;;;4643:43;4535:18;;8462:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8446:13;:126:::0;;-1:-1:-1;;;;;;8446:126:0::1;;-1:-1:-1::0;;;;;8446:126:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;8585:58:::1;::::0;8622:13;::::1;;-1:-1:-1::0;8585:28:0::1;:58::i;:::-;8688:13;::::0;8654:55:::1;::::0;8688:13:::1;::::0;::::1;-1:-1:-1::0;;;;;8688:13:0::1;;8654:25;:55::i;:::-;8720:58;8754:16;8773:4;8720:25;:58::i;:::-;8791:70;8808:4;8823:16;8842:18;;8791:8;:70::i;:::-;8874:16;-1:-1:-1::0;;;;;8874:32:0::1;;8914:21;8959:4;8979:24;8997:4;-1:-1:-1::0;;;;;6930:18:0;6903:7;6930:18;;;:9;:18;;;;;;;6837:119;8979:24:::1;9018:1;9034::::0;9050:7:::1;3619::::0;3646:6;-1:-1:-1;;;;;3646:6:0;;3573:87;9050:7:::1;8874:224;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8874:224:0;;;-1:-1:-1;;;;;5056:15:1;;;8874:224:0::1;::::0;::::1;5038:34:1::0;5088:18;;;5081:34;;;;5131:18;;;5124:34;;;;5174:18;;;5167:34;5238:15;;;5217:19;;;5210:44;9072:15:0::1;5270:19:1::0;;;5263:35;4972:19;;8874:224:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9109:13:0::1;:20:::0;;-1:-1:-1;;9109:20:0::1;9125:4;9109:20;::::0;;-1:-1:-1;8395:742:0:o;13539:213::-;3619:7;3646:6;-1:-1:-1;;;;;3646:6:0;300:10;3708:23;3700:68;;;;-1:-1:-1;;;3700:68:0;;;;;;;:::i;:::-;13641:2:::1;13630:7;:13;;:31;;;;;13659:2;13647:8;:14;;13630:31;13622:66;;;::::0;-1:-1:-1;;;13622:66:0;;5822:2:1;13622:66:0::1;::::0;::::1;5804:21:1::0;5861:2;5841:18;;;5834:30;-1:-1:-1;;;5880:18:1;;;5873:52;5942:18;;13622:66:0::1;5620:346:1::0;13622:66:0::1;13699:6;:16:::0;;;;13726:7:::1;:18:::0;13539:213::o;3796:103::-;3619:7;3646:6;-1:-1:-1;;;;;3646:6:0;300:10;3708:23;3700:68;;;;-1:-1:-1;;;3700:68:0;;;;;;;:::i;:::-;3861:30:::1;3888:1;3861:18;:30::i;:::-;3796:103::o:0;13389:142::-;3619:7;3646:6;-1:-1:-1;;;;;3646:6:0;300:10;3708:23;3700:68;;;;-1:-1:-1;;;3700:68:0;;;;;;;:::i;:::-;-1:-1:-1;;13443:20:0::1;:40:::0;;;13494:9:::1;:29:::0;13389:142::o;6537:87::-;6576:13;6609:7;6602:14;;;;;:::i;6964:199::-;7069:4;7091:42;300:10;7115:9;7126:6;7091:9;:42::i;3907:238::-;3619:7;3646:6;-1:-1:-1;;;;;3646:6:0;300:10;3708:23;3700:68;;;;-1:-1:-1;;;3700:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4010:22:0;::::1;3988:110;;;::::0;-1:-1:-1;;;3988:110:0;;6173:2:1;3988:110:0::1;::::0;::::1;6155:21:1::0;6212:2;6192:18;;;6185:30;6251:34;6231:18;;;6224:62;-1:-1:-1;;;6302:18:1;;;6295:36;6348:19;;3988:110:0::1;5971:402:1::0;3988:110:0::1;4109:28;4128:8;4109:18;:28::i;:::-;3907:238:::0;:::o;8018:369::-;-1:-1:-1;;;;;8145:19:0;;8137:68;;;;-1:-1:-1;;;8137:68:0;;6580:2:1;8137:68:0;;;6562:21:1;6619:2;6599:18;;;6592:30;6658:34;6638:18;;;6631:62;-1:-1:-1;;;6709:18:1;;;6702:34;6753:19;;8137:68:0;6378:400:1;8137:68:0;-1:-1:-1;;;;;8224:21:0;;8216:68;;;;-1:-1:-1;;;8216:68:0;;6985:2:1;8216:68:0;;;6967:21:1;7024:2;7004:18;;;6997:30;7063:34;7043:18;;;7036:62;-1:-1:-1;;;7114:18:1;;;7107:32;7156:19;;8216:68:0;6783:398:1;8216:68:0;-1:-1:-1;;;;;8295:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8347:32;;1361:25:1;;;8347:32:0;;1334:18:1;8347:32:0;;;;;;;8018:369;;;:::o;9663:2109::-;-1:-1:-1;;;;;9786:18:0;;9778:68;;;;-1:-1:-1;;;9778:68:0;;7388:2:1;9778:68:0;;;7370:21:1;7427:2;7407:18;;;7400:30;7466:34;7446:18;;;7439:62;-1:-1:-1;;;7517:18:1;;;7510:35;7562:19;;9778:68:0;7186:401:1;9778:68:0;-1:-1:-1;;;;;9865:16:0;;9857:64;;;;-1:-1:-1;;;9857:64:0;;7794:2:1;9857:64:0;;;7776:21:1;7833:2;7813:18;;;7806:30;7872:34;7852:18;;;7845:62;-1:-1:-1;;;7923:18:1;;;7916:33;7966:19;;9857:64:0;7592:399:1;9857:64:0;9949:1;9940:6;:10;9932:68;;;;-1:-1:-1;;;9932:68:0;;8198:2:1;9932:68:0;;;8180:21:1;8237:2;8217:18;;;8210:30;8276:34;8256:18;;;8249:62;-1:-1:-1;;;8327:18:1;;;8320:43;8380:19;;9932:68:0;7996:409:1;9932:68:0;-1:-1:-1;;;;;10032:31:0;;10013:15;10032:31;;;:25;:31;;;;;;;;10031:32;:79;;;;-1:-1:-1;;;;;;10081:29:0;;;;;;:25;:29;;;;;;;;10080:30;10031:79;10013:97;;10135:7;3619;3646:6;-1:-1:-1;;;;;3646:6:0;;3573:87;10135:7;-1:-1:-1;;;;;10127:15:0;:4;-1:-1:-1;;;;;10127:15:0;;;:32;;;;-1:-1:-1;3619:7:0;3646:6;-1:-1:-1;;;;;10146:13:0;;;3646:6;;10146:13;;10127:32;10123:1284;;;10181:13;;;;10176:203;;-1:-1:-1;;;;;10245:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;10274:23:0;;;;;;:19;:23;;;;;;;;10245:52;10215:148;;;;-1:-1:-1;;;10215:148:0;;8612:2:1;10215:148:0;;;8594:21:1;8651:2;8631:18;;;8624:30;-1:-1:-1;;;8670:18:1;;;8663:52;8732:18;;10215:148:0;8410:346:1;10215:148:0;-1:-1:-1;;;;;10417:31:0;;;;;;:25;:31;;;;;;;;:88;;;;-1:-1:-1;;;;;;10470:35:0;;;;;;:31;:35;;;;;;;;10469:36;10417:88;10395:1001;;;10580:20;;10570:6;:30;;10540:157;;;;-1:-1:-1;;;10540:157:0;;8963:2:1;10540:157:0;;;8945:21:1;9002:2;8982:18;;;8975:30;9041:34;9021:18;;;9014:62;-1:-1:-1;;;9092:18:1;;;9085:51;9153:19;;10540:157:0;8761:417:1;10540:157:0;10772:9;;-1:-1:-1;;;;;6930:18:0;;6903:7;6930:18;;;:9;:18;;;;;;10746:22;;:6;:22;:::i;:::-;:35;;10716:128;;;;-1:-1:-1;;;10716:128:0;;9647:2:1;10716:128:0;;;9629:21:1;9686:2;9666:18;;;9659:30;-1:-1:-1;;;9705:18:1;;;9698:49;9764:18;;10716:128:0;9445:343:1;10716:128:0;10395:1001;;;-1:-1:-1;;;;;10888:29:0;;;;;;:25;:29;;;;;;;;:88;;;;-1:-1:-1;;;;;;10939:37:0;;;;;;:31;:37;;;;;;;;10938:38;10888:88;10866:530;;;11051:20;;11041:6;:30;;11011:158;;;;-1:-1:-1;;;11011:158:0;;9995:2:1;11011:158:0;;;9977:21:1;10034:2;10014:18;;;10007:30;10073:34;10053:18;;;10046:62;-1:-1:-1;;;10124:18:1;;;10117:52;10186:19;;11011:158:0;9793:418:1;10866:530:0;-1:-1:-1;;;;;11196:35:0;;;;;;:31;:35;;;;;;;;11191:205;;11308:9;;-1:-1:-1;;;;;6930:18:0;;6903:7;6930:18;;;:9;:18;;;;;;11282:22;;:6;:22;:::i;:::-;:35;;11252:128;;;;-1:-1:-1;;;11252:128:0;;9647:2:1;11252:128:0;;;9629:21:1;9686:2;9666:18;;;9659:30;-1:-1:-1;;;9705:18:1;;;9698:49;9764:18;;11252:128:0;9445:343:1;11252:128:0;11438:8;;-1:-1:-1;;;11438:8:0;;;;11437:9;:58;;;;-1:-1:-1;;;;;;11464:31:0;;;;;;:25;:31;;;;;;;;11463:32;11437:58;:86;;;;;11513:10;11512:11;11437:86;:129;;;;-1:-1:-1;;;;;;11541:25:0;;;;;;:19;:25;;;;;;;;11540:26;11437:129;:170;;;;-1:-1:-1;;;;;;11584:23:0;;;;;;:19;:23;;;;;;;;11583:24;11437:170;11419:298;;;11634:8;:15;;-1:-1:-1;;;;11634:15:0;-1:-1:-1;;;11634:15:0;;;11664:10;:8;:10::i;:::-;11689:8;:16;;-1:-1:-1;;;;11689:16:0;;;11419:298;11729:35;11747:4;11753:2;11757:6;11729:17;:35::i;:::-;9767:2005;9663:2109;;;:::o;1682:224::-;1802:7;1838:12;1830:6;;;;1822:29;;;;-1:-1:-1;;;1822:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1862:9:0;1874:5;1878:1;1874;:5;:::i;:::-;1862:17;1682:224;-1:-1:-1;;;;;1682:224:0:o;9469:186::-;-1:-1:-1;;;;;9552:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;9552:39:0;;;;;;;;;;9607:40;;9552:39;;:31;9607:40;;;9469:186;;:::o;9145:135::-;-1:-1:-1;;;;;9226:39:0;;;;;;;;:31;:39;;;;;:46;;-1:-1:-1;;9226:46:0;;;;;;;;;;9145:135::o;4153:191::-;4227:16;4246:6;;-1:-1:-1;;;;;4263:17:0;;;-1:-1:-1;;;;;;4263:17:0;;;;;;4296:40;;4246:6;;;;;;;4296:40;;4227:16;4296:40;4216:128;4153:191;:::o;13760:369::-;13843:4;13799:23;6930:18;;;:9;:18;;;;;;13882:13;;13864:31;;13860:95;;;-1:-1:-1;13930:13:0;;13860:95;13989:18;;13971:15;:36;13967:88;;;14022:33;14039:15;14022:16;:33::i;:::-;14076:12;;14068:53;;-1:-1:-1;;;;;14076:12:0;;;;14099:21;14068:53;;;;;14076:12;14068:53;14076:12;14068:53;14099:21;14076:12;14068:53;;;;;;;;;;;;;;;;;;;;;13788:341;13760:369::o;11780:1115::-;-1:-1:-1;;;;;11939:25:0;;11903:12;11939:25;;;:19;:25;;;;;;11918:4;;11939:25;;;:52;;-1:-1:-1;;;;;;11968:23:0;;;;;;:19;:23;;;;;;;;11939:52;11935:100;;;-1:-1:-1;12018:5:0;11935:100;12047:12;12074:18;12121:7;3619;3646:6;-1:-1:-1;;;;;3646:6:0;;3573:87;12121:7;-1:-1:-1;;;;;12113:15:0;:4;-1:-1:-1;;;;;12113:15:0;;:40;;;-1:-1:-1;;;;;;12132:21:0;;12148:4;12132:21;12113:40;12109:605;;;-1:-1:-1;12183:6:0;12109:605;;;12211:7;12207:507;;;-1:-1:-1;;;;;12239:29:0;;;;;;:25;:29;;;;;;;;12235:180;;;12296:28;12320:3;12296:19;12307:7;;12296:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;12289:35;;12235:180;;;12372:27;12395:3;12372:18;12383:6;;12372;:10;;:18;;;;:::i;:27::-;12365:34;;12235:180;12435:8;;12431:231;;-1:-1:-1;;;;;12482:15:0;;;;;;:9;:15;;;;;;:25;;12502:4;12482:19;:25::i;:::-;-1:-1:-1;;;;;12464:15:0;;;;;;:9;:15;;;;;;:43;;;;12571:4;12553:24;;;;:34;;12582:4;12553:28;:34::i;:::-;12544:4;12526:24;;;;:9;:24;;;;;;;:61;;;;12611:35;;-1:-1:-1;;;;;12611:35:0;;;;;;;12641:4;1361:25:1;;1349:2;1334:18;;1215:177;12611:35:0;;;;;;;;12431:231;12689:13;12698:4;12689:6;:13;:::i;:::-;12676:26;;12207:507;-1:-1:-1;;;;;12742:15:0;;;;;;:9;:15;;;;;;:31;;12762:10;12742:19;:31::i;:::-;-1:-1:-1;;;;;12724:15:0;;;;;;:9;:15;;;;;:49;12800:35;12818:16;:6;12829:4;12818:10;:16::i;:::-;-1:-1:-1;;;;;12800:13:0;;;;;;:9;:13;;;;;;;:17;:35::i;:::-;-1:-1:-1;;;;;12784:13:0;;;;;;;:9;:13;;;;;:51;;;;12851:36;;;12870:16;:6;12881:4;12870:10;:16::i;:::-;12851:36;;1361:25:1;;;1349:2;1334:18;12851:36:0;;;;;;;11892:1003;;;11780:1115;;;:::o;12903:478::-;12993:16;;;13007:1;12993:16;;;;;;;;12969:21;;12993:16;;;;;;;;;;-1:-1:-1;12993:16:0;12969:40;;13038:4;13020;13025:1;13020:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;13020:23:0;;;-1:-1:-1;;;;;13020:23:0;;;;;13064:16;-1:-1:-1;;;;;13064:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13054:4;13059:1;13054:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;13054:33:0;;;-1:-1:-1;;;;;13054:33:0;;;;;13100:63;13117:4;13132:16;13151:11;13100:8;:63::i;:::-;13176:197;;-1:-1:-1;;;13176:197:0;;-1:-1:-1;;;;;13176:16:0;:67;;;;:197;;13258:11;;13284:1;;13300:4;;13327;;13347:15;;13176:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12958:423;12903:478;:::o;1914:246::-;1972:7;1996:1;2001;1996:6;1992:47;;-1:-1:-1;2026:1:0;2019:8;;1992:47;2049:9;2061:5;2065:1;2061;:5;:::i;:::-;2049:17;-1:-1:-1;2094:1:0;2085:5;2089:1;2049:17;2085:5;:::i;:::-;:10;2077:56;;;;-1:-1:-1;;;2077:56:0;;12195:2:1;2077:56:0;;;12177:21:1;12234:2;12214:18;;;12207:30;12273:34;12253:18;;;12246:62;-1:-1:-1;;;12324:18:1;;;12317:31;12365:19;;2077:56:0;11993:397:1;2077:56:0;2151:1;1914:246;-1:-1:-1;;;1914:246:0:o;2168:132::-;2226:7;2253:39;2257:1;2260;2253:39;;;;;;;;;;;;;;;;;:3;:39::i;1538:136::-;1596:7;1623:43;1627:1;1630;1623:43;;;;;;;;;;;;;;;;;:3;:43::i;1351:179::-;1409:7;;1441:5;1445:1;1441;:5;:::i;:::-;1429:17;;1470:1;1465;:6;;1457:46;;;;-1:-1:-1;;;1457:46:0;;12597:2:1;1457:46:0;;;12579:21:1;12636:2;12616:18;;;12609:30;12675:29;12655:18;;;12648:57;12722:18;;1457:46:0;12395:351:1;2308:223:0;2428:7;2463:12;2456:5;2448:28;;;;-1:-1:-1;;;2448:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2487:9:0;2499:5;2503:1;2499;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2280:247::-;2339:6;2392:2;2380:9;2371:7;2367:23;2363:32;2360:52;;;2408:1;2405;2398:12;2360:52;2447:9;2434:23;2466:31;2491:5;2466:31;:::i;2532:248::-;2600:6;2608;2661:2;2649:9;2640:7;2636:23;2632:32;2629:52;;;2677:1;2674;2667:12;2629:52;-1:-1:-1;;2700:23:1;;;2770:2;2755:18;;;2742:32;;-1:-1:-1;2532:248:1:o;2993:388::-;3061:6;3069;3122:2;3110:9;3101:7;3097:23;3093:32;3090:52;;;3138:1;3135;3128:12;3090:52;3177:9;3164:23;3196:31;3221:5;3196:31;:::i;:::-;3246:5;-1:-1:-1;3303:2:1;3288:18;;3275:32;3316:33;3275:32;3316:33;:::i;:::-;3368:7;3358:17;;;2993:388;;;;;:::o;3386:380::-;3465:1;3461:12;;;;3508;;;3529:61;;3583:4;3575:6;3571:17;3561:27;;3529:61;3636:2;3628:6;3625:14;3605:18;3602:38;3599:161;;3682:10;3677:3;3673:20;3670:1;3663:31;3717:4;3714:1;3707:15;3745:4;3742:1;3735:15;3599:161;;3386:380;;;:::o;3771:356::-;3973:2;3955:21;;;3992:18;;;3985:30;4051:34;4046:2;4031:18;;4024:62;4118:2;4103:18;;3771:356::o;4132:251::-;4202:6;4255:2;4243:9;4234:7;4230:23;4226:32;4223:52;;;4271:1;4268;4261:12;4223:52;4303:9;4297:16;4322:31;4347:5;4322:31;:::i;5309:306::-;5397:6;5405;5413;5466:2;5454:9;5445:7;5441:23;5437:32;5434:52;;;5482:1;5479;5472:12;5434:52;5511:9;5505:16;5495:26;;5561:2;5550:9;5546:18;5540:25;5530:35;;5605:2;5594:9;5590:18;5584:25;5574:35;;5309:306;;;;;:::o;9183:127::-;9244:10;9239:3;9235:20;9232:1;9225:31;9275:4;9272:1;9265:15;9299:4;9296:1;9289:15;9315:125;9380:9;;;9401:10;;;9398:36;;;9414:18;;:::i;10216:128::-;10283:9;;;10304:11;;;10301:37;;;10318:18;;:::i;10481:127::-;10542:10;10537:3;10533:20;10530:1;10523:31;10573:4;10570:1;10563:15;10597:4;10594:1;10587:15;10613:980;10875:4;10923:3;10912:9;10908:19;10954:6;10943:9;10936:25;10980:2;11018:6;11013:2;11002:9;10998:18;10991:34;11061:3;11056:2;11045:9;11041:18;11034:31;11085:6;11120;11114:13;11151:6;11143;11136:22;11189:3;11178:9;11174:19;11167:26;;11228:2;11220:6;11216:15;11202:29;;11249:1;11259:195;11273:6;11270:1;11267:13;11259:195;;;11338:13;;-1:-1:-1;;;;;11334:39:1;11322:52;;11429:15;;;;11394:12;;;;11370:1;11288:9;11259:195;;;-1:-1:-1;;;;;;;11510:32:1;;;;11505:2;11490:18;;11483:60;-1:-1:-1;;;11574:3:1;11559:19;11552:35;11471:3;10613:980;-1:-1:-1;;;10613:980:1:o;11598:168::-;11671:9;;;11702;;11719:15;;;11713:22;;11699:37;11689:71;;11740:18;;:::i;11771:217::-;11811:1;11837;11827:132;;11881:10;11876:3;11872:20;11869:1;11862:31;11916:4;11913:1;11906:15;11944:4;11941:1;11934:15;11827:132;-1:-1:-1;11973:9:1;;11771:217::o

Swarm Source

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