ETH Price: $3,395.46 (+1.91%)

Token

Capybara walx in water (WALX)
 

Overview

Max Total Supply

420,690,000 WALX

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,112,252.218455131188438658 WALX

Value
$0.00
0xda89868e6c13608ea76719fbd19e4a7190855ae3
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:
CapibaraWalxInWater

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-11
*/

//                                  .;o,
//         __."iIoi,._              ;pI __-"-xx.,_
//       `.3"P3PPPoie-,.            .d' `;.     `p;
//      `O"dP"````""`PdEe._       .;'   .     `  `|   capibara walx in water
//     "$#"'            ``"P4rdddsP'  .F.    ` `` ;  /
//    i/"""     *"Sp.               .dPff.  _.,;Gw'
//    ;l"'     "  `dp..            "sWf;fe|'
//   `l;          .rPi .    . "" "dW;;doe;
//    $          .;PE`'       " "sW;.d.d;
//    $$        .$"`     `"saed;lW;.d.d.i
//    .$M       ;              ``  ' ld;.p.
// __ _`$o,.-__  "ei-Mu~,.__ ___ `_-dee3'o-ii~m. ____
//
// website: https://itwalx.com
// x: https://x.com/walxtoken
// telegram: https://t.me/walxtoken

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

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

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

    function WETH() external pure returns (address);

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

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable;
}

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

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

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

contract CapibaraWalxInWater is IERC20, Ownable {
    address constant ZERO = 0x0000000000000000000000000000000000000000;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;

    IDEXRouter public router;
    address constant routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    string constant _name = "Capybara walx in water";
    string constant _symbol = "WALX";
    uint8 constant _decimals = 18;

    uint256 constant _totalSupply = 420_690_000 * (10 ** _decimals);

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

    mapping(address => bool) isFeeExempt;
    mapping(address => bool) liquidityCreator;
    mapping(address => bool) isMaxBuyExempt;
    mapping(address => bool) liquidityPools;
    address immutable public pair;

    uint256 liquidityFee = 25000;
    uint256 marketingFee = 25000;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 10000;

    uint256 maxBuyNumerator = 100;
    uint256 maxBuyDenominator = 10000;

    uint256 public launchedAt;
    bool isTradingAllowed = false;
    bool isSwapEnabled = true;

    address devWallet;
    modifier onlyDev() {
        require(
            _msgSender() == devWallet,
            "walx: Caller is not a team member"
        );
        _;
    }

    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    event DistributedFees(uint256 fee);

    constructor() {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        isFeeExempt[address(this)] = true;
        liquidityCreator[owner()] = true;

        isMaxBuyExempt[owner()] = true;
        isMaxBuyExempt[address(this)] = true;
        isMaxBuyExempt[pair] = true;
        isMaxBuyExempt[routerAddress] = true;

        _balances[owner()] = _totalSupply;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable {}

    function totalSupply() external pure override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMaximum(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function decreaseFee(
        uint256 _liquidityFee,
        uint256 _marketingFee
    ) external onlyDev {
        require(_liquidityFee <= liquidityFee, "walx: Can't make fee higher");
        require(_marketingFee <= marketingFee, "walx: Can't make fee higher");
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee + _marketingFee;
    }

    function setDevWallet(address _dev) external onlyOwner {
        devWallet = _dev;
    }

    function feeWithdrawal(uint256 amount) external onlyDev {
        uint256 amountETH = address(this).balance;
        payable(devWallet).transfer((amountETH * amount) / 100);
    }

    function setSwapBackEnabled(bool _enabled) external onlyDev {
        isSwapEnabled = _enabled;
    }

    function startTrading() external onlyOwner {
        require(!isTradingAllowed);
        isTradingAllowed = true;
        launchedAt = block.number;
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(sender != address(0), "walx: transfer from 0x0");
        require(recipient != address(0), "walx: transfer to 0x0");
        require(amount > 0, "walx: Amount must be > zero");
        require(_balances[sender] >= amount, "walx: Insufficient balance");

        if (!launched() && liquidityPools[recipient]) {
            require(
                liquidityCreator[sender],
                "walx: Liquidity not added yet."
            );
            launch();
        }

        if (!isTradingAllowed) {
            require(
                liquidityCreator[sender] || liquidityCreator[recipient],
                "walx: Trading not open yet."
            );
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (liquidityPools[sender] && !isMaxBuyExempt[recipient]) {
            uint256 maxAmount = (_totalSupply * maxBuyNumerator) /
                maxBuyDenominator;
            require(
                amount <= maxAmount,
                "walx: Max buy amount exceeded. Try a lower amount."
            );
        }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = feeExcluded(sender)
            ? receiveFee(recipient, amount)
            : amount;

        if (shouldSwapBack(recipient)) {
            if (amount > 0) swapBack();
        }

        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function feeExcluded(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function receiveFee(
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        bool sellingOrBuying = liquidityPools[recipient] ||
            liquidityPools[msg.sender];

        if (!sellingOrBuying) {
            return amount;
        }

        uint256 feeAmount = (amount * totalFee) / feeDenominator;
        _balances[address(this)] += feeAmount;

        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return
            !liquidityPools[msg.sender] && !inSwap && liquidityPools[recipient] && isSwapEnabled;
    }

    function setProvideLiquidity(address lp, bool isPool) external onlyDev {
        require(lp != pair, "walx: Can't alter current liquidity pair");
        liquidityPools[lp] = isPool;
    }

    function setMaxBuyExempt(address holder, bool exempt) external onlyOwner {
        isMaxBuyExempt[holder] = exempt;
    }

    function swapBack() internal swapping {
        uint256 myBalance = _balances[address(this)];

        if (myBalance == 0) return;

        uint256 amountToSwap = (myBalance * 3) / 4;
        uint256 amountForLiquidity = myBalance - amountToSwap;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 ETHBalanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 ETHAmountForLiquidity = (address(this).balance -
            ETHBalanceBefore) / 3;

        router.addLiquidityETH{value: ETHAmountForLiquidity}(
            address(this),
            amountForLiquidity,
            0,
            0,
            devWallet,
            block.timestamp
        );

        emit DistributedFees(amountToSwap);
    }

    function addLiquidityCreator(address _liquidityCreator) external onlyOwner {
        liquidityCreator[_liquidityCreator] = true;
    }

    function getCurrentSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }
}

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":"fee","type":"uint256"}],"name":"DistributedFees","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":"_liquidityCreator","type":"address"}],"name":"addLiquidityCreator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMaximum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"decreaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"feeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dev","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setMaxBuyExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"setProvideLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526161a86008819055600981905561001b908061049e565b600a55612710600b8190556064600c55600d55600f805461ffff1916610100179055348015610048575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156100eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010f91906104b7565b6001600160a01b031663c9c6539660015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561016d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019191906104b7565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156101da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101fe91906104b7565b6001600160a01b031660808190525f908152600760205260408120805460ff191660011790555f199060039061023b5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120737a250d5630b4cf539739df2c5dacb4c659f2488d80835290845282822094909455308152600383528181209381529290915281205f1990556001906004906102a85f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff1995861617905530815260049092528120805490921660019081179092556005906102fe5f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f908120805460ff19169215159290921790915560019060069061033f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600690935281832080548516600190811790915560805190911683529082208054841682179055737a250d5630b4cf539739df2c5dacb4c659f2488d9091527f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b480549092161790556103e36012600a6105c4565b6103f19063191338506105d2565b60025f6104055f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205561042f5f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6104666012600a6105c4565b6104749063191338506105d2565b60405190815260200160405180910390a36105e9565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104b1576104b161048a565b92915050565b5f602082840312156104c7575f80fd5b81516001600160a01b03811681146104dd575f80fd5b9392505050565b600181815b8085111561051e57815f19048211156105045761050461048a565b8085161561051157918102915b93841c93908002906104e9565b509250929050565b5f82610534575060016104b1565b8161054057505f6104b1565b816001811461055657600281146105605761057c565b60019150506104b1565b60ff8411156105715761057161048a565b50506001821b6104b1565b5060208310610133831016604e8410600b841016171561059f575081810a6104b1565b6105a983836104e4565b805f19048211156105bc576105bc61048a565b029392505050565b5f6104dd60ff841683610526565b80820281158282048414176104b1576104b161048a565b60805161193d6106085f395f81816103e30152610b63015261193d5ff3fe608060405260043610610164575f3560e01c806370a08231116100cd578063a9059cbb11610087578063e3acfb9111610062578063e3acfb911461047d578063f2fde38b1461049c578063f887ea40146104bb578063fdad9302146104da575f80fd5b8063a9059cbb14610405578063bf56b37114610424578063dd62ed3e14610439575f80fd5b806370a082311461030f578063715018a6146103435780637c6e0a5e146103575780638da5cb5b1461037657806395d89b41146103a6578063a8aa1b31146103d2575f80fd5b806323b872dd1161011e57806323b872dd1461026f578063293230b81461028e578063313ce567146102a25780633c8f81d0146102bd5780634f3e1efc146102dc57806355af6091146102f0575f80fd5b806306fdde031461016f578063095ea7b3146101bf5780630961fbf7146101ee57806318160ddd1461020f5780631e53dbe9146102315780631f53ac0214610250575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152601681527521b0b83cb130b930903bb0b63c1034b7103bb0ba32b960511b60208201525b6040516101b691906114f6565b60405180910390f35b3480156101ca575f80fd5b506101de6101d9366004611542565b6104f9565b60405190151581526020016101b6565b3480156101f9575f80fd5b5061020d61020836600461156c565b610565565b005b34801561021a575f80fd5b506102236105fe565b6040519081526020016101b6565b34801561023c575f80fd5b5061020d61024b366004611597565b61061e565b34801561025b575f80fd5b5061020d61026a3660046115b0565b610671565b34801561027a575f80fd5b506101de6102893660046115cb565b6106c4565b348015610299575f80fd5b5061020d610755565b3480156102ad575f80fd5b50604051601281526020016101b6565b3480156102c8575f80fd5b5061020d6102d73660046115b0565b6107a0565b3480156102e7575f80fd5b506102236107ec565b3480156102fb575f80fd5b5061020d61030a366004611609565b61086d565b34801561031a575f80fd5b506102236103293660046115b0565b6001600160a01b03165f9081526002602052604090205490565b34801561034e575f80fd5b5061020d610965565b348015610362575f80fd5b506101de6103713660046115b0565b6109d6565b348015610381575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101b6565b3480156103b1575f80fd5b506040805180820190915260048152630ae8298b60e31b60208201526101a9565b3480156103dd575f80fd5b5061038e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610410575f80fd5b506101de61041f366004611542565b6109e2565b34801561042f575f80fd5b50610223600e5481565b348015610444575f80fd5b50610223610453366004611629565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610488575f80fd5b5061020d610497366004611660565b6109ee565b3480156104a7575f80fd5b5061020d6104b63660046115b0565b610a41565b3480156104c6575f80fd5b5060015461038e906001600160a01b031681565b3480156104e5575f80fd5b5061020d6104f4366004611660565b610b28565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105539086815260200190565b60405180910390a35060015b92915050565b600f546201000090046001600160a01b0316336001600160a01b0316146105a75760405162461bcd60e51b815260040161059e90611693565b60405180910390fd5b600f5447906201000090046001600160a01b03166108fc60646105ca85856116e8565b6105d491906116ff565b6040518115909202915f818181858888f193505050501580156105f9573d5f803e3d5ffd5b505050565b5f61060b6012600a6117fe565b6106199063191338506116e8565b905090565b600f546201000090046001600160a01b0316336001600160a01b0316146106575760405162461bcd60e51b815260040161059e90611693565b600f80549115156101000261ff0019909216919091179055565b5f546001600160a01b0316331461069a5760405162461bcd60e51b815260040161059e9061180c565b600f80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f1914610740576001600160a01b0384165f90815260036020908152604080832033845290915290205461071c908390611841565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b61074b848484610c1d565b90505b9392505050565b5f546001600160a01b0316331461077e5760405162461bcd60e51b815260040161059e9061180c565b600f5460ff161561078d575f80fd5b600f805460ff1916600117905543600e55565b5f546001600160a01b031633146107c95760405162461bcd60e51b815260040161059e9061180c565b6001600160a01b03165f908152600560205260409020805460ff19166001179055565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061084b6012600a6117fe565b6108599063191338506116e8565b6108639190611841565b6106199190611841565b600f546201000090046001600160a01b0316336001600160a01b0316146108a65760405162461bcd60e51b815260040161059e90611693565b6008548211156108f85760405162461bcd60e51b815260206004820152601b60248201527f77616c783a2043616e2774206d616b6520666565206869676865720000000000604482015260640161059e565b60095481111561094a5760405162461bcd60e51b815260206004820152601b60248201527f77616c783a2043616e2774206d616b6520666565206869676865720000000000604482015260640161059e565b6008829055600981905561095e8183611854565b600a555050565b5f546001600160a01b0316331461098e5760405162461bcd60e51b815260040161059e9061180c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61055f825f196104f9565b5f61074e338484610c1d565b5f546001600160a01b03163314610a175760405162461bcd60e51b815260040161059e9061180c565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610a6a5760405162461bcd60e51b815260040161059e9061180c565b6001600160a01b038116610acf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546201000090046001600160a01b0316336001600160a01b031614610b615760405162461bcd60e51b815260040161059e90611693565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610bf35760405162461bcd60e51b815260206004820152602860248201527f77616c783a2043616e277420616c7465722063757272656e74206c697175696460448201526734ba3c903830b4b960c11b606482015260840161059e565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f6001600160a01b038416610c745760405162461bcd60e51b815260206004820152601760248201527f77616c783a207472616e736665722066726f6d20307830000000000000000000604482015260640161059e565b6001600160a01b038316610cc25760405162461bcd60e51b8152602060048201526015602482015274077616c783a207472616e7366657220746f2030783605c1b604482015260640161059e565b5f8211610d115760405162461bcd60e51b815260206004820152601b60248201527f77616c783a20416d6f756e74206d757374206265203e207a65726f0000000000604482015260640161059e565b6001600160a01b0384165f90815260026020526040902054821115610d785760405162461bcd60e51b815260206004820152601a60248201527f77616c783a20496e73756666696369656e742062616c616e6365000000000000604482015260640161059e565b600e54158015610d9f57506001600160a01b0383165f9081526007602052604090205460ff165b15610e14576001600160a01b0384165f9081526005602052604090205460ff16610e0b5760405162461bcd60e51b815260206004820152601e60248201527f77616c783a204c6971756964697479206e6f74206164646564207965742e0000604482015260640161059e565b610e1443600e55565b600f5460ff16610ea7576001600160a01b0384165f9081526005602052604090205460ff1680610e5b57506001600160a01b0383165f9081526005602052604090205460ff165b610ea75760405162461bcd60e51b815260206004820152601b60248201527f77616c783a2054726164696e67206e6f74206f70656e207965742e0000000000604482015260640161059e565b600f54600160b01b900460ff1615610ecb57610ec48484846110bd565b905061074e565b6001600160a01b0384165f9081526007602052604090205460ff168015610f0a57506001600160a01b0383165f9081526006602052604090205460ff16155b15610fb5575f600d54600c546012600a610f2491906117fe565b610f329063191338506116e8565b610f3c91906116e8565b610f4691906116ff565b905080831115610fb35760405162461bcd60e51b815260206004820152603260248201527f77616c783a204d61782062757920616d6f756e742065786365656465642e2054604482015271393c9030903637bbb2b91030b6b7bab73a1760711b606482015260840161059e565b505b6001600160a01b0384165f90815260026020526040902054610fd8908390611841565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff161561100c5782611016565b6110168484611174565b905061102184611212565b1561103457821561103457611034611276565b6001600160a01b0384165f90815260026020526040902054611057908290611854565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110aa9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383165f908152600260205260408120546110e0908390611841565b6001600160a01b038086165f90815260026020526040808220939093559085168152205461110f908390611854565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111629086815260200190565b60405180910390a35060019392505050565b6001600160a01b0382165f90815260076020526040812054819060ff16806111aa5750335f9081526007602052604090205460ff165b9050806111ba578291505061055f565b5f600b54600a54856111cc91906116e8565b6111d691906116ff565b305f908152600260205260408120805492935083929091906111f9908490611854565b9091555061120990508185611841565b95945050505050565b335f9081526007602052604081205460ff1615801561123b5750600f54600160b01b900460ff16155b801561125e57506001600160a01b0382165f9081526007602052604090205460ff165b801561055f575050600f54610100900460ff16919050565b600f805460ff60b01b1916600160b01b179055305f90815260026020526040812054908190036112a657506114e7565b5f60046112b48360036116e8565b6112be91906116ff565b90505f6112cb8284611841565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061130357611303611867565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561135a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137e919061187b565b8160018151811061139157611391611867565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b81524792919091169063791ac947906113da9087905f90879030904290600401611896565b5f604051808303815f87803b1580156113f1575f80fd5b505af1158015611403573d5f803e3d5ffd5b505050505f600382476114169190611841565b61142091906116ff565b600154600f5460405163f305d71960e01b8152306004820152602481018890525f6044820181905260648201526001600160a01b0362010000909204821660848201524260a4820152929350169063f305d71990839060c4015f604051808303818588803b158015611490575f80fd5b505af11580156114a2573d5f803e3d5ffd5b50505050507f6730af06a7a0b552d900fed41c1d468b459eaa290e6eefe61a94a339eabbec1c856040516114d891815260200190565b60405180910390a15050505050505b600f805460ff60b01b19169055565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461153f575f80fd5b50565b5f8060408385031215611553575f80fd5b823561155e8161152b565b946020939093013593505050565b5f6020828403121561157c575f80fd5b5035919050565b80358015158114611592575f80fd5b919050565b5f602082840312156115a7575f80fd5b61074e82611583565b5f602082840312156115c0575f80fd5b813561074e8161152b565b5f805f606084860312156115dd575f80fd5b83356115e88161152b565b925060208401356115f88161152b565b929592945050506040919091013590565b5f806040838503121561161a575f80fd5b50508035926020909101359150565b5f806040838503121561163a575f80fd5b82356116458161152b565b915060208301356116558161152b565b809150509250929050565b5f8060408385031215611671575f80fd5b823561167c8161152b565b915061168a60208401611583565b90509250929050565b60208082526021908201527f77616c783a2043616c6c6572206973206e6f742061207465616d206d656d62656040820152603960f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761055f5761055f6116d4565b5f8261171957634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b8085111561175857815f190482111561173e5761173e6116d4565b8085161561174b57918102915b93841c9390800290611723565b509250929050565b5f8261176e5750600161055f565b8161177a57505f61055f565b8160018114611790576002811461179a576117b6565b600191505061055f565b60ff8411156117ab576117ab6116d4565b50506001821b61055f565b5060208310610133831016604e8410600b84101617156117d9575081810a61055f565b6117e3838361171e565b805f19048211156117f6576117f66116d4565b029392505050565b5f61074e60ff841683611760565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561055f5761055f6116d4565b8082018082111561055f5761055f6116d4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561188b575f80fd5b815161074e8161152b565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118e65784516001600160a01b0316835293830193918301916001016118c1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c0229015a9f64cd0d16ba4c76d43fd15bc49710ed31b04e2940c5341daadcad064736f6c63430008190033

Deployed Bytecode

0x608060405260043610610164575f3560e01c806370a08231116100cd578063a9059cbb11610087578063e3acfb9111610062578063e3acfb911461047d578063f2fde38b1461049c578063f887ea40146104bb578063fdad9302146104da575f80fd5b8063a9059cbb14610405578063bf56b37114610424578063dd62ed3e14610439575f80fd5b806370a082311461030f578063715018a6146103435780637c6e0a5e146103575780638da5cb5b1461037657806395d89b41146103a6578063a8aa1b31146103d2575f80fd5b806323b872dd1161011e57806323b872dd1461026f578063293230b81461028e578063313ce567146102a25780633c8f81d0146102bd5780634f3e1efc146102dc57806355af6091146102f0575f80fd5b806306fdde031461016f578063095ea7b3146101bf5780630961fbf7146101ee57806318160ddd1461020f5780631e53dbe9146102315780631f53ac0214610250575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152601681527521b0b83cb130b930903bb0b63c1034b7103bb0ba32b960511b60208201525b6040516101b691906114f6565b60405180910390f35b3480156101ca575f80fd5b506101de6101d9366004611542565b6104f9565b60405190151581526020016101b6565b3480156101f9575f80fd5b5061020d61020836600461156c565b610565565b005b34801561021a575f80fd5b506102236105fe565b6040519081526020016101b6565b34801561023c575f80fd5b5061020d61024b366004611597565b61061e565b34801561025b575f80fd5b5061020d61026a3660046115b0565b610671565b34801561027a575f80fd5b506101de6102893660046115cb565b6106c4565b348015610299575f80fd5b5061020d610755565b3480156102ad575f80fd5b50604051601281526020016101b6565b3480156102c8575f80fd5b5061020d6102d73660046115b0565b6107a0565b3480156102e7575f80fd5b506102236107ec565b3480156102fb575f80fd5b5061020d61030a366004611609565b61086d565b34801561031a575f80fd5b506102236103293660046115b0565b6001600160a01b03165f9081526002602052604090205490565b34801561034e575f80fd5b5061020d610965565b348015610362575f80fd5b506101de6103713660046115b0565b6109d6565b348015610381575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101b6565b3480156103b1575f80fd5b506040805180820190915260048152630ae8298b60e31b60208201526101a9565b3480156103dd575f80fd5b5061038e7f00000000000000000000000029257530a641d67424e929b863ae3f2fa0903b2b81565b348015610410575f80fd5b506101de61041f366004611542565b6109e2565b34801561042f575f80fd5b50610223600e5481565b348015610444575f80fd5b50610223610453366004611629565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610488575f80fd5b5061020d610497366004611660565b6109ee565b3480156104a7575f80fd5b5061020d6104b63660046115b0565b610a41565b3480156104c6575f80fd5b5060015461038e906001600160a01b031681565b3480156104e5575f80fd5b5061020d6104f4366004611660565b610b28565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105539086815260200190565b60405180910390a35060015b92915050565b600f546201000090046001600160a01b0316336001600160a01b0316146105a75760405162461bcd60e51b815260040161059e90611693565b60405180910390fd5b600f5447906201000090046001600160a01b03166108fc60646105ca85856116e8565b6105d491906116ff565b6040518115909202915f818181858888f193505050501580156105f9573d5f803e3d5ffd5b505050565b5f61060b6012600a6117fe565b6106199063191338506116e8565b905090565b600f546201000090046001600160a01b0316336001600160a01b0316146106575760405162461bcd60e51b815260040161059e90611693565b600f80549115156101000261ff0019909216919091179055565b5f546001600160a01b0316331461069a5760405162461bcd60e51b815260040161059e9061180c565b600f80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f1914610740576001600160a01b0384165f90815260036020908152604080832033845290915290205461071c908390611841565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b61074b848484610c1d565b90505b9392505050565b5f546001600160a01b0316331461077e5760405162461bcd60e51b815260040161059e9061180c565b600f5460ff161561078d575f80fd5b600f805460ff1916600117905543600e55565b5f546001600160a01b031633146107c95760405162461bcd60e51b815260040161059e9061180c565b6001600160a01b03165f908152600560205260409020805460ff19166001179055565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061084b6012600a6117fe565b6108599063191338506116e8565b6108639190611841565b6106199190611841565b600f546201000090046001600160a01b0316336001600160a01b0316146108a65760405162461bcd60e51b815260040161059e90611693565b6008548211156108f85760405162461bcd60e51b815260206004820152601b60248201527f77616c783a2043616e2774206d616b6520666565206869676865720000000000604482015260640161059e565b60095481111561094a5760405162461bcd60e51b815260206004820152601b60248201527f77616c783a2043616e2774206d616b6520666565206869676865720000000000604482015260640161059e565b6008829055600981905561095e8183611854565b600a555050565b5f546001600160a01b0316331461098e5760405162461bcd60e51b815260040161059e9061180c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61055f825f196104f9565b5f61074e338484610c1d565b5f546001600160a01b03163314610a175760405162461bcd60e51b815260040161059e9061180c565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610a6a5760405162461bcd60e51b815260040161059e9061180c565b6001600160a01b038116610acf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546201000090046001600160a01b0316336001600160a01b031614610b615760405162461bcd60e51b815260040161059e90611693565b7f00000000000000000000000029257530a641d67424e929b863ae3f2fa0903b2b6001600160a01b0316826001600160a01b031603610bf35760405162461bcd60e51b815260206004820152602860248201527f77616c783a2043616e277420616c7465722063757272656e74206c697175696460448201526734ba3c903830b4b960c11b606482015260840161059e565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f6001600160a01b038416610c745760405162461bcd60e51b815260206004820152601760248201527f77616c783a207472616e736665722066726f6d20307830000000000000000000604482015260640161059e565b6001600160a01b038316610cc25760405162461bcd60e51b8152602060048201526015602482015274077616c783a207472616e7366657220746f2030783605c1b604482015260640161059e565b5f8211610d115760405162461bcd60e51b815260206004820152601b60248201527f77616c783a20416d6f756e74206d757374206265203e207a65726f0000000000604482015260640161059e565b6001600160a01b0384165f90815260026020526040902054821115610d785760405162461bcd60e51b815260206004820152601a60248201527f77616c783a20496e73756666696369656e742062616c616e6365000000000000604482015260640161059e565b600e54158015610d9f57506001600160a01b0383165f9081526007602052604090205460ff165b15610e14576001600160a01b0384165f9081526005602052604090205460ff16610e0b5760405162461bcd60e51b815260206004820152601e60248201527f77616c783a204c6971756964697479206e6f74206164646564207965742e0000604482015260640161059e565b610e1443600e55565b600f5460ff16610ea7576001600160a01b0384165f9081526005602052604090205460ff1680610e5b57506001600160a01b0383165f9081526005602052604090205460ff165b610ea75760405162461bcd60e51b815260206004820152601b60248201527f77616c783a2054726164696e67206e6f74206f70656e207965742e0000000000604482015260640161059e565b600f54600160b01b900460ff1615610ecb57610ec48484846110bd565b905061074e565b6001600160a01b0384165f9081526007602052604090205460ff168015610f0a57506001600160a01b0383165f9081526006602052604090205460ff16155b15610fb5575f600d54600c546012600a610f2491906117fe565b610f329063191338506116e8565b610f3c91906116e8565b610f4691906116ff565b905080831115610fb35760405162461bcd60e51b815260206004820152603260248201527f77616c783a204d61782062757920616d6f756e742065786365656465642e2054604482015271393c9030903637bbb2b91030b6b7bab73a1760711b606482015260840161059e565b505b6001600160a01b0384165f90815260026020526040902054610fd8908390611841565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff161561100c5782611016565b6110168484611174565b905061102184611212565b1561103457821561103457611034611276565b6001600160a01b0384165f90815260026020526040902054611057908290611854565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110aa9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383165f908152600260205260408120546110e0908390611841565b6001600160a01b038086165f90815260026020526040808220939093559085168152205461110f908390611854565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111629086815260200190565b60405180910390a35060019392505050565b6001600160a01b0382165f90815260076020526040812054819060ff16806111aa5750335f9081526007602052604090205460ff165b9050806111ba578291505061055f565b5f600b54600a54856111cc91906116e8565b6111d691906116ff565b305f908152600260205260408120805492935083929091906111f9908490611854565b9091555061120990508185611841565b95945050505050565b335f9081526007602052604081205460ff1615801561123b5750600f54600160b01b900460ff16155b801561125e57506001600160a01b0382165f9081526007602052604090205460ff165b801561055f575050600f54610100900460ff16919050565b600f805460ff60b01b1916600160b01b179055305f90815260026020526040812054908190036112a657506114e7565b5f60046112b48360036116e8565b6112be91906116ff565b90505f6112cb8284611841565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061130357611303611867565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561135a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137e919061187b565b8160018151811061139157611391611867565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b81524792919091169063791ac947906113da9087905f90879030904290600401611896565b5f604051808303815f87803b1580156113f1575f80fd5b505af1158015611403573d5f803e3d5ffd5b505050505f600382476114169190611841565b61142091906116ff565b600154600f5460405163f305d71960e01b8152306004820152602481018890525f6044820181905260648201526001600160a01b0362010000909204821660848201524260a4820152929350169063f305d71990839060c4015f604051808303818588803b158015611490575f80fd5b505af11580156114a2573d5f803e3d5ffd5b50505050507f6730af06a7a0b552d900fed41c1d468b459eaa290e6eefe61a94a339eabbec1c856040516114d891815260200190565b60405180910390a15050505050505b600f805460ff60b01b19169055565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461153f575f80fd5b50565b5f8060408385031215611553575f80fd5b823561155e8161152b565b946020939093013593505050565b5f6020828403121561157c575f80fd5b5035919050565b80358015158114611592575f80fd5b919050565b5f602082840312156115a7575f80fd5b61074e82611583565b5f602082840312156115c0575f80fd5b813561074e8161152b565b5f805f606084860312156115dd575f80fd5b83356115e88161152b565b925060208401356115f88161152b565b929592945050506040919091013590565b5f806040838503121561161a575f80fd5b50508035926020909101359150565b5f806040838503121561163a575f80fd5b82356116458161152b565b915060208301356116558161152b565b809150509250929050565b5f8060408385031215611671575f80fd5b823561167c8161152b565b915061168a60208401611583565b90509250929050565b60208082526021908201527f77616c783a2043616c6c6572206973206e6f742061207465616d206d656d62656040820152603960f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761055f5761055f6116d4565b5f8261171957634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b8085111561175857815f190482111561173e5761173e6116d4565b8085161561174b57918102915b93841c9390800290611723565b509250929050565b5f8261176e5750600161055f565b8161177a57505f61055f565b8160018114611790576002811461179a576117b6565b600191505061055f565b60ff8411156117ab576117ab6116d4565b50506001821b61055f565b5060208310610133831016604e8410600b84101617156117d9575081810a61055f565b6117e3838361171e565b805f19048211156117f6576117f66116d4565b029392505050565b5f61074e60ff841683611760565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561055f5761055f6116d4565b8082018082111561055f5761055f6116d4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561188b575f80fd5b815161074e8161152b565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118e65784516001600160a01b0316835293830193918301916001016118c1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c0229015a9f64cd0d16ba4c76d43fd15bc49710ed31b04e2940c5341daadcad064736f6c63430008190033

Deployed Bytecode Sourcemap

3575:9683:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6242:85;;;;;;;;;;-1:-1:-1;6314:5:0;;;;;;;;;;;;-1:-1:-1;;;6314:5:0;;;;6242:85;;;;;;;:::i;:::-;;;;;;;;6642:241;;;;;;;;;;-1:-1:-1;6642:241:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6642:241:0;893:187:1;7537:182:0;;;;;;;;;;-1:-1:-1;7537:182:0;;;;;:::i;:::-;;:::i;:::-;;5942:102;;;;;;;;;;;;;:::i;:::-;;;1416:25:1;;;1404:2;1389:18;5942:102:0;1270:177:1;7727:103:0;;;;;;;;;;-1:-1:-1;7727:103:0;;;;;:::i;:::-;;:::i;7439:90::-;;;;;;;;;;-1:-1:-1;7439:90:0;;;;;:::i;:::-;;:::i;8193:411::-;;;;;;;;;;-1:-1:-1;8193:411:0;;;;;:::i;:::-;;:::i;7838:158::-;;;;;;;;;;;;;:::i;6052:85::-;;;;;;;;;;-1:-1:-1;6052:85:0;;4014:2;2657:36:1;;2645:2;2630:18;6052:85:0;2515:184:1;12979:136:0;;;;;;;;;;-1:-1:-1;12979:136:0;;;;;:::i;:::-;;:::i;13123:132::-;;;;;;;;;;;;;:::i;7025:406::-;;;;;;;;;;-1:-1:-1;7025:406:0;;;;;:::i;:::-;;:::i;6335:119::-;;;;;;;;;;-1:-1:-1;6335:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6428:18:0;6401:7;6428:18;;;:9;:18;;;;;;;6335:119;3131:148;;;;;;;;;;;;;:::i;6891:126::-;;;;;;;;;;-1:-1:-1;6891:126:0;;;;;:::i;:::-;;:::i;2917:79::-;;;;;;;;;;-1:-1:-1;2955:7:0;2982:6;-1:-1:-1;;;;;2982:6:0;2917:79;;;-1:-1:-1;;;;;3121:32:1;;;3103:51;;3091:2;3076:18;2917:79:0;2957:203:1;6145:89:0;;;;;;;;;;-1:-1:-1;6219:7:0;;;;;;;;;;;;-1:-1:-1;;;6219:7:0;;;;6145:89;;4392:29;;;;;;;;;;;;;;;8004:181;;;;;;;;;;-1:-1:-1;8004:181:0;;;;;:::i;:::-;;:::i;4670:25::-;;;;;;;;;;;;;;;;6462:172;;;;;;;;;;-1:-1:-1;6462:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;6598:19:0;;;6571:7;6598:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6462:172;11824:123;;;;;;;;;;-1:-1:-1;11824:123:0;;;;;:::i;:::-;;:::i;3287:281::-;;;;;;;;;;-1:-1:-1;3287:281:0;;;;;:::i;:::-;;:::i;3778:24::-;;;;;;;;;;-1:-1:-1;3778:24:0;;;;-1:-1:-1;;;;;3778:24:0;;;11625:191;;;;;;;;;;-1:-1:-1;11625:191:0;;;;;:::i;:::-;;:::i;6642:241::-;6771:10;6742:4;6759:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6759:32:0;;;;;;;;;;:41;;;6816:37;6742:4;;6759:32;;6816:37;;;;6794:6;1416:25:1;;1404:2;1389:18;;1270:177;6816:37:0;;;;;;;;-1:-1:-1;6871:4:0;6642:241;;;;;:::o;7537:182::-;4864:9;;;;;-1:-1:-1;;;;;4864:9:0;2433:10;-1:-1:-1;;;;;4848:25:0;;4826:108;;;;-1:-1:-1;;;4826:108:0;;;;;;;:::i;:::-;;;;;;;;;7664:9:::1;::::0;7624:21:::1;::::0;7664:9;;::::1;-1:-1:-1::0;;;;;7664:9:0::1;7656:55;7707:3;7685:18;7697:6:::0;7624:21;7685:18:::1;:::i;:::-;7684:26;;;;:::i;:::-;7656:55;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7593:126;7537:182:::0;:::o;5942:102::-;5997:7;4072:15;4014:2;4072;:15;:::i;:::-;4057:31;;:11;:31;:::i;:::-;6017:19;;5942:102;:::o;7727:103::-;4864:9;;;;;-1:-1:-1;;;;;4864:9:0;2433:10;-1:-1:-1;;;;;4848:25:0;;4826:108;;;;-1:-1:-1;;;4826:108:0;;;;;;;:::i;:::-;7798:13:::1;:24:::0;;;::::1;;;;-1:-1:-1::0;;7798:24:0;;::::1;::::0;;;::::1;::::0;;7727:103::o;7439:90::-;3044:6;;-1:-1:-1;;;;;3044:6:0;2433:10;3044:22;3036:67;;;;-1:-1:-1;;;3036:67:0;;;;;;;:::i;:::-;7505:9:::1;:16:::0;;-1:-1:-1;;;;;7505:16:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;7505:16:0;;::::1;::::0;;;::::1;::::0;;7439:90::o;8193:411::-;-1:-1:-1;;;;;8348:19:0;;8327:4;8348:19;;;:11;:19;;;;;;;;8368:10;8348:31;;;;;;;;-1:-1:-1;;8348:52:0;8344:193;;-1:-1:-1;;;;;8468:19:0;;;;;;:11;:19;;;;;;;;8488:10;8468:31;;;;;;;;:57;;8519:6;;8468:57;:::i;:::-;-1:-1:-1;;;;;8417:19:0;;;;;;:11;:19;;;;;;;;8437:10;8417:31;;;;;;;:108;8344:193;8556:40;8570:6;8578:9;8589:6;8556:13;:40::i;:::-;8549:47;;8193:411;;;;;;:::o;7838:158::-;3044:6;;-1:-1:-1;;;;;3044:6:0;2433:10;3044:22;3036:67;;;;-1:-1:-1;;;3036:67:0;;;;;;;:::i;:::-;7901:16:::1;::::0;::::1;;7900:17;7892:26;;;::::0;::::1;;7929:16;:23:::0;;-1:-1:-1;;7929:23:0::1;7948:4;7929:23;::::0;;7976:12:::1;7963:10;:25:::0;7838:158::o;12979:136::-;3044:6;;-1:-1:-1;;;;;3044:6:0;2433:10;3044:22;3036:67;;;;-1:-1:-1;;;3036:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13065:35:0::1;;::::0;;;:16:::1;:35;::::0;;;;:42;;-1:-1:-1;;13065:42:0::1;13103:4;13065:42;::::0;;12979:136::o;13123:132::-;6428:9;:18;;;;3727:42;13172:7;6428:18;;;;;13172:7;;6428:18;4072:15;4014:2;4072;:15;:::i;:::-;4057:31;;:11;:31;:::i;:::-;13199:30;;;;:::i;:::-;:48;;;;:::i;7025:406::-;4864:9;;;;;-1:-1:-1;;;;;4864:9:0;2433:10;-1:-1:-1;;;;;4848:25:0;;4826:108;;;;-1:-1:-1;;;4826:108:0;;;;;;;:::i;:::-;7170:12:::1;;7153:13;:29;;7145:69;;;::::0;-1:-1:-1;;;7145:69:0;;7106:2:1;7145:69:0::1;::::0;::::1;7088:21:1::0;7145:2;7125:18;;;7118:30;7184:29;7164:18;;;7157:57;7231:18;;7145:69:0::1;6904:351:1::0;7145:69:0::1;7250:12;;7233:13;:29;;7225:69;;;::::0;-1:-1:-1;;;7225:69:0;;7106:2:1;7225:69:0::1;::::0;::::1;7088:21:1::0;7145:2;7125:18;;;7118:30;7184:29;7164:18;;;7157:57;7231:18;;7225:69:0::1;6904:351:1::0;7225:69:0::1;7305:12;:28:::0;;;7344:12:::1;:28:::0;;;7394:29:::1;7359:13:::0;7320;7394:29:::1;:::i;:::-;7383:8;:40:::0;-1:-1:-1;;7025:406:0:o;3131:148::-;3044:6;;-1:-1:-1;;;;;3044:6:0;2433:10;3044:22;3036:67;;;;-1:-1:-1;;;3036:67:0;;;;;;;:::i;:::-;3238:1:::1;3222:6:::0;;3201:40:::1;::::0;-1:-1:-1;;;;;3222:6:0;;::::1;::::0;3201:40:::1;::::0;3238:1;;3201:40:::1;3269:1;3252:19:::0;;-1:-1:-1;;;;;;3252:19:0::1;::::0;;3131:148::o;6891:126::-;6950:4;6974:35;6982:7;-1:-1:-1;;6974:7:0;:35::i;8004:181::-;8109:4;8133:44;8147:10;8159:9;8170:6;8133:13;:44::i;11824:123::-;3044:6;;-1:-1:-1;;;;;3044:6:0;2433:10;3044:22;3036:67;;;;-1:-1:-1;;;3036:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11908:22:0;;;::::1;;::::0;;;:14:::1;:22;::::0;;;;:31;;-1:-1:-1;;11908:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11824:123::o;3287:281::-;3044:6;;-1:-1:-1;;;;;3044:6:0;2433:10;3044:22;3036:67;;;;-1:-1:-1;;;3036:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3390:22:0;::::1;3368:110;;;::::0;-1:-1:-1;;;3368:110:0;;7592:2:1;3368:110:0::1;::::0;::::1;7574:21:1::0;7631:2;7611:18;;;7604:30;7670:34;7650:18;;;7643:62;-1:-1:-1;;;7721:18:1;;;7714:36;7767:19;;3368:110:0::1;7390:402:1::0;3368:110:0::1;3515:6;::::0;;3494:38:::1;::::0;-1:-1:-1;;;;;3494:38:0;;::::1;::::0;3515:6;::::1;::::0;3494:38:::1;::::0;::::1;3543:6;:17:::0;;-1:-1:-1;;;;;;3543:17:0::1;-1:-1:-1::0;;;;;3543:17:0;;;::::1;::::0;;;::::1;::::0;;3287:281::o;11625:191::-;4864:9;;;;;-1:-1:-1;;;;;4864:9:0;2433:10;-1:-1:-1;;;;;4848:25:0;;4826:108;;;;-1:-1:-1;;;4826:108:0;;;;;;;:::i;:::-;11721:4:::1;-1:-1:-1::0;;;;;11715:10:0::1;:2;-1:-1:-1::0;;;;;11715:10:0::1;::::0;11707:63:::1;;;::::0;-1:-1:-1;;;11707:63:0;;7999:2:1;11707:63:0::1;::::0;::::1;7981:21:1::0;8038:2;8018:18;;;8011:30;8077:34;8057:18;;;8050:62;-1:-1:-1;;;8128:18:1;;;8121:38;8176:19;;11707:63:0::1;7797:404:1::0;11707:63:0::1;-1:-1:-1::0;;;;;11781:18:0;;;::::1;;::::0;;;:14:::1;:18;::::0;;;;:27;;-1:-1:-1;;11781:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11625:191::o;8612:1709::-;8738:4;-1:-1:-1;;;;;8763:20:0;;8755:56;;;;-1:-1:-1;;;8755:56:0;;8408:2:1;8755:56:0;;;8390:21:1;8447:2;8427:18;;;8420:30;8486:25;8466:18;;;8459:53;8529:18;;8755:56:0;8206:347:1;8755:56:0;-1:-1:-1;;;;;8830:23:0;;8822:57;;;;-1:-1:-1;;;8822:57:0;;8760:2:1;8822:57:0;;;8742:21:1;8799:2;8779:18;;;8772:30;-1:-1:-1;;;8818:18:1;;;8811:51;8879:18;;8822:57:0;8558:345:1;8822:57:0;8907:1;8898:6;:10;8890:50;;;;-1:-1:-1;;;8890:50:0;;9110:2:1;8890:50:0;;;9092:21:1;9149:2;9129:18;;;9122:30;9188:29;9168:18;;;9161:57;9235:18;;8890:50:0;8908:351:1;8890:50:0;-1:-1:-1;;;;;8959:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;8959:27:0;8951:66;;;;-1:-1:-1;;;8951:66:0;;9466:2:1;8951:66:0;;;9448:21:1;9505:2;9485:18;;;9478:30;9544:28;9524:18;;;9517:56;9590:18;;8951:66:0;9264:350:1;8951:66:0;10396:10;;:15;;;9034:40;;-1:-1:-1;;;;;;9049:25:0;;;;;;:14;:25;;;;;;;;9034:40;9030:212;;;-1:-1:-1;;;;;9117:24:0;;;;;;:16;:24;;;;;;;;9091:116;;;;-1:-1:-1;;;9091:116:0;;9821:2:1;9091:116:0;;;9803:21:1;9860:2;9840:18;;;9833:30;9899:32;9879:18;;;9872:60;9949:18;;9091:116:0;9619:354:1;9091:116:0;9222:8;10478:12;10465:10;:25;10427:71;9222:8;9259:16;;;;9254:194;;-1:-1:-1;;;;;9318:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;9346:27:0;;;;;;:16;:27;;;;;;;;9318:55;9292:144;;;;-1:-1:-1;;;9292:144:0;;10180:2:1;9292:144:0;;;10162:21:1;10219:2;10199:18;;;10192:30;10258:29;10238:18;;;10231:57;10305:18;;9292:144:0;9978:351:1;9292:144:0;9464:6;;-1:-1:-1;;;9464:6:0;;;;9460:87;;;9494:41;9509:6;9517:9;9528:6;9494:14;:41::i;:::-;9487:48;;;;9460:87;-1:-1:-1;;;;;9563:22:0;;;;;;:14;:22;;;;;;;;:52;;;;-1:-1:-1;;;;;;9590:25:0;;;;;;:14;:25;;;;;;;;9589:26;9563:52;9559:320;;;9632:17;9704;;9668:15;;4014:2;4072;:15;;;;:::i;:::-;4057:31;;:11;:31;:::i;:::-;9653:30;;;;:::i;:::-;9652:69;;;;:::i;:::-;9632:89;;9772:9;9762:6;:19;;9736:131;;;;-1:-1:-1;;;9736:131:0;;10536:2:1;9736:131:0;;;10518:21:1;10575:2;10555:18;;;10548:30;10614:34;10594:18;;;10587:62;-1:-1:-1;;;10665:18:1;;;10658:48;10723:19;;9736:131:0;10334:414:1;9736:131:0;9617:262;9559:320;-1:-1:-1;;;;;9911:17:0;;;;;;:9;:17;;;;;;:26;;9931:6;;9911:26;:::i;:::-;-1:-1:-1;;;;;9891:17:0;;;;;;:9;:17;;;;;;;;:46;;;;10933:11;:19;;;;;;;;10932:20;9975:86;;10055:6;9975:86;;;10010:29;10021:9;10032:6;10010:10;:29::i;:::-;9950:111;;10078:25;10093:9;10078:14;:25::i;:::-;10074:84;;;10124:10;;10120:26;;10136:10;:8;:10::i;:::-;-1:-1:-1;;;;;10193:20:0;;;;;;:9;:20;;;;;;:37;;10216:14;;10193:37;:::i;:::-;-1:-1:-1;;;;;10170:20:0;;;;;;;:9;:20;;;;;;;:60;;;;10248:43;;;;;;;;;;10276:14;1416:25:1;;1404:2;1389:18;;1270:177;10248:43:0;;;;;;;;-1:-1:-1;10309:4:0;;8612:1709;-1:-1:-1;;;;8612:1709:0:o;10506:334::-;-1:-1:-1;;;;;10670:17:0;;10633:4;10670:17;;;:9;:17;;;;;;:26;;10690:6;;10670:26;:::i;:::-;-1:-1:-1;;;;;10650:17:0;;;;;;;:9;:17;;;;;;:46;;;;10730:20;;;;;;;:29;;10753:6;;10730:29;:::i;:::-;-1:-1:-1;;;;;10707:20:0;;;;;;;:9;:20;;;;;;;:52;;;;10775:35;;;;;;;;;;10803:6;1416:25:1;;1404:2;1389:18;;1270:177;10775:35:0;;;;;;;;-1:-1:-1;10828:4:0;10506:334;;;;;:::o;10968:446::-;-1:-1:-1;;;;;11109:25:0;;11066:7;11109:25;;;:14;:25;;;;;;11066:7;;11109:25;;;:68;;-1:-1:-1;11166:10:0;11151:26;;;;:14;:26;;;;;;;;11109:68;11086:91;;11195:15;11190:62;;11234:6;11227:13;;;;;11190:62;11264:17;11306:14;;11294:8;;11285:6;:17;;;;:::i;:::-;11284:36;;;;:::i;:::-;11349:4;11331:24;;;;:9;:24;;;;;:37;;11264:56;;-1:-1:-1;11264:56:0;;11331:24;;;:37;;11264:56;;11331:37;:::i;:::-;;;;-1:-1:-1;11388:18:0;;-1:-1:-1;11397:9:0;11388:6;:18;:::i;:::-;11381:25;10968:446;-1:-1:-1;;;;;10968:446:0:o;11422:195::-;11541:10;11488:4;11526:26;;;:14;:26;;;;;;;;11525:27;:38;;;;-1:-1:-1;11557:6:0;;-1:-1:-1;;;11557:6:0;;;;11556:7;11525:38;:67;;;;-1:-1:-1;;;;;;11567:25:0;;;;;;:14;:25;;;;;;;;11525:67;:84;;;;-1:-1:-1;;11596:13:0;;;;;;;;11505:104;-1:-1:-1;11422:195:0:o;11955:1016::-;5011:6;:13;;-1:-1:-1;;;;5011:13:0;-1:-1:-1;;;5011:13:0;;;12042:4:::1;5011:13:::0;12024:24;;;:9:::1;:24;::::0;;;;;;12065:14;;;12061:27:::1;;12081:7;;;12061:27;12100:20;12141:1;12124:13;:9:::0;12136:1:::1;12124:13;:::i;:::-;12123:19;;;;:::i;:::-;12100:42:::0;-1:-1:-1;12153:26:0::1;12182:24;12100:42:::0;12182:9;:24:::1;:::i;:::-;12243:16;::::0;;12257:1:::1;12243:16:::0;;;;;::::1;::::0;;12153:53;;-1:-1:-1;12219:21:0::1;::::0;12243:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12243:16:0::1;12219:40;;12288:4;12270;12275:1;12270:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12270:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12314:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12314:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12270:7;;12314:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12304:4;12309:1;12304:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12304:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12401:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12401:188:0;;12367:21:::1;::::0;12401:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12473:12;;12340:24:::1;::::0;12516:4;;12543::::1;::::0;12563:15:::1;::::0;12401:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12602:29;12692:1;12672:16;12635:21;:53;;;;:::i;:::-;12634:59;;;;:::i;:::-;12706:6;::::0;12866:9:::1;::::0;12706:210:::1;::::0;-1:-1:-1;;;12706:210:0;;12781:4:::1;12706:210;::::0;::::1;12599:34:1::0;12649:18;;;12642:34;;;-1:-1:-1;12692:18:1;;;12685:34;;;12735:18;;;12728:34;-1:-1:-1;;;;;12866:9:0;;;::::1;::::0;::::1;12778:19:1::0;;;12771:44;12890:15:0::1;12831:19:1::0;;;12824:35;12602:91:0;;-1:-1:-1;12706:6:0::1;::::0;:22:::1;::::0;12602:91;;12533:19:1;;12706:210:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;12934:29;12950:12;12934:29;;;;1416:25:1::0;;1404:2;1389:18;;1270:177;12934:29:0::1;;;;;;;;11993:978;;;;;;5035:1;5047:6:::0;:14;;-1:-1:-1;;;;5047:14:0;;;11955:1016::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:315::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1085:180::-;1144:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:52;;;1213:1;1210;1203:12;1165:52;-1:-1:-1;1236:23:1;;1085:180;-1:-1:-1;1085:180:1:o;1452:160::-;1517:20;;1573:13;;1566:21;1556:32;;1546:60;;1602:1;1599;1592:12;1546:60;1452:160;;;:::o;1617:180::-;1673:6;1726:2;1714:9;1705:7;1701:23;1697:32;1694:52;;;1742:1;1739;1732:12;1694:52;1765:26;1781:9;1765:26;:::i;1802:247::-;1861:6;1914:2;1902:9;1893:7;1889:23;1885:32;1882:52;;;1930:1;1927;1920:12;1882:52;1969:9;1956:23;1988:31;2013:5;1988:31;:::i;2054:456::-;2131:6;2139;2147;2200:2;2188:9;2179:7;2175:23;2171:32;2168:52;;;2216:1;2213;2206:12;2168:52;2255:9;2242:23;2274:31;2299:5;2274:31;:::i;:::-;2324:5;-1:-1:-1;2381:2:1;2366:18;;2353:32;2394:33;2353:32;2394:33;:::i;:::-;2054:456;;2446:7;;-1:-1:-1;;;2500:2:1;2485:18;;;;2472:32;;2054:456::o;2704:248::-;2772:6;2780;2833:2;2821:9;2812:7;2808:23;2804:32;2801:52;;;2849:1;2846;2839:12;2801:52;-1:-1:-1;;2872:23:1;;;2942:2;2927:18;;;2914:32;;-1:-1:-1;2704:248:1:o;3165:388::-;3233:6;3241;3294:2;3282:9;3273:7;3269:23;3265:32;3262:52;;;3310:1;3307;3300:12;3262:52;3349:9;3336:23;3368:31;3393:5;3368:31;:::i;:::-;3418:5;-1:-1:-1;3475:2:1;3460:18;;3447:32;3488:33;3447:32;3488:33;:::i;:::-;3540:7;3530:17;;;3165:388;;;;;:::o;3558:315::-;3623:6;3631;3684:2;3672:9;3663:7;3659:23;3655:32;3652:52;;;3700:1;3697;3690:12;3652:52;3739:9;3726:23;3758:31;3783:5;3758:31;:::i;:::-;3808:5;-1:-1:-1;3832:35:1;3863:2;3848:18;;3832:35;:::i;:::-;3822:45;;3558:315;;;;;:::o;4104:397::-;4306:2;4288:21;;;4345:2;4325:18;;;4318:30;4384:34;4379:2;4364:18;;4357:62;-1:-1:-1;;;4450:2:1;4435:18;;4428:31;4491:3;4476:19;;4104:397::o;4506:127::-;4567:10;4562:3;4558:20;4555:1;4548:31;4598:4;4595:1;4588:15;4622:4;4619:1;4612:15;4638:168;4711:9;;;4742;;4759:15;;;4753:22;;4739:37;4729:71;;4780:18;;:::i;4811:217::-;4851:1;4877;4867:132;;4921:10;4916:3;4912:20;4909:1;4902:31;4956:4;4953:1;4946:15;4984:4;4981:1;4974:15;4867:132;-1:-1:-1;5013:9:1;;4811:217::o;5033:416::-;5122:1;5159:5;5122:1;5173:270;5194:7;5184:8;5181:21;5173:270;;;5253:4;5249:1;5245:6;5241:17;5235:4;5232:27;5229:53;;;5262:18;;:::i;:::-;5312:7;5302:8;5298:22;5295:55;;;5332:16;;;;5295:55;5411:22;;;;5371:15;;;;5173:270;;;5177:3;5033:416;;;;;:::o;5454:806::-;5503:5;5533:8;5523:80;;-1:-1:-1;5574:1:1;5588:5;;5523:80;5622:4;5612:76;;-1:-1:-1;5659:1:1;5673:5;;5612:76;5704:4;5722:1;5717:59;;;;5790:1;5785:130;;;;5697:218;;5717:59;5747:1;5738:10;;5761:5;;;5785:130;5822:3;5812:8;5809:17;5806:43;;;5829:18;;:::i;:::-;-1:-1:-1;;5885:1:1;5871:16;;5900:5;;5697:218;;5999:2;5989:8;5986:16;5980:3;5974:4;5971:13;5967:36;5961:2;5951:8;5948:16;5943:2;5937:4;5934:12;5930:35;5927:77;5924:159;;;-1:-1:-1;6036:19:1;;;6068:5;;5924:159;6115:34;6140:8;6134:4;6115:34;:::i;:::-;6185:6;6181:1;6177:6;6173:19;6164:7;6161:32;6158:58;;;6196:18;;:::i;:::-;6234:20;;5454:806;-1:-1:-1;;;5454:806:1:o;6265:140::-;6323:5;6352:47;6393:4;6383:8;6379:19;6373:4;6352:47;:::i;6410:356::-;6612:2;6594:21;;;6631:18;;;6624:30;6690:34;6685:2;6670:18;;6663:62;6757:2;6742:18;;6410:356::o;6771:128::-;6838:9;;;6859:11;;;6856:37;;;6873:18;;:::i;7260:125::-;7325:9;;;7346:10;;;7343:36;;;7359:18;;:::i;10885:127::-;10946:10;10941:3;10937:20;10934:1;10927:31;10977:4;10974:1;10967:15;11001:4;10998:1;10991:15;11017:251;11087:6;11140:2;11128:9;11119:7;11115:23;11111:32;11108:52;;;11156:1;11153;11146:12;11108:52;11188:9;11182:16;11207:31;11232:5;11207:31;:::i;11273:980::-;11535:4;11583:3;11572:9;11568:19;11614:6;11603:9;11596:25;11640:2;11678:6;11673:2;11662:9;11658:18;11651:34;11721:3;11716:2;11705:9;11701:18;11694:31;11745:6;11780;11774:13;11811:6;11803;11796:22;11849:3;11838:9;11834:19;11827:26;;11888:2;11880:6;11876:15;11862:29;;11909:1;11919:195;11933:6;11930:1;11927:13;11919:195;;;11998:13;;-1:-1:-1;;;;;11994:39:1;11982:52;;12089:15;;;;12054:12;;;;12030:1;11948:9;11919:195;;;-1:-1:-1;;;;;;;12170:32:1;;;;12165:2;12150:18;;12143:60;-1:-1:-1;;;12234:3:1;12219:19;12212:35;12131:3;11273:980;-1:-1:-1;;;11273:980:1:o

Swarm Source

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