ETH Price: $2,678.96 (-0.80%)

Token

Aku Aku love OOGA BOOGA! (OOGA)
 

Overview

Max Total Supply

1,000,000,000 OOGA

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15,209,736.197049863 OOGA

Value
$0.00
0x4C40836964E2B35F578e20aFF57Ca42B080c1ae7
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:
OOGABOOGA

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/** 

    Website:  https://www.oogabooga.live
    Twitter:  https://twitter.com/akuoogabooga
    Telegram:  https://t.me/akuoogabooga

*/

// SPDX-License-Identifier: MIT 

pragma solidity ^0.8.18;

library Address {
    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");
    }
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

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

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

contract OOGABOOGA is Context, IERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;

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

    string private constant _name = unicode"Aku Aku love OOGA BOOGA!";
    string private constant _symbol = unicode"OOGA";

    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;
    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet =(0x59a67E083175A3E4eD005F7d422BbeEf9c510021);
    address public feeWallet =(0x81e4f0Eb448156D61304cbED4Ea229AdAF7DD325);
    address private devWallet = (0xED007D584dE93b2dEE3F2f3B51E399d330494450);
   
    address[] private _excluded;
    bool public tradingEnabled;
    bool private swapEnabled;
    bool private swapping;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = 1e30;
    uint256 public constant _tTotal = 1_000_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private genesis_block;
    uint256 private deadline = 1;
    struct TotFeesPaidStruct {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity;
    }

    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues {
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rRfi;
        uint256 rmarketing;
        uint256 rLiquidity;
        uint256 tTransferAmount;
        uint256 tRfi;
        uint256 tmarketing;
        uint256 tLiquidity;
    }

    uint256 public _maxTxAmount = _tTotal * 20 / 1000;
    uint256 public _maxWalletSize = _tTotal * 20 / 1000;
    uint256 public swapTokensAtAmount = 30_000 * 10**9;
    mapping(address => bool) private _isExcludedFromFees;

    struct Taxes {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(0, 1, 0);
    Taxes public sellTaxes = Taxes(0, 1, 0);
    Taxes private launchtax = Taxes(0, 20, 0);

    event FeesChanged();

    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
         excludeFromReward(deadWallet);
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[feeWallet] = true;
        _isExcludedFromFee[deadWallet] = true;
        _isExcludedFromFee[marketingWallet] = true;

         _rOwned[owner()] = _rTotal;
        emit Transfer(address(0), owner(), _tTotal);
    }

    function createLiquidity() external payable onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        _approve(address(this), address(router), type(uint256).max);
        excludeFromReward(pair); _isExcludedFromFees[devWallet] = true;
        router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }
    
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true, false, false, false);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, false, false, false);
            return s.rTransferAmount;
        }
    }

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

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
    }

    function tokenFromReflection(uint256 rAmount) public view returns (uint256) {
        // require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount / currentRate;
    }

    function excludeFromReward(address account) public onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

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

    // function updateBuyTaxes(
    //     uint256 _rfi,
    //     uint256 _marketing,
    //     uint256 _liquidity
    // ) public onlyOwner {
    //     require((_rfi + _marketing + _liquidity) <= 25, "Must keep fees at 25% or less");
    //     taxes = Taxes(_rfi, _marketing, _liquidity);
    //     emit FeesChanged();
    // }

    // function updateSellTaxes(
    //     uint256 _rfi,
    //     uint256 _marketing,
    //     uint256 _liquidity
    // ) public onlyOwner {
    //     require((_rfi + _marketing + _liquidity) <= 25, "Must keep fees at 25% or less");
    //     sellTaxes = Taxes(_rfi, _marketing, _liquidity);
    //     emit FeesChanged();
    // }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -= rRfi;
        totFeesPaid.rfi += tRfi;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity += tLiquidity;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tLiquidity;
        }
        _rOwned[address(this)] += rLiquidity;
    }

    function _takeMarketingFee(uint256 rmarketing, uint256 tmarketing) private {
        totFeesPaid.marketing += tmarketing;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tmarketing;
        }
        _rOwned[address(this)] += rmarketing;
    }

    function _getTValues(
        uint256 tAmount,
        bool takeFee,
        bool isSell,
        bool useLaunchTax
    ) private view returns (valuesFromGetValues memory s) {
        if (!takeFee) {
            s.tTransferAmount = tAmount;
            return s;
        }
        Taxes memory temp;
        if (isSell && !useLaunchTax) temp = sellTaxes;
        else if (!useLaunchTax) temp = taxes;
        else temp = launchtax;

        s.tRfi = (tAmount * temp.rfi) / 100;
        s.tmarketing = (tAmount * temp.marketing) / 100;
        s.tLiquidity = (tAmount * temp.liquidity) / 100;
        s.tTransferAmount =
            tAmount -
            s.tRfi -
            s.tmarketing -
            s.tLiquidity;
        return s;
    }

    function _getValues(
        uint256 tAmount,
        bool takeFee,
        bool isSell,
        bool useLaunchTax,
        bool isTransfer
    ) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee, isSell, useLaunchTax);
        (
            to_return.rAmount,
            to_return.rTransferAmount,
            to_return.rRfi,
            to_return.rmarketing,
            to_return.rLiquidity
        ) = _getRValues1(to_return, tAmount, takeFee, _getRate(), isTransfer);
       
        return to_return;
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }

    function _getRValues1(
        valuesFromGetValues memory s,
        uint256 tAmount,
        bool takeFee,
        uint256 currentRate,
        bool isTransfer
    )
        private
        pure
        returns (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rRfi,
            uint256 rmarketing,
            uint256 rLiquidity
        )
    {
        rAmount = tAmount * currentRate;

        if (!takeFee) {
            return (isTransfer?0:rAmount, rAmount, 0, 0, 0);
        }

        rRfi = s.tRfi * currentRate;
        rmarketing = s.tmarketing * currentRate;
        rLiquidity = s.tLiquidity * currentRate;
        rTransferAmount =
            rAmount -
            rRfi -
            rmarketing -
            rLiquidity;
        return (rAmount, rTransferAmount, rRfi, rmarketing, rLiquidity);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply)
                return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradingEnabled, "Trading not active");
        }

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

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if (!swapping && swapEnabled && canSwap && amount > swapTokensAtAmount && from != pair && !_isExcludedFromFee[from] && 
        !_isExcludedFromFee[to]
        ) {
            if (to == pair) swapAndLiquify(swapTokensAtAmount, sellTaxes);
        }
        bool takeFee = true;
        bool isSell = false;
        if (swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false;
        if (to == pair) isSell = true;
        if (from != pair && to != pair) { //transfer
           takeFee = false;
       }
       
        _tokenTransfer(from, to, amount, takeFee, isSell);
    }

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

    function _tokenTransfer(address sender,address recipient,uint256 tAmount,bool takeFee,bool isSell) private {
        bool useLaunchTax = !_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && block.number < genesis_block + deadline;

        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell, useLaunchTax, isExcludedFromFee(sender));

        if (_isExcluded[sender]) {
            //from excluded
            _tOwned[sender] = _tOwned[sender] - tAmount;
        }
        if (_isExcluded[recipient]) {
            //to excluded
            _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender] - s.rAmount;
        _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount;

        if (s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if (s.rLiquidity > 0 || s.tLiquidity > 0) {
            _takeLiquidity(s.rLiquidity, s.tLiquidity);
            emit Transfer(
                sender,
                address(this),
                s.tLiquidity + s.tmarketing
            );
        }
        if (s.rmarketing > 0 || s.tmarketing > 0) _takeMarketingFee(s.rmarketing, s.tmarketing);
        emit Transfer(sender, recipient, s.tTransferAmount);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadWallet,
            block.timestamp
        );
    }

    function rescueETH() external {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function transferETH(address payable feeAddr, uint256 amount) private {
        feeAddr.transfer(amount);
    }

    function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap {
        uint256 denominator = (temp.liquidity +
            temp.marketing) * 2;

        if (denominator == 0){
            return;
        }

        uint256 tokensToAddLiquidityWith = (contractBalance * temp.liquidity) / denominator;
        uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance = deltaBalance / (denominator - temp.liquidity);
        uint256 ethToAddLiquidityWith = unitBalance * temp.liquidity;

        if (ethToAddLiquidityWith > 0) {
            addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
        }

        uint256 marketingAmt = unitBalance * 2 * temp.marketing;
        if (marketingAmt > 0) {
            transferETH(payable(feeWallet), marketingAmt);
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    receive() external payable {}
}

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":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600880546001600160a01b031990811661dead179091556009805482167359a67e083175a3e4ed005f7d422bbeef9c510021178155600a805483167381e4f0eb448156d61304cbed4ea229adaf7dd325178155600b805490931673ed007d584de93b2dee3f2f3b51e399d330494450179092556200008291620008aa565b6200009290633b9aca00620008bb565b620000ab906c0c9f2c9cd04674edea40000000620008eb565b620000c4906c0c9f2c9cd04674edea4000000062000902565b600e5560016010556103e8620000dd6009600a620008aa565b620000ed90633b9aca00620008bb565b620000fa906014620008bb565b62000106919062000918565b6014556103e86200011a6009600a620008aa565b6200012a90633b9aca00620008bb565b62000137906014620008bb565b62000143919062000918565b601555651b48eb57e000601655604080516060808201835260008083526001602080850182905293850182905260188290556019819055601a829055845180840186528281528085018290528501829052601b829055601c55601d81905583519182018452808252601482840181905291909301839052601e839055601f5555348015620001d057600080fd5b50620001dc3362000363565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905560085462000219906001600160a01b0316620003b3565b3060009081526006602081905260408220805460ff19166001908117909155916200024c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600a548216815260069093528183208054851660019081179091556008548216845282842080548616821790556009549091168352908220805490931617909155600e5490600490620002d56000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620003026000546001600160a01b031690565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200033c6009600a620008aa565b6200034c90633b9aca00620008bb565b60405190815260200160405180910390a362000961565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526007602052604090205460ff16156200047e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016200040a565b6001600160a01b03811660009081526004602052604090205415620004db576001600160a01b038116600090815260046020526040902054620004c19062000541565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6000806200054e62000563565b90506200055c818462000918565b9392505050565b600080806200057162000589565b909250905062000582818362000918565b9250505090565b600e54600090819081620005a06009600a620008aa565b620005b090633b9aca00620008bb565b905060005b600c548110156200072b578260046000600c8481548110620005db57620005db6200092f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200064a57508160056000600c84815481106200062357620006236200092f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200067c57600e54620006616009600a620008aa565b6200067190633b9aca00620008bb565b945094505050509091565b60046000600c83815481106200069657620006966200092f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620006c7908462000902565b925060056000600c8381548110620006e357620006e36200092f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000714908362000902565b915080620007228162000945565b915050620005b5565b506200073a6009600a620008aa565b6200074a90633b9aca00620008bb565b600e5462000759919062000918565b8210156200078c57600e54620007726009600a620008aa565b6200078290633b9aca00620008bb565b9350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007ec578160001904821115620007d057620007d062000795565b80851615620007de57918102915b93841c9390800290620007b0565b509250929050565b6000826200080557506001620008a4565b816200081457506000620008a4565b81600181146200082d5760028114620008385762000858565b6001915050620008a4565b60ff8411156200084c576200084c62000795565b50506001821b620008a4565b5060208310610133831016604e8410600b84101617156200087d575081810a620008a4565b620008898383620007ab565b8060001904821115620008a057620008a062000795565b0290505b92915050565b60006200055c60ff841683620007f4565b8082028115828204841417620008a457620008a462000795565b634e487b7160e01b600052601260045260246000fd5b600082620008fd57620008fd620008d5565b500690565b81810381811115620008a457620008a462000795565b6000826200092a576200092a620008d5565b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016200095a576200095a62000795565b5060010190565b61260a80620009716000396000f3fe6080604052600436106102135760003560e01c806385141a7711610118578063a9059cbb116100a0578063e2f456051161006f578063e2f4560514610673578063f25f4b5614610689578063f2fde38b146106a9578063f66895a3146106c9578063f887ea40146106e857600080fd5b8063a9059cbb146105f0578063af465a2714610610578063c7af2a9c14610625578063dd62ed3e1461062d57600080fd5b80638f9a55c0116100e75780638f9a55c01461054e57806395d89b41146105645780639ba5e4d514610591578063a457c2d7146105b0578063a8aa1b31146105d057600080fd5b806385141a77146104c257806388f82020146104e25780638a8c523c1461051b5780638da5cb5b1461053057600080fd5b80634ada218b1161019b578063715018a61161016a578063715018a614610410578063728f8eea14610425578063751039fc1461045f57806375f0a874146104745780637d1db4a5146104ac57600080fd5b80634ada218b1461037d57806352390c02146103975780635342acb4146103b757806370a08231146103f057600080fd5b806323b872dd116101e257806323b872dd146102e15780632d83811914610301578063313ce56714610321578063395093511461033d5780634549b0391461035d57600080fd5b806306fdde031461021f578063095ea7b31461027757806318160ddd146102a757806320800a00146102ca57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152601881527f416b7520416b75206c6f7665204f4f474120424f4f474121000000000000000060208201525b60405161026e91906121a8565b60405180910390f35b34801561028357600080fd5b5061029761029236600461220b565b610708565b604051901515815260200161026e565b3480156102b357600080fd5b506102bc61071f565b60405190815260200161026e565b3480156102d657600080fd5b506102df610740565b005b3480156102ed57600080fd5b506102976102fc366004612237565b61077e565b34801561030d57600080fd5b506102bc61031c366004612278565b610834565b34801561032d57600080fd5b506040516009815260200161026e565b34801561034957600080fd5b5061029761035836600461220b565b610852565b34801561036957600080fd5b506102bc610378366004612291565b610889565b34801561038957600080fd5b50600d546102979060ff1681565b3480156103a357600080fd5b506102df6103b23660046122c6565b610934565b3480156103c357600080fd5b506102976103d23660046122c6565b6001600160a01b031660009081526017602052604090205460ff1690565b3480156103fc57600080fd5b506102bc61040b3660046122c6565b610a87565b34801561041c57600080fd5b506102df610ae6565b34801561043157600080fd5b50601854601954601a5461044492919083565b6040805193845260208401929092529082015260600161026e565b34801561046b57600080fd5b506102df610b1c565b34801561048057600080fd5b50600954610494906001600160a01b031681565b6040516001600160a01b03909116815260200161026e565b3480156104b857600080fd5b506102bc60145481565b3480156104ce57600080fd5b50600854610494906001600160a01b031681565b3480156104ee57600080fd5b506102976104fd3660046122c6565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561052757600080fd5b506102df610b82565b34801561053c57600080fd5b506000546001600160a01b0316610494565b34801561055a57600080fd5b506102bc60155481565b34801561057057600080fd5b506040805180820190915260048152634f4f474160e01b6020820152610261565b34801561059d57600080fd5b5060115460125460135461044492919083565b3480156105bc57600080fd5b506102976105cb36600461220b565b610c14565b3480156105dc57600080fd5b50600254610494906001600160a01b031681565b3480156105fc57600080fd5b5061029761060b36600461220b565b610caf565b34801561061c57600080fd5b506102bc610cbc565b6102df610cd9565b34801561063957600080fd5b506102bc6106483660046122e3565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561067f57600080fd5b506102bc60165481565b34801561069557600080fd5b50600a54610494906001600160a01b031681565b3480156106b557600080fd5b506102df6106c43660046122c6565b610f6f565b3480156106d557600080fd5b50601b54601c54601d5461044492919083565b3480156106f457600080fd5b50600154610494906001600160a01b031681565b600061071533848461100a565b5060015b92915050565b600061072d6009600a61240b565b61073b90633b9aca0061241a565b905090565b60095460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561077a573d6000803e3d6000fd5b5050565b600061078b84848461112e565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156108155760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61082985336108248685612431565b61100a565b506001949350505050565b60008061083f6115ad565b905061084b8184612444565b9392505050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610715918590610824908690612466565b60006108976009600a61240b565b6108a590633b9aca0061241a565b8311156108f45760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161080c565b8161091557600061090b84600160008060006115d0565b5191506107199050565b600061092784600160008060006115d0565b6020015191506107199050565b6000546001600160a01b0316331461095e5760405162461bcd60e51b815260040161080c90612479565b6001600160a01b03811660009081526007602052604090205460ff16156109c75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161080c565b6001600160a01b03811660009081526004602052604090205415610a21576001600160a01b038116600090815260046020526040902054610a0790610834565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff1615610ac457506001600160a01b031660009081526005602052604090205490565b6001600160a01b03821660009081526004602052604090205461071990610834565b6000546001600160a01b03163314610b105760405162461bcd60e51b815260040161080c90612479565b610b1a6000611619565b565b6000546001600160a01b03163314610b465760405162461bcd60e51b815260040161080c90612479565b610b526009600a61240b565b610b6090633b9aca0061241a565b601455610b6f6009600a61240b565b610b7d90633b9aca0061241a565b601555565b6000546001600160a01b03163314610bac5760405162461bcd60e51b815260040161080c90612479565b600d5460ff1615610bff5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161080c565b600d805461ffff191661010117905543600f55565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610c965760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161080c565b610ca533856108248685612431565b5060019392505050565b600061071533848461112e565b610cc86009600a61240b565b610cd690633b9aca0061241a565b81565b6000546001600160a01b03163314610d035760405162461bcd60e51b815260040161080c90612479565b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906124ae565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0091906124ae565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7191906124ae565b600280546001600160a01b0319166001600160a01b03928316179055600154610e9f9130911660001961100a565b600254610eb4906001600160a01b0316610934565b600b546001600160a01b039081166000908152601760205260409020805460ff19166001908117909155541663f305d7193430610ef081610a87565b600080610f056000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f27969594939291906124cb565b60606040518083038185885af1158015610f45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f6a9190612506565b505050565b6000546001600160a01b03163314610f995760405162461bcd60e51b815260040161080c90612479565b6001600160a01b038116610ffe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161080c565b61100781611619565b50565b6001600160a01b03831661106c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080c565b6001600160a01b0382166110cd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161080c565b6001600160a01b0382166111f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161080c565b600081116112565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161080c565b6001600160a01b03831660009081526006602052604090205460ff1615801561129857506001600160a01b03821660009081526006602052604090205460ff16155b156112e457600d5460ff166112e45760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161080c565b6002546001600160a01b03848116911614801561130f57506002546001600160a01b03838116911614155b801561133457506001600160a01b03821660009081526006602052604090205460ff16155b156113f05760145481111561138b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161080c565b6015548161139884610a87565b6113a29190612466565b11156113f05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161080c565b60006016546113fe30610a87565b600d54911115915062010000900460ff161580156114235750600d54610100900460ff165b801561142c5750805b8015611439575060165482115b801561145357506002546001600160a01b03858116911614155b801561147857506001600160a01b03841660009081526006602052604090205460ff16155b801561149d57506001600160a01b03831660009081526006602052604090205460ff16155b156114e6576002546001600160a01b03908116908416036114e65760165460408051606081018252601b548152601c546020820152601d54918101919091526114e69190611669565b600d5460019060009062010000900460ff168061151b57506001600160a01b03861660009081526006602052604090205460ff165b8061153e57506001600160a01b03851660009081526006602052604090205460ff165b1561154857600091505b6002546001600160a01b0390811690861603611562575060015b6002546001600160a01b0387811691161480159061158e57506002546001600160a01b03868116911614155b1561159857600091505b6115a58686868585611786565b505050505050565b60008060006115ba611a92565b90925090506115c98183612444565b9250505090565b6115d861215c565b6115e486868686611c75565b90506115fa8187876115f46115ad565b86611dd4565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805462ff00001916620100001790556020810151604082015160009161169091612466565b61169b90600261241a565b9050806000036116ab5750611776565b6000818360400151856116be919061241a565b6116c89190612444565b905060006116d68286612431565b9050476116e282611e72565b60006116ee8247612431565b905060008660400151866117029190612431565b61170c9083612444565b90506000876040015182611720919061241a565b90508015611732576117328682611fc4565b602088015160009061174584600261241a565b61174f919061241a565b9050801561176d57600a5461176d906001600160a01b031682612066565b50505050505050505b5050600d805462ff000019169055565b6001600160a01b03851660009081526006602052604081205460ff161580156117c857506001600160a01b03851660009081526006602052604090205460ff16155b80156117e25750601054600f546117df9190612466565b43105b905060006118148585858561180f8c6001600160a01b031660009081526017602052604090205460ff1690565b6115d0565b6001600160a01b03881660009081526007602052604090205490915060ff1615611876576001600160a01b03871660009081526005602052604090205461185c908690612431565b6001600160a01b0388166000908152600560205260409020555b6001600160a01b03861660009081526007602052604090205460ff16156118d95760a08101516001600160a01b0387166000908152600560205260409020546118bf9190612466565b6001600160a01b0387166000908152600560205260409020555b80516001600160a01b0388166000908152600460205260409020546118fe9190612431565b6001600160a01b03808916600090815260046020908152604080832094909455840151918916815291909120546119359190612466565b6001600160a01b0387166000908152600460205260409081902091909155810151151580611967575060008160c00151115b1561197e5761197e81604001518260c0015161209c565b60008160800151118061199657506000816101000151115b15611a0a576119ae81608001518261010001516120d1565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001518461010001516119f89190612466565b60405190815260200160405180910390a35b600081606001511180611a21575060008160e00151115b15611a3857611a3881606001518260e00151612147565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a8191815260200190565b60405180910390a350505050505050565b600e54600090819081611aa76009600a61240b565b611ab590633b9aca0061241a565b905060005b600c54811015611c16578260046000600c8481548110611adc57611adc612534565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b4757508160056000600c8481548110611b2057611b20612534565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611b7457600e54611b5b6009600a61240b565b611b6990633b9aca0061241a565b945094505050509091565b60046000600c8381548110611b8b57611b8b612534565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611bba9084612431565b925060056000600c8381548110611bd357611bd3612534565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611c029083612431565b915080611c0e8161254a565b915050611aba565b50611c236009600a61240b565b611c3190633b9aca0061241a565b600e54611c3e9190612444565b821015611c6c57600e54611c546009600a61240b565b611c6290633b9aca0061241a565b9350935050509091565b90939092509050565b611c7d61215c565b83611c8e5760a08101859052611dcc565b611cb260405180606001604052806000815260200160008152602001600081525090565b838015611cbd575082155b15611ce9575060408051606081018252601b548152601c546020820152601d5491810191909152611d3a565b82611d1557506040805160608101825260185481526019546020820152601a5491810191909152611d3a565b5060408051606081018252601e548152601f5460208083019190915254918101919091525b8051606490611d49908861241a565b611d539190612444565b60c08301526020810151606490611d6a908861241a565b611d749190612444565b60e08301526040810151606490611d8b908861241a565b611d959190612444565b610100830181905260e083015160c0840151611db19089612431565b611dbb9190612431565b611dc59190612431565b60a0830152505b949350505050565b600080808080611de4878a61241a565b945087611e0b5785611df65784611df9565b60005b94935060009250829150819050611e65565b868a60c00151611e1b919061241a565b9250868a60e00151611e2d919061241a565b9150868a6101000151611e40919061241a565b90508082611e4e8588612431565b611e589190612431565b611e629190612431565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ea757611ea7612534565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2491906124ae565b81600181518110611f3757611f37612534565b6001600160a01b039283166020918202929092010152600154611f5d913091168461100a565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f96908590600090869030904290600401612563565b600060405180830381600087803b158015611fb057600080fd5b505af11580156115a5573d6000803e3d6000fd5b600154611fdc9030906001600160a01b03168461100a565b60015460085460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261201c92309289926000928392169042906004016124cb565b60606040518083038185885af115801561203a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061205f9190612506565b5050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f6a573d6000803e3d6000fd5b81600e60008282546120ae9190612431565b9091555050601180548291906000906120c8908490612466565b90915550505050565b80601160020160008282546120e69190612466565b90915550503060009081526007602052604090205460ff1615612128573060009081526005602052604081208054839290612122908490612466565b90915550505b30600090815260046020526040812080548492906120c8908490612466565b80601160010160008282546120e69190612466565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156121d5578581018301518582016040015282016121b9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461100757600080fd5b6000806040838503121561221e57600080fd5b8235612229816121f6565b946020939093013593505050565b60008060006060848603121561224c57600080fd5b8335612257816121f6565b92506020840135612267816121f6565b929592945050506040919091013590565b60006020828403121561228a57600080fd5b5035919050565b600080604083850312156122a457600080fd5b82359150602083013580151581146122bb57600080fd5b809150509250929050565b6000602082840312156122d857600080fd5b813561084b816121f6565b600080604083850312156122f657600080fd5b8235612301816121f6565b915060208301356122bb816121f6565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561236257816000190482111561234857612348612311565b8085161561235557918102915b93841c939080029061232c565b509250929050565b60008261237957506001610719565b8161238657506000610719565b816001811461239c57600281146123a6576123c2565b6001915050610719565b60ff8411156123b7576123b7612311565b50506001821b610719565b5060208310610133831016604e8410600b84101617156123e5575081810a610719565b6123ef8383612327565b806000190482111561240357612403612311565b029392505050565b600061084b60ff84168361236a565b808202811582820484141761071957610719612311565b8181038181111561071957610719612311565b60008261246157634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561071957610719612311565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156124c057600080fd5b815161084b816121f6565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561251b57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b60006001820161255c5761255c612311565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125b35784516001600160a01b03168352938301939183019160010161258e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205f7f7db2376954349ac50ff21e3bcb4961949e4351c5a6d42f8dd49b0f59274564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806385141a7711610118578063a9059cbb116100a0578063e2f456051161006f578063e2f4560514610673578063f25f4b5614610689578063f2fde38b146106a9578063f66895a3146106c9578063f887ea40146106e857600080fd5b8063a9059cbb146105f0578063af465a2714610610578063c7af2a9c14610625578063dd62ed3e1461062d57600080fd5b80638f9a55c0116100e75780638f9a55c01461054e57806395d89b41146105645780639ba5e4d514610591578063a457c2d7146105b0578063a8aa1b31146105d057600080fd5b806385141a77146104c257806388f82020146104e25780638a8c523c1461051b5780638da5cb5b1461053057600080fd5b80634ada218b1161019b578063715018a61161016a578063715018a614610410578063728f8eea14610425578063751039fc1461045f57806375f0a874146104745780637d1db4a5146104ac57600080fd5b80634ada218b1461037d57806352390c02146103975780635342acb4146103b757806370a08231146103f057600080fd5b806323b872dd116101e257806323b872dd146102e15780632d83811914610301578063313ce56714610321578063395093511461033d5780634549b0391461035d57600080fd5b806306fdde031461021f578063095ea7b31461027757806318160ddd146102a757806320800a00146102ca57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152601881527f416b7520416b75206c6f7665204f4f474120424f4f474121000000000000000060208201525b60405161026e91906121a8565b60405180910390f35b34801561028357600080fd5b5061029761029236600461220b565b610708565b604051901515815260200161026e565b3480156102b357600080fd5b506102bc61071f565b60405190815260200161026e565b3480156102d657600080fd5b506102df610740565b005b3480156102ed57600080fd5b506102976102fc366004612237565b61077e565b34801561030d57600080fd5b506102bc61031c366004612278565b610834565b34801561032d57600080fd5b506040516009815260200161026e565b34801561034957600080fd5b5061029761035836600461220b565b610852565b34801561036957600080fd5b506102bc610378366004612291565b610889565b34801561038957600080fd5b50600d546102979060ff1681565b3480156103a357600080fd5b506102df6103b23660046122c6565b610934565b3480156103c357600080fd5b506102976103d23660046122c6565b6001600160a01b031660009081526017602052604090205460ff1690565b3480156103fc57600080fd5b506102bc61040b3660046122c6565b610a87565b34801561041c57600080fd5b506102df610ae6565b34801561043157600080fd5b50601854601954601a5461044492919083565b6040805193845260208401929092529082015260600161026e565b34801561046b57600080fd5b506102df610b1c565b34801561048057600080fd5b50600954610494906001600160a01b031681565b6040516001600160a01b03909116815260200161026e565b3480156104b857600080fd5b506102bc60145481565b3480156104ce57600080fd5b50600854610494906001600160a01b031681565b3480156104ee57600080fd5b506102976104fd3660046122c6565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561052757600080fd5b506102df610b82565b34801561053c57600080fd5b506000546001600160a01b0316610494565b34801561055a57600080fd5b506102bc60155481565b34801561057057600080fd5b506040805180820190915260048152634f4f474160e01b6020820152610261565b34801561059d57600080fd5b5060115460125460135461044492919083565b3480156105bc57600080fd5b506102976105cb36600461220b565b610c14565b3480156105dc57600080fd5b50600254610494906001600160a01b031681565b3480156105fc57600080fd5b5061029761060b36600461220b565b610caf565b34801561061c57600080fd5b506102bc610cbc565b6102df610cd9565b34801561063957600080fd5b506102bc6106483660046122e3565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561067f57600080fd5b506102bc60165481565b34801561069557600080fd5b50600a54610494906001600160a01b031681565b3480156106b557600080fd5b506102df6106c43660046122c6565b610f6f565b3480156106d557600080fd5b50601b54601c54601d5461044492919083565b3480156106f457600080fd5b50600154610494906001600160a01b031681565b600061071533848461100a565b5060015b92915050565b600061072d6009600a61240b565b61073b90633b9aca0061241a565b905090565b60095460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561077a573d6000803e3d6000fd5b5050565b600061078b84848461112e565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156108155760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61082985336108248685612431565b61100a565b506001949350505050565b60008061083f6115ad565b905061084b8184612444565b9392505050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610715918590610824908690612466565b60006108976009600a61240b565b6108a590633b9aca0061241a565b8311156108f45760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161080c565b8161091557600061090b84600160008060006115d0565b5191506107199050565b600061092784600160008060006115d0565b6020015191506107199050565b6000546001600160a01b0316331461095e5760405162461bcd60e51b815260040161080c90612479565b6001600160a01b03811660009081526007602052604090205460ff16156109c75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161080c565b6001600160a01b03811660009081526004602052604090205415610a21576001600160a01b038116600090815260046020526040902054610a0790610834565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff1615610ac457506001600160a01b031660009081526005602052604090205490565b6001600160a01b03821660009081526004602052604090205461071990610834565b6000546001600160a01b03163314610b105760405162461bcd60e51b815260040161080c90612479565b610b1a6000611619565b565b6000546001600160a01b03163314610b465760405162461bcd60e51b815260040161080c90612479565b610b526009600a61240b565b610b6090633b9aca0061241a565b601455610b6f6009600a61240b565b610b7d90633b9aca0061241a565b601555565b6000546001600160a01b03163314610bac5760405162461bcd60e51b815260040161080c90612479565b600d5460ff1615610bff5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161080c565b600d805461ffff191661010117905543600f55565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610c965760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161080c565b610ca533856108248685612431565b5060019392505050565b600061071533848461112e565b610cc86009600a61240b565b610cd690633b9aca0061241a565b81565b6000546001600160a01b03163314610d035760405162461bcd60e51b815260040161080c90612479565b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a91906124ae565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0091906124ae565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7191906124ae565b600280546001600160a01b0319166001600160a01b03928316179055600154610e9f9130911660001961100a565b600254610eb4906001600160a01b0316610934565b600b546001600160a01b039081166000908152601760205260409020805460ff19166001908117909155541663f305d7193430610ef081610a87565b600080610f056000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f27969594939291906124cb565b60606040518083038185885af1158015610f45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f6a9190612506565b505050565b6000546001600160a01b03163314610f995760405162461bcd60e51b815260040161080c90612479565b6001600160a01b038116610ffe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161080c565b61100781611619565b50565b6001600160a01b03831661106c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080c565b6001600160a01b0382166110cd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161080c565b6001600160a01b0382166111f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161080c565b600081116112565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161080c565b6001600160a01b03831660009081526006602052604090205460ff1615801561129857506001600160a01b03821660009081526006602052604090205460ff16155b156112e457600d5460ff166112e45760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161080c565b6002546001600160a01b03848116911614801561130f57506002546001600160a01b03838116911614155b801561133457506001600160a01b03821660009081526006602052604090205460ff16155b156113f05760145481111561138b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161080c565b6015548161139884610a87565b6113a29190612466565b11156113f05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161080c565b60006016546113fe30610a87565b600d54911115915062010000900460ff161580156114235750600d54610100900460ff165b801561142c5750805b8015611439575060165482115b801561145357506002546001600160a01b03858116911614155b801561147857506001600160a01b03841660009081526006602052604090205460ff16155b801561149d57506001600160a01b03831660009081526006602052604090205460ff16155b156114e6576002546001600160a01b03908116908416036114e65760165460408051606081018252601b548152601c546020820152601d54918101919091526114e69190611669565b600d5460019060009062010000900460ff168061151b57506001600160a01b03861660009081526006602052604090205460ff165b8061153e57506001600160a01b03851660009081526006602052604090205460ff165b1561154857600091505b6002546001600160a01b0390811690861603611562575060015b6002546001600160a01b0387811691161480159061158e57506002546001600160a01b03868116911614155b1561159857600091505b6115a58686868585611786565b505050505050565b60008060006115ba611a92565b90925090506115c98183612444565b9250505090565b6115d861215c565b6115e486868686611c75565b90506115fa8187876115f46115ad565b86611dd4565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805462ff00001916620100001790556020810151604082015160009161169091612466565b61169b90600261241a565b9050806000036116ab5750611776565b6000818360400151856116be919061241a565b6116c89190612444565b905060006116d68286612431565b9050476116e282611e72565b60006116ee8247612431565b905060008660400151866117029190612431565b61170c9083612444565b90506000876040015182611720919061241a565b90508015611732576117328682611fc4565b602088015160009061174584600261241a565b61174f919061241a565b9050801561176d57600a5461176d906001600160a01b031682612066565b50505050505050505b5050600d805462ff000019169055565b6001600160a01b03851660009081526006602052604081205460ff161580156117c857506001600160a01b03851660009081526006602052604090205460ff16155b80156117e25750601054600f546117df9190612466565b43105b905060006118148585858561180f8c6001600160a01b031660009081526017602052604090205460ff1690565b6115d0565b6001600160a01b03881660009081526007602052604090205490915060ff1615611876576001600160a01b03871660009081526005602052604090205461185c908690612431565b6001600160a01b0388166000908152600560205260409020555b6001600160a01b03861660009081526007602052604090205460ff16156118d95760a08101516001600160a01b0387166000908152600560205260409020546118bf9190612466565b6001600160a01b0387166000908152600560205260409020555b80516001600160a01b0388166000908152600460205260409020546118fe9190612431565b6001600160a01b03808916600090815260046020908152604080832094909455840151918916815291909120546119359190612466565b6001600160a01b0387166000908152600460205260409081902091909155810151151580611967575060008160c00151115b1561197e5761197e81604001518260c0015161209c565b60008160800151118061199657506000816101000151115b15611a0a576119ae81608001518261010001516120d1565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001518461010001516119f89190612466565b60405190815260200160405180910390a35b600081606001511180611a21575060008160e00151115b15611a3857611a3881606001518260e00151612147565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a8191815260200190565b60405180910390a350505050505050565b600e54600090819081611aa76009600a61240b565b611ab590633b9aca0061241a565b905060005b600c54811015611c16578260046000600c8481548110611adc57611adc612534565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b4757508160056000600c8481548110611b2057611b20612534565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611b7457600e54611b5b6009600a61240b565b611b6990633b9aca0061241a565b945094505050509091565b60046000600c8381548110611b8b57611b8b612534565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611bba9084612431565b925060056000600c8381548110611bd357611bd3612534565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611c029083612431565b915080611c0e8161254a565b915050611aba565b50611c236009600a61240b565b611c3190633b9aca0061241a565b600e54611c3e9190612444565b821015611c6c57600e54611c546009600a61240b565b611c6290633b9aca0061241a565b9350935050509091565b90939092509050565b611c7d61215c565b83611c8e5760a08101859052611dcc565b611cb260405180606001604052806000815260200160008152602001600081525090565b838015611cbd575082155b15611ce9575060408051606081018252601b548152601c546020820152601d5491810191909152611d3a565b82611d1557506040805160608101825260185481526019546020820152601a5491810191909152611d3a565b5060408051606081018252601e548152601f5460208083019190915254918101919091525b8051606490611d49908861241a565b611d539190612444565b60c08301526020810151606490611d6a908861241a565b611d749190612444565b60e08301526040810151606490611d8b908861241a565b611d959190612444565b610100830181905260e083015160c0840151611db19089612431565b611dbb9190612431565b611dc59190612431565b60a0830152505b949350505050565b600080808080611de4878a61241a565b945087611e0b5785611df65784611df9565b60005b94935060009250829150819050611e65565b868a60c00151611e1b919061241a565b9250868a60e00151611e2d919061241a565b9150868a6101000151611e40919061241a565b90508082611e4e8588612431565b611e589190612431565b611e629190612431565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ea757611ea7612534565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2491906124ae565b81600181518110611f3757611f37612534565b6001600160a01b039283166020918202929092010152600154611f5d913091168461100a565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f96908590600090869030904290600401612563565b600060405180830381600087803b158015611fb057600080fd5b505af11580156115a5573d6000803e3d6000fd5b600154611fdc9030906001600160a01b03168461100a565b60015460085460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261201c92309289926000928392169042906004016124cb565b60606040518083038185885af115801561203a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061205f9190612506565b5050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f6a573d6000803e3d6000fd5b81600e60008282546120ae9190612431565b9091555050601180548291906000906120c8908490612466565b90915550505050565b80601160020160008282546120e69190612466565b90915550503060009081526007602052604090205460ff1615612128573060009081526005602052604081208054839290612122908490612466565b90915550505b30600090815260046020526040812080548492906120c8908490612466565b80601160010160008282546120e69190612466565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156121d5578581018301518582016040015282016121b9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461100757600080fd5b6000806040838503121561221e57600080fd5b8235612229816121f6565b946020939093013593505050565b60008060006060848603121561224c57600080fd5b8335612257816121f6565b92506020840135612267816121f6565b929592945050506040919091013590565b60006020828403121561228a57600080fd5b5035919050565b600080604083850312156122a457600080fd5b82359150602083013580151581146122bb57600080fd5b809150509250929050565b6000602082840312156122d857600080fd5b813561084b816121f6565b600080604083850312156122f657600080fd5b8235612301816121f6565b915060208301356122bb816121f6565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561236257816000190482111561234857612348612311565b8085161561235557918102915b93841c939080029061232c565b509250929050565b60008261237957506001610719565b8161238657506000610719565b816001811461239c57600281146123a6576123c2565b6001915050610719565b60ff8411156123b7576123b7612311565b50506001821b610719565b5060208310610133831016604e8410600b84101617156123e5575081810a610719565b6123ef8383612327565b806000190482111561240357612403612311565b029392505050565b600061084b60ff84168361236a565b808202811582820484141761071957610719612311565b8181038181111561071957610719612311565b60008261246157634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561071957610719612311565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156124c057600080fd5b815161084b816121f6565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561251b57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b60006001820161255c5761255c612311565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125b35784516001600160a01b03168352938301939183019160010161258e565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205f7f7db2376954349ac50ff21e3bcb4961949e4351c5a6d42f8dd49b0f59274564736f6c63430008120033

Deployed Bytecode Sourcemap

3450:17051:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6825:83;;;;;;;;;;-1:-1:-1;6895:5:0;;;;;;;;;;;;;;;;;6825:83;;;;;;;:::i;:::-;;;;;;;;7562:161;;;;;;;;;;-1:-1:-1;7562:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7562:161:0;1023:187:1;7102:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7102:95:0;1215:177:1;18658:163:0;;;;;;;;;;;;;:::i;:::-;;7731:448;;;;;;;;;;-1:-1:-1;7731:448:0;;;;;:::i;:::-;;:::i;9865:253::-;;;;;;;;;;-1:-1:-1;9865:253:0;;;;;:::i;:::-;;:::i;7011:83::-;;;;;;;;;;-1:-1:-1;7011:83:0;;4497:1;2185:36:1;;2173:2;2158:18;7011:83:0;2043:184:1;8187:207:0;;;;;;;;;;-1:-1:-1;8187:207:0;;;;;:::i;:::-;;:::i;8802:531::-;;;;;;;;;;-1:-1:-1;8802:531:0;;;;;:::i;:::-;;:::i;4368:26::-;;;;;;;;;;-1:-1:-1;4368:26:0;;;;;;;;10126:332;;;;;;;;;;-1:-1:-1;10126:332:0;;;;;:::i;:::-;;:::i;10466:125::-;;;;;;;;;;-1:-1:-1;10466:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;10555:28:0;10531:4;10555:28;;;:19;:28;;;;;;;;;10466:125;7205:198;;;;;;;;;;-1:-1:-1;7205:198:0;;;;;:::i;:::-;;:::i;1396:94::-;;;;;;;;;;;;;:::i;5548:35::-;;;;;;;;;;-1:-1:-1;5548:35:0;;;;;;;;;;;;;;;;3032:25:1;;;3088:2;3073:18;;3066:34;;;;3116:18;;;3109:34;3020:2;3005:18;5548:35:0;2830:319:1;16832:116:0;;;;;;;;;;;;;:::i;4090:76::-;;;;;;;;;;-1:-1:-1;4090:76:0;;;;-1:-1:-1;;;;;4090:76:0;;;;;;-1:-1:-1;;;;;3318:32:1;;;3300:51;;3288:2;3273:18;4090:76:0;3154:203:1;5209:49:0;;;;;;;;;;;;;;;;4013:70;;;;;;;;;;-1:-1:-1;4013:70:0;;;;-1:-1:-1;;;;;4013:70:0;;;9514:120;;;;;;;;;;-1:-1:-1;9514:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9606:20:0;9582:4;9606:20;;;:11;:20;;;;;;;;;9514:120;9642:215;;;;;;;;;;;;;:::i;1173:87::-;;;;;;;;;;-1:-1:-1;1219:7:0;1246:6;-1:-1:-1;;;;;1246:6:0;1173:87;;5265:51;;;;;;;;;;;;;;;;6916:87;;;;;;;;;;-1:-1:-1;6988:7:0;;;;;;;;;;;;-1:-1:-1;;;6988:7:0;;;;6916:87;;4865:36;;;;;;;;;;-1:-1:-1;4865:36:0;;;;;;;;;;;;8402:392;;;;;;;;;;-1:-1:-1;8402:392:0;;;;;:::i;:::-;;:::i;3572:19::-;;;;;;;;;;-1:-1:-1;3572:19:0;;;;-1:-1:-1;;;;;3572:19:0;;;9341:165;;;;;;;;;;-1:-1:-1;9341:165:0;;;;;:::i;:::-;;:::i;4547:63::-;;;;;;;;;;;;;:::i;6308:505::-;;;:::i;7411:143::-;;;;;;;;;;-1:-1:-1;7411:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7519:18:0;;;7492:7;7519:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7411:143;5323:50;;;;;;;;;;;;;;;;4173:70;;;;;;;;;;-1:-1:-1;4173:70:0;;;;-1:-1:-1;;;;;4173:70:0;;;1498:192;;;;;;;;;;-1:-1:-1;1498:192:0;;;;;:::i;:::-;;:::i;5590:39::-;;;;;;;;;;-1:-1:-1;5590:39:0;;;;;;;;;;;;3544:21;;;;;;;;;;-1:-1:-1;3544:21:0;;;;-1:-1:-1;;;;;3544:21:0;;;7562:161;7637:4;7654:39;674:10;7677:7;7686:6;7654:8;:39::i;:::-;-1:-1:-1;7711:4:0;7562:161;;;;;:::o;7102:95::-;7155:7;4597:13;4497:1;4597:2;:13;:::i;:::-;4581:29;;:13;:29;:::i;:::-;7175:14;;7102:95;:::o;18658:163::-;18768:15;;18760:53;;18728:21;;-1:-1:-1;;;;;18768:15:0;;18760:53;;;;;18728:21;;18699:26;18760:53;18699:26;18760:53;18728:21;18768:15;18760:53;;;;;;;;;;;;;;;;;;;;;18688:133;18658:163::o;7731:448::-;7863:4;7880:36;7890:6;7898:9;7909:6;7880:9;:36::i;:::-;-1:-1:-1;;;;;7956:19:0;;7929:24;7956:19;;;:11;:19;;;;;;;;674:10;7956:33;;;;;;;;8008:26;;;;8000:79;;;;-1:-1:-1;;;8000:79:0;;5868:2:1;8000:79:0;;;5850:21:1;5907:2;5887:18;;;5880:30;5946:34;5926:18;;;5919:62;-1:-1:-1;;;5997:18:1;;;5990:38;6045:19;;8000:79:0;;;;;;;;;8090:57;8099:6;674:10;8121:25;8140:6;8121:16;:25;:::i;:::-;8090:8;:57::i;:::-;-1:-1:-1;8167:4:0;;7731:448;-1:-1:-1;;;;7731:448:0:o;9865:253::-;9932:7;10039:19;10061:10;:8;:10::i;:::-;10039:32;-1:-1:-1;10089:21:0;10039:32;10089:7;:21;:::i;:::-;10082:28;9865:253;-1:-1:-1;;;9865:253:0:o;8187:207::-;674:10;8267:4;8316:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8316:34:0;;;;;;;;;;8267:4;;8284:80;;8307:7;;8316:47;;8353:10;;8316:47;:::i;8802:531::-;8920:7;4597:13;4497:1;4597:2;:13;:::i;:::-;4581:29;;:13;:29;:::i;:::-;8953:7;:18;;8945:62;;;;-1:-1:-1;;;8945:62:0;;6762:2:1;8945:62:0;;;6744:21:1;6801:2;6781:18;;;6774:30;6840:33;6820:18;;;6813:61;6891:18;;8945:62:0;6560:355:1;8945:62:0;9023:17;9018:308;;9057:28;9088:46;9099:7;9108:4;9114:5;9121;9128;9088:10;:46::i;:::-;9156:9;;-1:-1:-1;9149:16:0;;-1:-1:-1;9149:16:0;9018:308;9198:28;9229:46;9240:7;9249:4;9255:5;9262;9269;9229:10;:46::i;:::-;9297:17;;;;-1:-1:-1;9290:24:0;;-1:-1:-1;9290:24:0;10126:332;1219:7;1246:6;-1:-1:-1;;;;;1246:6:0;674:10;1308:23;1300:68;;;;-1:-1:-1;;;1300:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10207:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10206:21;10198:61;;;::::0;-1:-1:-1;;;10198:61:0;;7483:2:1;10198:61:0::1;::::0;::::1;7465:21:1::0;7522:2;7502:18;;;7495:30;7561:29;7541:18;;;7534:57;7608:18;;10198:61:0::1;7281:351:1::0;10198:61:0::1;-1:-1:-1::0;;;;;10274:16:0;::::1;10293:1;10274:16:::0;;;:7:::1;:16;::::0;;;;;:20;10270:109:::1;;-1:-1:-1::0;;;;;10350:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10330:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10311:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10270:109:::1;-1:-1:-1::0;;;;;10389:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10389:27:0::1;10412:4;10389:27:::0;;::::1;::::0;;;10427:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10427:23:0::1;::::0;;::::1;::::0;;10126:332::o;7205:198::-;-1:-1:-1;;;;;7295:20:0;;7271:7;7295:20;;;:11;:20;;;;;;;;7291:49;;;-1:-1:-1;;;;;;7324:16:0;;;;;:7;:16;;;;;;;7205:198::o;7291:49::-;-1:-1:-1;;;;;7378:16:0;;;;;;:7;:16;;;;;;7358:37;;:19;:37::i;1396:94::-;1219:7;1246:6;-1:-1:-1;;;;;1246:6:0;674:10;1308:23;1300:68;;;;-1:-1:-1;;;1300:68:0;;;;;;;:::i;:::-;1461:21:::1;1479:1;1461:9;:21::i;:::-;1396:94::o:0;16832:116::-;1219:7;1246:6;-1:-1:-1;;;;;1246:6:0;674:10;1308:23;1300:68;;;;-1:-1:-1;;;1300:68:0;;;;;;;:::i;:::-;4597:13:::1;4497:1;4597:2;:13;:::i;:::-;4581:29;::::0;:13:::1;:29;:::i;:::-;16885:12;:22:::0;4597:13:::1;4497:1;4597:2;:13;:::i;:::-;4581:29;::::0;:13:::1;:29;:::i;:::-;16918:14;:22:::0;16832:116::o;9642:215::-;1219:7;1246:6;-1:-1:-1;;;;;1246:6:0;674:10;1308:23;1300:68;;;;-1:-1:-1;;;1300:68:0;;;;;;;:::i;:::-;9706:14:::1;::::0;::::1;;9705:15;9697:52;;;::::0;-1:-1:-1;;;9697:52:0;;7839:2:1;9697:52:0::1;::::0;::::1;7821:21:1::0;7878:2;7858:18;;;7851:30;7917:26;7897:18;;;7890:54;7961:18;;9697:52:0::1;7637:348:1::0;9697:52:0::1;9760:14;:21:::0;;-1:-1:-1;;9792:18:0;;;;;9837:12:::1;9821:13;:28:::0;9642:215::o;8402:392::-;674:10;8505:4;8554:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8554:34:0;;;;;;;;;;8607:35;;;;8599:85;;;;-1:-1:-1;;;8599:85:0;;8192:2:1;8599:85:0;;;8174:21:1;8231:2;8211:18;;;8204:30;8270:34;8250:18;;;8243:62;-1:-1:-1;;;8321:18:1;;;8314:35;8366:19;;8599:85:0;7990:401:1;8599:85:0;8695:67;674:10;8718:7;8727:34;8746:15;8727:16;:34;:::i;8695:67::-;-1:-1:-1;8782:4:0;;8402:392;-1:-1:-1;;;8402:392:0:o;9341:165::-;9419:4;9436:40;9446:10;9458:9;9469:6;9436:9;:40::i;4547:63::-;4597:13;4497:1;4597:2;:13;:::i;:::-;4581:29;;:13;:29;:::i;:::-;4547:63;:::o;6308:505::-;1219:7;1246:6;-1:-1:-1;;;;;1246:6:0;674:10;1308:23;1300:68;;;;-1:-1:-1;;;1300:68:0;;;;;;;:::i;:::-;6389:6:::1;;;;;;;;;-1:-1:-1::0;;;;;6389:6:0::1;-1:-1:-1::0;;;;;6389:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6380:37:0::1;;6426:4;6433:6;;;;;;;;;-1:-1:-1::0;;;;;6433:6:0::1;-1:-1:-1::0;;;;;6433:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6380:67;::::0;-1:-1:-1;;;;;;6380:67:0::1;::::0;;;;;;-1:-1:-1;;;;;8882:15:1;;;6380:67:0::1;::::0;::::1;8864:34:1::0;8934:15;;8914:18;;;8907:43;8799:18;;6380:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6373:4;:74:::0;;-1:-1:-1;;;;;;6373:74:0::1;-1:-1:-1::0;;;;;6373:74:0;;::::1;;::::0;;-1:-1:-1;6490:6:0;6458:59:::1;::::0;6475:4:::1;::::0;6490:6:::1;-1:-1:-1::0;;6458:8:0::1;:59::i;:::-;6546:4;::::0;6528:23:::1;::::0;-1:-1:-1;;;;;6546:4:0::1;6528:17;:23::i;:::-;6573:9;::::0;-1:-1:-1;;;;;6573:9:0;;::::1;6553:30;::::0;;;:19:::1;:30;::::0;;;;:37;;-1:-1:-1;;6553:37:0::1;6586:4;6553:37:::0;;::::1;::::0;;;6601:6;::::1;:22;6631:9;6664:4;6684:24;6664:4:::0;6684:9:::1;:24::i;:::-;6723:1;6740::::0;6757:7:::1;1219::::0;1246:6;-1:-1:-1;;;;;1246:6:0;;1173:87;6757:7:::1;6779:15;6601:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6308:505::o:0;1498:192::-;1219:7;1246:6;-1:-1:-1;;;;;1246:6:0;674:10;1308:23;1300:68;;;;-1:-1:-1;;;1300:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1587:22:0;::::1;1579:73;;;::::0;-1:-1:-1;;;1579:73:0;;10086:2:1;1579:73:0::1;::::0;::::1;10068:21:1::0;10125:2;10105:18;;;10098:30;10164:34;10144:18;;;10137:62;-1:-1:-1;;;10215:18:1;;;10208:36;10261:19;;1579:73:0::1;9884:402:1::0;1579:73:0::1;1663:19;1673:8;1663:9;:19::i;:::-;1498:192:::0;:::o;15011:369::-;-1:-1:-1;;;;;15138:19:0;;15130:68;;;;-1:-1:-1;;;15130:68:0;;10493:2:1;15130:68:0;;;10475:21:1;10532:2;10512:18;;;10505:30;10571:34;10551:18;;;10544:62;-1:-1:-1;;;10622:18:1;;;10615:34;10666:19;;15130:68:0;10291:400:1;15130:68:0;-1:-1:-1;;;;;15217:21:0;;15209:68;;;;-1:-1:-1;;;15209:68:0;;10898:2:1;15209:68:0;;;10880:21:1;10937:2;10917:18;;;10910:30;10976:34;10956:18;;;10949:62;-1:-1:-1;;;11027:18:1;;;11020:32;11069:19;;15209:68:0;10696:398:1;15209:68:0;-1:-1:-1;;;;;15288:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15340:32;;1361:25:1;;;15340:32:0;;1334:18:1;15340:32:0;;;;;;;15011:369;;;:::o;15388:1436::-;-1:-1:-1;;;;;15510:18:0;;15502:68;;;;-1:-1:-1;;;15502:68:0;;11301:2:1;15502:68:0;;;11283:21:1;11340:2;11320:18;;;11313:30;11379:34;11359:18;;;11352:62;-1:-1:-1;;;11430:18:1;;;11423:35;11475:19;;15502:68:0;11099:401:1;15502:68:0;-1:-1:-1;;;;;15589:16:0;;15581:64;;;;-1:-1:-1;;;15581:64:0;;11707:2:1;15581:64:0;;;11689:21:1;11746:2;11726:18;;;11719:30;11785:34;11765:18;;;11758:62;-1:-1:-1;;;11836:18:1;;;11829:33;11879:19;;15581:64:0;11505:399:1;15581:64:0;15673:1;15664:6;:10;15656:64;;;;-1:-1:-1;;;15656:64:0;;12111:2:1;15656:64:0;;;12093:21:1;12150:2;12130:18;;;12123:30;12189:34;12169:18;;;12162:62;-1:-1:-1;;;12240:18:1;;;12233:39;12289:19;;15656:64:0;11909:405:1;15656:64:0;-1:-1:-1;;;;;15738:24:0;;;;;;:18;:24;;;;;;;;15737:25;:52;;;;-1:-1:-1;;;;;;15767:22:0;;;;;;:18;:22;;;;;;;;15766:23;15737:52;15733:130;;;15814:14;;;;15806:45;;;;-1:-1:-1;;;15806:45:0;;12521:2:1;15806:45:0;;;12503:21:1;12560:2;12540:18;;;12533:30;-1:-1:-1;;;12579:18:1;;;12572:48;12637:18;;15806:45:0;12319:342:1;15806:45:0;15887:4;;-1:-1:-1;;;;;15879:12:0;;;15887:4;;15879:12;:35;;;;-1:-1:-1;15909:4:0;;-1:-1:-1;;;;;15895:19:0;;;15909:4;;15895:19;;15879:35;:62;;;;-1:-1:-1;;;;;;15919:22:0;;;;;;:18;:22;;;;;;;;15918:23;15879:62;15875:250;;;15977:12;;15967:6;:22;;15959:60;;;;-1:-1:-1;;;15959:60:0;;12868:2:1;15959:60:0;;;12850:21:1;12907:2;12887:18;;;12880:30;12946:27;12926:18;;;12919:55;12991:18;;15959:60:0;12666:349:1;15959:60:0;16068:14;;16058:6;16042:13;16052:2;16042:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16034:79;;;;-1:-1:-1;;;16034:79:0;;13222:2:1;16034:79:0;;;13204:21:1;13261:2;13241:18;;;13234:30;13300:28;13280:18;;;13273:56;13346:18;;16034:79:0;13020:350:1;16034:79:0;16137:12;16180:18;;16152:24;16170:4;16152:9;:24::i;:::-;16214:8;;-1:-1:-1;;16152:46:0;;-1:-1:-1;16214:8:0;;;;;16213:9;:24;;;;-1:-1:-1;16226:11:0;;;;;;;16213:24;:35;;;;;16241:7;16213:35;:66;;;;;16261:18;;16252:6;:27;16213:66;:82;;;;-1:-1:-1;16291:4:0;;-1:-1:-1;;;;;16283:12:0;;;16291:4;;16283:12;;16213:82;:111;;;;-1:-1:-1;;;;;;16300:24:0;;;;;;:18;:24;;;;;;;;16299:25;16213:111;:148;;;;-1:-1:-1;;;;;;16339:22:0;;;;;;:18;:22;;;;;;;;16338:23;16213:148;16209:252;;;16398:4;;-1:-1:-1;;;;;16398:4:0;;;16392:10;;;;16388:61;;16419:18;;16404:45;;;;;;;;16439:9;16404:45;;;;;;;;;;;;;;;;;;;;16419:18;16404:14;:45::i;:::-;16535:8;;16486:4;;16471:12;;16535:8;;;;;;:36;;-1:-1:-1;;;;;;16547:24:0;;;;;;:18;:24;;;;;;;;16535:36;:62;;;-1:-1:-1;;;;;;16575:22:0;;;;;;:18;:22;;;;;;;;16535:62;16531:83;;;16609:5;16599:15;;16531:83;16635:4;;-1:-1:-1;;;;;16635:4:0;;;16629:10;;;;16625:29;;-1:-1:-1;16650:4:0;16625:29;16677:4;;-1:-1:-1;;;;;16669:12:0;;;16677:4;;16669:12;;;;:26;;-1:-1:-1;16691:4:0;;-1:-1:-1;;;;;16685:10:0;;;16691:4;;16685:10;;16669:26;16665:83;;;16732:5;16722:15;;16665:83;16767:49;16782:4;16788:2;16792:6;16800:7;16809:6;16767:14;:49::i;:::-;15491:1333;;;15388:1436;;;:::o;13378:161::-;13420:7;13441:15;13458;13477:19;:17;:19::i;:::-;13440:56;;-1:-1:-1;13440:56:0;-1:-1:-1;13514:17:0;13440:56;;13514:17;:::i;:::-;13507:24;;;;13378:161;:::o;12779:591::-;12953:36;;:::i;:::-;13014:51;13026:7;13035;13044:6;13052:12;13014:11;:51::i;:::-;13002:63;;13261:65;13274:9;13285:7;13294;13303:10;:8;:10::i;:::-;13315;13261:12;:65::i;:::-;13227:20;;;13076:250;13192:20;;;13076:250;13163:14;;;13076:250;13123:25;;;13076:250;;;12779:591;;;;;;;:::o;1698:173::-;1754:16;1773:6;;-1:-1:-1;;;;;1790:17:0;;;-1:-1:-1;;;;;;1790:17:0;;;;;;1823:40;;1773:6;;;;;;;1823:40;;1754:16;1823:40;1743:128;1698:173;:::o;18950:1027::-;5748:8;:15;;-1:-1:-1;;5748:15:0;;;;;19102:14:::1;::::0;::::1;::::0;19072::::1;::::0;::::1;::::0;5748:15;;19072:44:::1;::::0;::::1;:::i;:::-;19071:50;::::0;19120:1:::1;19071:50;:::i;:::-;19049:72;;19138:11;19153:1;19138:16:::0;19134:54:::1;;19170:7;;;19134:54;19200:32;19272:11;19254:4;:14;;;19236:15;:32;;;;:::i;:::-;19235:48;;;;:::i;:::-;19200:83:::0;-1:-1:-1;19294:14:0::1;19311:42;19200:83:::0;19311:15;:42:::1;:::i;:::-;19294:59:::0;-1:-1:-1;19389:21:0::1;19421:24;19294:59:::0;19421:16:::1;:24::i;:::-;19456:20;19479:38;19503:14:::0;19479:21:::1;:38;:::i;:::-;19456:61;;19528:19;19580:4;:14;;;19566:11;:28;;;;:::i;:::-;19550:45;::::0;:12;:45:::1;:::i;:::-;19528:67;;19606:29;19652:4;:14;;;19638:11;:28;;;;:::i;:::-;19606:60:::0;-1:-1:-1;19683:25:0;;19679:119:::1;;19725:61;19738:24;19764:21;19725:12;:61::i;:::-;19851:14;::::0;::::1;::::0;19810:20:::1;::::0;19833:15:::1;:11:::0;19847:1:::1;19833:15;:::i;:::-;:32;;;;:::i;:::-;19810:55:::0;-1:-1:-1;19880:16:0;;19876:94:::1;;19933:9;::::0;19913:45:::1;::::0;-1:-1:-1;;;;;19933:9:0::1;19945:12:::0;19913:11:::1;:45::i;:::-;19038:939;;;;;;;;5774:1;-1:-1:-1::0;;5786:8:0;:16;;-1:-1:-1;;5786:16:0;;;18950:1027::o;16956:1283::-;-1:-1:-1;;;;;17095:26:0;;17074:17;17095:26;;;:18;:26;;;;;;;;17094:27;:61;;;;-1:-1:-1;;;;;;17126:29:0;;;;;;:18;:29;;;;;;;;17125:30;17094:61;:104;;;;;17190:8;;17174:13;;:24;;;;:::i;:::-;17159:12;:39;17094:104;17074:124;;17211:28;17242:77;17253:7;17262;17271:6;17279:12;17293:25;17311:6;-1:-1:-1;;;;;10555:28:0;10531:4;10555:28;;;:19;:28;;;;;;;;;10466:125;17293:25;17242:10;:77::i;:::-;-1:-1:-1;;;;;17336:19:0;;;;;;:11;:19;;;;;;17211:108;;-1:-1:-1;17336:19:0;;17332:124;;;-1:-1:-1;;;;;17419:15:0;;;;;;:7;:15;;;;;;:25;;17437:7;;17419:25;:::i;:::-;-1:-1:-1;;;;;17401:15:0;;;;;;:7;:15;;;;;:43;17332:124;-1:-1:-1;;;;;17470:22:0;;;;;;:11;:22;;;;;;;;17466:141;;;17578:17;;;;-1:-1:-1;;;;;17557:18:0;;;;;;:7;:18;;;;;;:38;;17578:17;17557:38;:::i;:::-;-1:-1:-1;;;;;17536:18:0;;;;;;:7;:18;;;;;:59;17466:141;17655:9;;-1:-1:-1;;;;;17637:15:0;;17655:9;17637:15;;;:7;:15;;;;;;:27;;17655:9;17637:27;:::i;:::-;-1:-1:-1;;;;;17619:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;17717:17;;;17696:18;;;;;;;;;;:38;;17717:17;17696:38;:::i;:::-;-1:-1:-1;;;;;17675:18:0;;;;;;:7;:18;;;;;;;:59;;;;17751:6;;;:10;;;:24;;;17774:1;17765;:6;;;:10;17751:24;17747:57;;;17777:27;17789:1;:6;;;17797:1;:6;;;17777:11;:27::i;:::-;17834:1;17819;:12;;;:16;:36;;;;17854:1;17839;:12;;;:16;17819:36;17815:257;;;17872:42;17887:1;:12;;;17901:1;:12;;;17872:14;:42::i;:::-;17994:4;-1:-1:-1;;;;;17934:126:0;17961:6;-1:-1:-1;;;;;17934:126:0;;18033:1;:12;;;18018:1;:12;;;:27;;;;:::i;:::-;17934:126;;1361:25:1;;;1349:2;1334:18;17934:126:0;;;;;;;17815:257;18101:1;18086;:12;;;:16;:36;;;;18121:1;18106;:12;;;:16;18086:36;18082:87;;;18124:45;18142:1;:12;;;18156:1;:12;;;18124:17;:45::i;:::-;18202:9;-1:-1:-1;;;;;18185:46:0;18194:6;-1:-1:-1;;;;;18185:46:0;;18213:1;:17;;;18185:46;;;;1361:25:1;;1349:2;1334:18;;1215:177;18185:46:0;;;;;;;;17063:1176;;16956:1283;;;;;:::o;14439:564::-;14537:7;;14490;;;;;4597:13;4497:1;4597:2;:13;:::i;:::-;4581:29;;:13;:29;:::i;:::-;14555:25;;14596:9;14591:300;14615:9;:16;14611:20;;14591:300;;;14681:7;14657;:21;14665:9;14675:1;14665:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14665:12:0;14657:21;;;;;;;;;;;;;:31;;:66;;;14716:7;14692;:21;14700:9;14710:1;14700:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14700:12:0;14692:21;;;;;;;;;;;;;:31;14657:66;14653:114;;;14750:7;;4597:13;4497:1;4597:2;:13;:::i;:::-;4581:29;;:13;:29;:::i;:::-;14742:25;;;;;;;14439:564;;:::o;14653:114::-;14802:7;:21;14810:9;14820:1;14810:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14810:12:0;14802:21;;;;;;;;;;;;;14792:31;;:7;:31;:::i;:::-;14782:41;;14858:7;:21;14866:9;14876:1;14866:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14866:12:0;14858:21;;;;;;;;;;;;;14848:31;;:7;:31;:::i;:::-;14838:41;-1:-1:-1;14633:3:0;;;;:::i;:::-;;;;14591:300;;;-1:-1:-1;4597:13:0;4497:1;4597:2;:13;:::i;:::-;4581:29;;:13;:29;:::i;:::-;14915:7;;:17;;;;:::i;:::-;14905:7;:27;14901:58;;;14942:7;;4597:13;4497:1;4597:2;:13;:::i;:::-;4581:29;;:13;:29;:::i;:::-;14934:25;;;;;;14439:564;;:::o;14901:58::-;14978:7;;14987;;-1:-1:-1;14439:564:0;-1:-1:-1;14439:564:0:o;12008:763::-;12157:28;;:::i;:::-;12203:7;12198:91;;12227:17;;;:27;;;12269:8;;12198:91;12299:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;12299:17:0;12331:6;:23;;;;;12342:12;12341:13;12331:23;12327:124;;;-1:-1:-1;12356:16:0;;;;;;;;12363:9;12356:16;;;;;;;;;;;;;;;;;;12327:124;;;12393:12;12388:63;;-1:-1:-1;12407:12:0;;;;;;;;12414:5;12407:12;;;;;;;;;;;;;;;;;;12388:63;;;-1:-1:-1;12435:16:0;;;;;;;;12442:9;12435:16;;;;;;;;;;;;;;;;;;;;;12388:63;12484:8;;12496:3;;12474:18;;:7;:18;:::i;:::-;12473:26;;;;:::i;:::-;12464:6;;;:35;12536:14;;;;12554:3;;12526:24;;:7;:24;:::i;:::-;12525:32;;;;:::i;:::-;12510:12;;;:47;12594:14;;;;12612:3;;12584:24;;:7;:24;:::i;:::-;12583:32;;;;:::i;:::-;12568:12;;;:47;;;12704:12;;;;12682:6;;;;12659:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;12626:17;;;:118;-1:-1:-1;12008:763:0;;;;;;;:::o;13547:884::-;13783:15;;;;;13967:21;13977:11;13967:7;:21;:::i;:::-;13957:31;;14006:7;14001:88;;14038:10;:20;;14051:7;14038:20;;;14049:1;14038:20;14030:47;14060:7;-1:-1:-1;14069:1:0;;-1:-1:-1;14069:1:0;;-1:-1:-1;14069:1:0;;-1:-1:-1;14030:47:0;;14001:88;14117:11;14108:1;:6;;;:20;;;;:::i;:::-;14101:27;;14167:11;14152:1;:12;;;:26;;;;:::i;:::-;14139:39;;14217:11;14202:1;:12;;;:26;;;;:::i;:::-;14189:39;-1:-1:-1;14189:39:0;14313:10;14270:27;14293:4;14270:7;:27;:::i;:::-;:53;;;;:::i;:::-;:79;;;;:::i;:::-;14239:110;;13547:884;;;;;;;;;;;;:::o;19985:476::-;20075:16;;;20089:1;20075:16;;;;;;;;20051:21;;20075:16;;;;;;;;;;-1:-1:-1;20075:16:0;20051:40;;20120:4;20102;20107:1;20102:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20102:23:0;;;:7;;;;;;;;;;:23;;;;20146:6;;:13;;;-1:-1:-1;;;20146:13:0;;;;:6;;;;;:11;;:13;;;;;20102:7;;20146:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20136:4;20141:1;20136:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20136:23:0;;;:7;;;;;;;;;:23;20204:6;;20172:53;;20189:4;;20204:6;20213:11;20172:8;:53::i;:::-;20238:6;;:215;;-1:-1:-1;;;20238:215:0;;-1:-1:-1;;;;;20238:6:0;;;;:57;;:215;;20310:11;;20238:6;;20380:4;;20407;;20427:15;;20238:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18247:403;18360:6;;18328:53;;18345:4;;-1:-1:-1;;;;;18360:6:0;18369:11;18328:8;:53::i;:::-;18394:6;;18591:10;;18394:248;;-1:-1:-1;;;18394:248:0;;-1:-1:-1;;;;;18394:6:0;;;;:22;;18425:9;;18394:248;;18459:4;;18479:11;;18394:6;;;;18591:10;;18616:15;;18394:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18247:403;;:::o;18829:113::-;18910:24;;-1:-1:-1;;;;;18910:16:0;;;:24;;;;;18927:6;;18910:24;;;;18927:6;18910:16;:24;;;;;;;;;;;;;;;;;;;11296:125;11375:4;11364:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;11390:11:0;:23;;11409:4;;11390:11;:15;;:23;;11409:4;;11390:23;:::i;:::-;;;;-1:-1:-1;;;;11296:125:0:o;11429:280::-;11537:10;11512:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;11584:4:0;11564:26;;;;:11;:26;;;;;;;;11560:95;;;11623:4;11607:22;;;;:7;:22;;;;;:36;;11633:10;;11607:22;:36;;11633:10;;11607:36;:::i;:::-;;;;-1:-1:-1;;11560:95:0;11681:4;11665:22;;;;:7;:22;;;;;:36;;11691:10;;11665:22;:36;;11691:10;;11665:36;:::i;11717:283::-;11828:10;11803:11;:21;;;:35;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2232:341::-;2297:6;2305;2358:2;2346:9;2337:7;2333:23;2329:32;2326:52;;;2374:1;2371;2364:12;2326:52;2410:9;2397:23;2387:33;;2470:2;2459:9;2455:18;2442:32;2517:5;2510:13;2503:21;2496:5;2493:32;2483:60;;2539:1;2536;2529:12;2483:60;2562:5;2552:15;;;2232:341;;;;;:::o;2578:247::-;2637:6;2690:2;2678:9;2669:7;2665:23;2661:32;2658:52;;;2706:1;2703;2696:12;2658:52;2745:9;2732:23;2764:31;2789:5;2764:31;:::i;3362:388::-;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;3672:2:1;3657:18;;3644:32;3685:33;3644:32;3685:33;:::i;3978:127::-;4039:10;4034:3;4030:20;4027:1;4020:31;4070:4;4067:1;4060:15;4094:4;4091:1;4084:15;4110:422;4199:1;4242:5;4199:1;4256:270;4277:7;4267:8;4264:21;4256:270;;;4336:4;4332:1;4328:6;4324:17;4318:4;4315:27;4312:53;;;4345:18;;:::i;:::-;4395:7;4385:8;4381:22;4378:55;;;4415:16;;;;4378:55;4494:22;;;;4454:15;;;;4256:270;;;4260:3;4110:422;;;;;:::o;4537:806::-;4586:5;4616:8;4606:80;;-1:-1:-1;4657:1:1;4671:5;;4606:80;4705:4;4695:76;;-1:-1:-1;4742:1:1;4756:5;;4695:76;4787:4;4805:1;4800:59;;;;4873:1;4868:130;;;;4780:218;;4800:59;4830:1;4821:10;;4844:5;;;4868:130;4905:3;4895:8;4892:17;4889:43;;;4912:18;;:::i;:::-;-1:-1:-1;;4968:1:1;4954:16;;4983:5;;4780:218;;5082:2;5072:8;5069:16;5063:3;5057:4;5054:13;5050:36;5044:2;5034:8;5031:16;5026:2;5020:4;5017:12;5013:35;5010:77;5007:159;;;-1:-1:-1;5119:19:1;;;5151:5;;5007:159;5198:34;5223:8;5217:4;5198:34;:::i;:::-;5268:6;5264:1;5260:6;5256:19;5247:7;5244:32;5241:58;;;5279:18;;:::i;:::-;5317:20;;4537:806;-1:-1:-1;;;4537:806:1:o;5348:140::-;5406:5;5435:47;5476:4;5466:8;5462:19;5456:4;5435:47;:::i;5493:168::-;5566:9;;;5597;;5614:15;;;5608:22;;5594:37;5584:71;;5635:18;;:::i;6075:128::-;6142:9;;;6163:11;;;6160:37;;;6177:18;;:::i;6208:217::-;6248:1;6274;6264:132;;6318:10;6313:3;6309:20;6306:1;6299:31;6353:4;6350:1;6343:15;6381:4;6378:1;6371:15;6264:132;-1:-1:-1;6410:9:1;;6208:217::o;6430:125::-;6495:9;;;6516:10;;;6513:36;;;6529:18;;:::i;6920:356::-;7122:2;7104:21;;;7141:18;;;7134:30;7200:34;7195:2;7180:18;;7173:62;7267:2;7252:18;;6920:356::o;8396:251::-;8466:6;8519:2;8507:9;8498:7;8494:23;8490:32;8487:52;;;8535:1;8532;8525:12;8487:52;8567:9;8561:16;8586:31;8611:5;8586:31;:::i;8961:607::-;-1:-1:-1;;;;;9320:15:1;;;9302:34;;9367:2;9352:18;;9345:34;;;;9410:2;9395:18;;9388:34;;;;9453:2;9438:18;;9431:34;;;;9502:15;;;9496:3;9481:19;;9474:44;9282:3;9534:19;;9527:35;;;;9251:3;9236:19;;8961:607::o;9573:306::-;9661:6;9669;9677;9730:2;9718:9;9709:7;9705:23;9701:32;9698:52;;;9746:1;9743;9736:12;9698:52;9775:9;9769:16;9759:26;;9825:2;9814:9;9810:18;9804:25;9794:35;;9869:2;9858:9;9854:18;9848:25;9838:35;;9573:306;;;;;:::o;13375:127::-;13436:10;13431:3;13427:20;13424:1;13417:31;13467:4;13464:1;13457:15;13491:4;13488:1;13481:15;13507:135;13546:3;13567:17;;;13564:43;;13587:18;;:::i;:::-;-1:-1:-1;13634:1:1;13623:13;;13507:135::o;13779:980::-;14041:4;14089:3;14078:9;14074:19;14120:6;14109:9;14102:25;14146:2;14184:6;14179:2;14168:9;14164:18;14157:34;14227:3;14222:2;14211:9;14207:18;14200:31;14251:6;14286;14280:13;14317:6;14309;14302:22;14355:3;14344:9;14340:19;14333:26;;14394:2;14386:6;14382:15;14368:29;;14415:1;14425:195;14439:6;14436:1;14433:13;14425:195;;;14504:13;;-1:-1:-1;;;;;14500:39:1;14488:52;;14595:15;;;;14560:12;;;;14536:1;14454:9;14425:195;;;-1:-1:-1;;;;;;;14676:32:1;;;;14671:2;14656:18;;14649:60;-1:-1:-1;;;14740:3:1;14725:19;14718:35;14637:3;13779:980;-1:-1:-1;;;13779:980:1:o

Swarm Source

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