ETH Price: $3,437.80 (-0.52%)
Gas: 2 Gwei

Token

Moontendo ($COLOR)
 

Overview

Max Total Supply

1,000,000,000 $COLOR

Holders

217

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,091,815 $COLOR

Value
$0.00
0x125111531c5e37E849399505E6CDbCb73856B3CB
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:
Moontendo

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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

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

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

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

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

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

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

abstract contract Ownable is Context {
    address internal _owner;

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

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

    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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

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

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

interface IUniswapV2Pair {
    
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Moontendo is ERC20 {
    using SafeMath for uint256;

    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromMaxWallet;

    address public marketingWallet;
    address public eventsWallet;
    address public developmentWallet;
    address public profitShareWallet;
    address constant burnAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public buyEventsFee = 10;
    uint256 public buyMarketingFee = 10;
    uint256 public buyDevelopmentFee = 25;
    uint256 public buyProfitShareFee = 15;

    uint256 public sellEventsFee = 10;
    uint256 public sellMarketingFee = 10;
    uint256 public sellDevelopmentFee = 25;
    uint256 public sellProfitShareFee = 15;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 public maxWalletBalance;
    bool public tradingEnabled = false;

    constructor() ERC20("Moontendo", "$COLOR") {
        marketingWallet = 0xaC29FAF385AfA88303989A3BFcE4148FF675c51e;
        eventsWallet = 0xFb931da2770067f35B4FaDb6a8f120E91Ba997f4;
        profitShareWallet = 0xBe3CD3d2C6C2Af3c09fCA75A9CD8b59F5eC78304;
        developmentWallet = 0x94b025202eE7511209806a44DEa69dbA7Fea9dCa;

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

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[developmentWallet] = true;
        _isExcludedFromFee[eventsWallet] = true;
        _isExcludedFromFee[profitShareWallet] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[marketingWallet] = true;
        _isExcludedFromMaxWallet[developmentWallet] = true;
        _isExcludedFromMaxWallet[eventsWallet] = true;
        _isExcludedFromMaxWallet[profitShareWallet] = true;

        _mint(owner(), 1000000000 * 10 ** decimals());
        maxWalletBalance = (totalSupply() * 3) / 100;
    }

    function includeAndExcludeInWhitelist(
        address account,
        bool value
    ) public onlyOwner {
        _isExcludedFromFee[account] = value;
    }

    function includeAndExcludedFromMaxWallet(
        address account,
        bool value
    ) public onlyOwner {
        _isExcludedFromMaxWallet[account] = value;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function isExcludedFromMaxWallet(
        address account
    ) public view returns (bool) {
        return _isExcludedFromMaxWallet[account];
    }

    function setMaxWalletBalance(uint256 maxBalancePercent) external onlyOwner {
        maxWalletBalance = maxBalancePercent * 10 ** decimals();
    }

    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function setSellFees(
        uint256 eventsFee,
        uint256 marketingFee,
        uint256 developmentFee,
        uint256 profitShareFee
    ) external onlyOwner {
        sellEventsFee = eventsFee;
        sellMarketingFee = marketingFee;
        sellDevelopmentFee = developmentFee;
        sellProfitShareFee = profitShareFee;
    }

    function setBuyFees(
        uint256 eventsFee,
        uint256 marketingFee,
        uint256 developmentFee,
        uint256 profitShareFee
    ) external onlyOwner {
        buyEventsFee = eventsFee;
        buyMarketingFee = marketingFee;
        buyDevelopmentFee = developmentFee;
        buyProfitShareFee = profitShareFee;
    }

    function setWallets(
        address marketing,
        address events,
        address development,
        address profitShare
    ) external onlyOwner {
        marketingWallet = marketing;
        eventsWallet = events;
        developmentWallet = development;
        profitShare = profitShare;
    }

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

        if (from != owner() && !tradingEnabled) {
            require(tradingEnabled, "ERC20: trading is not enabled yet");
        }

        if (
            from != owner() &&
            to != address(this) &&
            to != burnAddress &&
            to != uniswapV2Pair
        ) {
            uint256 currentBalance = balanceOf(to);
            require(
                _isExcludedFromMaxWallet[to] ||
                    (currentBalance + amount <= maxWalletBalance),
                "ERC20: Reached Max wallet holding limit."
            );
        }

        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            super._transfer(from, to, amount);
            takeFee = false;
        } else {
            if (from == uniswapV2Pair) {
                uint256 eventTokens = amount.mul(buyEventsFee).div(1000);
                uint256 marketingTokens = amount.mul(buyMarketingFee).div(1000);
                uint256 developmentTokens = amount.mul(buyDevelopmentFee).div(
                    1000
                );
                uint256 profitShareTokens = amount.mul(buyProfitShareFee).div(
                    1000
                );
                amount = amount.sub(
                    eventTokens.add(marketingTokens).add(developmentTokens).add(
                        profitShareTokens
                    )
                );
                super._transfer(from, eventsWallet, eventTokens);
                super._transfer(from, marketingWallet, marketingTokens);
                super._transfer(from, developmentWallet, developmentTokens);
                super._transfer(from, profitShareWallet, profitShareTokens);
                super._transfer(from, to, amount);
            } else if (to == uniswapV2Pair) {
                uint256 eventTokens = amount.mul(sellEventsFee).div(1000);
                uint256 marketingTokens = amount.mul(sellMarketingFee).div(
                    1000
                );
                uint256 developmentTokens = amount.mul(sellDevelopmentFee).div(
                    1000
                );
                uint256 profitShareTokens = amount.mul(sellProfitShareFee).div(
                    1000
                );
                amount = amount.sub(
                    eventTokens.add(marketingTokens).add(developmentTokens).add(
                        profitShareTokens
                    )
                );
                super._transfer(from, eventsWallet, eventTokens);
                super._transfer(from, marketingWallet, marketingTokens);
                super._transfer(from, developmentWallet, developmentTokens);
                super._transfer(from, profitShareWallet, profitShareTokens);
                super._transfer(from, to, amount);
            } else {
                super._transfer(from, to, amount);
            }
        }
    }

    function airdrop(
        address[] memory wallets,
        uint256[] memory amounts
    ) external onlyOwner {
        require(
            wallets.length == amounts.length,
            "ERC20: Arrays must be the same length"
        );
        require(
            wallets.length <= 200,
            "ERC20: 200 wallets per txn is allowed due to gas limits"
        );
        for (uint i = 0; i < wallets.length; i++) {
            address wallet = wallets[i];
            uint256 amount = amounts[i] * 10 ** decimals();
            transfer(wallet, amount);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevelopmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyEventsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyProfitShareFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eventsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeInWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"profitShareWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevelopmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellEventsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellProfitShareFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eventsFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"developmentFee","type":"uint256"},{"internalType":"uint256","name":"profitShareFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBalancePercent","type":"uint256"}],"name":"setMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eventsFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"developmentFee","type":"uint256"},{"internalType":"uint256","name":"profitShareFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"events","type":"address"},{"internalType":"address","name":"development","type":"address"},{"internalType":"address","name":"profitShare","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"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"}]

6080604052600a600c819055600d8190556019600e819055600f80805560108390556011929092556012556013556017805460ff191690553480156200004457600080fd5b50604051806040016040528060098152602001684d6f6f6e74656e646f60b81b815250604051806040016040528060068152602001651221a7a627a960d11b81525062000096620004bd60201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36004620000eb838262000671565b506005620000fa828262000671565b5050600880546001600160a01b031990811673ac29faf385afa88303989a3bfce4148ff675c51e1790915560098054821673fb931da2770067f35b4fadb6a8f120e91ba997f4179055600b8054821673be3cd3d2c6c2af3c09fca75a9cd8b59f5ec78304179055600a80549091167394b025202ee7511209806a44dea69dba7fea9dca179055506040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fb91906200073d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026f91906200073d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e391906200073d565b601580546001600160a01b03199081166001600160a01b039384161790915560148054909116918316919091179055600160066000620003203390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526006909352818320805485166001908117909155600854821684528284208054861682179055600a54821684528284208054861682179055600954821684528284208054861682179055600b54909116835290822080549093168117909255600790620003c66000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155600854821684528284208054861682179055600a54821684528284208054861682179055600954821684528284208054861682179055600b549091168352912080549092161790556200048e6200046a6000546001600160a01b031690565b620004786012600a62000882565b6200048890633b9aca0062000893565b620004c1565b60646200049a60035490565b620004a790600362000893565b620004b39190620008ad565b60165550620008e6565b3390565b6001600160a01b0382166200051c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6003546200052b9082620005b6565b6003556001600160a01b038216600090815260016020526040902054620005539082620005b6565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620005a59085815260200190565b60405180910390a35050565b505050565b6000620005c48284620008d0565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005f857607f821691505b6020821081036200061957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005b157600081815260208120601f850160051c81016020861015620006485750805b601f850160051c820191505b81811015620006695782815560010162000654565b505050505050565b81516001600160401b038111156200068d576200068d620005cd565b620006a5816200069e8454620005e3565b846200061f565b602080601f831160018114620006dd5760008415620006c45750858301515b600019600386901b1c1916600185901b17855562000669565b600085815260208120601f198616915b828110156200070e57888601518255948401946001909101908401620006ed565b50858210156200072d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200075057600080fd5b81516001600160a01b03811681146200076857600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007c6578160001904821115620007aa57620007aa6200076f565b80851615620007b857918102915b93841c93908002906200078a565b509250929050565b600082620007df57506001620005c7565b81620007ee57506000620005c7565b8160018114620008075760028114620008125762000832565b6001915050620005c7565b60ff8411156200082657620008266200076f565b50506001821b620005c7565b5060208310610133831016604e8410600b841016171562000857575081810a620005c7565b62000863838362000785565b80600019048211156200087a576200087a6200076f565b029392505050565b6000620005c460ff841683620007ce565b8082028115828204841417620005c757620005c76200076f565b600082620008cb57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005c757620005c76200076f565b6119c680620008f66000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c806370a082311161013b57806395d89b41116100b8578063b556a6401161007c578063b556a640146104e9578063bbde77c1146104fc578063c04a541414610505578063dd62ed3e14610518578063f2fde38b1461055157600080fd5b806395d89b41146104a9578063a457c2d7146104b1578063a9059cbb146104c4578063b2041411146104d7578063b42cdaba146104e057600080fd5b806383672f3e116100ff57806383672f3e146104615780638a8c523c146104745780638da5cb5b1461047c5780638e4d62af1461048d57806392136913146104a057600080fd5b806370a082311461040b57806370e0e62414610434578063715018a61461043d57806375f0a874146104455780637bce5a041461045857600080fd5b806339509351116101c95780635342acb41161018d5780635342acb41461037a57806367243482146103a65780636b9b44eb146103b95780636c5b2855146103cc5780636dd3d39f146103df57600080fd5b806339509351146103215780633a9e00de1461033457806348eb61b61461034757806349bd5a5e1461035a5780634ada218b1461036d57600080fd5b806318160ddd1161021057806318160ddd146102e557806318a94cf1146102ed57806323b872dd146102f657806326fb9e8514610309578063313ce5671461031257600080fd5b806306fdde031461024d578063095ea7b31461026b5780630caeb3551461028e5780631694505e146102a5578063178d9b8e146102d0575b600080fd5b610255610564565b6040516102629190611300565b60405180910390f35b61027e61027936600461136a565b6105f6565b6040519015158152602001610262565b61029760135481565b604051908152602001610262565b6014546102b8906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b6102e36102de366004611394565b61060d565b005b600354610297565b61029760125481565b61027e6103043660046113c6565b610654565b610297600c5481565b60405160128152602001610262565b61027e61032f36600461136a565b6106bd565b6102e3610342366004611402565b6106f3565b6102e361035536600461141b565b610739565b6015546102b8906001600160a01b031681565b60175461027e9060ff1681565b61027e610388366004611457565b6001600160a01b031660009081526006602052604090205460ff1690565b6102e36103b4366004611548565b61078e565b6009546102b8906001600160a01b031681565b6102e36103da366004611394565b610919565b61027e6103ed366004611457565b6001600160a01b031660009081526007602052604090205460ff1690565b610297610419366004611457565b6001600160a01b031660009081526001602052604090205490565b61029760105481565b6102e3610957565b6008546102b8906001600160a01b031681565b610297600d5481565b6102e361046f366004611608565b6109cb565b6102e3610a35565b6000546001600160a01b03166102b8565b6102e361049b36600461141b565b610a6e565b61029760115481565b610255610ac3565b61027e6104bf36600461136a565b610ad2565b61027e6104d236600461136a565b610b21565b610297600e5481565b610297600f5481565b600b546102b8906001600160a01b031681565b61029760165481565b600a546102b8906001600160a01b031681565b61029761052636600461165c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6102e361055f366004611457565b610b2e565b6060600480546105739061168f565b80601f016020809104026020016040519081016040528092919081815260200182805461059f9061168f565b80156105ec5780601f106105c1576101008083540402835291602001916105ec565b820191906000526020600020905b8154815290600101906020018083116105cf57829003601f168201915b5050505050905090565b6000610603338484610c18565b5060015b92915050565b6000546001600160a01b031633146106405760405162461bcd60e51b8152600401610637906116c9565b60405180910390fd5b600c93909355600d91909155600e55600f55565b6000610661848484610d3d565b6106b384336106ae85604051806060016040528060288152602001611944602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611191565b610c18565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106039185906106ae90866111bd565b6000546001600160a01b0316331461071d5760405162461bcd60e51b8152600401610637906116c9565b6107296012600a6117f8565b6107339082611807565b60165550565b6000546001600160a01b031633146107635760405162461bcd60e51b8152600401610637906116c9565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107b85760405162461bcd60e51b8152600401610637906116c9565b80518251146108175760405162461bcd60e51b815260206004820152602560248201527f45524332303a20417272617973206d757374206265207468652073616d65206c6044820152640cadccee8d60db1b6064820152608401610637565b60c88251111561088f5760405162461bcd60e51b815260206004820152603760248201527f45524332303a203230302077616c6c657473207065722074786e20697320616c60448201527f6c6f7765642064756520746f20676173206c696d6974730000000000000000006064820152608401610637565b60005b82518110156109145760008382815181106108af576108af61181e565b6020026020010151905060006108c3601290565b6108ce90600a6117f8565b8484815181106108e0576108e061181e565b60200260200101516108f29190611807565b90506108fe8282610b21565b505050808061090c90611834565b915050610892565b505050565b6000546001600160a01b031633146109435760405162461bcd60e51b8152600401610637906116c9565b601093909355601191909155601255601355565b6000546001600160a01b031633146109815760405162461bcd60e51b8152600401610637906116c9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109f55760405162461bcd60e51b8152600401610637906116c9565b50600880546001600160a01b039485166001600160a01b0319918216179091556009805493851693821693909317909255600a8054919093169116179055565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b8152600401610637906116c9565b6017805460ff19166001179055565b6000546001600160a01b03163314610a985760405162461bcd60e51b8152600401610637906116c9565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6060600580546105739061168f565b600061060333846106ae8560405180606001604052806025815260200161196c602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611191565b6000610603338484610d3d565b6000546001600160a01b03163314610b585760405162461bcd60e51b8152600401610637906116c9565b6001600160a01b038116610bbd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610637565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c7a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610637565b6001600160a01b038216610cdb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610637565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d635760405162461bcd60e51b81526004016106379061184d565b6001600160a01b038216610d895760405162461bcd60e51b815260040161063790611892565b60008111610deb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610637565b6000546001600160a01b03848116911614801590610e0c575060175460ff16155b15610e6d5760175460ff16610e6d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2074726164696e67206973206e6f7420656e61626c65642079656044820152601d60fa1b6064820152608401610637565b6000546001600160a01b03848116911614801590610e9457506001600160a01b0382163014155b8015610eab57506001600160a01b03821661dead14155b8015610ec557506015546001600160a01b03838116911614155b15610f67576001600160a01b03821660009081526001602090815260408083205460079092529091205460ff1680610f085750601654610f0583836118d5565b11155b610f655760405162461bcd60e51b815260206004820152602860248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60448201526733903634b6b4ba1760c11b6064820152608401610637565b505b6001600160a01b03831660009081526006602052604090205460019060ff1680610fa957506001600160a01b03831660009081526006602052604090205460ff165b15610fc157610fb98484846111d0565b50600061118b565b6015546001600160a01b03908116908516036110f0576000610ffa6103e8610ff4600c54866112dc90919063ffffffff16565b906112e8565b905060006110196103e8610ff4600d54876112dc90919063ffffffff16565b905060006110386103e8610ff4600e54886112dc90919063ffffffff16565b905060006110576103e8610ff4600f54896112dc90919063ffffffff16565b90506110796110728261106c858189896111bd565b906111bd565b87906112f4565b6009549096506110949089906001600160a01b0316866111d0565b6008546110ac9089906001600160a01b0316856111d0565b600a546110c49089906001600160a01b0316846111d0565b600b546110dc9089906001600160a01b0316836111d0565b6110e78888886111d0565b5050505061118b565b6015546001600160a01b03908116908416036111805760006111236103e8610ff4601054866112dc90919063ffffffff16565b905060006111426103e8610ff4601154876112dc90919063ffffffff16565b905060006111616103e8610ff4601254886112dc90919063ffffffff16565b905060006110576103e8610ff4601354896112dc90919063ffffffff16565b61118b8484846111d0565b50505050565b600081848411156111b55760405162461bcd60e51b81526004016106379190611300565b505050900390565b60006111c982846118d5565b9392505050565b6001600160a01b0383166111f65760405162461bcd60e51b81526004016106379061184d565b6001600160a01b03821661121c5760405162461bcd60e51b815260040161063790611892565b6112598160405180606001604052806026815260200161191e602691396001600160a01b0386166000908152600160205260409020549190611191565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461128890826111bd565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d309085815260200190565b60006111c98284611807565b60006111c982846118e8565b60006111c9828461190a565b600060208083528351808285015260005b8181101561132d57858101830151858201604001528201611311565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461136557600080fd5b919050565b6000806040838503121561137d57600080fd5b6113868361134e565b946020939093013593505050565b600080600080608085870312156113aa57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156113db57600080fd5b6113e48461134e565b92506113f26020850161134e565b9150604084013590509250925092565b60006020828403121561141457600080fd5b5035919050565b6000806040838503121561142e57600080fd5b6114378361134e565b91506020830135801515811461144c57600080fd5b809150509250929050565b60006020828403121561146957600080fd5b6111c98261134e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114b1576114b1611472565b604052919050565b600067ffffffffffffffff8211156114d3576114d3611472565b5060051b60200190565b600082601f8301126114ee57600080fd5b813560206115036114fe836114b9565b611488565b82815260059290921b8401810191818101908684111561152257600080fd5b8286015b8481101561153d5780358352918301918301611526565b509695505050505050565b6000806040838503121561155b57600080fd5b823567ffffffffffffffff8082111561157357600080fd5b818501915085601f83011261158757600080fd5b813560206115976114fe836114b9565b82815260059290921b840181019181810190898411156115b657600080fd5b948201945b838610156115db576115cc8661134e565b825294820194908201906115bb565b965050860135925050808211156115f157600080fd5b506115fe858286016114dd565b9150509250929050565b6000806000806080858703121561161e57600080fd5b6116278561134e565b93506116356020860161134e565b92506116436040860161134e565b91506116516060860161134e565b905092959194509250565b6000806040838503121561166f57600080fd5b6116788361134e565b91506116866020840161134e565b90509250929050565b600181811c908216806116a357607f821691505b6020821081036116c357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561174f578160001904821115611735576117356116fe565b8085161561174257918102915b93841c9390800290611719565b509250929050565b60008261176657506001610607565b8161177357506000610607565b81600181146117895760028114611793576117af565b6001915050610607565b60ff8411156117a4576117a46116fe565b50506001821b610607565b5060208310610133831016604e8410600b84101617156117d2575081810a610607565b6117dc8383611714565b80600019048211156117f0576117f06116fe565b029392505050565b60006111c960ff841683611757565b8082028115828204841417610607576106076116fe565b634e487b7160e01b600052603260045260246000fd5b600060018201611846576118466116fe565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820180821115610607576106076116fe565b60008261190557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610607576106076116fe56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ce05305845aa4ab810140b1c4d0d84d780909436732bb167957aedea7b60dce364736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102485760003560e01c806370a082311161013b57806395d89b41116100b8578063b556a6401161007c578063b556a640146104e9578063bbde77c1146104fc578063c04a541414610505578063dd62ed3e14610518578063f2fde38b1461055157600080fd5b806395d89b41146104a9578063a457c2d7146104b1578063a9059cbb146104c4578063b2041411146104d7578063b42cdaba146104e057600080fd5b806383672f3e116100ff57806383672f3e146104615780638a8c523c146104745780638da5cb5b1461047c5780638e4d62af1461048d57806392136913146104a057600080fd5b806370a082311461040b57806370e0e62414610434578063715018a61461043d57806375f0a874146104455780637bce5a041461045857600080fd5b806339509351116101c95780635342acb41161018d5780635342acb41461037a57806367243482146103a65780636b9b44eb146103b95780636c5b2855146103cc5780636dd3d39f146103df57600080fd5b806339509351146103215780633a9e00de1461033457806348eb61b61461034757806349bd5a5e1461035a5780634ada218b1461036d57600080fd5b806318160ddd1161021057806318160ddd146102e557806318a94cf1146102ed57806323b872dd146102f657806326fb9e8514610309578063313ce5671461031257600080fd5b806306fdde031461024d578063095ea7b31461026b5780630caeb3551461028e5780631694505e146102a5578063178d9b8e146102d0575b600080fd5b610255610564565b6040516102629190611300565b60405180910390f35b61027e61027936600461136a565b6105f6565b6040519015158152602001610262565b61029760135481565b604051908152602001610262565b6014546102b8906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b6102e36102de366004611394565b61060d565b005b600354610297565b61029760125481565b61027e6103043660046113c6565b610654565b610297600c5481565b60405160128152602001610262565b61027e61032f36600461136a565b6106bd565b6102e3610342366004611402565b6106f3565b6102e361035536600461141b565b610739565b6015546102b8906001600160a01b031681565b60175461027e9060ff1681565b61027e610388366004611457565b6001600160a01b031660009081526006602052604090205460ff1690565b6102e36103b4366004611548565b61078e565b6009546102b8906001600160a01b031681565b6102e36103da366004611394565b610919565b61027e6103ed366004611457565b6001600160a01b031660009081526007602052604090205460ff1690565b610297610419366004611457565b6001600160a01b031660009081526001602052604090205490565b61029760105481565b6102e3610957565b6008546102b8906001600160a01b031681565b610297600d5481565b6102e361046f366004611608565b6109cb565b6102e3610a35565b6000546001600160a01b03166102b8565b6102e361049b36600461141b565b610a6e565b61029760115481565b610255610ac3565b61027e6104bf36600461136a565b610ad2565b61027e6104d236600461136a565b610b21565b610297600e5481565b610297600f5481565b600b546102b8906001600160a01b031681565b61029760165481565b600a546102b8906001600160a01b031681565b61029761052636600461165c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6102e361055f366004611457565b610b2e565b6060600480546105739061168f565b80601f016020809104026020016040519081016040528092919081815260200182805461059f9061168f565b80156105ec5780601f106105c1576101008083540402835291602001916105ec565b820191906000526020600020905b8154815290600101906020018083116105cf57829003601f168201915b5050505050905090565b6000610603338484610c18565b5060015b92915050565b6000546001600160a01b031633146106405760405162461bcd60e51b8152600401610637906116c9565b60405180910390fd5b600c93909355600d91909155600e55600f55565b6000610661848484610d3d565b6106b384336106ae85604051806060016040528060288152602001611944602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611191565b610c18565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106039185906106ae90866111bd565b6000546001600160a01b0316331461071d5760405162461bcd60e51b8152600401610637906116c9565b6107296012600a6117f8565b6107339082611807565b60165550565b6000546001600160a01b031633146107635760405162461bcd60e51b8152600401610637906116c9565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107b85760405162461bcd60e51b8152600401610637906116c9565b80518251146108175760405162461bcd60e51b815260206004820152602560248201527f45524332303a20417272617973206d757374206265207468652073616d65206c6044820152640cadccee8d60db1b6064820152608401610637565b60c88251111561088f5760405162461bcd60e51b815260206004820152603760248201527f45524332303a203230302077616c6c657473207065722074786e20697320616c60448201527f6c6f7765642064756520746f20676173206c696d6974730000000000000000006064820152608401610637565b60005b82518110156109145760008382815181106108af576108af61181e565b6020026020010151905060006108c3601290565b6108ce90600a6117f8565b8484815181106108e0576108e061181e565b60200260200101516108f29190611807565b90506108fe8282610b21565b505050808061090c90611834565b915050610892565b505050565b6000546001600160a01b031633146109435760405162461bcd60e51b8152600401610637906116c9565b601093909355601191909155601255601355565b6000546001600160a01b031633146109815760405162461bcd60e51b8152600401610637906116c9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109f55760405162461bcd60e51b8152600401610637906116c9565b50600880546001600160a01b039485166001600160a01b0319918216179091556009805493851693821693909317909255600a8054919093169116179055565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b8152600401610637906116c9565b6017805460ff19166001179055565b6000546001600160a01b03163314610a985760405162461bcd60e51b8152600401610637906116c9565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6060600580546105739061168f565b600061060333846106ae8560405180606001604052806025815260200161196c602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611191565b6000610603338484610d3d565b6000546001600160a01b03163314610b585760405162461bcd60e51b8152600401610637906116c9565b6001600160a01b038116610bbd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610637565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c7a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610637565b6001600160a01b038216610cdb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610637565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d635760405162461bcd60e51b81526004016106379061184d565b6001600160a01b038216610d895760405162461bcd60e51b815260040161063790611892565b60008111610deb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610637565b6000546001600160a01b03848116911614801590610e0c575060175460ff16155b15610e6d5760175460ff16610e6d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2074726164696e67206973206e6f7420656e61626c65642079656044820152601d60fa1b6064820152608401610637565b6000546001600160a01b03848116911614801590610e9457506001600160a01b0382163014155b8015610eab57506001600160a01b03821661dead14155b8015610ec557506015546001600160a01b03838116911614155b15610f67576001600160a01b03821660009081526001602090815260408083205460079092529091205460ff1680610f085750601654610f0583836118d5565b11155b610f655760405162461bcd60e51b815260206004820152602860248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60448201526733903634b6b4ba1760c11b6064820152608401610637565b505b6001600160a01b03831660009081526006602052604090205460019060ff1680610fa957506001600160a01b03831660009081526006602052604090205460ff165b15610fc157610fb98484846111d0565b50600061118b565b6015546001600160a01b03908116908516036110f0576000610ffa6103e8610ff4600c54866112dc90919063ffffffff16565b906112e8565b905060006110196103e8610ff4600d54876112dc90919063ffffffff16565b905060006110386103e8610ff4600e54886112dc90919063ffffffff16565b905060006110576103e8610ff4600f54896112dc90919063ffffffff16565b90506110796110728261106c858189896111bd565b906111bd565b87906112f4565b6009549096506110949089906001600160a01b0316866111d0565b6008546110ac9089906001600160a01b0316856111d0565b600a546110c49089906001600160a01b0316846111d0565b600b546110dc9089906001600160a01b0316836111d0565b6110e78888886111d0565b5050505061118b565b6015546001600160a01b03908116908416036111805760006111236103e8610ff4601054866112dc90919063ffffffff16565b905060006111426103e8610ff4601154876112dc90919063ffffffff16565b905060006111616103e8610ff4601254886112dc90919063ffffffff16565b905060006110576103e8610ff4601354896112dc90919063ffffffff16565b61118b8484846111d0565b50505050565b600081848411156111b55760405162461bcd60e51b81526004016106379190611300565b505050900390565b60006111c982846118d5565b9392505050565b6001600160a01b0383166111f65760405162461bcd60e51b81526004016106379061184d565b6001600160a01b03821661121c5760405162461bcd60e51b815260040161063790611892565b6112598160405180606001604052806026815260200161191e602691396001600160a01b0386166000908152600160205260409020549190611191565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461128890826111bd565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d309085815260200190565b60006111c98284611807565b60006111c982846118e8565b60006111c9828461190a565b600060208083528351808285015260005b8181101561132d57858101830151858201604001528201611311565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461136557600080fd5b919050565b6000806040838503121561137d57600080fd5b6113868361134e565b946020939093013593505050565b600080600080608085870312156113aa57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156113db57600080fd5b6113e48461134e565b92506113f26020850161134e565b9150604084013590509250925092565b60006020828403121561141457600080fd5b5035919050565b6000806040838503121561142e57600080fd5b6114378361134e565b91506020830135801515811461144c57600080fd5b809150509250929050565b60006020828403121561146957600080fd5b6111c98261134e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114b1576114b1611472565b604052919050565b600067ffffffffffffffff8211156114d3576114d3611472565b5060051b60200190565b600082601f8301126114ee57600080fd5b813560206115036114fe836114b9565b611488565b82815260059290921b8401810191818101908684111561152257600080fd5b8286015b8481101561153d5780358352918301918301611526565b509695505050505050565b6000806040838503121561155b57600080fd5b823567ffffffffffffffff8082111561157357600080fd5b818501915085601f83011261158757600080fd5b813560206115976114fe836114b9565b82815260059290921b840181019181810190898411156115b657600080fd5b948201945b838610156115db576115cc8661134e565b825294820194908201906115bb565b965050860135925050808211156115f157600080fd5b506115fe858286016114dd565b9150509250929050565b6000806000806080858703121561161e57600080fd5b6116278561134e565b93506116356020860161134e565b92506116436040860161134e565b91506116516060860161134e565b905092959194509250565b6000806040838503121561166f57600080fd5b6116788361134e565b91506116866020840161134e565b90509250929050565b600181811c908216806116a357607f821691505b6020821081036116c357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561174f578160001904821115611735576117356116fe565b8085161561174257918102915b93841c9390800290611719565b509250929050565b60008261176657506001610607565b8161177357506000610607565b81600181146117895760028114611793576117af565b6001915050610607565b60ff8411156117a4576117a46116fe565b50506001821b610607565b5060208310610133831016604e8410600b84101617156117d2575081810a610607565b6117dc8383611714565b80600019048211156117f0576117f06116fe565b029392505050565b60006111c960ff841683611757565b8082028115828204841417610607576106076116fe565b634e487b7160e01b600052603260045260246000fd5b600060018201611846576118466116fe565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820180821115610607576106076116fe565b60008261190557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610607576106076116fe56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ce05305845aa4ab810140b1c4d0d84d780909436732bb167957aedea7b60dce364736f6c63430008130033

Deployed Bytecode Sourcemap

8551:8195:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4586:194;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;4586:194:0;1004:187:1;9275:38:0;;;;;;;;;1342:25:1;;;1330:2;1315:18;9275:38:0;1196:177:1;9322:41:0;;;;;-1:-1:-1;;;;;9322:41:0;;;;;;-1:-1:-1;;;;;1568:32:1;;;1550:51;;1538:2;1523:18;9322:41:0;1378:229:1;12177:345:0;;;;;;:::i;:::-;;:::i;:::-;;3927:108;4015:12;;3927:108;;9230:38;;;;;;4788:454;;;;;;:::i;:::-;;:::i;8976:32::-;;;;;;3826:93;;;3909:2;2477:36:1;;2465:2;2450:18;3826:93:0;2335:184:1;5250:293:0;;;;;;:::i;:::-;;:::i;11570:149::-;;;;;;:::i;:::-;;:::i;11098:172::-;;;;;;:::i;:::-;;:::i;9370:28::-;;;;;-1:-1:-1;;;;;9370:28:0;;;9443:34;;;;;;;;;11278:124;;;;;;:::i;:::-;-1:-1:-1;;;;;11367:27:0;11343:4;11367:27;;;:18;:27;;;;;;;;;11278:124;16149:594;;;;;;:::i;:::-;;:::i;8782:27::-;;;;;-1:-1:-1;;;;;8782:27:0;;;11819:350;;;;;;:::i;:::-;;:::i;11410:152::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11521:33:0;11497:4;11521:33;;;:24;:33;;;;;;;;;11410:152;4043:143;;;;;;:::i;:::-;-1:-1:-1;;;;;4160:18:0;4133:7;4160:18;;;:9;:18;;;;;;;4043:143;9147:33;;;;;;2491:148;;;:::i;8745:30::-;;;;;-1:-1:-1;;;;;8745:30:0;;;9015:35;;;;;;12530:315;;;;;;:::i;:::-;;:::i;11727:84::-;;;:::i;2268:87::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;2268:87;;10927:163;;;;;;:::i;:::-;;:::i;9187:36::-;;;;;;3714:104;;;:::i;5551:393::-;;;;;;:::i;:::-;;:::i;4194:200::-;;;;;;:::i;:::-;;:::i;9057:37::-;;;;;;9101;;;;;;8855:32;;;;;-1:-1:-1;;;;;8855:32:0;;;9405:31;;;;;;8816:32;;;;;-1:-1:-1;;;;;8816:32:0;;;4402:176;;;;;;:::i;:::-;-1:-1:-1;;;;;4543:18:0;;;4516:7;4543:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4402:176;2647:281;;;;;;:::i;:::-;;:::i;3606:100::-;3660:13;3693:5;3686:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:100;:::o;4586:194::-;4694:4;4711:39;1932:10;4734:7;4743:6;4711:8;:39::i;:::-;-1:-1:-1;4768:4:0;4586:194;;;;;:::o;12177:345::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;;;;;;;;;12359:12:::1;:24:::0;;;;12394:15:::1;:30:::0;;;;12435:17:::1;:34:::0;12480:17:::1;:34:::0;12177:345::o;4788:454::-;4928:4;4945:36;4955:6;4963:9;4974:6;4945:9;:36::i;:::-;4992:220;5015:6;1932:10;5063:138;5119:6;5063:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5063:19:0;;;;;;:11;:19;;;;;;;;1932:10;5063:33;;;;;;;;;;:37;:138::i;:::-;4992:8;:220::i;:::-;-1:-1:-1;5230:4:0;4788:454;;;;;:::o;5250:293::-;1932:10;5363:4;5452:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5452:34:0;;;;;;;;;;5363:4;;5380:133;;5430:7;;5452:50;;5491:10;5452:38;:50::i;11570:149::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;11695:16:::1;3909:2:::0;11695::::1;:16;:::i;:::-;11675:36;::::0;:17;:36:::1;:::i;:::-;11656:16;:55:::0;-1:-1:-1;11570:149:0:o;11098:172::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11221:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;11221:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11098:172::o;16149:594::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;16313:7:::1;:14;16295:7;:14;:32;16273:119;;;::::0;-1:-1:-1;;;16273:119:0;;9193:2:1;16273:119:0::1;::::0;::::1;9175:21:1::0;9232:2;9212:18;;;9205:30;9271:34;9251:18;;;9244:62;-1:-1:-1;;;9322:18:1;;;9315:35;9367:19;;16273:119:0::1;8991:401:1::0;16273:119:0::1;16443:3;16425:7;:14;:21;;16403:126;;;::::0;-1:-1:-1;;;16403:126:0;;9599:2:1;16403:126:0::1;::::0;::::1;9581:21:1::0;9638:2;9618:18;;;9611:30;9677:34;9657:18;;;9650:62;9748:25;9728:18;;;9721:53;9791:19;;16403:126:0::1;9397:419:1::0;16403:126:0::1;16545:6;16540:196;16561:7;:14;16557:1;:18;16540:196;;;16597:14;16614:7;16622:1;16614:10;;;;;;;;:::i;:::-;;;;;;;16597:27;;16639:14;16675:10;3909:2:::0;;3826:93;16675:10:::1;16669:16;::::0;:2:::1;:16;:::i;:::-;16656:7;16664:1;16656:10;;;;;;;;:::i;:::-;;;;;;;:29;;;;:::i;:::-;16639:46;;16700:24;16709:6;16717;16700:8;:24::i;:::-;;16582:154;;16577:3;;;;;:::i;:::-;;;;16540:196;;;;16149:594:::0;;:::o;11819:350::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;12002:13:::1;:25:::0;;;;12038:16:::1;:31:::0;;;;12080:18:::1;:35:::0;12126:18:::1;:35:::0;11819:350::o;2491:148::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;2598:1:::1;2582:6:::0;;2561:40:::1;::::0;-1:-1:-1;;;;;2582:6:0;;::::1;::::0;2561:40:::1;::::0;2598:1;;2561:40:::1;2629:1;2612:19:::0;;-1:-1:-1;;;;;;2612:19:0::1;::::0;;2491:148::o;12530:315::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;-1:-1:-1;12700:15:0::1;:27:::0;;-1:-1:-1;;;;;12700:27:0;;::::1;-1:-1:-1::0;;;;;;12700:27:0;;::::1;;::::0;;;12738:12:::1;:21:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;12770:17:::1;:31:::0;;;;;::::1;::::0;::::1;;::::0;;12530:315::o;11727:84::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;11782:14:::1;:21:::0;;-1:-1:-1;;11782:21:0::1;11799:4;11782:21;::::0;;11727:84::o;10927:163::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11047:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11047:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10927:163::o;3714:104::-;3770:13;3803:7;3796:14;;;;;:::i;5551:393::-;5669:4;5686:228;1932:10;5736:7;5758:145;5815:15;5758:145;;;;;;;;;;;;;;;;;1932:10;5758:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5758:34:0;;;;;;;;;;;;:38;:145::i;4194:200::-;4305:4;4322:42;1932:10;4346:9;4357:6;4322:9;:42::i;2647:281::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1932:10;2403:23;2395:68;;;;-1:-1:-1;;;2395:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2750:22:0;::::1;2728:110;;;::::0;-1:-1:-1;;;2728:110:0;;10295:2:1;2728:110:0::1;::::0;::::1;10277:21:1::0;10334:2;10314:18;;;10307:30;10373:34;10353:18;;;10346:62;-1:-1:-1;;;10424:18:1;;;10417:36;10470:19;;2728:110:0::1;10093:402:1::0;2728:110:0::1;2875:6;::::0;;2854:38:::1;::::0;-1:-1:-1;;;;;2854:38:0;;::::1;::::0;2875:6;::::1;::::0;2854:38:::1;::::0;::::1;2903:6;:17:::0;;-1:-1:-1;;;;;;2903:17:0::1;-1:-1:-1::0;;;;;2903:17:0;;;::::1;::::0;;;::::1;::::0;;2647:281::o;7419:380::-;-1:-1:-1;;;;;7555:19:0;;7547:68;;;;-1:-1:-1;;;7547:68:0;;10702:2:1;7547:68:0;;;10684:21:1;10741:2;10721:18;;;10714:30;10780:34;10760:18;;;10753:62;-1:-1:-1;;;10831:18:1;;;10824:34;10875:19;;7547:68:0;10500:400:1;7547:68:0;-1:-1:-1;;;;;7634:21:0;;7626:68;;;;-1:-1:-1;;;7626:68:0;;11107:2:1;7626:68:0;;;11089:21:1;11146:2;11126:18;;;11119:30;11185:34;11165:18;;;11158:62;-1:-1:-1;;;11236:18:1;;;11229:32;11278:19;;7626:68:0;10905:398:1;7626:68:0;-1:-1:-1;;;;;7707:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7759:32;;1342:25:1;;;7759:32:0;;1315:18:1;7759:32:0;;;;;;;;7419:380;;;:::o;12853:3288::-;-1:-1:-1;;;;;12985:18:0;;12977:68;;;;-1:-1:-1;;;12977:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13064:16:0;;13056:64;;;;-1:-1:-1;;;13056:64:0;;;;;;;:::i;:::-;13148:1;13139:6;:10;13131:64;;;;-1:-1:-1;;;13131:64:0;;12320:2:1;13131:64:0;;;12302:21:1;12359:2;12339:18;;;12332:30;12398:34;12378:18;;;12371:62;-1:-1:-1;;;12449:18:1;;;12442:39;12498:19;;13131:64:0;12118:405:1;13131:64:0;2314:7;2341:6;-1:-1:-1;;;;;13212:15:0;;;2341:6;;13212:15;;;;:34;;-1:-1:-1;13232:14:0;;;;13231:15;13212:34;13208:127;;;13271:14;;;;13263:60;;;;-1:-1:-1;;;13263:60:0;;12730:2:1;13263:60:0;;;12712:21:1;12769:2;12749:18;;;12742:30;12808:34;12788:18;;;12781:62;-1:-1:-1;;;12859:18:1;;;12852:31;12900:19;;13263:60:0;12528:397:1;13263:60:0;2314:7;2341:6;-1:-1:-1;;;;;13365:15:0;;;2341:6;;13365:15;;;;:51;;-1:-1:-1;;;;;;13397:19:0;;13411:4;13397:19;;13365:51;:85;;;;-1:-1:-1;;;;;;13433:17:0;;8925:42;13433:17;;13365:85;:121;;;;-1:-1:-1;13473:13:0;;-1:-1:-1;;;;;13467:19:0;;;13473:13;;13467:19;;13365:121;13347:431;;;-1:-1:-1;;;;;4160:18:0;;13513:22;4160:18;;;:9;:18;;;;;;;;;13592:24;:28;;;;;;;;;;:98;;-1:-1:-1;13673:16:0;;13646:23;13663:6;13646:14;:23;:::i;:::-;:43;;13592:98;13566:200;;;;-1:-1:-1;;;13566:200:0;;13262:2:1;13566:200:0;;;13244:21:1;13301:2;13281:18;;;13274:30;13340:34;13320:18;;;13313:62;-1:-1:-1;;;13391:18:1;;;13384:38;13439:19;;13566:200:0;13060:404:1;13566:200:0;13498:280;13347:431;-1:-1:-1;;;;;13824:24:0;;13790:12;13824:24;;;:18;:24;;;;;;13805:4;;13824:24;;;:50;;-1:-1:-1;;;;;;13852:22:0;;;;;;:18;:22;;;;;;;;13824:50;13820:2314;;;13891:33;13907:4;13913:2;13917:6;13891:15;:33::i;:::-;-1:-1:-1;13949:5:0;13820:2314;;;13999:13;;-1:-1:-1;;;;;13999:13:0;;;13991:21;;;;13987:2136;;14033:19;14055:34;14084:4;14055:24;14066:12;;14055:6;:10;;:24;;;;:::i;:::-;:28;;:34::i;:::-;14033:56;;14108:23;14134:37;14166:4;14134:27;14145:15;;14134:6;:10;;:27;;;;:::i;:37::-;14108:63;;14190:25;14218:79;14274:4;14218:29;14229:17;;14218:6;:10;;:29;;;;:::i;:79::-;14190:107;;14316:25;14344:79;14400:4;14344:29;14355:17;;14344:6;:10;;:29;;;;:::i;:79::-;14316:107;-1:-1:-1;14451:178:0;14484:126;14316:107;14484:55;14521:17;14484:55;:11;14500:15;14484;:32::i;:::-;:36;;:55::i;:126::-;14451:6;;:10;:178::i;:::-;14670:12;;14442:187;;-1:-1:-1;14648:48:0;;14664:4;;-1:-1:-1;;;;;14670:12:0;14684:11;14648:15;:48::i;:::-;14737:15;;14715:55;;14731:4;;-1:-1:-1;;;;;14737:15:0;14754;14715;:55::i;:::-;14811:17;;14789:59;;14805:4;;-1:-1:-1;;;;;14811:17:0;14830;14789:15;:59::i;:::-;14889:17;;14867:59;;14883:4;;-1:-1:-1;;;;;14889:17:0;14908;14867:15;:59::i;:::-;14945:33;14961:4;14967:2;14971:6;14945:15;:33::i;:::-;14014:980;;;;13987:2136;;;15010:13;;-1:-1:-1;;;;;15010:13:0;;;15004:19;;;;15000:1123;;15044:19;15066:35;15096:4;15066:25;15077:13;;15066:6;:10;;:25;;;;:::i;:35::-;15044:57;;15120:23;15146:78;15201:4;15146:28;15157:16;;15146:6;:10;;:28;;;;:::i;:78::-;15120:104;;15243:25;15271:80;15328:4;15271:30;15282:18;;15271:6;:10;;:30;;;;:::i;:80::-;15243:108;;15370:25;15398:80;15455:4;15398:30;15409:18;;15398:6;:10;;:30;;;;:::i;15000:1123::-;16074:33;16090:4;16096:2;16100:6;16074:15;:33::i;:::-;12966:3175;12853:3288;;;:::o;1325:240::-;1445:7;1506:12;1498:6;;;;1490:29;;;;-1:-1:-1;;;1490:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1541:5:0;;;1325:240::o;901:98::-;959:7;986:5;990:1;986;:5;:::i;:::-;979:12;901:98;-1:-1:-1;;;901:98:0:o;5952:610::-;-1:-1:-1;;;;;6092:20:0;;6084:70;;;;-1:-1:-1;;;6084:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6173:23:0;;6165:71;;;;-1:-1:-1;;;6165:71:0;;;;;;;:::i;:::-;6329:108;6365:6;6329:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6329:17:0;;;;;;:9;:17;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;6309:17:0;;;;;;;:9;:17;;;;;;:128;;;;6471:20;;;;;;;:32;;6496:6;6471:24;:32::i;:::-;-1:-1:-1;;;;;6448:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6519:35;;;;;;;;;;6547:6;1342:25:1;;1330:2;1315:18;;1196:177;1113:98:0;1171:7;1198:5;1202:1;1198;:5;:::i;1219:98::-;1277:7;1304:5;1308:1;1304;:5;:::i;1007:98::-;1065:7;1092:5;1096:1;1092;: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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1612:385::-;1698:6;1706;1714;1722;1775:3;1763:9;1754:7;1750:23;1746:33;1743:53;;;1792:1;1789;1782:12;1743:53;-1:-1:-1;;1815:23:1;;;1885:2;1870:18;;1857:32;;-1:-1:-1;1936:2:1;1921:18;;1908:32;;1987:2;1972:18;1959:32;;-1:-1:-1;1612:385:1;-1:-1:-1;1612:385:1:o;2002:328::-;2079:6;2087;2095;2148:2;2136:9;2127:7;2123:23;2119:32;2116:52;;;2164:1;2161;2154:12;2116:52;2187:29;2206:9;2187:29;:::i;:::-;2177:39;;2235:38;2269:2;2258:9;2254:18;2235:38;:::i;:::-;2225:48;;2320:2;2309:9;2305:18;2292:32;2282:42;;2002:328;;;;;:::o;2524:180::-;2583:6;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;2675:23:1;;2524:180;-1:-1:-1;2524:180:1:o;2709:347::-;2774:6;2782;2835:2;2823:9;2814:7;2810:23;2806:32;2803:52;;;2851:1;2848;2841:12;2803:52;2874:29;2893:9;2874:29;:::i;:::-;2864:39;;2953:2;2942:9;2938:18;2925:32;3000:5;2993:13;2986:21;2979:5;2976:32;2966:60;;3022:1;3019;3012:12;2966:60;3045:5;3035:15;;;2709:347;;;;;:::o;3269:186::-;3328:6;3381:2;3369:9;3360:7;3356:23;3352:32;3349:52;;;3397:1;3394;3387:12;3349:52;3420:29;3439:9;3420:29;:::i;3460:127::-;3521:10;3516:3;3512:20;3509:1;3502:31;3552:4;3549:1;3542:15;3576:4;3573:1;3566:15;3592:275;3663:2;3657:9;3728:2;3709:13;;-1:-1:-1;;3705:27:1;3693:40;;3763:18;3748:34;;3784:22;;;3745:62;3742:88;;;3810:18;;:::i;:::-;3846:2;3839:22;3592:275;;-1:-1:-1;3592:275:1:o;3872:183::-;3932:4;3965:18;3957:6;3954:30;3951:56;;;3987:18;;:::i;:::-;-1:-1:-1;4032:1:1;4028:14;4044:4;4024:25;;3872:183::o;4060:662::-;4114:5;4167:3;4160:4;4152:6;4148:17;4144:27;4134:55;;4185:1;4182;4175:12;4134:55;4221:6;4208:20;4247:4;4271:60;4287:43;4327:2;4287:43;:::i;:::-;4271:60;:::i;:::-;4365:15;;;4451:1;4447:10;;;;4435:23;;4431:32;;;4396:12;;;;4475:15;;;4472:35;;;4503:1;4500;4493:12;4472:35;4539:2;4531:6;4527:15;4551:142;4567:6;4562:3;4559:15;4551:142;;;4633:17;;4621:30;;4671:12;;;;4584;;4551:142;;;-1:-1:-1;4711:5:1;4060:662;-1:-1:-1;;;;;;4060:662:1:o;4727:1146::-;4845:6;4853;4906:2;4894:9;4885:7;4881:23;4877:32;4874:52;;;4922:1;4919;4912:12;4874:52;4962:9;4949:23;4991:18;5032:2;5024:6;5021:14;5018:34;;;5048:1;5045;5038:12;5018:34;5086:6;5075:9;5071:22;5061:32;;5131:7;5124:4;5120:2;5116:13;5112:27;5102:55;;5153:1;5150;5143:12;5102:55;5189:2;5176:16;5211:4;5235:60;5251:43;5291:2;5251:43;:::i;5235:60::-;5329:15;;;5411:1;5407:10;;;;5399:19;;5395:28;;;5360:12;;;;5435:19;;;5432:39;;;5467:1;5464;5457:12;5432:39;5491:11;;;;5511:148;5527:6;5522:3;5519:15;5511:148;;;5593:23;5612:3;5593:23;:::i;:::-;5581:36;;5544:12;;;;5637;;;;5511:148;;;5678:5;-1:-1:-1;;5721:18:1;;5708:32;;-1:-1:-1;;5752:16:1;;;5749:36;;;5781:1;5778;5771:12;5749:36;;5804:63;5859:7;5848:8;5837:9;5833:24;5804:63;:::i;:::-;5794:73;;;4727:1146;;;;;:::o;5878:409::-;5964:6;5972;5980;5988;6041:3;6029:9;6020:7;6016:23;6012:33;6009:53;;;6058:1;6055;6048:12;6009:53;6081:29;6100:9;6081:29;:::i;:::-;6071:39;;6129:38;6163:2;6152:9;6148:18;6129:38;:::i;:::-;6119:48;;6186:38;6220:2;6209:9;6205:18;6186:38;:::i;:::-;6176:48;;6243:38;6277:2;6266:9;6262:18;6243:38;:::i;:::-;6233:48;;5878:409;;;;;;;:::o;6292:260::-;6360:6;6368;6421:2;6409:9;6400:7;6396:23;6392:32;6389:52;;;6437:1;6434;6427:12;6389:52;6460:29;6479:9;6460:29;:::i;:::-;6450:39;;6508:38;6542:2;6531:9;6527:18;6508:38;:::i;:::-;6498:48;;6292:260;;;;;:::o;6557:380::-;6636:1;6632:12;;;;6679;;;6700:61;;6754:4;6746:6;6742:17;6732:27;;6700:61;6807:2;6799:6;6796:14;6776:18;6773:38;6770:161;;6853:10;6848:3;6844:20;6841:1;6834:31;6888:4;6885:1;6878:15;6916:4;6913:1;6906:15;6770:161;;6557:380;;;:::o;6942:356::-;7144:2;7126:21;;;7163:18;;;7156:30;7222:34;7217:2;7202:18;;7195:62;7289:2;7274:18;;6942:356::o;7303:127::-;7364:10;7359:3;7355:20;7352:1;7345:31;7395:4;7392:1;7385:15;7419:4;7416:1;7409:15;7435:422;7524:1;7567:5;7524:1;7581:270;7602:7;7592:8;7589:21;7581:270;;;7661:4;7657:1;7653:6;7649:17;7643:4;7640:27;7637:53;;;7670:18;;:::i;:::-;7720:7;7710:8;7706:22;7703:55;;;7740:16;;;;7703:55;7819:22;;;;7779:15;;;;7581:270;;;7585:3;7435:422;;;;;:::o;7862:806::-;7911:5;7941:8;7931:80;;-1:-1:-1;7982:1:1;7996:5;;7931:80;8030:4;8020:76;;-1:-1:-1;8067:1:1;8081:5;;8020:76;8112:4;8130:1;8125:59;;;;8198:1;8193:130;;;;8105:218;;8125:59;8155:1;8146:10;;8169:5;;;8193:130;8230:3;8220:8;8217:17;8214:43;;;8237:18;;:::i;:::-;-1:-1:-1;;8293:1:1;8279:16;;8308:5;;8105:218;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8369:2;8359:8;8356:16;8351:2;8345:4;8342:12;8338:35;8335:77;8332:159;;;-1:-1:-1;8444:19:1;;;8476:5;;8332:159;8523:34;8548:8;8542:4;8523:34;:::i;:::-;8593:6;8589:1;8585:6;8581:19;8572:7;8569:32;8566:58;;;8604:18;;:::i;:::-;8642:20;;7862:806;-1:-1:-1;;;7862:806:1:o;8673:140::-;8731:5;8760:47;8801:4;8791:8;8787:19;8781:4;8760:47;:::i;8818:168::-;8891:9;;;8922;;8939:15;;;8933:22;;8919:37;8909:71;;8960:18;;:::i;9821:127::-;9882:10;9877:3;9873:20;9870:1;9863:31;9913:4;9910:1;9903:15;9937:4;9934:1;9927:15;9953:135;9992:3;10013:17;;;10010:43;;10033:18;;:::i;:::-;-1:-1:-1;10080:1:1;10069:13;;9953:135::o;11308:401::-;11510:2;11492:21;;;11549:2;11529:18;;;11522:30;11588:34;11583:2;11568:18;;11561:62;-1:-1:-1;;;11654:2:1;11639:18;;11632:35;11699:3;11684:19;;11308:401::o;11714:399::-;11916:2;11898:21;;;11955:2;11935:18;;;11928:30;11994:34;11989:2;11974:18;;11967:62;-1:-1:-1;;;12060:2:1;12045:18;;12038:33;12103:3;12088:19;;11714:399::o;12930:125::-;12995:9;;;13016:10;;;13013:36;;;13029:18;;:::i;13469:217::-;13509:1;13535;13525:132;;13579:10;13574:3;13570:20;13567:1;13560:31;13614:4;13611:1;13604:15;13642:4;13639:1;13632:15;13525:132;-1:-1:-1;13671:9:1;;13469:217::o;13691:128::-;13758:9;;;13779:11;;;13776:37;;;13793:18;;:::i

Swarm Source

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