ETH Price: $2,515.62 (-5.94%)

Token

The Great Reset (ARISE)
 

Overview

Max Total Supply

1,000,000,000 ARISE

Holders

226

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,499,697.147810030108662715 ARISE

Value
$0.00
0x6566a36d5fE34986bc0f283A4e8C9BEf0F5a1793
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:
TheGreatReset

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-17
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }
    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

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

interface 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 IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract TheGreatReset is IERC20, Ownable {
    using Address for address;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "The Great Reset";
    string constant _symbol = "ARISE";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 _maxBuyTxAmount = (_totalSupply * 1) / 500; //0.2%
    uint256 _maxSellTxAmount = (_totalSupply * 1) / 500; //0.2%
    uint256 _maxWalletSize = (_totalSupply * 1) / 500; //0.2%

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) public lastSell;
    mapping (address => uint256) public lastBuy;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public liquidityCreator;

    uint256 marketingFee = 10;
    uint256 marketingSellFee = 90;
    uint256 liquidityFee = 0;
    uint256 liquiditySellFee = 0;
    uint256 totalBuyFee = marketingFee + liquidityFee;
    uint256 totalSellFee = marketingSellFee + liquiditySellFee;
    uint256 feeDenominator = 100;
    bool public transferTax = false;

    address payable public liquidityFeeReceiver;
    address payable public marketingFeeReceiver;

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address v3RouterAddress =0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
    mapping (address => bool) liquidityPools;


    uint256 public launchedAt;
    uint256 public launchedTime;
    uint256 public deadBlocks;
    bool tradingEnabled = false;
    bool limitsEnabled = false;
    uint256 public rateLimit = 2;

    bool public swapEnabled = false;
    uint256 public swapThreshold = _totalSupply / 1000;
    uint256 public swapMinimum = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    mapping (address => bool) teamMember;

    modifier onlyTeam() {
        require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
        _;
    }


    constructor () {
        router = IDEXRouter(routerAddress);
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        _allowances[owner()][v3RouterAddress] = type(uint256).max;
        _allowances[address(this)][v3RouterAddress] = type(uint256).max;

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

        liquidityFeeReceiver = payable(owner());
        marketingFeeReceiver = payable(owner());

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[routerAddress] = true;
        isTxLimitExempt[v3RouterAddress] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;

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

    receive() external payable { }

    function totalSupply() external view 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 getOwner() external view returns (address) { return owner(); }
    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
    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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function setTeamMember(address _team, bool _enabled) external onlyOwner {
        teamMember[_team] = _enabled;
    }

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
        uint256 amountETH = address(this).balance;

        if(amountETH > 0) {
            (bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}("");
            require(sent,"Failed to transfer funds");
        }
    }

    function openTrading() external onlyTeam {
        deadBlocks = 0;
        tradingEnabled = 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), "ERC20: transfer from 0x0");
        require(recipient != address(0), "ERC20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if(!launched() && liquidityPools[recipient]) {
            require(liquidityCreator[sender], "Liquidity not added yet.");
            launch();
        }
        if(!tradingEnabled){
            require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet.");
        }

        if (limitsEnabled) {
            checkTxLimit(sender, recipient, amount);
            if (!liquidityPools[recipient] && recipient != DEAD) {
                if (!isTxLimitExempt[recipient] && !liquidityCreator[sender]) {
                    checkWalletLimit(recipient, amount);
                }
            }
        }

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

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

        uint256 amountReceived = amount;

        if(shouldTakeFee(sender, recipient)) {
            amountReceived = takeFee(recipient, amount);
            if(shouldSwapBack(recipient) && amount > 0) swapBack(amount);
        }

        _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;
        launchedTime = block.timestamp;
    }

    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 checkWalletLimit(address recipient, uint256 amount) internal view {
        uint256 walletLimit = _maxWalletSize;
        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal {
        if (isTxLimitExempt[sender] || isTxLimitExempt[recipient]) return;
        require(amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
        require(lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");

        if (liquidityPools[recipient]) {
            lastSell[sender] = block.number;
        } else if (shouldTakeFee(sender, recipient)) {
            lastBuy[recipient] = block.number;
            if (tx.origin != recipient)
                lastBuy[tx.origin] = block.number;
        }
    }

    function shouldTakeFee(address sender, address recipient) public view returns (bool) {
        if(!transferTax && !liquidityPools[recipient] && !liquidityPools[sender]) return false;
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }
        if (selling) return totalSellFee;
        return totalBuyFee;
    }

    function takeFee(address recipient, uint256 amount) internal returns (uint256) {
        bool selling = liquidityPools[recipient];
        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;

        _balances[address(this)] += feeAmount;

        return amount - feeAmount;
    }

    function changeLimitsEnabled(bool _limitsEnabled) external onlyOwner {
        limitsEnabled = _limitsEnabled;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return !liquidityPools[msg.sender]
        && !inSwap
        && swapEnabled
        && liquidityPools[recipient]
        && _balances[address(this)] >= swapMinimum
        && totalBuyFee + totalSellFee > 0;
    }

    function swapBack(uint256 amount) internal swapping {
        uint256 totalFee = totalBuyFee + totalSellFee;
        uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
        if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];

        uint256 totalLiquidityFee = liquidityFee + liquiditySellFee;
        uint256 amountToLiquify = (amountToSwap * totalLiquidityFee / 2) / totalFee;
        amountToSwap -= amountToLiquify;

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance - balanceBefore;
        uint256 totalETHFee = totalFee - (totalLiquidityFee / 2);

        uint256 amountETHLiquidity = (amountETH * totalLiquidityFee / 2) / totalETHFee;
        uint256 amountETHMarketing = amountETH - amountETHLiquidity;

        if (amountETHMarketing > 0) {
            (bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}("");
            if(!sentMarketing) {
                //Failed to transfer to marketing wallet
            }
        }

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityFeeReceiver,
                block.timestamp
            );
        }

        emit FundsDistributed(amountETHMarketing, amountETHLiquidity, amountToLiquify);
    }

    function addLiquidityPool(address lp, bool isPool) external onlyOwner {
        liquidityPools[lp] = isPool;
    }

    function setRateLimit(uint256 rate) external onlyOwner {
        require(rate <= 60 seconds);
        rateLimit = rate;
    }

    function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
        require(_maxSellTxAmount > (_totalSupply * 1) / 1000, "Max sell must be bigger 0.1%");

    }

    function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
        require(numerator > 0 && divisor > 0 && divisor <= 10000);
        _maxWalletSize = (_totalSupply * numerator) / divisor;
    }

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

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

    function setFees(uint256 _liquidityFee, uint256 _liquiditySellFee, uint256 _marketingFee, uint256 _marketingSellFee, uint256 _feeDenominator) external onlyOwner {
        require(((_liquidityFee + _liquiditySellFee) / 2) * 2 == (_liquidityFee + _liquiditySellFee), "Liquidity fee must be an even number due to rounding");
        liquidityFee = _liquidityFee;
        liquiditySellFee = _liquiditySellFee;
        marketingFee = _marketingFee;
        marketingSellFee = _marketingSellFee;
        totalBuyFee = _liquidityFee + _marketingFee;
        totalSellFee = _liquiditySellFee + _marketingSellFee;
        feeDenominator = _feeDenominator;
        require(totalBuyFee + totalSellFee <= feeDenominator / 2, "Fees bigger than 50");
        emit FeesSet(totalBuyFee, totalSellFee, feeDenominator);
    }

    function toggleTransferTax() external onlyOwner {
        transferTax = !transferTax;
    }

    function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
        liquidityFeeReceiver = payable(_liquidityFeeReceiver);
        marketingFeeReceiver = payable(_marketingFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
        require(_denominator > 0);
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / _denominator;
        swapMinimum = _swapMinimum * (10 ** _decimals);
    }

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

    event FundsDistributed(uint256 marketingETH, uint256 liquidityETH, uint256 liquidityTokens);
    event FeesSet(uint256 totalBuyFees, uint256 totalSellFees, uint256 denominator);
}

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":"totalBuyFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSellFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"FeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","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":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","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":"approveMax","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":[{"internalType":"bool","name":"_limitsEnabled","type":"bool"}],"name":"changeLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","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":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_liquiditySellFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_marketingSellFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"shouldTakeFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toggleTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326012600a62000501565b6200004290633b9aca0062000519565b6003556101f4600354600162000059919062000519565b6200006591906200053b565b6004556101f460035460016200007c919062000519565b6200008891906200053b565b6005556101f460035460016200009f919062000519565b620000ab91906200053b565b600655600a600e55605a600f5560006010556000601155601054600e54620000d491906200055e565b601255601154600f54620000e991906200055e565b60135560646014556015805460ff19908116909155601880546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556019805490911673ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b179055601e805461ffff191690556002601f5560208054909116905560035462000171906103e8906200053b565b6021556127106003546200018691906200053b565b6022553480156200019657600080fd5b50620001a2336200039c565b601854601780546001600160a01b0319166001600160a01b0390921691909117905560001960086000620001de6000546001600160a01b031690565b6001600160a01b039081168252602080830193909352604091820160009081206018805484168352908552838220959095553081526008808552838220955490921681529390925282206000199081905591620002436000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601980548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600b85528382208054600160ff199182168117909255835485168452600d87528584208054821683179055835460158054610100600160a81b0319169187166101008102929092179055601680546001600160a01b0319169091179055918352600c865284832080548316821790558254841683528483208054831682179055601854841683528483208054831682179055955483168252838220805482168717905585548316825283822080549091169095179094556003548454821685526007845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000579565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000443578160001904821115620004275762000427620003ec565b808516156200043557918102915b93841c939080029062000407565b509250929050565b6000826200045c57506001620004fb565b816200046b57506000620004fb565b81600181146200048457600281146200048f57620004af565b6001915050620004fb565b60ff841115620004a357620004a3620003ec565b50506001821b620004fb565b5060208310610133831016604e8410600b8410161715620004d4575081810a620004fb565b620004e0838362000402565b8060001904821115620004f757620004f7620003ec565b0290505b92915050565b60006200051260ff8416836200044b565b9392505050565b6000816000190483118215151615620005365762000536620003ec565b500290565b6000826200055957634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005745762000574620003ec565b500190565b61245980620005896000396000f3fe6080604052600436106102cd5760003560e01c8063893d20e811610175578063c9567bf9116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d146108f8578063f8821a6214610918578063f887ea401461092e578063fabb0b4f1461094e57600080fd5b8063e96fada214610898578063f1f3bca3146108b8578063f2fde38b146108d857600080fd5b8063c9567bf9146107b8578063ce657cce146107cd578063d0889358146107ed578063d912b2ce1461080d578063dae39f9214610822578063dd62ed3e1461085257600080fd5b8063abe57e701161012e578063abe57e70146106fb578063bafe446b1461071b578063bf56b37114610730578063bfa21d6a14610746578063c1adf7bc1461076b578063c287184e1461079857600080fd5b8063893d20e81461060d5780638b42507f1461063f5780638da5cb5b1461066f57806395d89b411461068d578063a4b45c00146106bb578063a9059cbb146106db57600080fd5b8063507139351161023457806363a803e1116101ed5780636f4ce428116101c75780636f4ce4281461057b57806370a08231146105a8578063715018a6146105de5780638124f7ac146105f357600080fd5b806363a803e11461052c578063658d4b7f146105415780636ddd17131461056157600080fd5b8063507139351461048057806356a227f2146104a0578063571ac8b0146104c05780635804f1e4146104e057806360bba03d146104f657806361e08e721461051657600080fd5b806323b872dd1161028657806323b872dd146103bf5780632b112e49146103df578063313ce567146103f4578063332402f8146104105780633f4218e014610430578063492a937b1461046057600080fd5b80630445b667146102d957806304a66b481461030257806306fdde0314610324578063095ea7b31461036557806318160ddd14610395578063234e9494146103aa57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102ef60215481565b6040519081526020015b60405180910390f35b34801561030e57600080fd5b5061032261031d366004611f4c565b610964565b005b34801561033057600080fd5b5060408051808201909152600f81526e151a194811dc99585d0814995cd95d608a1b60208201525b6040516102f99190611f87565b34801561037157600080fd5b50610385610380366004611ff1565b610ae6565b60405190151581526020016102f9565b3480156103a157600080fd5b506003546102ef565b3480156103b657600080fd5b506102ef610b53565b3480156103cb57600080fd5b506103856103da36600461201d565b610b73565b3480156103eb57600080fd5b506102ef610c08565b34801561040057600080fd5b50604051601281526020016102f9565b34801561041c57600080fd5b5061038561042b36600461205e565b610c49565b34801561043c57600080fd5b5061038561044b366004612097565b600b6020526000908152604090205460ff1681565b34801561046c57600080fd5b5061032261047b3660046120c9565b610cf0565b34801561048c57600080fd5b5061032261049b3660046120fe565b610d23565b3480156104ac57600080fd5b506103226104bb36600461212a565b610e08565b3480156104cc57600080fd5b506103856104db366004612097565b610f3d565b3480156104ec57600080fd5b506102ef601c5481565b34801561050257600080fd5b506103226105113660046120c9565b610f4b565b34801561052257600080fd5b506102ef601f5481565b34801561053857600080fd5b506102ef610f7e565b34801561054d57600080fd5b5061032261055c3660046120c9565b610f99565b34801561056d57600080fd5b506020546103859060ff1681565b34801561058757600080fd5b506102ef610596366004612097565b60096020526000908152604090205481565b3480156105b457600080fd5b506102ef6105c3366004612097565b6001600160a01b031660009081526007602052604090205490565b3480156105ea57600080fd5b50610322610fcc565b3480156105ff57600080fd5b506015546103859060ff1681565b34801561061957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102f9565b34801561064b57600080fd5b5061038561065a366004612097565b600c6020526000908152604090205460ff1681565b34801561067b57600080fd5b506000546001600160a01b0316610627565b34801561069957600080fd5b50604080518082019091526005815264415249534560d81b6020820152610358565b3480156106c757600080fd5b506103226106d636600461205e565b610fe0565b3480156106e757600080fd5b506103856106f6366004611ff1565b611020565b34801561070757600080fd5b5061032261071636600461214f565b61102d565b34801561072757600080fd5b506102ef61107c565b34801561073c57600080fd5b506102ef601b5481565b34801561075257600080fd5b506015546106279061010090046001600160a01b031681565b34801561077757600080fd5b506102ef610786366004612097565b600a6020526000908152604090205481565b3480156107a457600080fd5b506103226107b3366004612171565b611097565b3480156107c457600080fd5b506103226110b2565b3480156107d957600080fd5b506103226107e836600461218a565b61113e565b3480156107f957600080fd5b506103226108083660046121a5565b611160565b34801561081957600080fd5b506103226111b2565b34801561082e57600080fd5b5061038561083d366004612097565b600d6020526000908152604090205460ff1681565b34801561085e57600080fd5b506102ef61086d36600461205e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108a457600080fd5b50601654610627906001600160a01b031681565b3480156108c457600080fd5b506102ef6108d336600461218a565b6111ce565b3480156108e457600080fd5b506103226108f3366004612097565b61120b565b34801561090457600080fd5b506103226109133660046120c9565b611284565b34801561092457600080fd5b506102ef60225481565b34801561093a57600080fd5b50601754610627906001600160a01b031681565b34801561095a57600080fd5b506102ef601d5481565b61096c6112b7565b61097684866121ee565b600261098286886121ee565b61098c9190612206565b610997906002612228565b14610a065760405162461bcd60e51b815260206004820152603460248201527f4c697175696469747920666565206d75737420626520616e206576656e206e756044820152736d6265722064756520746f20726f756e64696e6760601b60648201526084015b60405180910390fd5b60108590556011849055600e839055600f829055610a2483866121ee565b601255610a3182856121ee565b6013556014819055610a44600282612206565b601354601254610a5491906121ee565b1115610a985760405162461bcd60e51b815260206004820152601360248201527204665657320626967676572207468616e20353606c1b60448201526064016109fd565b60125460135460145460408051938452602084019290925282820152517f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f459181900360600190a15050505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b419086815260200190565b60405180910390a35060015b92915050565b6000610b616012600a61232b565b600554610b6e9190612206565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610bf3576001600160a01b0384166000908152600860209081526040808320338452909152902054610bce90839061233a565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610bfe848484611311565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610c3c916121ee565b600354610b6e919061233a565b60155460009060ff16158015610c7857506001600160a01b0382166000908152601a602052604090205460ff16155b8015610c9d57506001600160a01b0383166000908152601a602052604090205460ff16155b15610caa57506000610b4d565b6001600160a01b0383166000908152600b602052604090205460ff16158015610c015750506001600160a01b03166000908152600b602052604090205460ff1615919050565b610cf86112b7565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b610d2b6112b7565b600083118015610d3b5750600082115b8015610d475750600081115b8015610d5557506127108111155b610d5e57600080fd5b8083600354610d6d9190612228565b610d779190612206565b6004556003548190610d8a908490612228565b610d949190612206565b6005556003546103e890610da9906001612228565b610db39190612206565b60055411610e035760405162461bcd60e51b815260206004820152601c60248201527f4d61782073656c6c206d7573742062652062696767657220302e31250000000060448201526064016109fd565b505050565b3360009081526024602052604090205460ff1680610e3057506000546001600160a01b031633145b610e7c5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f742061207465616d206d656d626572000000000060448201526064016109fd565b478015610e035760006001600160a01b0383166064610e9b8685612228565b610ea59190612206565b604051600081818185875af1925050503d8060008114610ee1576040519150601f19603f3d011682016040523d82523d6000602084013e610ee6565b606091505b5050905080610f375760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f207472616e736665722066756e6473000000000000000060448201526064016109fd565b50505050565b6000610b4d82600019610ae6565b610f536112b7565b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6000610f8c6012600a61232b565b600654610b6e9190612206565b610fa16112b7565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610fd46112b7565b610fde600061175a565b565b610fe86112b7565b60158054610100600160a81b0319166101006001600160a01b0394851602179055601680546001600160a01b03191691909216179055565b6000610c01338484611311565b6110356112b7565b6000821180156110455750600081115b801561105357506127108111155b61105c57600080fd5b808260035461106b9190612228565b6110759190612206565b6006555050565b600061108a6012600a61232b565b600454610b6e9190612206565b61109f6112b7565b603c8111156110ad57600080fd5b601f55565b3360009081526024602052604090205460ff16806110da57506000546001600160a01b031633145b6111265760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f742061207465616d206d656d626572000000000060448201526064016109fd565b6000601d55601e805460ff1916600117905543601b55565b6111466112b7565b601e80549115156101000261ff0019909216919091179055565b6111686112b7565b6000821161117557600080fd5b6020805460ff1916841515179055600354611191908390612206565b6021556111a06012600a61232b565b6111aa9082612228565b602255505050565b6111ba6112b7565b6015805460ff19811660ff90911615179055565b600043601d54601b546111e191906121ee565b106111f5576001601454610b4d919061233a565b811561120357505060135490565b505060125490565b6112136112b7565b6001600160a01b0381166112785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109fd565b6112818161175a565b50565b61128c6112b7565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fde5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109fd565b60006001600160a01b0384166113695760405162461bcd60e51b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d20307830000000000000000060448201526064016109fd565b6001600160a01b0383166113b85760405162461bcd60e51b8152602060048201526016602482015275045524332303a207472616e7366657220746f203078360541b60448201526064016109fd565b600082116114005760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016109fd565b6001600160a01b03841660009081526007602052604090205482111561145f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016109fd565b601b5415801561148757506001600160a01b0383166000908152601a602052604090205460ff165b15611501576001600160a01b0384166000908152600d602052604090205460ff166114f45760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016109fd565b61150143601b5542601c55565b601e5460ff1661158e576001600160a01b0384166000908152600d602052604090205460ff168061154a57506001600160a01b0383166000908152600d602052604090205460ff165b61158e5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016109fd565b601e54610100900460ff1615611636576115a98484846117aa565b6001600160a01b0383166000908152601a602052604090205460ff161580156115e057506001546001600160a01b03848116911614155b15611636576001600160a01b0383166000908152600c602052604090205460ff1615801561162757506001600160a01b0384166000908152600d602052604090205460ff16155b1561163657611636838361195d565b60235460ff16156116535761164c8484846119e2565b9050610c01565b6001600160a01b03841660009081526007602052604090205461167790839061233a565b6001600160a01b0385166000908152600760205260409020558161169b8585610c49565b156116cf576116aa8484611a9c565b90506116b584611b1a565b80156116c15750600083115b156116cf576116cf83611bac565b6001600160a01b0384166000908152600760205260409020546116f39082906121ee565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117479085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600c602052604090205460ff16806117e957506001600160a01b0382166000908152600c602052604090205460ff165b156117f357505050565b6001600160a01b0383166000908152601a602052604090205460ff1661181b5760055461181f565b6004545b8111156118625760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109fd565b601f546001600160a01b0383166000908152600a60205260409020544391611889916121ee565b11156118d75760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016109fd565b6001600160a01b0382166000908152601a602052604090205460ff16156119165750506001600160a01b03166000908152600960205260409020439055565b6119208383610c49565b15610e03576001600160a01b0382166000818152600a602052604090204390553214610e0357326000908152600a60205260409020439055505050565b6006546001600160a01b03831660009081526007602052604090205481906119869084906121ee565b1115610e035760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016109fd565b6001600160a01b038316600090815260076020526040812054611a0690839061233a565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611a369083906121ee565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a8a9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0382166000908152601a602052604081205460145460ff909116908290611ac9836111ce565b611ad39086612228565b611add9190612206565b30600090815260076020526040812080549293508392909190611b019084906121ee565b90915550611b119050818561233a565b95945050505050565b336000908152601a602052604081205460ff16158015611b3d575060235460ff16155b8015611b4b575060205460ff165b8015611b6f57506001600160a01b0382166000908152601a602052604090205460ff165b8015611b8c57506022543060009081526007602052604090205410155b8015610b4d57506000601354601254611ba591906121ee565b1192915050565b6023805460ff19166001179055601354601254600091611bcb916121ee565b905060006021548310611be057602154611be2565b825b30600090815260076020526040902054909150811115611c0e5750306000908152600760205260409020545b6000601154601054611c2091906121ee565b90506000836002611c318486612228565b611c3b9190612206565b611c459190612206565b9050611c51818461233a565b60408051600280825260608201835292955060009290916020830190803683370190505090503081600081518110611c8b57611c8b612351565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d089190612367565b81600181518110611d1b57611d1b612351565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac94790611d65908890600090879030904290600401612384565b600060405180830381600087803b158015611d7f57600080fd5b505af1158015611d93573d6000803e3d6000fd5b5050505060008147611da5919061233a565b90506000611db4600287612206565b611dbe908961233a565b90506000816002611dcf8986612228565b611dd99190612206565b611de39190612206565b90506000611df1828561233a565b90508015611e50576016546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611e46576040519150601f19603f3d011682016040523d82523d6000602084013e611e4b565b606091505b505050505b8615611ef45760175460155460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015611ecb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ef091906123f5565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506023805460ff19169055505050505050505050565b600080600080600060a08688031215611f6457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b81811015611fb457858101830151858201604001528201611f98565b81811115611fc6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461128157600080fd5b6000806040838503121561200457600080fd5b823561200f81611fdc565b946020939093013593505050565b60008060006060848603121561203257600080fd5b833561203d81611fdc565b9250602084013561204d81611fdc565b929592945050506040919091013590565b6000806040838503121561207157600080fd5b823561207c81611fdc565b9150602083013561208c81611fdc565b809150509250929050565b6000602082840312156120a957600080fd5b8135610c0181611fdc565b803580151581146120c457600080fd5b919050565b600080604083850312156120dc57600080fd5b82356120e781611fdc565b91506120f5602084016120b4565b90509250929050565b60008060006060848603121561211357600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561213d57600080fd5b82359150602083013561208c81611fdc565b6000806040838503121561216257600080fd5b50508035926020909101359150565b60006020828403121561218357600080fd5b5035919050565b60006020828403121561219c57600080fd5b610c01826120b4565b6000806000606084860312156121ba57600080fd5b6121c3846120b4565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612201576122016121d8565b500190565b60008261222357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612242576122426121d8565b500290565b600181815b80851115612282578160001904821115612268576122686121d8565b8085161561227557918102915b93841c939080029061224c565b509250929050565b60008261229957506001610b4d565b816122a657506000610b4d565b81600181146122bc57600281146122c6576122e2565b6001915050610b4d565b60ff8411156122d7576122d76121d8565b50506001821b610b4d565b5060208310610133831016604e8410600b8410161715612305575081810a610b4d565b61230f8383612247565b8060001904821115612323576123236121d8565b029392505050565b6000610c0160ff84168361228a565b60008282101561234c5761234c6121d8565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561237957600080fd5b8151610c0181611fdc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123d45784516001600160a01b0316835293830193918301916001016123af565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240a57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200a8b63f91968916c3b7e65e2fa906d5e9a594bb7b930946017dad909505ca68764736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c8063893d20e811610175578063c9567bf9116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d146108f8578063f8821a6214610918578063f887ea401461092e578063fabb0b4f1461094e57600080fd5b8063e96fada214610898578063f1f3bca3146108b8578063f2fde38b146108d857600080fd5b8063c9567bf9146107b8578063ce657cce146107cd578063d0889358146107ed578063d912b2ce1461080d578063dae39f9214610822578063dd62ed3e1461085257600080fd5b8063abe57e701161012e578063abe57e70146106fb578063bafe446b1461071b578063bf56b37114610730578063bfa21d6a14610746578063c1adf7bc1461076b578063c287184e1461079857600080fd5b8063893d20e81461060d5780638b42507f1461063f5780638da5cb5b1461066f57806395d89b411461068d578063a4b45c00146106bb578063a9059cbb146106db57600080fd5b8063507139351161023457806363a803e1116101ed5780636f4ce428116101c75780636f4ce4281461057b57806370a08231146105a8578063715018a6146105de5780638124f7ac146105f357600080fd5b806363a803e11461052c578063658d4b7f146105415780636ddd17131461056157600080fd5b8063507139351461048057806356a227f2146104a0578063571ac8b0146104c05780635804f1e4146104e057806360bba03d146104f657806361e08e721461051657600080fd5b806323b872dd1161028657806323b872dd146103bf5780632b112e49146103df578063313ce567146103f4578063332402f8146104105780633f4218e014610430578063492a937b1461046057600080fd5b80630445b667146102d957806304a66b481461030257806306fdde0314610324578063095ea7b31461036557806318160ddd14610395578063234e9494146103aa57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102ef60215481565b6040519081526020015b60405180910390f35b34801561030e57600080fd5b5061032261031d366004611f4c565b610964565b005b34801561033057600080fd5b5060408051808201909152600f81526e151a194811dc99585d0814995cd95d608a1b60208201525b6040516102f99190611f87565b34801561037157600080fd5b50610385610380366004611ff1565b610ae6565b60405190151581526020016102f9565b3480156103a157600080fd5b506003546102ef565b3480156103b657600080fd5b506102ef610b53565b3480156103cb57600080fd5b506103856103da36600461201d565b610b73565b3480156103eb57600080fd5b506102ef610c08565b34801561040057600080fd5b50604051601281526020016102f9565b34801561041c57600080fd5b5061038561042b36600461205e565b610c49565b34801561043c57600080fd5b5061038561044b366004612097565b600b6020526000908152604090205460ff1681565b34801561046c57600080fd5b5061032261047b3660046120c9565b610cf0565b34801561048c57600080fd5b5061032261049b3660046120fe565b610d23565b3480156104ac57600080fd5b506103226104bb36600461212a565b610e08565b3480156104cc57600080fd5b506103856104db366004612097565b610f3d565b3480156104ec57600080fd5b506102ef601c5481565b34801561050257600080fd5b506103226105113660046120c9565b610f4b565b34801561052257600080fd5b506102ef601f5481565b34801561053857600080fd5b506102ef610f7e565b34801561054d57600080fd5b5061032261055c3660046120c9565b610f99565b34801561056d57600080fd5b506020546103859060ff1681565b34801561058757600080fd5b506102ef610596366004612097565b60096020526000908152604090205481565b3480156105b457600080fd5b506102ef6105c3366004612097565b6001600160a01b031660009081526007602052604090205490565b3480156105ea57600080fd5b50610322610fcc565b3480156105ff57600080fd5b506015546103859060ff1681565b34801561061957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102f9565b34801561064b57600080fd5b5061038561065a366004612097565b600c6020526000908152604090205460ff1681565b34801561067b57600080fd5b506000546001600160a01b0316610627565b34801561069957600080fd5b50604080518082019091526005815264415249534560d81b6020820152610358565b3480156106c757600080fd5b506103226106d636600461205e565b610fe0565b3480156106e757600080fd5b506103856106f6366004611ff1565b611020565b34801561070757600080fd5b5061032261071636600461214f565b61102d565b34801561072757600080fd5b506102ef61107c565b34801561073c57600080fd5b506102ef601b5481565b34801561075257600080fd5b506015546106279061010090046001600160a01b031681565b34801561077757600080fd5b506102ef610786366004612097565b600a6020526000908152604090205481565b3480156107a457600080fd5b506103226107b3366004612171565b611097565b3480156107c457600080fd5b506103226110b2565b3480156107d957600080fd5b506103226107e836600461218a565b61113e565b3480156107f957600080fd5b506103226108083660046121a5565b611160565b34801561081957600080fd5b506103226111b2565b34801561082e57600080fd5b5061038561083d366004612097565b600d6020526000908152604090205460ff1681565b34801561085e57600080fd5b506102ef61086d36600461205e565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108a457600080fd5b50601654610627906001600160a01b031681565b3480156108c457600080fd5b506102ef6108d336600461218a565b6111ce565b3480156108e457600080fd5b506103226108f3366004612097565b61120b565b34801561090457600080fd5b506103226109133660046120c9565b611284565b34801561092457600080fd5b506102ef60225481565b34801561093a57600080fd5b50601754610627906001600160a01b031681565b34801561095a57600080fd5b506102ef601d5481565b61096c6112b7565b61097684866121ee565b600261098286886121ee565b61098c9190612206565b610997906002612228565b14610a065760405162461bcd60e51b815260206004820152603460248201527f4c697175696469747920666565206d75737420626520616e206576656e206e756044820152736d6265722064756520746f20726f756e64696e6760601b60648201526084015b60405180910390fd5b60108590556011849055600e839055600f829055610a2483866121ee565b601255610a3182856121ee565b6013556014819055610a44600282612206565b601354601254610a5491906121ee565b1115610a985760405162461bcd60e51b815260206004820152601360248201527204665657320626967676572207468616e20353606c1b60448201526064016109fd565b60125460135460145460408051938452602084019290925282820152517f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f459181900360600190a15050505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b419086815260200190565b60405180910390a35060015b92915050565b6000610b616012600a61232b565b600554610b6e9190612206565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610bf3576001600160a01b0384166000908152600860209081526040808320338452909152902054610bce90839061233a565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610bfe848484611311565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610c3c916121ee565b600354610b6e919061233a565b60155460009060ff16158015610c7857506001600160a01b0382166000908152601a602052604090205460ff16155b8015610c9d57506001600160a01b0383166000908152601a602052604090205460ff16155b15610caa57506000610b4d565b6001600160a01b0383166000908152600b602052604090205460ff16158015610c015750506001600160a01b03166000908152600b602052604090205460ff1615919050565b610cf86112b7565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b610d2b6112b7565b600083118015610d3b5750600082115b8015610d475750600081115b8015610d5557506127108111155b610d5e57600080fd5b8083600354610d6d9190612228565b610d779190612206565b6004556003548190610d8a908490612228565b610d949190612206565b6005556003546103e890610da9906001612228565b610db39190612206565b60055411610e035760405162461bcd60e51b815260206004820152601c60248201527f4d61782073656c6c206d7573742062652062696767657220302e31250000000060448201526064016109fd565b505050565b3360009081526024602052604090205460ff1680610e3057506000546001600160a01b031633145b610e7c5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f742061207465616d206d656d626572000000000060448201526064016109fd565b478015610e035760006001600160a01b0383166064610e9b8685612228565b610ea59190612206565b604051600081818185875af1925050503d8060008114610ee1576040519150601f19603f3d011682016040523d82523d6000602084013e610ee6565b606091505b5050905080610f375760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f207472616e736665722066756e6473000000000000000060448201526064016109fd565b50505050565b6000610b4d82600019610ae6565b610f536112b7565b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6000610f8c6012600a61232b565b600654610b6e9190612206565b610fa16112b7565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610fd46112b7565b610fde600061175a565b565b610fe86112b7565b60158054610100600160a81b0319166101006001600160a01b0394851602179055601680546001600160a01b03191691909216179055565b6000610c01338484611311565b6110356112b7565b6000821180156110455750600081115b801561105357506127108111155b61105c57600080fd5b808260035461106b9190612228565b6110759190612206565b6006555050565b600061108a6012600a61232b565b600454610b6e9190612206565b61109f6112b7565b603c8111156110ad57600080fd5b601f55565b3360009081526024602052604090205460ff16806110da57506000546001600160a01b031633145b6111265760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f742061207465616d206d656d626572000000000060448201526064016109fd565b6000601d55601e805460ff1916600117905543601b55565b6111466112b7565b601e80549115156101000261ff0019909216919091179055565b6111686112b7565b6000821161117557600080fd5b6020805460ff1916841515179055600354611191908390612206565b6021556111a06012600a61232b565b6111aa9082612228565b602255505050565b6111ba6112b7565b6015805460ff19811660ff90911615179055565b600043601d54601b546111e191906121ee565b106111f5576001601454610b4d919061233a565b811561120357505060135490565b505060125490565b6112136112b7565b6001600160a01b0381166112785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109fd565b6112818161175a565b50565b61128c6112b7565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fde5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109fd565b60006001600160a01b0384166113695760405162461bcd60e51b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d20307830000000000000000060448201526064016109fd565b6001600160a01b0383166113b85760405162461bcd60e51b8152602060048201526016602482015275045524332303a207472616e7366657220746f203078360541b60448201526064016109fd565b600082116114005760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016109fd565b6001600160a01b03841660009081526007602052604090205482111561145f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016109fd565b601b5415801561148757506001600160a01b0383166000908152601a602052604090205460ff165b15611501576001600160a01b0384166000908152600d602052604090205460ff166114f45760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016109fd565b61150143601b5542601c55565b601e5460ff1661158e576001600160a01b0384166000908152600d602052604090205460ff168061154a57506001600160a01b0383166000908152600d602052604090205460ff165b61158e5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016109fd565b601e54610100900460ff1615611636576115a98484846117aa565b6001600160a01b0383166000908152601a602052604090205460ff161580156115e057506001546001600160a01b03848116911614155b15611636576001600160a01b0383166000908152600c602052604090205460ff1615801561162757506001600160a01b0384166000908152600d602052604090205460ff16155b1561163657611636838361195d565b60235460ff16156116535761164c8484846119e2565b9050610c01565b6001600160a01b03841660009081526007602052604090205461167790839061233a565b6001600160a01b0385166000908152600760205260409020558161169b8585610c49565b156116cf576116aa8484611a9c565b90506116b584611b1a565b80156116c15750600083115b156116cf576116cf83611bac565b6001600160a01b0384166000908152600760205260409020546116f39082906121ee565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117479085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600c602052604090205460ff16806117e957506001600160a01b0382166000908152600c602052604090205460ff165b156117f357505050565b6001600160a01b0383166000908152601a602052604090205460ff1661181b5760055461181f565b6004545b8111156118625760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109fd565b601f546001600160a01b0383166000908152600a60205260409020544391611889916121ee565b11156118d75760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016109fd565b6001600160a01b0382166000908152601a602052604090205460ff16156119165750506001600160a01b03166000908152600960205260409020439055565b6119208383610c49565b15610e03576001600160a01b0382166000818152600a602052604090204390553214610e0357326000908152600a60205260409020439055505050565b6006546001600160a01b03831660009081526007602052604090205481906119869084906121ee565b1115610e035760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016109fd565b6001600160a01b038316600090815260076020526040812054611a0690839061233a565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611a369083906121ee565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a8a9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0382166000908152601a602052604081205460145460ff909116908290611ac9836111ce565b611ad39086612228565b611add9190612206565b30600090815260076020526040812080549293508392909190611b019084906121ee565b90915550611b119050818561233a565b95945050505050565b336000908152601a602052604081205460ff16158015611b3d575060235460ff16155b8015611b4b575060205460ff165b8015611b6f57506001600160a01b0382166000908152601a602052604090205460ff165b8015611b8c57506022543060009081526007602052604090205410155b8015610b4d57506000601354601254611ba591906121ee565b1192915050565b6023805460ff19166001179055601354601254600091611bcb916121ee565b905060006021548310611be057602154611be2565b825b30600090815260076020526040902054909150811115611c0e5750306000908152600760205260409020545b6000601154601054611c2091906121ee565b90506000836002611c318486612228565b611c3b9190612206565b611c459190612206565b9050611c51818461233a565b60408051600280825260608201835292955060009290916020830190803683370190505090503081600081518110611c8b57611c8b612351565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d089190612367565b81600181518110611d1b57611d1b612351565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac94790611d65908890600090879030904290600401612384565b600060405180830381600087803b158015611d7f57600080fd5b505af1158015611d93573d6000803e3d6000fd5b5050505060008147611da5919061233a565b90506000611db4600287612206565b611dbe908961233a565b90506000816002611dcf8986612228565b611dd99190612206565b611de39190612206565b90506000611df1828561233a565b90508015611e50576016546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611e46576040519150601f19603f3d011682016040523d82523d6000602084013e611e4b565b606091505b505050505b8615611ef45760175460155460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015611ecb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ef091906123f5565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506023805460ff19169055505050505050505050565b600080600080600060a08688031215611f6457600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b81811015611fb457858101830151858201604001528201611f98565b81811115611fc6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461128157600080fd5b6000806040838503121561200457600080fd5b823561200f81611fdc565b946020939093013593505050565b60008060006060848603121561203257600080fd5b833561203d81611fdc565b9250602084013561204d81611fdc565b929592945050506040919091013590565b6000806040838503121561207157600080fd5b823561207c81611fdc565b9150602083013561208c81611fdc565b809150509250929050565b6000602082840312156120a957600080fd5b8135610c0181611fdc565b803580151581146120c457600080fd5b919050565b600080604083850312156120dc57600080fd5b82356120e781611fdc565b91506120f5602084016120b4565b90509250929050565b60008060006060848603121561211357600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561213d57600080fd5b82359150602083013561208c81611fdc565b6000806040838503121561216257600080fd5b50508035926020909101359150565b60006020828403121561218357600080fd5b5035919050565b60006020828403121561219c57600080fd5b610c01826120b4565b6000806000606084860312156121ba57600080fd5b6121c3846120b4565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612201576122016121d8565b500190565b60008261222357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612242576122426121d8565b500290565b600181815b80851115612282578160001904821115612268576122686121d8565b8085161561227557918102915b93841c939080029061224c565b509250929050565b60008261229957506001610b4d565b816122a657506000610b4d565b81600181146122bc57600281146122c6576122e2565b6001915050610b4d565b60ff8411156122d7576122d76121d8565b50506001821b610b4d565b5060208310610133831016604e8410600b8410161715612305575081810a610b4d565b61230f8383612247565b8060001904821115612323576123236121d8565b029392505050565b6000610c0160ff84168361228a565b60008282101561234c5761234c6121d8565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561237957600080fd5b8151610c0181611fdc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123d45784516001600160a01b0316835293830193918301916001016123af565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240a57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200a8b63f91968916c3b7e65e2fa906d5e9a594bb7b930946017dad909505ca68764736f6c634300080f0033

Deployed Bytecode Sourcemap

7020:14743:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8897:50;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8897:50:0;;;;;;;;19956:818;;;;;;;;;;-1:-1:-1;19956:818:0;;;;;:::i;:::-;;:::i;:::-;;10457:71;;;;;;;;;;-1:-1:-1;10520:5:0;;;;;;;;;;;;-1:-1:-1;;;10520:5:0;;;;10457:71;;;;;;;:::i;11198:216::-;;;;;;;;;;-1:-1:-1;11198:216:0;;;;;:::i;:::-;;:::i;:::-;;;1878:14:1;;1871:22;1853:41;;1841:2;1826:18;11198:216:0;1713:187:1;10205:88:0;;;;;;;;;;-1:-1:-1;10278:12:0;;10205:88;;10722:107;;;;;;;;;;;;;:::i;12334:337::-;;;;;;;;;;-1:-1:-1;12334:337:0;;;;;:::i;:::-;;:::i;21436:138::-;;;;;;;;;;;;;:::i;10299:71::-;;;;;;;;;;-1:-1:-1;10299:71:0;;7348:2;2508:36:1;;2496:2;2481:18;10299:71:0;2366:184:1;15685:255:0;;;;;;;;;;-1:-1:-1;15685:255:0;;;;;:::i;:::-;;:::i;7832:44::-;;;;;;;;;;-1:-1:-1;7832:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18762:116;;;;;;;;;;-1:-1:-1;18762:116:0;;;;;:::i;:::-;;:::i;19022:437::-;;;;;;;;;;-1:-1:-1;19022:437:0;;;;;:::i;:::-;;:::i;11679:329::-;;;;;;;;;;-1:-1:-1;11679:329:0;;;;;:::i;:::-;;:::i;11422:122::-;;;;;;;;;;-1:-1:-1;11422:122:0;;;;;:::i;:::-;;:::i;8689:27::-;;;;;;;;;;;;;;;;11552:119;;;;;;;;;;-1:-1:-1;11552:119:0;;;;;:::i;:::-;;:::i;8822:28::-;;;;;;;;;;;;;;;;10835:105;;;;;;;;;;;;;:::i;19694:119::-;;;;;;;;;;-1:-1:-1;19694:119:0;;;;;:::i;:::-;;:::i;8859:31::-;;;;;;;;;;-1:-1:-1;8859:31:0;;;;;;;;7729:44;;;;;;;;;;-1:-1:-1;7729:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;10946:105;;;;;;;;;;-1:-1:-1;10946:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11030:18:0;11012:7;11030:18;;;:9;:18;;;;;;;10946:105;6506:103;;;;;;;;;;;;;:::i;8286:31::-;;;;;;;;;;-1:-1:-1;8286:31:0;;;;;;;;10534:71;;;;;;;;;;-1:-1:-1;10577:7:0;6348:6;-1:-1:-1;;;;;6348:6:0;10534:71;;;-1:-1:-1;;;;;4490:32:1;;;4472:51;;4460:2;4445:18;10534:71:0;4326:203:1;7883:48:0;;;;;;;;;;-1:-1:-1;7883:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6275:87;;;;;;;;;;-1:-1:-1;6321:7:0;6348:6;-1:-1:-1;;;;;6348:6:0;6275:87;;10376:75;;;;;;;;;;-1:-1:-1;10441:7:0;;;;;;;;;;;;-1:-1:-1;;;10441:7:0;;;;10376:75;;20883:242;;;;;;;;;;-1:-1:-1;20883:242:0;;;;;:::i;:::-;;:::i;12170:156::-;;;;;;;;;;-1:-1:-1;12170:156:0;;;;;:::i;:::-;;:::i;19467:219::-;;;;;;;;;;-1:-1:-1;19467:219:0;;;;;:::i;:::-;;:::i;10611:105::-;;;;;;;;;;;;;:::i;8657:25::-;;;;;;;;;;;;;;;;8326:43;;;;;;;;;;-1:-1:-1;8326:43:0;;;;;;;-1:-1:-1;;;;;8326:43:0;;;7780;;;;;;;;;;-1:-1:-1;7780:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;18886:128;;;;;;;;;;-1:-1:-1;18886:128:0;;;;;:::i;:::-;;:::i;12016:142::-;;;;;;;;;;;;;:::i;16497:118::-;;;;;;;;;;-1:-1:-1;16497:118:0;;;;;:::i;:::-;;:::i;21133:295::-;;;;;;;;;;-1:-1:-1;21133:295:0;;;;;:::i;:::-;;:::i;20782:93::-;;;;;;;;;;;;;:::i;7938:49::-;;;;;;;;;;-1:-1:-1;7938:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11057:133;;;;;;;;;;-1:-1:-1;11057:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11159:19:0;;;11141:7;11159:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11057:133;8376:43;;;;;;;;;;-1:-1:-1;8376:43:0;;;;-1:-1:-1;;;;;8376:43:0;;;15948:228;;;;;;;;;;-1:-1:-1;15948:228:0;;;;;:::i;:::-;;:::i;6615:201::-;;;;;;;;;;-1:-1:-1;6615:201:0;;;;;:::i;:::-;;:::i;19821:127::-;;;;;;;;;;-1:-1:-1;19821:127:0;;;;;:::i;:::-;;:::i;8954:49::-;;;;;;;;;;;;;;;;8428:24;;;;;;;;;;-1:-1:-1;8428:24:0;;;;-1:-1:-1;;;;;8428:24:0;;;8723:25;;;;;;;;;;;;;;;;19956:818;6236:13;:11;:13::i;:::-;20186:33:::1;20202:17:::0;20186:13;:33:::1;:::i;:::-;20175:1;20138:33;20154:17:::0;20138:13;:33:::1;:::i;:::-;20137:39;;;;:::i;:::-;20136:45;::::0;20180:1:::1;20136:45;:::i;:::-;:84;20128:149;;;::::0;-1:-1:-1;;;20128:149:0;;6790:2:1;20128:149:0::1;::::0;::::1;6772:21:1::0;6829:2;6809:18;;;6802:30;6868:34;6848:18;;;6841:62;-1:-1:-1;;;6919:18:1;;;6912:50;6979:19;;20128:149:0::1;;;;;;;;;20288:12;:28:::0;;;20327:16:::1;:36:::0;;;20374:12:::1;:28:::0;;;20413:16:::1;:36:::0;;;20474:29:::1;20389:13:::0;20303;20474:29:::1;:::i;:::-;20460:11;:43:::0;20529:37:::1;20549:17:::0;20529;:37:::1;:::i;:::-;20514:12;:52:::0;20577:14:::1;:32:::0;;;20658:18:::1;20675:1;20594:15:::0;20658:18:::1;:::i;:::-;20642:12;;20628:11;;:26;;;;:::i;:::-;:48;;20620:80;;;::::0;-1:-1:-1;;;20620:80:0;;7211:2:1;20620:80:0::1;::::0;::::1;7193:21:1::0;7250:2;7230:18;;;7223:30;-1:-1:-1;;;7269:18:1;;;7262:49;7328:18;;20620:80:0::1;7009:343:1::0;20620:80:0::1;20724:11;::::0;20737:12:::1;::::0;20751:14:::1;::::0;20716:50:::1;::::0;;7559:25:1;;;7615:2;7600:18;;7593:34;;;;7643:18;;;7636:34;20716:50:0;::::1;::::0;;;;7547:2:1;20716:50:0;;::::1;19956:818:::0;;;;;:::o;11198:216::-;11302:10;11273:4;11290:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11290:32:0;;;;;;;;;;:41;;;11347:37;11273:4;;11290:32;;11347:37;;;;11325:6;160:25:1;;148:2;133:18;;14:177;11347:37:0;;;;;;;;-1:-1:-1;11402:4:0;11198:216;;;;;:::o;10722:107::-;10772:7;10810:15;7348:2;10810;:15;:::i;:::-;10790:16;;:36;;;;:::i;:::-;10783:43;;10722:107;:::o;12334:337::-;-1:-1:-1;;;;;12454:19:0;;12434:4;12454:19;;;:11;:19;;;;;;;;12474:10;12454:31;;;;;;;;-1:-1:-1;;12454:52:0;12451:153;;-1:-1:-1;;;;;12552:19:0;;;;;;:11;:19;;;;;;;;12572:10;12552:31;;;;;;;;:40;;12586:6;;12552:40;:::i;:::-;-1:-1:-1;;;;;12518:19:0;;;;;;:11;:19;;;;;;;;12538:10;12518:31;;;;;;;:74;12451:153;12623:40;12637:6;12645:9;12656:6;12623:13;:40::i;:::-;12616:47;;12334:337;;;;;;:::o;21436:138::-;21560:4;;-1:-1:-1;;;;;21560:4:0;;;21489:7;11030:18;;;:9;:18;;;;;;;21542:4;;;;;11030:18;;;;;21489:7;;21532:33;;;:::i;:::-;21516:12;;:50;;;;:::i;15685:255::-;15785:11;;15764:4;;15785:11;;15784:12;:42;;;;-1:-1:-1;;;;;;15801:25:0;;;;;;:14;:25;;;;;;;;15800:26;15784:42;:69;;;;-1:-1:-1;;;;;;15831:22:0;;;;;;:14;:22;;;;;;;;15830:23;15784:69;15781:86;;;-1:-1:-1;15862:5:0;15855:12;;15781:86;-1:-1:-1;;;;;15886:19:0;;;;;;:11;:19;;;;;;;;15885:20;:47;;;;-1:-1:-1;;;;;;;15910:22:0;;;;;:11;:22;;;;;;;;15909:23;;15878:54;-1:-1:-1;15685:255:0:o;18762:116::-;6236:13;:11;:13::i;:::-;-1:-1:-1;;;;;18843:18:0;;;::::1;;::::0;;;:14:::1;:18;::::0;;;;:27;;-1:-1:-1;;18843:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18762:116::o;19022:437::-;6236:13;:11;:13::i;:::-;19157:1:::1;19142:12;:16;:37;;;;;19178:1;19162:13;:17;19142:37;:52;;;;;19193:1;19183:7;:11;19142:52;:72;;;;;19209:5;19198:7;:16;;19142:72;19134:81;;;::::0;::::1;;19276:7;19260:12;19245;;:27;;;;:::i;:::-;19244:39;;;;:::i;:::-;19226:15;:57:::0;19314:12:::1;::::0;19346:7;;19314:28:::1;::::0;19329:13;;19314:28:::1;:::i;:::-;19313:40;;;;:::i;:::-;19294:16;:59:::0;19392:12:::1;::::0;19412:4:::1;::::0;19392:16:::1;::::0;19407:1:::1;19392:16;:::i;:::-;19391:25;;;;:::i;:::-;19372:16;;:44;19364:85;;;::::0;-1:-1:-1;;;19364:85:0;;9396:2:1;19364:85:0::1;::::0;::::1;9378:21:1::0;9435:2;9415:18;;;9408:30;9474;9454:18;;;9447:58;9522:18;;19364:85:0::1;9194:352:1::0;19364:85:0::1;19022:437:::0;;;:::o;11679:329::-;4405:10;9177:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;6321:7:0;6348:6;-1:-1:-1;;;;;6348:6:0;9205:10;:21;9177:49;9169:89;;;;-1:-1:-1;;;9169:89:0;;9753:2:1;9169:89:0;;;9735:21:1;9792:2;9772:18;;;9765:30;9831:29;9811:18;;;9804:57;9878:18;;9169:89:0;9551:351:1;9169:89:0;11794:21:::1;11831:13:::0;;11828:173:::1;;11862:9;-1:-1:-1::0;;;;;11877:8:0;::::1;11926:3;11894:28;11906:16:::0;11894:9;:28:::1;:::i;:::-;11893:36;;;;:::i;:::-;11877:57;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11861:73;;;11957:4;11949:40;;;::::0;-1:-1:-1;;;11949:40:0;;10319:2:1;11949:40:0::1;::::0;::::1;10301:21:1::0;10358:2;10338:18;;;10331:30;10397:26;10377:18;;;10370:54;10441:18;;11949:40:0::1;10117:348:1::0;11949:40:0::1;11846:155;11763:245;11679:329:::0;;:::o;11422:122::-;11477:4;11501:35;11509:7;-1:-1:-1;;11501:7:0;:35::i;11552:119::-;6236:13;:11;:13::i;:::-;-1:-1:-1;;;;;11635:17:0;;;::::1;;::::0;;;:10:::1;:17;::::0;;;;:28;;-1:-1:-1;;11635:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11552:119::o;10835:105::-;10885:7;10921:15;7348:2;10921;:15;:::i;:::-;10903:14;;:34;;;;:::i;19694:119::-;6236:13;:11;:13::i;:::-;-1:-1:-1;;;;;19777:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19777:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19694:119::o;6506:103::-;6236:13;:11;:13::i;:::-;6571:30:::1;6598:1;6571:18;:30::i;:::-;6506:103::o:0;20883:242::-;6236:13;:11;:13::i;:::-;21000:20:::1;:53:::0;;-1:-1:-1;;;;;;21000:53:0::1;;-1:-1:-1::0;;;;;21000:53:0;;::::1;;;::::0;;21064:20:::1;:53:::0;;-1:-1:-1;;;;;;21064:53:0::1;::::0;;;::::1;;::::0;;20883:242::o;12170:156::-;12250:4;12274:44;12288:10;12300:9;12311:6;12274:13;:44::i;19467:219::-;6236:13;:11;:13::i;:::-;19577:1:::1;19565:9;:13;:28;;;;;19592:1;19582:7;:11;19565:28;:48;;;;;19608:5;19597:7;:16;;19565:48;19557:57;;;::::0;::::1;;19671:7;19658:9;19643:12;;:24;;;;:::i;:::-;19642:36;;;;:::i;:::-;19625:14;:53:::0;-1:-1:-1;;19467:219:0:o;10611:105::-;10660:7;10697:15;7348:2;10697;:15;:::i;:::-;10678;;:35;;;;:::i;18886:128::-;6236:13;:11;:13::i;:::-;18968:10:::1;18960:4;:18;;18952:27;;;::::0;::::1;;18990:9;:16:::0;18886:128::o;12016:142::-;4405:10;9177:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;6321:7:0;6348:6;-1:-1:-1;;;;;6348:6:0;9205:10;:21;9177:49;9169:89;;;;-1:-1:-1;;;9169:89:0;;9753:2:1;9169:89:0;;;9735:21:1;9792:2;9772:18;;;9765:30;9831:29;9811:18;;;9804:57;9878:18;;9169:89:0;9551:351:1;9169:89:0;12081:1:::1;12068:10;:14:::0;12093::::1;:21:::0;;-1:-1:-1;;12093:21:0::1;12110:4;12093:21;::::0;;12138:12:::1;12125:10;:25:::0;12016:142::o;16497:118::-;6236:13;:11;:13::i;:::-;16577::::1;:30:::0;;;::::1;;;;-1:-1:-1::0;;16577:30:0;;::::1;::::0;;;::::1;::::0;;16497:118::o;21133:295::-;6236:13;:11;:13::i;:::-;21274:1:::1;21259:12;:16;21251:25;;;::::0;::::1;;21287:11;:22:::0;;-1:-1:-1;;21287:22:0::1;::::0;::::1;;;::::0;;21336:12:::1;::::0;:27:::1;::::0;21351:12;;21336:27:::1;:::i;:::-;21320:13;:43:::0;21404:15:::1;7348:2;21404;:15;:::i;:::-;21388:32;::::0;:12;:32:::1;:::i;:::-;21374:11;:46:::0;-1:-1:-1;;;21133:295:0:o;20782:93::-;6236:13;:11;:13::i;:::-;20856:11:::1;::::0;;-1:-1:-1;;20841:26:0;::::1;20856:11;::::0;;::::1;20855:12;20841:26;::::0;;20782:93::o;15948:228::-;16004:7;16054:12;16040:10;;16027;;:23;;;;:::i;:::-;:39;16024:73;;16093:1;16076:14;;:18;;;;:::i;16024:73::-;16111:7;16107:32;;;-1:-1:-1;;16127:12:0;;;15948:228::o;16107:32::-;-1:-1:-1;;16157:11:0;;;15948:228::o;6615:201::-;6236:13;:11;:13::i;:::-;-1:-1:-1;;;;;6704:22:0;::::1;6696:73;;;::::0;-1:-1:-1;;;6696:73:0;;10672:2:1;6696:73:0::1;::::0;::::1;10654:21:1::0;10711:2;10691:18;;;10684:30;10750:34;10730:18;;;10723:62;-1:-1:-1;;;10801:18:1;;;10794:36;10847:19;;6696:73:0::1;10470:402:1::0;6696:73:0::1;6780:28;6799:8;6780:18;:28::i;:::-;6615:201:::0;:::o;19821:127::-;6236:13;:11;:13::i;:::-;-1:-1:-1;;;;;19908:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19908:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19821:127::o;6368:132::-;6321:7;6348:6;-1:-1:-1;;;;;6348:6:0;4405:10;6432:23;6424:68;;;;-1:-1:-1;;;6424:68:0;;11079:2:1;6424:68:0;;;11061:21:1;;;11098:18;;;11091:30;11157:34;11137:18;;;11130:62;11209:18;;6424:68:0;10877:356:1;12679:1546:0;12771:4;-1:-1:-1;;;;;12796:20:0;;12788:57;;;;-1:-1:-1;;;12788:57:0;;11440:2:1;12788:57:0;;;11422:21:1;11479:2;11459:18;;;11452:30;11518:26;11498:18;;;11491:54;11562:18;;12788:57:0;11238:348:1;12788:57:0;-1:-1:-1;;;;;12864:23:0;;12856:58;;;;-1:-1:-1;;;12856:58:0;;11793:2:1;12856:58:0;;;11775:21:1;11832:2;11812:18;;;11805:30;-1:-1:-1;;;11851:18:1;;;11844:52;11913:18;;12856:58:0;11591:346:1;12856:58:0;12942:1;12933:6;:10;12925:44;;;;-1:-1:-1;;;12925:44:0;;12144:2:1;12925:44:0;;;12126:21:1;12183:2;12163:18;;;12156:30;-1:-1:-1;;;12202:18:1;;;12195:51;12263:18;;12925:44:0;11942:345:1;12925:44:0;-1:-1:-1;;;;;12988:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;12988:27:0;12980:60;;;;-1:-1:-1;;;12980:60:0;;12494:2:1;12980:60:0;;;12476:21:1;12533:2;12513:18;;;12506:30;-1:-1:-1;;;12552:18:1;;;12545:50;12612:18;;12980:60:0;12292:344:1;12980:60:0;14300:10;;:15;;;13054:40;;-1:-1:-1;;;;;;13069:25:0;;;;;;:14;:25;;;;;;;;13054:40;13051:156;;;-1:-1:-1;;;;;13119:24:0;;;;;;:16;:24;;;;;;;;13111:61;;;;-1:-1:-1;;;13111:61:0;;12843:2:1;13111:61:0;;;12825:21:1;12882:2;12862:18;;;12855:30;12921:26;12901:18;;;12894:54;12965:18;;13111:61:0;12641:348:1;13111:61:0;13187:8;14382:12;14369:10;:25;14420:15;14405:12;:30;14331:112;13187:8;13221:14;;;;13217:135;;-1:-1:-1;;;;;13259:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;13287:27:0;;;;;;:16;:27;;;;;;;;13259:55;13251:89;;;;-1:-1:-1;;;13251:89:0;;13196:2:1;13251:89:0;;;13178:21:1;13235:2;13215:18;;;13208:30;-1:-1:-1;;;13254:18:1;;;13247:51;13315:18;;13251:89:0;12994:345:1;13251:89:0;13368:13;;;;;;;13364:326;;;13398:39;13411:6;13419:9;13430:6;13398:12;:39::i;:::-;-1:-1:-1;;;;;13457:25:0;;;;;;:14;:25;;;;;;;;13456:26;:47;;;;-1:-1:-1;13499:4:0;;-1:-1:-1;;;;;13486:17:0;;;13499:4;;13486:17;;13456:47;13452:227;;;-1:-1:-1;;;;;13529:26:0;;;;;;:15;:26;;;;;;;;13528:27;:56;;;;-1:-1:-1;;;;;;13560:24:0;;;;;;:16;:24;;;;;;;;13559:25;13528:56;13524:140;;;13609:35;13626:9;13637:6;13609:16;:35::i;:::-;13705:6;;;;13702:63;;;13721:41;13736:6;13744:9;13755:6;13721:14;:41::i;:::-;13714:48;;;;13702:63;-1:-1:-1;;;;;13797:17:0;;;;;;:9;:17;;;;;;:26;;13817:6;;13797:26;:::i;:::-;-1:-1:-1;;;;;13777:17:0;;;;;;:9;:17;;;;;:46;13861:6;13883:32;13787:6;13905:9;13883:13;:32::i;:::-;13880:182;;;13949:26;13957:9;13968:6;13949:7;:26::i;:::-;13932:43;;13993:25;14008:9;13993:14;:25::i;:::-;:39;;;;;14031:1;14022:6;:10;13993:39;13990:60;;;14034:16;14043:6;14034:8;:16::i;:::-;-1:-1:-1;;;;;14097:20:0;;;;;;:9;:20;;;;;;:37;;14120:14;;14097:37;:::i;:::-;-1:-1:-1;;;;;14074:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14152:43;;;;;;;;;;14180:14;160:25:1;;148:2;133:18;;14:177;14152:43:0;;;;;;;;-1:-1:-1;14213:4:0;;12679:1546;-1:-1:-1;;;;12679:1546:0:o;6822:191::-;6896:16;6915:6;;-1:-1:-1;;;;;6932:17:0;;;-1:-1:-1;;;;;;6932:17:0;;;;;;6965:40;;6915:6;;;;;;;6965:40;;6896:16;6965:40;6885:128;6822:191;:::o;15002:675::-;-1:-1:-1;;;;;15099:23:0;;;;;;:15;:23;;;;;;;;;:53;;-1:-1:-1;;;;;;15126:26:0;;;;;;:15;:26;;;;;;;;15099:53;15095:66;;;15002:675;;;:::o;15095:66::-;-1:-1:-1;;;;;15190:22:0;;;;;;:14;:22;;;;;;;;:59;;15233:16;;15190:59;;;15215:15;;15190:59;15179:6;:71;;15171:101;;;;-1:-1:-1;;;15171:101:0;;13546:2:1;15171:101:0;;;13528:21:1;13585:2;13565:18;;;13558:30;-1:-1:-1;;;13604:18:1;;;13597:47;13661:18;;15171:101:0;13344:341:1;15171:101:0;15312:9;;-1:-1:-1;;;;;15291:18:0;;;;;;:7;:18;;;;;;15325:12;;15291:30;;;:::i;:::-;:46;;15283:88;;;;-1:-1:-1;;;15283:88:0;;13892:2:1;15283:88:0;;;13874:21:1;13931:2;13911:18;;;13904:30;13970:31;13950:18;;;13943:59;14019:18;;15283:88:0;13690:353:1;15283:88:0;-1:-1:-1;;;;;15388:25:0;;;;;;:14;:25;;;;;;;;15384:286;;;-1:-1:-1;;;;;;;15430:16:0;;;;;:8;:16;;;;;15449:12;15430:31;;19022:437::o;15384:286::-;15483:32;15497:6;15505:9;15483:13;:32::i;:::-;15479:191;;;-1:-1:-1;;;;;15532:18:0;;;;;;:7;:18;;;;;15553:12;15532:33;;15584:9;:22;15580:78;;15633:9;15625:18;;;;:7;:18;;;;;15646:12;15625:33;;15002:675;;;:::o;14759:235::-;14867:14;;-1:-1:-1;;;;;14900:20:0;;14845:19;14900:20;;;:9;:20;;;;;;14867:14;;14900:29;;14923:6;;14900:29;:::i;:::-;:44;;14892:94;;;;-1:-1:-1;;;14892:94:0;;14250:2:1;14892:94:0;;;14232:21:1;14289:2;14269:18;;;14262:30;14328:34;14308:18;;;14301:62;-1:-1:-1;;;14379:18:1;;;14372:35;14424:19;;14892:94:0;14048:401:1;14451:300:0;-1:-1:-1;;;;;14581:17:0;;14544:4;14581:17;;;:9;:17;;;;;;:26;;14601:6;;14581:26;:::i;:::-;-1:-1:-1;;;;;14561:17:0;;;;;;;:9;:17;;;;;;:46;;;;14641:20;;;;;;;:29;;14664:6;;14641:29;:::i;:::-;-1:-1:-1;;;;;14618:20:0;;;;;;;:9;:20;;;;;;;:52;;;;14686:35;;;;;;;;;;14714:6;160:25:1;;148:2;133:18;;14:177;14686:35:0;;;;;;;;-1:-1:-1;14739:4:0;14451:300;;;;;:::o;16184:305::-;-1:-1:-1;;;;;16289:25:0;;16254:7;16289:25;;;:14;:25;;;;;;16379:14;;16289:25;;;;;16254:7;;16355:20;16289:25;16355:11;:20::i;:::-;16346:29;;:6;:29;:::i;:::-;16345:48;;;;:::i;:::-;16424:4;16406:24;;;;:9;:24;;;;;:37;;16325:68;;-1:-1:-1;16325:68:0;;16406:24;;;:37;;16325:68;;16406:37;:::i;:::-;;;;-1:-1:-1;16463:18:0;;-1:-1:-1;16472:9:0;16463:6;:18;:::i;:::-;16456:25;16184:305;-1:-1:-1;;;;;16184:305:0:o;16623:302::-;16729:10;16689:4;16714:26;;;:14;:26;;;;;;;;16713:27;:47;;;;-1:-1:-1;16754:6:0;;;;16753:7;16713:47;:71;;;;-1:-1:-1;16773:11:0;;;;16713:71;:109;;;;-1:-1:-1;;;;;;16797:25:0;;;;;;:14;:25;;;;;;;;16713:109;:161;;;;-1:-1:-1;16863:11:0;;16853:4;16835:24;;;;:9;:24;;;;;;:39;;16713:161;:204;;;;;16916:1;16901:12;;16887:11;;:26;;;;:::i;:::-;:30;16706:211;16623:302;-1:-1:-1;;16623:302:0:o;16933:1821::-;9050:6;:13;;-1:-1:-1;;9050:13:0;9059:4;9050:13;;;17029:12:::1;::::0;17015:11:::1;::::0;9050:6;;17015:26:::1;::::0;::::1;:::i;:::-;16996:45;;17052:20;17084:13;;17075:6;:22;:47;;17109:13;;17075:47;;;17100:6;17075:47;17155:4;17137:24;::::0;;;:9:::1;:24;::::0;;;;;17052:70;;-1:-1:-1;17137:39:0;-1:-1:-1;17133:84:0::1;;;-1:-1:-1::0;17211:4:0::1;17193:24;::::0;;;:9:::1;:24;::::0;;;;;17133:84:::1;17230:25;17273:16;;17258:12;;:31;;;;:::i;:::-;17230:59:::0;-1:-1:-1;17300:23:0::1;17367:8:::0;17362:1:::1;17327:32;17230:59:::0;17327:12;:32:::1;:::i;:::-;:36;;;;:::i;:::-;17326:49;;;;:::i;:::-;17300:75:::0;-1:-1:-1;17386:31:0::1;17300:75:::0;17386:31;::::1;:::i;:::-;17454:16;::::0;;17468:1:::1;17454:16:::0;;;;;::::1;::::0;;17386:31;;-1:-1:-1;17430:21:0::1;::::0;17454:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17454:16:0::1;17430:40;;17499:4;17481;17486:1;17481:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17481:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17525:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;17525:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;17481:7;;17525:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17515:4;17520:1;17515:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17515:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;17609:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;17609:188:0;;17575:21:::1;::::0;17609:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;17681:12;;17551:21:::1;::::0;17724:4;;17751::::1;::::0;17771:15:::1;::::0;17609:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17810:17;17854:13;17830:21;:37;;;;:::i;:::-;17810:57:::0;-1:-1:-1;17878:19:0::1;17912:21;17932:1;17912:17:::0;:21:::1;:::i;:::-;17900:34;::::0;:8;:34:::1;:::i;:::-;17878:56:::0;-1:-1:-1;17947:26:0::1;17878:56:::0;18009:1:::1;17977:29;17989:17:::0;17977:9;:29:::1;:::i;:::-;:33;;;;:::i;:::-;17976:49;;;;:::i;:::-;17947:78:::0;-1:-1:-1;18036:26:0::1;18065:30;17947:78:::0;18065:9;:30:::1;:::i;:::-;18036:59:::0;-1:-1:-1;18112:22:0;;18108:243:::1;;18176:20;::::0;:56:::1;::::0;18152:18:::1;::::0;-1:-1:-1;;;;;18176:20:0::1;::::0;18209:18;;18152;18176:56;18152:18;18176:56;18209:18;18176:20;:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;18108:243:0::1;18366:19:::0;;18363:293:::1;;18401:6;::::0;18575:20:::1;::::0;18401:243:::1;::::0;-1:-1:-1;;;18401:243:0;;18477:4:::1;18401:243;::::0;::::1;16308:34:1::0;16358:18;;;16351:34;;;-1:-1:-1;16401:18:1;;;16394:34;;;16444:18;;;16437:34;-1:-1:-1;;;;;18401:6:0::1;18575:20:::0;;::::1;::::0;::::1;16487:19:1::0;;;16480:44;18614:15:0::1;16540:19:1::0;;;16533:35;18401:6:0;::::1;::::0;:22:::1;::::0;18431:18;;16242:19:1;;18401:243:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18363:293;18673:73;::::0;;7559:25:1;;;7615:2;7600:18;;7593:34;;;7643:18;;;7636:34;;;18673:73:0::1;::::0;7547:2:1;7532:18;18673:73:0::1;;;;;;;-1:-1:-1::0;;9068:6:0;:14;;-1:-1:-1;;9068:14:0;;;-1:-1:-1;;;;;;;;;16933:1821:0:o;196:454:1:-;291:6;299;307;315;323;376:3;364:9;355:7;351:23;347:33;344:53;;;393:1;390;383:12;344:53;-1:-1:-1;;416:23:1;;;486:2;471:18;;458:32;;-1:-1:-1;537:2:1;522:18;;509:32;;588:2;573:18;;560:32;;-1:-1:-1;639:3:1;624:19;611:33;;-1:-1:-1;196:454:1;-1:-1:-1;196:454:1:o;655:597::-;767:4;796:2;825;814:9;807:21;857:6;851:13;900:6;895:2;884:9;880:18;873:34;925:1;935:140;949:6;946:1;943:13;935:140;;;1044:14;;;1040:23;;1034:30;1010:17;;;1029:2;1006:26;999:66;964:10;;935:140;;;1093:6;1090:1;1087:13;1084:91;;;1163:1;1158:2;1149:6;1138:9;1134:22;1130:31;1123:42;1084:91;-1:-1:-1;1236:2:1;1215:15;-1:-1:-1;;1211:29:1;1196:45;;;;1243:2;1192:54;;655:597;-1:-1:-1;;;655:597:1:o;1257:131::-;-1:-1:-1;;;;;1332:31:1;;1322:42;;1312:70;;1378:1;1375;1368:12;1393:315;1461:6;1469;1522:2;1510:9;1501:7;1497:23;1493:32;1490:52;;;1538:1;1535;1528:12;1490:52;1577:9;1564:23;1596:31;1621:5;1596:31;:::i;:::-;1646:5;1698:2;1683:18;;;;1670:32;;-1:-1:-1;;;1393:315:1:o;1905:456::-;1982:6;1990;1998;2051:2;2039:9;2030:7;2026:23;2022:32;2019:52;;;2067:1;2064;2057:12;2019:52;2106:9;2093:23;2125:31;2150:5;2125:31;:::i;:::-;2175:5;-1:-1:-1;2232:2:1;2217:18;;2204:32;2245:33;2204:32;2245:33;:::i;:::-;1905:456;;2297:7;;-1:-1:-1;;;2351:2:1;2336:18;;;;2323:32;;1905:456::o;2555:388::-;2623:6;2631;2684:2;2672:9;2663:7;2659:23;2655:32;2652:52;;;2700:1;2697;2690:12;2652:52;2739:9;2726:23;2758:31;2783:5;2758:31;:::i;:::-;2808:5;-1:-1:-1;2865:2:1;2850:18;;2837:32;2878:33;2837:32;2878:33;:::i;:::-;2930:7;2920:17;;;2555:388;;;;;:::o;2948:247::-;3007:6;3060:2;3048:9;3039:7;3035:23;3031:32;3028:52;;;3076:1;3073;3066:12;3028:52;3115:9;3102:23;3134:31;3159:5;3134:31;:::i;3200:160::-;3265:20;;3321:13;;3314:21;3304:32;;3294:60;;3350:1;3347;3340:12;3294:60;3200:160;;;:::o;3365:315::-;3430:6;3438;3491:2;3479:9;3470:7;3466:23;3462:32;3459:52;;;3507:1;3504;3497:12;3459:52;3546:9;3533:23;3565:31;3590:5;3565:31;:::i;:::-;3615:5;-1:-1:-1;3639:35:1;3670:2;3655:18;;3639:35;:::i;:::-;3629:45;;3365:315;;;;;:::o;3685:316::-;3762:6;3770;3778;3831:2;3819:9;3810:7;3806:23;3802:32;3799:52;;;3847:1;3844;3837:12;3799:52;-1:-1:-1;;3870:23:1;;;3940:2;3925:18;;3912:32;;-1:-1:-1;3991:2:1;3976:18;;;3963:32;;3685:316;-1:-1:-1;3685:316:1:o;4006:315::-;4074:6;4082;4135:2;4123:9;4114:7;4110:23;4106:32;4103:52;;;4151:1;4148;4141:12;4103:52;4187:9;4174:23;4164:33;;4247:2;4236:9;4232:18;4219:32;4260:31;4285:5;4260:31;:::i;4534:248::-;4602:6;4610;4663:2;4651:9;4642:7;4638:23;4634:32;4631:52;;;4679:1;4676;4669:12;4631:52;-1:-1:-1;;4702:23:1;;;4772:2;4757:18;;;4744:32;;-1:-1:-1;4534:248:1:o;5011:180::-;5070:6;5123:2;5111:9;5102:7;5098:23;5094:32;5091:52;;;5139:1;5136;5129:12;5091:52;-1:-1:-1;5162:23:1;;5011:180;-1:-1:-1;5011:180:1:o;5196:::-;5252:6;5305:2;5293:9;5284:7;5280:23;5276:32;5273:52;;;5321:1;5318;5311:12;5273:52;5344:26;5360:9;5344:26;:::i;5381:316::-;5455:6;5463;5471;5524:2;5512:9;5503:7;5499:23;5495:32;5492:52;;;5540:1;5537;5530:12;5492:52;5563:26;5579:9;5563:26;:::i;:::-;5553:36;5636:2;5621:18;;5608:32;;-1:-1:-1;5687:2:1;5672:18;;;5659:32;;5381:316;-1:-1:-1;;;5381:316:1:o;5928:127::-;5989:10;5984:3;5980:20;5977:1;5970:31;6020:4;6017:1;6010:15;6044:4;6041:1;6034:15;6060:128;6100:3;6131:1;6127:6;6124:1;6121:13;6118:39;;;6137:18;;:::i;:::-;-1:-1:-1;6173:9:1;;6060:128::o;6193:217::-;6233:1;6259;6249:132;;6303:10;6298:3;6294:20;6291:1;6284:31;6338:4;6335:1;6328:15;6366:4;6363:1;6356:15;6249:132;-1:-1:-1;6395:9:1;;6193:217::o;6415:168::-;6455:7;6521:1;6517;6513:6;6509:14;6506:1;6503:21;6498:1;6491:9;6484:17;6480:45;6477:71;;;6528:18;;:::i;:::-;-1:-1:-1;6568:9:1;;6415:168::o;7681:422::-;7770:1;7813:5;7770:1;7827:270;7848:7;7838:8;7835:21;7827:270;;;7907:4;7903:1;7899:6;7895:17;7889:4;7886:27;7883:53;;;7916:18;;:::i;:::-;7966:7;7956:8;7952:22;7949:55;;;7986:16;;;;7949:55;8065:22;;;;8025:15;;;;7827:270;;;7831:3;7681:422;;;;;:::o;8108:806::-;8157:5;8187:8;8177:80;;-1:-1:-1;8228:1:1;8242:5;;8177:80;8276:4;8266:76;;-1:-1:-1;8313:1:1;8327:5;;8266:76;8358:4;8376:1;8371:59;;;;8444:1;8439:130;;;;8351:218;;8371:59;8401:1;8392:10;;8415:5;;;8439:130;8476:3;8466:8;8463:17;8460:43;;;8483:18;;:::i;:::-;-1:-1:-1;;8539:1:1;8525:16;;8554:5;;8351:218;;8653:2;8643:8;8640:16;8634:3;8628:4;8625:13;8621:36;8615:2;8605:8;8602:16;8597:2;8591:4;8588:12;8584:35;8581:77;8578:159;;;-1:-1:-1;8690:19:1;;;8722:5;;8578:159;8769:34;8794:8;8788:4;8769:34;:::i;:::-;8839:6;8835:1;8831:6;8827:19;8818:7;8815:32;8812:58;;;8850:18;;:::i;:::-;8888:20;;8108:806;-1:-1:-1;;;8108:806:1:o;8919:140::-;8977:5;9006:47;9047:4;9037:8;9033:19;9027:4;9006:47;:::i;9064:125::-;9104:4;9132:1;9129;9126:8;9123:34;;;9137:18;;:::i;:::-;-1:-1:-1;9174:9:1;;9064:125::o;14586:127::-;14647:10;14642:3;14638:20;14635:1;14628:31;14678:4;14675:1;14668:15;14702:4;14699:1;14692:15;14718:251;14788:6;14841:2;14829:9;14820:7;14816:23;14812:32;14809:52;;;14857:1;14854;14847:12;14809:52;14889:9;14883:16;14908:31;14933:5;14908:31;:::i;14974:980::-;15236:4;15284:3;15273:9;15269:19;15315:6;15304:9;15297:25;15341:2;15379:6;15374:2;15363:9;15359:18;15352:34;15422:3;15417:2;15406:9;15402:18;15395:31;15446:6;15481;15475:13;15512:6;15504;15497:22;15550:3;15539:9;15535:19;15528:26;;15589:2;15581:6;15577:15;15563:29;;15610:1;15620:195;15634:6;15631:1;15628:13;15620:195;;;15699:13;;-1:-1:-1;;;;;15695:39:1;15683:52;;15790:15;;;;15755:12;;;;15731:1;15649:9;15620:195;;;-1:-1:-1;;;;;;;15871:32:1;;;;15866:2;15851:18;;15844:60;-1:-1:-1;;;15935:3:1;15920:19;15913:35;15832:3;14974:980;-1:-1:-1;;;14974:980:1:o;16579:306::-;16667:6;16675;16683;16736:2;16724:9;16715:7;16711:23;16707:32;16704:52;;;16752:1;16749;16742:12;16704:52;16781:9;16775:16;16765:26;;16831:2;16820:9;16816:18;16810:25;16800:35;;16875:2;16864:9;16860:18;16854:25;16844:35;;16579:306;;;;;:::o

Swarm Source

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