ETH Price: $3,420.39 (+7.15%)
Gas: 33 Gwei

Token

Cute Bamse (BAMSE)
 

Overview

Max Total Supply

1,000,000,000 BAMSE

Holders

64

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
BamseToken

Compiler Version
v0.8.19+commit.7dd6d404

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-27
*/

/** 

    Website:    https://www.bamse.vip
    Twitter:    https://twitter.com/bamsevip
    Telegram:   https://t.me/bamsevip

*/

// SPDX-License-Identifier: MIT 


pragma solidity ^0.8.19;
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);
}

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

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

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

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

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

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

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;
    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet =(0x3c6aaeCF86C7cA3667F2dFc9729dc98F5dE591Ed);
    address public taxWallet =(0x316857876Be071a189D508b59972C106fC3767b8);
    address private devWallet = 0x273a7B3B6593ac3CF465580e6Bc646F55536cef1;
   
    address[] private _excluded;
    bool public tradingEnabled;
    bool private swapEnabled;
    bool private swapping;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = 1e30;
    uint256 public _tTotal = 1_000_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    string private constant _name = "Cute Bamse";
    string private constant _symbol = "BAMSE";

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

    uint256 private genesis_block;
    uint256 private deadline = 1;

    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, 25, 0);

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

    event FeesChanged();

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

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

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

    function createPool() 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 view 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 _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 _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 _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 _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }

    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 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) {
            payable(taxWallet).transfer(marketingAmt);
        }
    }

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

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

    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":"createPool","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":[{"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":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"view","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"}]

6080604052600880546001600160a01b031990811661dead17909155600980548216733c6aaecf86c7ca3667f2dfc9729dc98f5de591ed178155600a8054831673316857876be071a189d508b59972c106fc3767b8178155600b805490931673273a7b3b6593ac3cf465580e6bc646f55536cef117909255620000829162000805565b6200009290633b9aca0062000816565b600e819055620000b0906c0c9f2c9cd04674edea4000000062000846565b620000c9906c0c9f2c9cd04674edea400000006200085d565b600f556103e8600e546014620000e0919062000816565b620000ec919062000873565b6010556103e8600e54601462000103919062000816565b6200010f919062000873565b6011556517a598c3a000601255600160158190556040805160608082018352600080835260208084018690529284018190526016819055601785905560188190558351808301855281815280840186905284018190526019818155601a95909555601b81905583519182018452808252918101849052909101819052601c819055601d91909155601e55348015620001a657600080fd5b50620001b2336200032e565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600854620001ef906001600160a01b03166200037e565b3060009081526006602081905260408220805460ff1916600190811790915591620002226000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600954821681526006909352818320805485166001908117909155600a548216845282842080548616821790556008549091168352908220805490931617909155600f5490600390620002ab6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620002d86000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516200032091815260200190565b60405180910390a3620008bc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620003de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526007602052604090205460ff1615620004495760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620003d5565b6001600160a01b03811660009081526003602052604090205415620004a6576001600160a01b0381166000908152600360205260409020546200048c906200050c565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b600080620005196200052e565b905062000527818462000873565b9392505050565b600080806200053c62000554565b90925090506200054d818362000873565b9250505090565b600f54600e546000918291825b600c54811015620006bc578260036000600c84815481106200058757620005876200088a565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620005f657508160046000600c8481548110620005cf57620005cf6200088a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200060d57600f54600e54945094505050509091565b60036000600c83815481106200062757620006276200088a565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200065890846200085d565b925060046000600c83815481106200067457620006746200088a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620006a590836200085d565b915080620006b381620008a0565b91505062000561565b50600e54600f54620006cf919062000873565b821015620006e757600f54600e549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007475781600019048211156200072b576200072b620006f0565b808516156200073957918102915b93841c93908002906200070b565b509250929050565b6000826200076057506001620007ff565b816200076f57506000620007ff565b81600181146200078857600281146200079357620007b3565b6001915050620007ff565b60ff841115620007a757620007a7620006f0565b50506001821b620007ff565b5060208310610133831016604e8410600b8410161715620007d8575081810a620007ff565b620007e4838362000706565b8060001904821115620007fb57620007fb620006f0565b0290505b92915050565b60006200052760ff8416836200074f565b8082028115828204841417620007ff57620007ff620006f0565b634e487b7160e01b600052601260045260246000fd5b60008262000858576200085862000830565b500690565b81810381811115620007ff57620007ff620006f0565b60008262000885576200088562000830565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201620008b557620008b5620006f0565b5060010190565b61240c80620008cc6000396000f3fe6080604052600436106102135760003560e01c80637d1db4a511610118578063a457c2d7116100a0578063dd62ed3e1161006f578063dd62ed3e14610638578063e2f456051461067e578063f2fde38b14610694578063f66895a3146106b4578063f887ea40146106d357600080fd5b8063a457c2d7146105c2578063a8aa1b31146105e2578063a9059cbb14610602578063af465a271461062257600080fd5b80638da5cb5b116100e75780638da5cb5b146105395780638f9a55c01461055757806395d89b411461056d5780639a06b1131461059b5780639ba5e4d5146105a357600080fd5b80637d1db4a5146104b557806385141a77146104cb57806388f82020146104eb5780638a8c523c1461052457600080fd5b80634549b0391161019b57806370a082311161016a57806370a0823114610411578063715018a614610431578063728f8eea14610446578063751039fc1461048057806375f0a8741461049557600080fd5b80634549b0391461037e5780634ada218b1461039e57806352390c02146103b85780635342acb4146103d857600080fd5b806323b872dd116101e257806323b872dd146102ca5780632d838119146102ea5780632dc0562d1461030a578063313ce56714610342578063395093511461035e57600080fd5b806306fdde031461021f578063095ea7b31461026457806318160ddd1461029457806320800a00146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600a815269437574652042616d736560b01b60208201525b60405161025b919061209d565b60405180910390f35b34801561027057600080fd5b5061028461027f366004612100565b6106f3565b604051901515815260200161025b565b3480156102a057600080fd5b50600e545b60405190815260200161025b565b3480156102bf57600080fd5b506102c861070a565b005b3480156102d657600080fd5b506102846102e536600461212c565b610748565b3480156102f657600080fd5b506102a561030536600461216d565b6107fe565b34801561031657600080fd5b50600a5461032a906001600160a01b031681565b6040516001600160a01b03909116815260200161025b565b34801561034e57600080fd5b506040516009815260200161025b565b34801561036a57600080fd5b50610284610379366004612100565b61081c565b34801561038a57600080fd5b506102a5610399366004612186565b610853565b3480156103aa57600080fd5b50600d546102849060ff1681565b3480156103c457600080fd5b506102c86103d33660046121bb565b6108e7565b3480156103e457600080fd5b506102846103f33660046121bb565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561041d57600080fd5b506102a561042c3660046121bb565b610a3a565b34801561043d57600080fd5b506102c8610a99565b34801561045257600080fd5b5060165460175460185461046592919083565b6040805193845260208401929092529082015260600161025b565b34801561048c57600080fd5b506102c8610acf565b3480156104a157600080fd5b5060095461032a906001600160a01b031681565b3480156104c157600080fd5b506102a560105481565b3480156104d757600080fd5b5060085461032a906001600160a01b031681565b3480156104f757600080fd5b506102846105063660046121bb565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561053057600080fd5b506102c8610b06565b34801561054557600080fd5b506000546001600160a01b031661032a565b34801561056357600080fd5b506102a560115481565b34801561057957600080fd5b5060408051808201909152600581526442414d534560d81b602082015261024e565b6102c8610b98565b3480156105af57600080fd5b50601f5460205460215461046592919083565b3480156105ce57600080fd5b506102846105dd366004612100565b610e2e565b3480156105ee57600080fd5b5060025461032a906001600160a01b031681565b34801561060e57600080fd5b5061028461061d366004612100565b610ec9565b34801561062e57600080fd5b506102a5600e5481565b34801561064457600080fd5b506102a56106533660046121d8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068a57600080fd5b506102a560125481565b3480156106a057600080fd5b506102c86106af3660046121bb565b610ed6565b3480156106c057600080fd5b50601954601a54601b5461046592919083565b3480156106df57600080fd5b5060015461032a906001600160a01b031681565b6000610700338484610f71565b5060015b92915050565b60095460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610744573d6000803e3d6000fd5b5050565b6000610755848484611095565b6001600160a01b0384166000908152600560209081526040808320338452909152902054828110156107df5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107f385336107ee868561221c565b610f71565b506001949350505050565b600080610809611514565b9050610815818461222f565b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916107009185906107ee908690612251565b6000600e548311156108a75760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107d6565b816108c85760006108be8460016000806000611537565b5191506107049050565b60006108da8460016000806000611537565b6020015191506107049050565b6000546001600160a01b031633146109115760405162461bcd60e51b81526004016107d690612264565b6001600160a01b03811660009081526007602052604090205460ff161561097a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107d6565b6001600160a01b038116600090815260036020526040902054156109d4576001600160a01b0381166000908152600360205260409020546109ba906107fe565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff1615610a7757506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260036020526040902054610704906107fe565b6000546001600160a01b03163314610ac35760405162461bcd60e51b81526004016107d690612264565b610acd6000611580565b565b6000546001600160a01b03163314610af95760405162461bcd60e51b81526004016107d690612264565b600e546010819055601155565b6000546001600160a01b03163314610b305760405162461bcd60e51b81526004016107d690612264565b600d5460ff1615610b835760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107d6565b600d805461ffff191661010117905543601455565b6000546001600160a01b03163314610bc25760405162461bcd60e51b81526004016107d690612264565b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c399190612299565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf9190612299565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d309190612299565b600280546001600160a01b0319166001600160a01b03928316179055600154610d5e91309116600019610f71565b600254610d73906001600160a01b03166108e7565b600b546001600160a01b039081166000908152601360205260409020805460ff19166001908117909155541663f305d7193430610daf81610a3a565b600080610dc46000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610de6969594939291906122b6565b60606040518083038185885af1158015610e04573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2991906122f1565b505050565b3360009081526005602090815260408083206001600160a01b038616845290915281205482811015610eb05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107d6565b610ebf33856107ee868561221c565b5060019392505050565b6000610700338484611095565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016107d690612264565b6001600160a01b038116610f655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d6565b610f6e81611580565b50565b6001600160a01b038316610fd35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107d6565b6001600160a01b0382166110345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107d6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107d6565b6001600160a01b03821661115b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107d6565b600081116111bd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107d6565b6001600160a01b03831660009081526006602052604090205460ff161580156111ff57506001600160a01b03821660009081526006602052604090205460ff16155b1561124b57600d5460ff1661124b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107d6565b6002546001600160a01b03848116911614801561127657506002546001600160a01b03838116911614155b801561129b57506001600160a01b03821660009081526006602052604090205460ff16155b15611357576010548111156112f25760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016107d6565b601154816112ff84610a3a565b6113099190612251565b11156113575760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016107d6565b600060125461136530610a3a565b600d54911115915062010000900460ff1615801561138a5750600d54610100900460ff165b80156113935750805b80156113a0575060125482115b80156113ba57506002546001600160a01b03858116911614155b80156113df57506001600160a01b03841660009081526006602052604090205460ff16155b801561140457506001600160a01b03831660009081526006602052604090205460ff16155b1561144d576002546001600160a01b039081169084160361144d57601254604080516060810182526019548152601a546020820152601b549181019190915261144d91906115d0565b600d5460019060009062010000900460ff168061148257506001600160a01b03861660009081526006602052604090205460ff165b806114a557506001600160a01b03851660009081526006602052604090205460ff165b156114af57600091505b6002546001600160a01b03908116908616036114c9575060015b6002546001600160a01b038781169116148015906114f557506002546001600160a01b03868116911614155b156114ff57600091505b61150c8686868585611713565b505050505050565b6000806000611521611a1f565b9092509050611530818361222f565b9250505090565b61153f612051565b61154b86868686611ba2565b905061156181878761155b611514565b86611cff565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805462ff0000191662010000179055602081015160408201516000916115f791612251565b61160290600261231f565b9050806000036116125750611703565b600081836040015185611625919061231f565b61162f919061222f565b9050600061163d828661221c565b90504761164982611d9d565b6000611655824761221c565b90506000866040015186611669919061221c565b611673908361222f565b90506000876040015182611687919061231f565b90508015611699576116998682611eef565b60208801516000906116ac84600261231f565b6116b6919061231f565b905080156116fa57600a546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116f8573d6000803e3d6000fd5b505b50505050505050505b5050600d805462ff000019169055565b6001600160a01b03851660009081526006602052604081205460ff1615801561175557506001600160a01b03851660009081526006602052604090205460ff16155b801561176f575060155460145461176c9190612251565b43105b905060006117a18585858561179c8c6001600160a01b031660009081526013602052604090205460ff1690565b611537565b6001600160a01b03881660009081526007602052604090205490915060ff1615611803576001600160a01b0387166000908152600460205260409020546117e990869061221c565b6001600160a01b0388166000908152600460205260409020555b6001600160a01b03861660009081526007602052604090205460ff16156118665760a08101516001600160a01b03871660009081526004602052604090205461184c9190612251565b6001600160a01b0387166000908152600460205260409020555b80516001600160a01b03881660009081526003602052604090205461188b919061221c565b6001600160a01b03808916600090815260036020908152604080832094909455840151918916815291909120546118c29190612251565b6001600160a01b03871660009081526003602052604090819020919091558101511515806118f4575060008160c00151115b1561190b5761190b81604001518260c00151611f91565b60008160800151118061192357506000816101000151115b156119975761193b8160800151826101000151611fc6565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001518461010001516119859190612251565b60405190815260200160405180910390a35b6000816060015111806119ae575060008160e00151115b156119c5576119c581606001518260e0015161203c565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a0e91815260200190565b60405180910390a350505050505050565b600f54600e546000918291825b600c54811015611b71578260036000600c8481548110611a4e57611a4e612336565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611ab957508160046000600c8481548110611a9257611a92612336565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611acf57600f54600e54945094505050509091565b60036000600c8381548110611ae657611ae6612336565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b15908461221c565b925060046000600c8381548110611b2e57611b2e612336565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b5d908361221c565b915080611b698161234c565b915050611a2c565b50600e54600f54611b82919061222f565b821015611b9957600f54600e549350935050509091565b90939092509050565b611baa612051565b83611bbb5760a08101859052611cf7565b611bdf60405180606001604052806000815260200160008152602001600081525090565b838015611bea575082155b15611c165750604080516060810182526019548152601a546020820152601b5491810191909152611c65565b82611c425750604080516060810182526016548152601754602082015260185491810191909152611c65565b5060408051606081018252601c548152601d546020820152601e54918101919091525b8051606490611c74908861231f565b611c7e919061222f565b60c08301526020810151606490611c95908861231f565b611c9f919061222f565b60e08301526040810151606490611cb6908861231f565b611cc0919061222f565b610100830181905260e083015160c0840151611cdc908961221c565b611ce6919061221c565b611cf0919061221c565b60a0830152505b949350505050565b600080808080611d0f878a61231f565b945087611d365785611d215784611d24565b60005b94935060009250829150819050611d90565b868a60c00151611d46919061231f565b9250868a60e00151611d58919061231f565b9150868a6101000151611d6b919061231f565b90508082611d79858861221c565b611d83919061221c565b611d8d919061221c565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611dd257611dd2612336565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f9190612299565b81600181518110611e6257611e62612336565b6001600160a01b039283166020918202929092010152600154611e889130911684610f71565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ec1908590600090869030904290600401612365565b600060405180830381600087803b158015611edb57600080fd5b505af115801561150c573d6000803e3d6000fd5b600154611f079030906001600160a01b031684610f71565b60015460085460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f4792309289926000928392169042906004016122b6565b60606040518083038185885af1158015611f65573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f8a91906122f1565b5050505050565b81600f6000828254611fa3919061221c565b9091555050601f8054829190600090611fbd908490612251565b90915550505050565b80601f6002016000828254611fdb9190612251565b90915550503060009081526007602052604090205460ff161561201d573060009081526004602052604081208054839290612017908490612251565b90915550505b3060009081526003602052604081208054849290611fbd908490612251565b80601f6001016000828254611fdb9190612251565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156120ca578581018301518582016040015282016120ae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f6e57600080fd5b6000806040838503121561211357600080fd5b823561211e816120eb565b946020939093013593505050565b60008060006060848603121561214157600080fd5b833561214c816120eb565b9250602084013561215c816120eb565b929592945050506040919091013590565b60006020828403121561217f57600080fd5b5035919050565b6000806040838503121561219957600080fd5b82359150602083013580151581146121b057600080fd5b809150509250929050565b6000602082840312156121cd57600080fd5b8135610815816120eb565b600080604083850312156121eb57600080fd5b82356121f6816120eb565b915060208301356121b0816120eb565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070457610704612206565b60008261224c57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561070457610704612206565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156122ab57600080fd5b8151610815816120eb565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561230657600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761070457610704612206565b634e487b7160e01b600052603260045260246000fd5b60006001820161235e5761235e612206565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123b55784516001600160a01b031683529383019391830191600101612390565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a6dc90d409cc32951a463a8b6d89f3cb352221dc1efe8007186d420b94eb7c8564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80637d1db4a511610118578063a457c2d7116100a0578063dd62ed3e1161006f578063dd62ed3e14610638578063e2f456051461067e578063f2fde38b14610694578063f66895a3146106b4578063f887ea40146106d357600080fd5b8063a457c2d7146105c2578063a8aa1b31146105e2578063a9059cbb14610602578063af465a271461062257600080fd5b80638da5cb5b116100e75780638da5cb5b146105395780638f9a55c01461055757806395d89b411461056d5780639a06b1131461059b5780639ba5e4d5146105a357600080fd5b80637d1db4a5146104b557806385141a77146104cb57806388f82020146104eb5780638a8c523c1461052457600080fd5b80634549b0391161019b57806370a082311161016a57806370a0823114610411578063715018a614610431578063728f8eea14610446578063751039fc1461048057806375f0a8741461049557600080fd5b80634549b0391461037e5780634ada218b1461039e57806352390c02146103b85780635342acb4146103d857600080fd5b806323b872dd116101e257806323b872dd146102ca5780632d838119146102ea5780632dc0562d1461030a578063313ce56714610342578063395093511461035e57600080fd5b806306fdde031461021f578063095ea7b31461026457806318160ddd1461029457806320800a00146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600a815269437574652042616d736560b01b60208201525b60405161025b919061209d565b60405180910390f35b34801561027057600080fd5b5061028461027f366004612100565b6106f3565b604051901515815260200161025b565b3480156102a057600080fd5b50600e545b60405190815260200161025b565b3480156102bf57600080fd5b506102c861070a565b005b3480156102d657600080fd5b506102846102e536600461212c565b610748565b3480156102f657600080fd5b506102a561030536600461216d565b6107fe565b34801561031657600080fd5b50600a5461032a906001600160a01b031681565b6040516001600160a01b03909116815260200161025b565b34801561034e57600080fd5b506040516009815260200161025b565b34801561036a57600080fd5b50610284610379366004612100565b61081c565b34801561038a57600080fd5b506102a5610399366004612186565b610853565b3480156103aa57600080fd5b50600d546102849060ff1681565b3480156103c457600080fd5b506102c86103d33660046121bb565b6108e7565b3480156103e457600080fd5b506102846103f33660046121bb565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561041d57600080fd5b506102a561042c3660046121bb565b610a3a565b34801561043d57600080fd5b506102c8610a99565b34801561045257600080fd5b5060165460175460185461046592919083565b6040805193845260208401929092529082015260600161025b565b34801561048c57600080fd5b506102c8610acf565b3480156104a157600080fd5b5060095461032a906001600160a01b031681565b3480156104c157600080fd5b506102a560105481565b3480156104d757600080fd5b5060085461032a906001600160a01b031681565b3480156104f757600080fd5b506102846105063660046121bb565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561053057600080fd5b506102c8610b06565b34801561054557600080fd5b506000546001600160a01b031661032a565b34801561056357600080fd5b506102a560115481565b34801561057957600080fd5b5060408051808201909152600581526442414d534560d81b602082015261024e565b6102c8610b98565b3480156105af57600080fd5b50601f5460205460215461046592919083565b3480156105ce57600080fd5b506102846105dd366004612100565b610e2e565b3480156105ee57600080fd5b5060025461032a906001600160a01b031681565b34801561060e57600080fd5b5061028461061d366004612100565b610ec9565b34801561062e57600080fd5b506102a5600e5481565b34801561064457600080fd5b506102a56106533660046121d8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068a57600080fd5b506102a560125481565b3480156106a057600080fd5b506102c86106af3660046121bb565b610ed6565b3480156106c057600080fd5b50601954601a54601b5461046592919083565b3480156106df57600080fd5b5060015461032a906001600160a01b031681565b6000610700338484610f71565b5060015b92915050565b60095460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610744573d6000803e3d6000fd5b5050565b6000610755848484611095565b6001600160a01b0384166000908152600560209081526040808320338452909152902054828110156107df5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107f385336107ee868561221c565b610f71565b506001949350505050565b600080610809611514565b9050610815818461222f565b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916107009185906107ee908690612251565b6000600e548311156108a75760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107d6565b816108c85760006108be8460016000806000611537565b5191506107049050565b60006108da8460016000806000611537565b6020015191506107049050565b6000546001600160a01b031633146109115760405162461bcd60e51b81526004016107d690612264565b6001600160a01b03811660009081526007602052604090205460ff161561097a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107d6565b6001600160a01b038116600090815260036020526040902054156109d4576001600160a01b0381166000908152600360205260409020546109ba906107fe565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff1615610a7757506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260036020526040902054610704906107fe565b6000546001600160a01b03163314610ac35760405162461bcd60e51b81526004016107d690612264565b610acd6000611580565b565b6000546001600160a01b03163314610af95760405162461bcd60e51b81526004016107d690612264565b600e546010819055601155565b6000546001600160a01b03163314610b305760405162461bcd60e51b81526004016107d690612264565b600d5460ff1615610b835760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107d6565b600d805461ffff191661010117905543601455565b6000546001600160a01b03163314610bc25760405162461bcd60e51b81526004016107d690612264565b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c399190612299565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf9190612299565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d309190612299565b600280546001600160a01b0319166001600160a01b03928316179055600154610d5e91309116600019610f71565b600254610d73906001600160a01b03166108e7565b600b546001600160a01b039081166000908152601360205260409020805460ff19166001908117909155541663f305d7193430610daf81610a3a565b600080610dc46000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610de6969594939291906122b6565b60606040518083038185885af1158015610e04573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2991906122f1565b505050565b3360009081526005602090815260408083206001600160a01b038616845290915281205482811015610eb05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107d6565b610ebf33856107ee868561221c565b5060019392505050565b6000610700338484611095565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016107d690612264565b6001600160a01b038116610f655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d6565b610f6e81611580565b50565b6001600160a01b038316610fd35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107d6565b6001600160a01b0382166110345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107d6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107d6565b6001600160a01b03821661115b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107d6565b600081116111bd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107d6565b6001600160a01b03831660009081526006602052604090205460ff161580156111ff57506001600160a01b03821660009081526006602052604090205460ff16155b1561124b57600d5460ff1661124b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107d6565b6002546001600160a01b03848116911614801561127657506002546001600160a01b03838116911614155b801561129b57506001600160a01b03821660009081526006602052604090205460ff16155b15611357576010548111156112f25760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016107d6565b601154816112ff84610a3a565b6113099190612251565b11156113575760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016107d6565b600060125461136530610a3a565b600d54911115915062010000900460ff1615801561138a5750600d54610100900460ff165b80156113935750805b80156113a0575060125482115b80156113ba57506002546001600160a01b03858116911614155b80156113df57506001600160a01b03841660009081526006602052604090205460ff16155b801561140457506001600160a01b03831660009081526006602052604090205460ff16155b1561144d576002546001600160a01b039081169084160361144d57601254604080516060810182526019548152601a546020820152601b549181019190915261144d91906115d0565b600d5460019060009062010000900460ff168061148257506001600160a01b03861660009081526006602052604090205460ff165b806114a557506001600160a01b03851660009081526006602052604090205460ff165b156114af57600091505b6002546001600160a01b03908116908616036114c9575060015b6002546001600160a01b038781169116148015906114f557506002546001600160a01b03868116911614155b156114ff57600091505b61150c8686868585611713565b505050505050565b6000806000611521611a1f565b9092509050611530818361222f565b9250505090565b61153f612051565b61154b86868686611ba2565b905061156181878761155b611514565b86611cff565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805462ff0000191662010000179055602081015160408201516000916115f791612251565b61160290600261231f565b9050806000036116125750611703565b600081836040015185611625919061231f565b61162f919061222f565b9050600061163d828661221c565b90504761164982611d9d565b6000611655824761221c565b90506000866040015186611669919061221c565b611673908361222f565b90506000876040015182611687919061231f565b90508015611699576116998682611eef565b60208801516000906116ac84600261231f565b6116b6919061231f565b905080156116fa57600a546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116f8573d6000803e3d6000fd5b505b50505050505050505b5050600d805462ff000019169055565b6001600160a01b03851660009081526006602052604081205460ff1615801561175557506001600160a01b03851660009081526006602052604090205460ff16155b801561176f575060155460145461176c9190612251565b43105b905060006117a18585858561179c8c6001600160a01b031660009081526013602052604090205460ff1690565b611537565b6001600160a01b03881660009081526007602052604090205490915060ff1615611803576001600160a01b0387166000908152600460205260409020546117e990869061221c565b6001600160a01b0388166000908152600460205260409020555b6001600160a01b03861660009081526007602052604090205460ff16156118665760a08101516001600160a01b03871660009081526004602052604090205461184c9190612251565b6001600160a01b0387166000908152600460205260409020555b80516001600160a01b03881660009081526003602052604090205461188b919061221c565b6001600160a01b03808916600090815260036020908152604080832094909455840151918916815291909120546118c29190612251565b6001600160a01b03871660009081526003602052604090819020919091558101511515806118f4575060008160c00151115b1561190b5761190b81604001518260c00151611f91565b60008160800151118061192357506000816101000151115b156119975761193b8160800151826101000151611fc6565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001518461010001516119859190612251565b60405190815260200160405180910390a35b6000816060015111806119ae575060008160e00151115b156119c5576119c581606001518260e0015161203c565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a0e91815260200190565b60405180910390a350505050505050565b600f54600e546000918291825b600c54811015611b71578260036000600c8481548110611a4e57611a4e612336565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611ab957508160046000600c8481548110611a9257611a92612336565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611acf57600f54600e54945094505050509091565b60036000600c8381548110611ae657611ae6612336565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b15908461221c565b925060046000600c8381548110611b2e57611b2e612336565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b5d908361221c565b915080611b698161234c565b915050611a2c565b50600e54600f54611b82919061222f565b821015611b9957600f54600e549350935050509091565b90939092509050565b611baa612051565b83611bbb5760a08101859052611cf7565b611bdf60405180606001604052806000815260200160008152602001600081525090565b838015611bea575082155b15611c165750604080516060810182526019548152601a546020820152601b5491810191909152611c65565b82611c425750604080516060810182526016548152601754602082015260185491810191909152611c65565b5060408051606081018252601c548152601d546020820152601e54918101919091525b8051606490611c74908861231f565b611c7e919061222f565b60c08301526020810151606490611c95908861231f565b611c9f919061222f565b60e08301526040810151606490611cb6908861231f565b611cc0919061222f565b610100830181905260e083015160c0840151611cdc908961221c565b611ce6919061221c565b611cf0919061221c565b60a0830152505b949350505050565b600080808080611d0f878a61231f565b945087611d365785611d215784611d24565b60005b94935060009250829150819050611d90565b868a60c00151611d46919061231f565b9250868a60e00151611d58919061231f565b9150868a6101000151611d6b919061231f565b90508082611d79858861221c565b611d83919061221c565b611d8d919061221c565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611dd257611dd2612336565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f9190612299565b81600181518110611e6257611e62612336565b6001600160a01b039283166020918202929092010152600154611e889130911684610f71565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ec1908590600090869030904290600401612365565b600060405180830381600087803b158015611edb57600080fd5b505af115801561150c573d6000803e3d6000fd5b600154611f079030906001600160a01b031684610f71565b60015460085460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f4792309289926000928392169042906004016122b6565b60606040518083038185885af1158015611f65573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f8a91906122f1565b5050505050565b81600f6000828254611fa3919061221c565b9091555050601f8054829190600090611fbd908490612251565b90915550505050565b80601f6002016000828254611fdb9190612251565b90915550503060009081526007602052604090205460ff161561201d573060009081526004602052604081208054839290612017908490612251565b90915550505b3060009081526003602052604081208054849290611fbd908490612251565b80601f6001016000828254611fdb9190612251565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156120ca578581018301518582016040015282016120ae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f6e57600080fd5b6000806040838503121561211357600080fd5b823561211e816120eb565b946020939093013593505050565b60008060006060848603121561214157600080fd5b833561214c816120eb565b9250602084013561215c816120eb565b929592945050506040919091013590565b60006020828403121561217f57600080fd5b5035919050565b6000806040838503121561219957600080fd5b82359150602083013580151581146121b057600080fd5b809150509250929050565b6000602082840312156121cd57600080fd5b8135610815816120eb565b600080604083850312156121eb57600080fd5b82356121f6816120eb565b915060208301356121b0816120eb565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070457610704612206565b60008261224c57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561070457610704612206565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156122ab57600080fd5b8151610815816120eb565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561230657600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761070457610704612206565b634e487b7160e01b600052603260045260246000fd5b60006001820161235e5761235e612206565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123b55784516001600160a01b031683529383019391830191600101612390565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a6dc90d409cc32951a463a8b6d89f3cb352221dc1efe8007186d420b94eb7c8564736f6c63430008130033

Deployed Bytecode Sourcemap

3442:16890:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6781:83;;;;;;;;;;-1:-1:-1;6851:5:0;;;;;;;;;;;;-1:-1:-1;;;6851:5:0;;;;6781:83;;;;;;;:::i;:::-;;;;;;;;7518:161;;;;;;;;;;-1:-1:-1;7518:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7518:161:0;1023:187:1;7058:95:0;;;;;;;;;;-1:-1:-1;7138:7:0;;7058:95;;;1361:25:1;;;1349:2;1334:18;7058:95:0;1215:177:1;20129:163:0;;;;;;;;;;;;;:::i;:::-;;7687:448;;;;;;;;;;-1:-1:-1;7687:448:0;;;;;:::i;:::-;;:::i;9821:253::-;;;;;;;;;;-1:-1:-1;9821:253:0;;;;;:::i;:::-;;:::i;4046:70::-;;;;;;;;;;-1:-1:-1;4046:70:0;;;;-1:-1:-1;;;;;4046:70:0;;;;;;-1:-1:-1;;;;;2207:32:1;;;2189:51;;2177:2;2162:18;4046:70:0;2043:203:1;6967:83:0;;;;;;;;;;-1:-1:-1;6967:83:0;;4368:1;2393:36:1;;2381:2;2366:18;6967:83:0;2251:184:1;8143:207:0;;;;;;;;;;-1:-1:-1;8143:207:0;;;;;:::i;:::-;;:::i;8758:531::-;;;;;;;;;;-1:-1:-1;8758:531:0;;;;;:::i;:::-;;:::i;4239:26::-;;;;;;;;;;-1:-1:-1;4239:26:0;;;;;;;;10082:332;;;;;;;;;;-1:-1:-1;10082:332:0;;;;;:::i;:::-;;:::i;10422:125::-;;;;;;;;;;-1:-1:-1;10422:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;10511:28:0;10487:4;10511:28;;;:19;:28;;;;;;;;;10422:125;7161:198;;;;;;;;;;-1:-1:-1;7161:198:0;;;;;:::i;:::-;;:::i;1873:94::-;;;;;;;;;;;;;:::i;5048:35::-;;;;;;;;;;-1:-1:-1;5048:35:0;;;;;;;;;;;;;;;;3240:25:1;;;3296:2;3281:18;;3274:34;;;;3324:18;;;3317:34;3228:2;3213:18;5048:35:0;3038:319:1;16788:116:0;;;;;;;;;;;;;:::i;3963:76::-;;;;;;;;;;-1:-1:-1;3963:76:0;;;;-1:-1:-1;;;;;3963:76:0;;;4636:49;;;;;;;;;;;;;;;;3886:70;;;;;;;;;;-1:-1:-1;3886:70:0;;;;-1:-1:-1;;;;;3886:70:0;;;9470:120;;;;;;;;;;-1:-1:-1;9470:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9562:20:0;9538:4;9562:20;;;:11;:20;;;;;;;;;9470:120;9598:215;;;;;;;;;;;;;:::i;1650:87::-;;;;;;;;;;-1:-1:-1;1696:7:0;1723:6;-1:-1:-1;;;;;1723:6:0;1650:87;;4692:51;;;;;;;;;;;;;;;;6872:87;;;;;;;;;;-1:-1:-1;6944:7:0;;;;;;;;;;;;-1:-1:-1;;;6944:7:0;;;;6872:87;;6269:500;;;:::i;5305:36::-;;;;;;;;;;-1:-1:-1;5305:36:0;;;;;;;;;;;;8358:392;;;;;;;;;;-1:-1:-1;8358:392:0;;;;;:::i;:::-;;:::i;3575:19::-;;;;;;;;;;-1:-1:-1;3575:19:0;;;;-1:-1:-1;;;;;3575:19:0;;;9297:165;;;;;;;;;;-1:-1:-1;9297:165:0;;;;;:::i;:::-;;:::i;4418:54::-;;;;;;;;;;;;;;;;7367:143;;;;;;;;;;-1:-1:-1;7367:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7475:18:0;;;7448:7;7475:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7367:143;4750:50;;;;;;;;;;;;;;;;1975:192;;;;;;;;;;-1:-1:-1;1975:192:0;;;;;:::i;:::-;;:::i;5090:39::-;;;;;;;;;;-1:-1:-1;5090:39:0;;;;;;;;;;;;3547:21;;;;;;;;;;-1:-1:-1;3547:21:0;;;;-1:-1:-1;;;;;3547:21:0;;;7518:161;7593:4;7610:39;1034:10;7633:7;7642:6;7610:8;:39::i;:::-;-1:-1:-1;7667:4:0;7518:161;;;;;:::o;20129:163::-;20239:15;;20231:53;;20199:21;;-1:-1:-1;;;;;20239:15:0;;20231:53;;;;;20199:21;;20170:26;20231:53;20170:26;20231:53;20199:21;20239:15;20231:53;;;;;;;;;;;;;;;;;;;;;20159:133;20129:163::o;7687:448::-;7819:4;7836:36;7846:6;7854:9;7865:6;7836:9;:36::i;:::-;-1:-1:-1;;;;;7912:19:0;;7885:24;7912:19;;;:11;:19;;;;;;;;1034:10;7912:33;;;;;;;;7964:26;;;;7956:79;;;;-1:-1:-1;;;7956:79:0;;4180:2:1;7956:79:0;;;4162:21:1;4219:2;4199:18;;;4192:30;4258:34;4238:18;;;4231:62;-1:-1:-1;;;4309:18:1;;;4302:38;4357:19;;7956:79:0;;;;;;;;;8046:57;8055:6;1034:10;8077:25;8096:6;8077:16;:25;:::i;:::-;8046:8;:57::i;:::-;-1:-1:-1;8123:4:0;;7687:448;-1:-1:-1;;;;7687:448:0:o;9821:253::-;9888:7;9995:19;10017:10;:8;:10::i;:::-;9995:32;-1:-1:-1;10045:21:0;9995:32;10045:7;:21;:::i;:::-;10038:28;9821:253;-1:-1:-1;;;9821:253:0:o;8143:207::-;1034:10;8223:4;8272:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8272:34:0;;;;;;;;;;8223:4;;8240:80;;8263:7;;8272:47;;8309:10;;8272:47;:::i;8758:531::-;8876:7;8920;;8909;:18;;8901:62;;;;-1:-1:-1;;;8901:62:0;;5206:2:1;8901:62:0;;;5188:21:1;5245:2;5225:18;;;5218:30;5284:33;5264:18;;;5257:61;5335:18;;8901:62:0;5004:355:1;8901:62:0;8979:17;8974:308;;9013:28;9044:46;9055:7;9064:4;9070:5;9077;9084;9044:10;:46::i;:::-;9112:9;;-1:-1:-1;9105:16:0;;-1:-1:-1;9105:16:0;8974:308;9154:28;9185:46;9196:7;9205:4;9211:5;9218;9225;9185:10;:46::i;:::-;9253:17;;;;-1:-1:-1;9246:24:0;;-1:-1:-1;9246:24:0;10082:332;1696:7;1723:6;-1:-1:-1;;;;;1723:6:0;1034:10;1785:23;1777:68;;;;-1:-1:-1;;;1777:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10163:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10162:21;10154:61;;;::::0;-1:-1:-1;;;10154:61:0;;5927:2:1;10154:61:0::1;::::0;::::1;5909:21:1::0;5966:2;5946:18;;;5939:30;6005:29;5985:18;;;5978:57;6052:18;;10154:61:0::1;5725:351:1::0;10154:61:0::1;-1:-1:-1::0;;;;;10230:16:0;::::1;10249:1;10230:16:::0;;;:7:::1;:16;::::0;;;;;:20;10226:109:::1;;-1:-1:-1::0;;;;;10306:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10286:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10267:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10226:109:::1;-1:-1:-1::0;;;;;10345:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10345:27:0::1;10368:4;10345:27:::0;;::::1;::::0;;;10383:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10383:23:0::1;::::0;;::::1;::::0;;10082:332::o;7161:198::-;-1:-1:-1;;;;;7251:20:0;;7227:7;7251:20;;;:11;:20;;;;;;;;7247:49;;;-1:-1:-1;;;;;;7280:16:0;;;;;:7;:16;;;;;;;7161:198::o;7247:49::-;-1:-1:-1;;;;;7334:16:0;;;;;;:7;:16;;;;;;7314:37;;:19;:37::i;1873:94::-;1696:7;1723:6;-1:-1:-1;;;;;1723:6:0;1034:10;1785:23;1777:68;;;;-1:-1:-1;;;1777:68:0;;;;;;;:::i;:::-;1938:21:::1;1956:1;1938:9;:21::i;:::-;1873:94::o:0;16788:116::-;1696:7;1723:6;-1:-1:-1;;;;;1723:6:0;1034:10;1785:23;1777:68;;;;-1:-1:-1;;;1777:68:0;;;;;;;:::i;:::-;16856:7:::1;::::0;16841:12:::1;:22:::0;;;16874:14:::1;:22:::0;16788:116::o;9598:215::-;1696:7;1723:6;-1:-1:-1;;;;;1723:6:0;1034:10;1785:23;1777:68;;;;-1:-1:-1;;;1777:68:0;;;;;;;:::i;:::-;9662:14:::1;::::0;::::1;;9661:15;9653:52;;;::::0;-1:-1:-1;;;9653:52:0;;6283:2:1;9653:52:0::1;::::0;::::1;6265:21:1::0;6322:2;6302:18;;;6295:30;6361:26;6341:18;;;6334:54;6405:18;;9653:52:0::1;6081:348:1::0;9653:52:0::1;9716:14;:21:::0;;-1:-1:-1;;9748:18:0;;;;;9793:12:::1;9777:13;:28:::0;9598:215::o;6269:500::-;1696:7;1723:6;-1:-1:-1;;;;;1723:6:0;1034:10;1785:23;1777:68;;;;-1:-1:-1;;;1777:68:0;;;;;;;:::i;:::-;6345:6:::1;;;;;;;;;-1:-1:-1::0;;;;;6345:6:0::1;-1:-1:-1::0;;;;;6345:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6336:37:0::1;;6382:4;6389:6;;;;;;;;;-1:-1:-1::0;;;;;6389:6:0::1;-1:-1:-1::0;;;;;6389:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6336:67;::::0;-1:-1:-1;;;;;;6336:67:0::1;::::0;;;;;;-1:-1:-1;;;;;6920:15:1;;;6336:67:0::1;::::0;::::1;6902:34:1::0;6972:15;;6952:18;;;6945:43;6837:18;;6336:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6329:4;:74:::0;;-1:-1:-1;;;;;;6329:74:0::1;-1:-1:-1::0;;;;;6329:74:0;;::::1;;::::0;;-1:-1:-1;6446:6:0;6414:59:::1;::::0;6431:4:::1;::::0;6446:6:::1;-1:-1:-1::0;;6414:8:0::1;:59::i;:::-;6502:4;::::0;6484:23:::1;::::0;-1:-1:-1;;;;;6502:4:0::1;6484:17;:23::i;:::-;6529:9;::::0;-1:-1:-1;;;;;6529:9:0;;::::1;6509:30;::::0;;;:19:::1;:30;::::0;;;;:37;;-1:-1:-1;;6509:37:0::1;6542:4;6509:37:::0;;::::1;::::0;;;6557:6;::::1;:22;6587:9;6620:4;6640:24;6620:4:::0;6640:9:::1;:24::i;:::-;6679:1;6696::::0;6713:7:::1;1696::::0;1723:6;-1:-1:-1;;;;;1723:6:0;;1650:87;6713:7:::1;6735:15;6557:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6269:500::o:0;8358:392::-;1034:10;8461:4;8510:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8510:34:0;;;;;;;;;;8563:35;;;;8555:85;;;;-1:-1:-1;;;8555:85:0;;8124:2:1;8555:85:0;;;8106:21:1;8163:2;8143:18;;;8136:30;8202:34;8182:18;;;8175:62;-1:-1:-1;;;8253:18:1;;;8246:35;8298:19;;8555:85:0;7922:401:1;8555:85:0;8651:67;1034:10;8674:7;8683:34;8702:15;8683:16;:34;:::i;8651:67::-;-1:-1:-1;8738:4:0;;8358:392;-1:-1:-1;;;8358:392:0:o;9297:165::-;9375:4;9392:40;9402:10;9414:9;9425:6;9392:9;:40::i;1975:192::-;1696:7;1723:6;-1:-1:-1;;;;;1723:6:0;1034:10;1785:23;1777:68;;;;-1:-1:-1;;;1777:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2064:22:0;::::1;2056:73;;;::::0;-1:-1:-1;;;2056:73:0;;8530:2:1;2056:73:0::1;::::0;::::1;8512:21:1::0;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;-1:-1:-1;;;8659:18:1;;;8652:36;8705:19;;2056:73:0::1;8328:402:1::0;2056:73:0::1;2140:19;2150:8;2140:9;:19::i;:::-;1975:192:::0;:::o;14967:369::-;-1:-1:-1;;;;;15094:19:0;;15086:68;;;;-1:-1:-1;;;15086:68:0;;8937:2:1;15086:68:0;;;8919:21:1;8976:2;8956:18;;;8949:30;9015:34;8995:18;;;8988:62;-1:-1:-1;;;9066:18:1;;;9059:34;9110:19;;15086:68:0;8735:400:1;15086:68:0;-1:-1:-1;;;;;15173:21:0;;15165:68;;;;-1:-1:-1;;;15165:68:0;;9342:2:1;15165:68:0;;;9324:21:1;9381:2;9361:18;;;9354:30;9420:34;9400:18;;;9393:62;-1:-1:-1;;;9471:18:1;;;9464:32;9513:19;;15165:68:0;9140:398:1;15165:68:0;-1:-1:-1;;;;;15244:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15296:32;;1361:25:1;;;15296:32:0;;1334:18:1;15296:32:0;;;;;;;14967:369;;;:::o;15344:1436::-;-1:-1:-1;;;;;15466:18:0;;15458:68;;;;-1:-1:-1;;;15458:68:0;;9745:2:1;15458:68:0;;;9727:21:1;9784:2;9764:18;;;9757:30;9823:34;9803:18;;;9796:62;-1:-1:-1;;;9874:18:1;;;9867:35;9919:19;;15458:68:0;9543:401:1;15458:68:0;-1:-1:-1;;;;;15545:16:0;;15537:64;;;;-1:-1:-1;;;15537:64:0;;10151:2:1;15537:64:0;;;10133:21:1;10190:2;10170:18;;;10163:30;10229:34;10209:18;;;10202:62;-1:-1:-1;;;10280:18:1;;;10273:33;10323:19;;15537:64:0;9949:399:1;15537:64:0;15629:1;15620:6;:10;15612:64;;;;-1:-1:-1;;;15612:64:0;;10555:2:1;15612:64:0;;;10537:21:1;10594:2;10574:18;;;10567:30;10633:34;10613:18;;;10606:62;-1:-1:-1;;;10684:18:1;;;10677:39;10733:19;;15612:64:0;10353:405:1;15612:64:0;-1:-1:-1;;;;;15694:24:0;;;;;;:18;:24;;;;;;;;15693:25;:52;;;;-1:-1:-1;;;;;;15723:22:0;;;;;;:18;:22;;;;;;;;15722:23;15693:52;15689:130;;;15770:14;;;;15762:45;;;;-1:-1:-1;;;15762:45:0;;10965:2:1;15762:45:0;;;10947:21:1;11004:2;10984:18;;;10977:30;-1:-1:-1;;;11023:18:1;;;11016:48;11081:18;;15762:45:0;10763:342:1;15762:45:0;15843:4;;-1:-1:-1;;;;;15835:12:0;;;15843:4;;15835:12;:35;;;;-1:-1:-1;15865:4:0;;-1:-1:-1;;;;;15851:19:0;;;15865:4;;15851:19;;15835:35;:62;;;;-1:-1:-1;;;;;;15875:22:0;;;;;;:18;:22;;;;;;;;15874:23;15835:62;15831:250;;;15933:12;;15923:6;:22;;15915:60;;;;-1:-1:-1;;;15915:60:0;;11312:2:1;15915:60:0;;;11294:21:1;11351:2;11331:18;;;11324:30;11390:27;11370:18;;;11363:55;11435:18;;15915:60:0;11110:349:1;15915:60:0;16024:14;;16014:6;15998:13;16008:2;15998:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;15990:79;;;;-1:-1:-1;;;15990:79:0;;11666:2:1;15990:79:0;;;11648:21:1;11705:2;11685:18;;;11678:30;11744:28;11724:18;;;11717:56;11790:18;;15990:79:0;11464:350:1;15990:79:0;16093:12;16136:18;;16108:24;16126:4;16108:9;:24::i;:::-;16170:8;;-1:-1:-1;;16108:46:0;;-1:-1:-1;16170:8:0;;;;;16169:9;:24;;;;-1:-1:-1;16182:11:0;;;;;;;16169:24;:35;;;;;16197:7;16169:35;:66;;;;;16217:18;;16208:6;:27;16169:66;:82;;;;-1:-1:-1;16247:4:0;;-1:-1:-1;;;;;16239:12:0;;;16247:4;;16239:12;;16169:82;:111;;;;-1:-1:-1;;;;;;16256:24:0;;;;;;:18;:24;;;;;;;;16255:25;16169:111;:148;;;;-1:-1:-1;;;;;;16295:22:0;;;;;;:18;:22;;;;;;;;16294:23;16169:148;16165:252;;;16354:4;;-1:-1:-1;;;;;16354:4:0;;;16348:10;;;;16344:61;;16375:18;;16360:45;;;;;;;;16395:9;16360:45;;;;;;;;;;;;;;;;;;;;16375:18;16360:14;:45::i;:::-;16491:8;;16442:4;;16427:12;;16491:8;;;;;;:36;;-1:-1:-1;;;;;;16503:24:0;;;;;;:18;:24;;;;;;;;16491:36;:62;;;-1:-1:-1;;;;;;16531:22:0;;;;;;:18;:22;;;;;;;;16491:62;16487:83;;;16565:5;16555:15;;16487:83;16591:4;;-1:-1:-1;;;;;16591:4:0;;;16585:10;;;;16581:29;;-1:-1:-1;16606:4:0;16581:29;16633:4;;-1:-1:-1;;;;;16625:12:0;;;16633:4;;16625:12;;;;:26;;-1:-1:-1;16647:4:0;;-1:-1:-1;;;;;16641:10:0;;;16647:4;;16641:10;;16625:26;16621:83;;;16688:5;16678:15;;16621:83;16723:49;16738:4;16744:2;16748:6;16756:7;16765:6;16723:14;:49::i;:::-;15447:1333;;;15344:1436;;;:::o;14226:161::-;14268:7;14289:15;14306;14325:19;:17;:19::i;:::-;14288:56;;-1:-1:-1;14288:56:0;-1:-1:-1;14362:17:0;14288:56;;14362:17;:::i;:::-;14355:24;;;;14226:161;:::o;11964:591::-;12138:36;;:::i;:::-;12199:51;12211:7;12220;12229:6;12237:12;12199:11;:51::i;:::-;12187:63;;12446:65;12459:9;12470:7;12479;12488:10;:8;:10::i;:::-;12500;12446:12;:65::i;:::-;12412:20;;;12261:250;12377:20;;;12261:250;12348:14;;;12261:250;12308:25;;;12261:250;;;11964:591;;;;;;;:::o;2175:173::-;2231:16;2250:6;;-1:-1:-1;;;;;2267:17:0;;;-1:-1:-1;;;;;;2267:17:0;;;;;;2300:40;;2250:6;;;;;;;2300:40;;2231:16;2300:40;2220:128;2175:173;:::o;18203:1023::-;5709:8;:15;;-1:-1:-1;;5709:15:0;;;;;18355:14:::1;::::0;::::1;::::0;18325::::1;::::0;::::1;::::0;5709:15;;18325:44:::1;::::0;::::1;:::i;:::-;18324:50;::::0;18373:1:::1;18324:50;:::i;:::-;18302:72;;18391:11;18406:1;18391:16:::0;18387:54:::1;;18423:7;;;18387:54;18453:32;18525:11;18507:4;:14;;;18489:15;:32;;;;:::i;:::-;18488:48;;;;:::i;:::-;18453:83:::0;-1:-1:-1;18547:14:0::1;18564:42;18453:83:::0;18564:15;:42:::1;:::i;:::-;18547:59:::0;-1:-1:-1;18642:21:0::1;18674:24;18547:59:::0;18674:16:::1;:24::i;:::-;18709:20;18732:38;18756:14:::0;18732:21:::1;:38;:::i;:::-;18709:61;;18781:19;18833:4;:14;;;18819:11;:28;;;;:::i;:::-;18803:45;::::0;:12;:45:::1;:::i;:::-;18781:67;;18859:29;18905:4;:14;;;18891:11;:28;;;;:::i;:::-;18859:60:::0;-1:-1:-1;18936:25:0;;18932:119:::1;;18978:61;18991:24;19017:21;18978:12;:61::i;:::-;19104:14;::::0;::::1;::::0;19063:20:::1;::::0;19086:15:::1;:11:::0;19100:1:::1;19086:15;:::i;:::-;:32;;;;:::i;:::-;19063:55:::0;-1:-1:-1;19133:16:0;;19129:90:::1;;19174:9;::::0;19166:41:::1;::::0;-1:-1:-1;;;;;19174:9:0;;::::1;::::0;19166:41;::::1;;;::::0;19194:12;;19174:9:::1;19166:41:::0;19174:9;19166:41;19194:12;19174:9;19166:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19129:90;18291:935;;;;;;;;5735:1;-1:-1:-1::0;;5747:8:0;:16;;-1:-1:-1;;5747:16:0;;;18203:1023::o;16912:1283::-;-1:-1:-1;;;;;17051:26:0;;17030:17;17051:26;;;:18;:26;;;;;;;;17050:27;:61;;;;-1:-1:-1;;;;;;17082:29:0;;;;;;:18;:29;;;;;;;;17081:30;17050:61;:104;;;;;17146:8;;17130:13;;:24;;;;:::i;:::-;17115:12;:39;17050:104;17030:124;;17167:28;17198:77;17209:7;17218;17227:6;17235:12;17249:25;17267:6;-1:-1:-1;;;;;10511:28:0;10487:4;10511:28;;;:19;:28;;;;;;;;;10422:125;17249:25;17198:10;:77::i;:::-;-1:-1:-1;;;;;17292:19:0;;;;;;:11;:19;;;;;;17167:108;;-1:-1:-1;17292:19:0;;17288:124;;;-1:-1:-1;;;;;17375:15:0;;;;;;:7;:15;;;;;;:25;;17393:7;;17375:25;:::i;:::-;-1:-1:-1;;;;;17357:15:0;;;;;;:7;:15;;;;;:43;17288:124;-1:-1:-1;;;;;17426:22:0;;;;;;:11;:22;;;;;;;;17422:141;;;17534:17;;;;-1:-1:-1;;;;;17513:18:0;;;;;;:7;:18;;;;;;:38;;17534:17;17513:38;:::i;:::-;-1:-1:-1;;;;;17492:18:0;;;;;;:7;:18;;;;;:59;17422:141;17611:9;;-1:-1:-1;;;;;17593:15:0;;17611:9;17593:15;;;:7;:15;;;;;;:27;;17611:9;17593:27;:::i;:::-;-1:-1:-1;;;;;17575:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;17673:17;;;17652:18;;;;;;;;;;:38;;17673:17;17652:38;:::i;:::-;-1:-1:-1;;;;;17631:18:0;;;;;;:7;:18;;;;;;;:59;;;;17707:6;;;:10;;;:24;;;17730:1;17721;:6;;;:10;17707:24;17703:57;;;17733:27;17745:1;:6;;;17753:1;:6;;;17733:11;:27::i;:::-;17790:1;17775;:12;;;:16;:36;;;;17810:1;17795;:12;;;:16;17775:36;17771:257;;;17828:42;17843:1;:12;;;17857:1;:12;;;17828:14;:42::i;:::-;17950:4;-1:-1:-1;;;;;17890:126:0;17917:6;-1:-1:-1;;;;;17890:126:0;;17989:1;:12;;;17974:1;:12;;;:27;;;;:::i;:::-;17890:126;;1361:25:1;;;1349:2;1334:18;17890:126:0;;;;;;;17771:257;18057:1;18042;:12;;;:16;:36;;;;18077:1;18062;:12;;;:16;18042:36;18038:87;;;18080:45;18098:1;:12;;;18112:1;:12;;;18080:17;:45::i;:::-;18158:9;-1:-1:-1;;;;;18141:46:0;18150:6;-1:-1:-1;;;;;18141:46:0;;18169:1;:17;;;18141:46;;;;1361:25:1;;1349:2;1334:18;;1215:177;18141:46:0;;;;;;;;17019:1176;;16912:1283;;;;;:::o;14395:564::-;14493:7;;14529;;14446;;;;;14547:300;14571:9;:16;14567:20;;14547:300;;;14637:7;14613;:21;14621:9;14631:1;14621:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14621:12:0;14613:21;;;;;;;;;;;;;:31;;:66;;;14672:7;14648;:21;14656:9;14666:1;14656:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14656:12:0;14648:21;;;;;;;;;;;;;:31;14613:66;14609:114;;;14706:7;;14715;;14698:25;;;;;;;14395:564;;:::o;14609:114::-;14758:7;:21;14766:9;14776:1;14766:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14766:12:0;14758:21;;;;;;;;;;;;;14748:31;;:7;:31;:::i;:::-;14738:41;;14814:7;:21;14822:9;14832:1;14822:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14822:12:0;14814:21;;;;;;;;;;;;;14804:31;;:7;:31;:::i;:::-;14794:41;-1:-1:-1;14589:3:0;;;;:::i;:::-;;;;14547:300;;;;14881:7;;14871;;:17;;;;:::i;:::-;14861:7;:27;14857:58;;;14898:7;;14907;;14890:25;;;;;;14395:564;;:::o;14857:58::-;14934:7;;14943;;-1:-1:-1;14395:564:0;-1:-1:-1;14395:564:0:o;12563:763::-;12712:28;;:::i;:::-;12758:7;12753:91;;12782:17;;;:27;;;12824:8;;12753:91;12854:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;12854:17:0;12886:6;:23;;;;;12897:12;12896:13;12886:23;12882:124;;;-1:-1:-1;12911:16:0;;;;;;;;12918:9;12911:16;;;;;;;;;;;;;;;;;;12882:124;;;12948:12;12943:63;;-1:-1:-1;12962:12:0;;;;;;;;12969:5;12962:12;;;;;;;;;;;;;;;;;;12943:63;;;-1:-1:-1;12990:16:0;;;;;;;;12997:9;12990:16;;;;;;;;;;;;;;;;;;12943:63;13039:8;;13051:3;;13029:18;;:7;:18;:::i;:::-;13028:26;;;;:::i;:::-;13019:6;;;:35;13091:14;;;;13109:3;;13081:24;;:7;:24;:::i;:::-;13080:32;;;;:::i;:::-;13065:12;;;:47;13149:14;;;;13167:3;;13139:24;;:7;:24;:::i;:::-;13138:32;;;;:::i;:::-;13123:12;;;:47;;;13259:12;;;;13237:6;;;;13214:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;13181:17;;;:118;-1:-1:-1;12563:763:0;;;;;;;:::o;13334:884::-;13570:15;;;;;13754:21;13764:11;13754:7;:21;:::i;:::-;13744:31;;13793:7;13788:88;;13825:10;:20;;13838:7;13825:20;;;13836:1;13825:20;13817:47;13847:7;-1:-1:-1;13856:1:0;;-1:-1:-1;13856:1:0;;-1:-1:-1;13856:1:0;;-1:-1:-1;13817:47:0;;13788:88;13904:11;13895:1;:6;;;:20;;;;:::i;:::-;13888:27;;13954:11;13939:1;:12;;;:26;;;;:::i;:::-;13926:39;;14004:11;13989:1;:12;;;:26;;;;:::i;:::-;13976:39;-1:-1:-1;13976:39:0;14100:10;14057:27;14080:4;14057:7;:27;:::i;:::-;:53;;;;:::i;:::-;:79;;;;:::i;:::-;14026:110;;13334:884;;;;;;;;;;;;:::o;19645:476::-;19735:16;;;19749:1;19735:16;;;;;;;;19711:21;;19735:16;;;;;;;;;;-1:-1:-1;19735:16:0;19711:40;;19780:4;19762;19767:1;19762:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19762:23:0;;;:7;;;;;;;;;;:23;;;;19806:6;;:13;;;-1:-1:-1;;;19806:13:0;;;;:6;;;;;:11;;:13;;;;;19762:7;;19806:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19796:4;19801:1;19796:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19796:23:0;;;:7;;;;;;;;;:23;19864:6;;19832:53;;19849:4;;19864:6;19873:11;19832:8;:53::i;:::-;19898:6;;:215;;-1:-1:-1;;;19898:215:0;;-1:-1:-1;;;;;19898:6:0;;;;:57;;:215;;19970:11;;19898:6;;20040:4;;20067;;20087:15;;19898:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19234:403;19347:6;;19315:53;;19332:4;;-1:-1:-1;;;;;19347:6:0;19356:11;19315:8;:53::i;:::-;19381:6;;19578:10;;19381:248;;-1:-1:-1;;;19381:248:0;;-1:-1:-1;;;;;19381:6:0;;;;:22;;19412:9;;19381:248;;19446:4;;19466:11;;19381:6;;;;19578:10;;19603:15;;19381:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19234:403;;:::o;11252:125::-;11331:4;11320:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;11346:11:0;:23;;11365:4;;11346:11;:15;;:23;;11365:4;;11346:23;:::i;:::-;;;;-1:-1:-1;;;;11252:125:0:o;11385:280::-;11493:10;11468:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;11540:4:0;11520:26;;;;:11;:26;;;;;;;;11516:95;;;11579:4;11563:22;;;;:7;:22;;;;;:36;;11589:10;;11563:22;:36;;11589:10;;11563:36;:::i;:::-;;;;-1:-1:-1;;11516:95:0;11637:4;11621:22;;;;:7;:22;;;;;:36;;11647:10;;11621:22;:36;;11647:10;;11621:36;:::i;11673:283::-;11784:10;11759: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;2440:341::-;2505:6;2513;2566:2;2554:9;2545:7;2541:23;2537:32;2534:52;;;2582:1;2579;2572:12;2534:52;2618:9;2605:23;2595:33;;2678:2;2667:9;2663:18;2650:32;2725:5;2718:13;2711:21;2704:5;2701:32;2691:60;;2747:1;2744;2737:12;2691:60;2770:5;2760:15;;;2440:341;;;;;:::o;2786:247::-;2845:6;2898:2;2886:9;2877:7;2873:23;2869:32;2866:52;;;2914:1;2911;2904:12;2866:52;2953:9;2940:23;2972:31;2997:5;2972: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;4387:127::-;4448:10;4443:3;4439:20;4436:1;4429:31;4479:4;4476:1;4469:15;4503:4;4500:1;4493:15;4519:128;4586:9;;;4607:11;;;4604:37;;;4621:18;;:::i;4652:217::-;4692:1;4718;4708:132;;4762:10;4757:3;4753:20;4750:1;4743:31;4797:4;4794:1;4787:15;4825:4;4822:1;4815:15;4708:132;-1:-1:-1;4854:9:1;;4652:217::o;4874:125::-;4939:9;;;4960:10;;;4957:36;;;4973:18;;:::i;5364:356::-;5566:2;5548:21;;;5585:18;;;5578:30;5644:34;5639:2;5624:18;;5617:62;5711:2;5696:18;;5364:356::o;6434:251::-;6504:6;6557:2;6545:9;6536:7;6532:23;6528:32;6525:52;;;6573:1;6570;6563:12;6525:52;6605:9;6599:16;6624:31;6649:5;6624:31;:::i;6999:607::-;-1:-1:-1;;;;;7358:15:1;;;7340:34;;7405:2;7390:18;;7383:34;;;;7448:2;7433:18;;7426:34;;;;7491:2;7476:18;;7469:34;;;;7540:15;;;7534:3;7519:19;;7512:44;7320:3;7572:19;;7565:35;;;;7289:3;7274:19;;6999:607::o;7611:306::-;7699:6;7707;7715;7768:2;7756:9;7747:7;7743:23;7739:32;7736:52;;;7784:1;7781;7774:12;7736:52;7813:9;7807:16;7797:26;;7863:2;7852:9;7848:18;7842:25;7832:35;;7907:2;7896:9;7892:18;7886:25;7876:35;;7611:306;;;;;:::o;11819:168::-;11892:9;;;11923;;11940:15;;;11934:22;;11920:37;11910:71;;11961:18;;:::i;11992:127::-;12053:10;12048:3;12044:20;12041:1;12034:31;12084:4;12081:1;12074:15;12108:4;12105:1;12098:15;12124:135;12163:3;12184:17;;;12181:43;;12204:18;;:::i;:::-;-1:-1:-1;12251:1:1;12240:13;;12124:135::o;12396:980::-;12658:4;12706:3;12695:9;12691:19;12737:6;12726:9;12719:25;12763:2;12801:6;12796:2;12785:9;12781:18;12774:34;12844:3;12839:2;12828:9;12824:18;12817:31;12868:6;12903;12897:13;12934:6;12926;12919:22;12972:3;12961:9;12957:19;12950:26;;13011:2;13003:6;12999:15;12985:29;;13032:1;13042:195;13056:6;13053:1;13050:13;13042:195;;;13121:13;;-1:-1:-1;;;;;13117:39:1;13105:52;;13212:15;;;;13177:12;;;;13153:1;13071:9;13042:195;;;-1:-1:-1;;;;;;;13293:32:1;;;;13288:2;13273:18;;13266:60;-1:-1:-1;;;13357:3:1;13342:19;13335:35;13254:3;12396:980;-1:-1:-1;;;12396:980:1:o

Swarm Source

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