ETH Price: $2,537.98 (-3.34%)
Gas: 1 Gwei

Token

Chizuru6900 (CHIZURU6900)
 

Overview

Max Total Supply

1,000,000,000 CHIZURU6900

Holders

77

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,057,651.268682482 CHIZURU6900

Value
$0.00
0xbda71529002df60315c64473e4f7b788003d0462
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:
Chizuru6900

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/** 

    Website:    https://www.chizuru6900.xyz
    Twitter:    https://twitter.com/Chizuru6900
    Telegram:   https://t.me/chizuru6900

*/

// SPDX-License-Identifier: MIT 

pragma solidity ^0.8.18;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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 Chizuru6900 is Context, IERC20, Ownable {
    using Address for address payable;
    
    string private constant _name = unicode"Chizuru6900";
    string private constant _symbol = unicode"CHIZURU6900";

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

    IRouter public router;
    address public pair;

    address[] private _excluded;
    bool public tradingEnabled;
    bool private swapEnabled;
    bool private swapping;

    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;
    mapping(address => mapping(address => uint256)) private _allowances;

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

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

    uint256 private genesis_block;
    uint256 private deadline = 1;
    struct TotFeesPaidStruct {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity;
    }
        
    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet =(0x4C4440aAC473fD2a9d84c073C33af071A1083Dc6);
    address public taxWallet =(0x97D2D9609F3e58E9A979E6f149D054c84a418Fe2);
    address private devWallet = 0x07dC11c90D0347765977bc98BDF81bC2Bd6C314c;

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

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

    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 createPair() 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 openTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
    }
    
    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 tokenFromReflection(uint256 rAmount) public view returns (uint256) {
        // require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount / currentRate;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
    }

    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":"createPair","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":[{"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":"openTrading","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526103e8600e54601462000018919062000704565b6200002491906200073a565b600a556103e8600e5460146200003b919062000704565b6200004791906200073a565b600b55651a6016b2d000600c55620000626009600a6200084e565b6200007290633b9aca0062000704565b600e81905562000090906c0c9f2c9cd04674edea400000006200085f565b620000a9906c0c9f2c9cd04674edea4000000062000876565b600f5560016011819055601280546001600160a01b031990811661dead17909155601380548216734c4440aac473fd2a9d84c073c33af071a1083dc61790556014805482167397d2d9609f3e58e9a979e6f149d054c84a418fe2179055601580549091167307dc11c90d0347765977bc98bdf81bc2bd6c314c1790556040805160608082018352600080835260208084018690529284018190526019818155601a869055601b829055845180840186528281528085018790528501829052601c829055601d95909555601e819055835191820184528082528183018590529201829052601f82905591909155602155348015620001a557600080fd5b50620001b1336200032c565b600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055601254620001ee906001600160a01b03166200037c565b3060009081526007602081905260408220805460ff1916600190811790915591620002216000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601354821681526007909352818320805485166001908117909155601454821684528284208054861682179055601254909116835290822080549093168117909255600f549190620002a96000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620002d66000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516200031e91815260200190565b60405180910390a3620008be565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620003dc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff1615620004475760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620003d3565b6001600160a01b03811660009081526001602052604090205415620004a4576001600160a01b0381166000908152600160205260409020546200048a906200050a565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b600080620005176200052c565b90506200052581846200073a565b9392505050565b600080806200053a62000552565b90925090506200054b81836200073a565b9250505090565b600f54600e546000918291825b600554811015620006ba578260016000600584815481106200058557620005856200088c565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620005f45750816002600060058481548110620005cd57620005cd6200088c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200060b57600f54600e54945094505050509091565b60016000600583815481106200062557620006256200088c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000656908462000876565b925060026000600583815481106200067257620006726200088c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620006a3908362000876565b915080620006b181620008a2565b9150506200055f565b50600e54600f54620006cd91906200073a565b821015620006e557600f54600e549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200071e576200071e620006ee565b92915050565b634e487b7160e01b600052601260045260246000fd5b6000826200074c576200074c62000724565b500490565b600181815b8085111562000792578160001904821115620007765762000776620006ee565b808516156200078457918102915b93841c939080029062000756565b509250929050565b600082620007ab575060016200071e565b81620007ba575060006200071e565b8160018114620007d35760028114620007de57620007fe565b60019150506200071e565b60ff841115620007f257620007f2620006ee565b50506001821b6200071e565b5060208310610133831016604e8410600b841016171562000823575081810a6200071e565b6200082f838362000751565b8060001904821115620008465762000846620006ee565b029392505050565b60006200052560ff8416836200079a565b60008262000871576200087162000724565b500690565b818103818111156200071e576200071e620006ee565b634e487b7160e01b600052603260045260246000fd5b600060018201620008b757620008b7620006ee565b5060010190565b61241280620008ce6000396000f3fe6080604052600436106102135760003560e01c80637d1db4a511610118578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e1461063f578063e2f4560514610685578063f2fde38b1461069b578063f66895a3146106bb578063f887ea40146106da57600080fd5b8063a8aa1b31146105d4578063a9059cbb146105f4578063af465a2714610614578063c9567bf91461062a57600080fd5b80638f9a55c0116100e75780638f9a55c01461054357806395d89b41146105595780639ba5e4d51461058d5780639e78fb4f146105ac578063a457c2d7146105b457600080fd5b80637d1db4a5146104b657806385141a77146104cc57806388f82020146104ec5780638da5cb5b1461052557600080fd5b80634549b0391161019b57806370a082311161016a57806370a0823114610412578063715018a614610432578063728f8eea14610447578063751039fc1461048157806375f0a8741461049657600080fd5b80634549b0391461037f5780634ada218b1461039f57806352390c02146103b95780635342acb4146103d957600080fd5b806323b872dd116101e257806323b872dd146102cb5780632d838119146102eb5780632dc0562d1461030b578063313ce56714610343578063395093511461035f57600080fd5b806306fdde031461021f578063095ea7b31461026557806318160ddd1461029557806320800a00146102b457600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600b81526a04368697a757275363930360ac1b60208201525b60405161025c91906120a3565b60405180910390f35b34801561027157600080fd5b50610285610280366004612106565b6106fa565b604051901515815260200161025c565b3480156102a157600080fd5b50600e545b60405190815260200161025c565b3480156102c057600080fd5b506102c9610711565b005b3480156102d757600080fd5b506102856102e6366004612132565b61074f565b3480156102f757600080fd5b506102a6610306366004612173565b610805565b34801561031757600080fd5b5060145461032b906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561034f57600080fd5b506040516009815260200161025c565b34801561036b57600080fd5b5061028561037a366004612106565b610823565b34801561038b57600080fd5b506102a661039a36600461218c565b61085a565b3480156103ab57600080fd5b506006546102859060ff1681565b3480156103c557600080fd5b506102c96103d43660046121c1565b6108ee565b3480156103e557600080fd5b506102856103f43660046121c1565b6001600160a01b03166000908152600d602052604090205460ff1690565b34801561041e57600080fd5b506102a661042d3660046121c1565b610a41565b34801561043e57600080fd5b506102c9610aa0565b34801561045357600080fd5b50601954601a54601b5461046692919083565b6040805193845260208401929092529082015260600161025c565b34801561048d57600080fd5b506102c9610ad6565b3480156104a257600080fd5b5060135461032b906001600160a01b031681565b3480156104c257600080fd5b506102a6600a5481565b3480156104d857600080fd5b5060125461032b906001600160a01b031681565b3480156104f857600080fd5b506102856105073660046121c1565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561053157600080fd5b506000546001600160a01b031661032b565b34801561054f57600080fd5b506102a6600b5481565b34801561056557600080fd5b5060408051808201909152600b81526a04348495a555255363930360ac1b602082015261024f565b34801561059957600080fd5b5060165460175460185461046692919083565b6102c9610b0d565b3480156105c057600080fd5b506102856105cf366004612106565b610da2565b3480156105e057600080fd5b5060045461032b906001600160a01b031681565b34801561060057600080fd5b5061028561060f366004612106565b610e3d565b34801561062057600080fd5b506102a6600e5481565b34801561063657600080fd5b506102c9610e4a565b34801561064b57600080fd5b506102a661065a3660046121de565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561069157600080fd5b506102a6600c5481565b3480156106a757600080fd5b506102c96106b63660046121c1565b610edc565b3480156106c757600080fd5b50601c54601d54601e5461046692919083565b3480156106e657600080fd5b5060035461032b906001600160a01b031681565b6000610707338484610f77565b5060015b92915050565b60135460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561074b573d6000803e3d6000fd5b5050565b600061075c84848461109b565b6001600160a01b0384166000908152600960209081526040808320338452909152902054828110156107e65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107fa85336107f58685612222565b610f77565b506001949350505050565b60008061081061151a565b905061081c8184612235565b9392505050565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107079185906107f5908690612257565b6000600e548311156108ae5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107dd565b816108cf5760006108c5846001600080600061153d565b51915061070b9050565b60006108e1846001600080600061153d565b60200151915061070b9050565b6000546001600160a01b031633146109185760405162461bcd60e51b81526004016107dd9061226a565b6001600160a01b03811660009081526008602052604090205460ff16156109815760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107dd565b6001600160a01b038116600090815260016020526040902054156109db576001600160a01b0381166000908152600160205260409020546109c190610805565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6001600160a01b03811660009081526008602052604081205460ff1615610a7e57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461070b90610805565b6000546001600160a01b03163314610aca5760405162461bcd60e51b81526004016107dd9061226a565b610ad46000611586565b565b6000546001600160a01b03163314610b005760405162461bcd60e51b81526004016107dd9061226a565b600e54600a819055600b55565b6000546001600160a01b03163314610b375760405162461bcd60e51b81526004016107dd9061226a565b600360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae919061229f565b6001600160a01b031663c9c6539630600360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c34919061229f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca5919061229f565b600480546001600160a01b0319166001600160a01b03928316179055600354610cd391309116600019610f77565b600454610ce8906001600160a01b03166108ee565b6015546001600160a01b039081166000908152600d60205260409020805460ff191660011790556003541663f305d7193430610d2381610a41565b600080610d386000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610d5a969594939291906122bc565b60606040518083038185885af1158015610d78573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d9d91906122f7565b505050565b3360009081526009602090815260408083206001600160a01b038616845290915281205482811015610e245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107dd565b610e3333856107f58685612222565b5060019392505050565b600061070733848461109b565b6000546001600160a01b03163314610e745760405162461bcd60e51b81526004016107dd9061226a565b60065460ff1615610ec75760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107dd565b6006805461ffff191661010117905543601055565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107dd9061226a565b6001600160a01b038116610f6b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b610f7481611586565b50565b6001600160a01b038316610fd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b03821661103a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107dd565b6001600160a01b0382166111615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107dd565b600081116111c35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107dd565b6001600160a01b03831660009081526007602052604090205460ff1615801561120557506001600160a01b03821660009081526007602052604090205460ff16155b156112515760065460ff166112515760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107dd565b6004546001600160a01b03848116911614801561127c57506004546001600160a01b03838116911614155b80156112a157506001600160a01b03821660009081526007602052604090205460ff16155b1561135d57600a548111156112f85760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016107dd565b600b548161130584610a41565b61130f9190612257565b111561135d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016107dd565b6000600c5461136b30610a41565b600654911115915062010000900460ff161580156113905750600654610100900460ff165b80156113995750805b80156113a65750600c5482115b80156113c057506004546001600160a01b03858116911614155b80156113e557506001600160a01b03841660009081526007602052604090205460ff16155b801561140a57506001600160a01b03831660009081526007602052604090205460ff16155b15611453576004546001600160a01b039081169084160361145357600c5460408051606081018252601c548152601d546020820152601e549181019190915261145391906115d6565b60065460019060009062010000900460ff168061148857506001600160a01b03861660009081526007602052604090205460ff165b806114ab57506001600160a01b03851660009081526007602052604090205460ff165b156114b557600091505b6004546001600160a01b03908116908616036114cf575060015b6004546001600160a01b038781169116148015906114fb57506004546001600160a01b03868116911614155b1561150557600091505b6115128686868585611719565b505050505050565b6000806000611527611a25565b90925090506115368183612235565b9250505090565b611545612057565b61155186868686611ba8565b905061156781878761156161151a565b86611d05565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6006805462ff0000191662010000179055602081015160408201516000916115fd91612257565b611608906002612325565b9050806000036116185750611709565b60008183604001518561162b9190612325565b6116359190612235565b905060006116438286612222565b90504761164f82611da3565b600061165b8247612222565b9050600086604001518661166f9190612222565b6116799083612235565b9050600087604001518261168d9190612325565b9050801561169f5761169f8682611ef5565b60208801516000906116b2846002612325565b6116bc9190612325565b90508015611700576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116fe573d6000803e3d6000fd5b505b50505050505050505b50506006805462ff000019169055565b6001600160a01b03851660009081526007602052604081205460ff1615801561175b57506001600160a01b03851660009081526007602052604090205460ff16155b801561177557506011546010546117729190612257565b43105b905060006117a7858585856117a28c6001600160a01b03166000908152600d602052604090205460ff1690565b61153d565b6001600160a01b03881660009081526008602052604090205490915060ff1615611809576001600160a01b0387166000908152600260205260409020546117ef908690612222565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526008602052604090205460ff161561186c5760a08101516001600160a01b0387166000908152600260205260409020546118529190612257565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546118919190612222565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546118c89190612257565b6001600160a01b03871660009081526001602052604090819020919091558101511515806118fa575060008160c00151115b156119115761191181604001518260c00151611f97565b60008160800151118061192957506000816101000151115b1561199d576119418160800151826101000151611fcc565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e0015184610100015161198b9190612257565b60405190815260200160405180910390a35b6000816060015111806119b4575060008160e00151115b156119cb576119cb81606001518260e00151612042565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a1491815260200190565b60405180910390a350505050505050565b600f54600e546000918291825b600554811015611b7757826001600060058481548110611a5457611a5461233c565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611abf5750816002600060058481548110611a9857611a9861233c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611ad557600f54600e54945094505050509091565b6001600060058381548110611aec57611aec61233c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b1b9084612222565b92506002600060058381548110611b3457611b3461233c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b639083612222565b915080611b6f81612352565b915050611a32565b50600e54600f54611b889190612235565b821015611b9f57600f54600e549350935050509091565b90939092509050565b611bb0612057565b83611bc15760a08101859052611cfd565b611be560405180606001604052806000815260200160008152602001600081525090565b838015611bf0575082155b15611c1c575060408051606081018252601c548152601d546020820152601e5491810191909152611c6b565b82611c485750604080516060810182526019548152601a546020820152601b5491810191909152611c6b565b5060408051606081018252601f5481526020805490820152602154918101919091525b8051606490611c7a9088612325565b611c849190612235565b60c08301526020810151606490611c9b9088612325565b611ca59190612235565b60e08301526040810151606490611cbc9088612325565b611cc69190612235565b610100830181905260e083015160c0840151611ce29089612222565b611cec9190612222565b611cf69190612222565b60a0830152505b949350505050565b600080808080611d15878a612325565b945087611d3c5785611d275784611d2a565b60005b94935060009250829150819050611d96565b868a60c00151611d4c9190612325565b9250868a60e00151611d5e9190612325565b9150868a6101000151611d719190612325565b90508082611d7f8588612222565b611d899190612222565b611d939190612222565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611dd857611dd861233c565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e55919061229f565b81600181518110611e6857611e6861233c565b6001600160a01b039283166020918202929092010152600354611e8e9130911684610f77565b60035460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ec790859060009086903090429060040161236b565b600060405180830381600087803b158015611ee157600080fd5b505af1158015611512573d6000803e3d6000fd5b600354611f0d9030906001600160a01b031684610f77565b60035460125460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f4d92309289926000928392169042906004016122bc565b60606040518083038185885af1158015611f6b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f9091906122f7565b5050505050565b81600f6000828254611fa99190612222565b909155505060168054829190600090611fc3908490612257565b90915550505050565b8060166002016000828254611fe19190612257565b90915550503060009081526008602052604090205460ff161561202357306000908152600260205260408120805483929061201d908490612257565b90915550505b3060009081526001602052604081208054849290611fc3908490612257565b8060166001016000828254611fe19190612257565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156120d0578581018301518582016040015282016120b4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f7457600080fd5b6000806040838503121561211957600080fd5b8235612124816120f1565b946020939093013593505050565b60008060006060848603121561214757600080fd5b8335612152816120f1565b92506020840135612162816120f1565b929592945050506040919091013590565b60006020828403121561218557600080fd5b5035919050565b6000806040838503121561219f57600080fd5b82359150602083013580151581146121b657600080fd5b809150509250929050565b6000602082840312156121d357600080fd5b813561081c816120f1565b600080604083850312156121f157600080fd5b82356121fc816120f1565b915060208301356121b6816120f1565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070b5761070b61220c565b60008261225257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561070b5761070b61220c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156122b157600080fd5b815161081c816120f1565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561230c57600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761070b5761070b61220c565b634e487b7160e01b600052603260045260246000fd5b6000600182016123645761236461220c565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123bb5784516001600160a01b031683529383019391830191600101612396565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208f2ec76a2ef5cda04e1b5b8cc6d5b8a98e48aeb66ea34095a68efa93283ee69f64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80637d1db4a511610118578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e1461063f578063e2f4560514610685578063f2fde38b1461069b578063f66895a3146106bb578063f887ea40146106da57600080fd5b8063a8aa1b31146105d4578063a9059cbb146105f4578063af465a2714610614578063c9567bf91461062a57600080fd5b80638f9a55c0116100e75780638f9a55c01461054357806395d89b41146105595780639ba5e4d51461058d5780639e78fb4f146105ac578063a457c2d7146105b457600080fd5b80637d1db4a5146104b657806385141a77146104cc57806388f82020146104ec5780638da5cb5b1461052557600080fd5b80634549b0391161019b57806370a082311161016a57806370a0823114610412578063715018a614610432578063728f8eea14610447578063751039fc1461048157806375f0a8741461049657600080fd5b80634549b0391461037f5780634ada218b1461039f57806352390c02146103b95780635342acb4146103d957600080fd5b806323b872dd116101e257806323b872dd146102cb5780632d838119146102eb5780632dc0562d1461030b578063313ce56714610343578063395093511461035f57600080fd5b806306fdde031461021f578063095ea7b31461026557806318160ddd1461029557806320800a00146102b457600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600b81526a04368697a757275363930360ac1b60208201525b60405161025c91906120a3565b60405180910390f35b34801561027157600080fd5b50610285610280366004612106565b6106fa565b604051901515815260200161025c565b3480156102a157600080fd5b50600e545b60405190815260200161025c565b3480156102c057600080fd5b506102c9610711565b005b3480156102d757600080fd5b506102856102e6366004612132565b61074f565b3480156102f757600080fd5b506102a6610306366004612173565b610805565b34801561031757600080fd5b5060145461032b906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561034f57600080fd5b506040516009815260200161025c565b34801561036b57600080fd5b5061028561037a366004612106565b610823565b34801561038b57600080fd5b506102a661039a36600461218c565b61085a565b3480156103ab57600080fd5b506006546102859060ff1681565b3480156103c557600080fd5b506102c96103d43660046121c1565b6108ee565b3480156103e557600080fd5b506102856103f43660046121c1565b6001600160a01b03166000908152600d602052604090205460ff1690565b34801561041e57600080fd5b506102a661042d3660046121c1565b610a41565b34801561043e57600080fd5b506102c9610aa0565b34801561045357600080fd5b50601954601a54601b5461046692919083565b6040805193845260208401929092529082015260600161025c565b34801561048d57600080fd5b506102c9610ad6565b3480156104a257600080fd5b5060135461032b906001600160a01b031681565b3480156104c257600080fd5b506102a6600a5481565b3480156104d857600080fd5b5060125461032b906001600160a01b031681565b3480156104f857600080fd5b506102856105073660046121c1565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561053157600080fd5b506000546001600160a01b031661032b565b34801561054f57600080fd5b506102a6600b5481565b34801561056557600080fd5b5060408051808201909152600b81526a04348495a555255363930360ac1b602082015261024f565b34801561059957600080fd5b5060165460175460185461046692919083565b6102c9610b0d565b3480156105c057600080fd5b506102856105cf366004612106565b610da2565b3480156105e057600080fd5b5060045461032b906001600160a01b031681565b34801561060057600080fd5b5061028561060f366004612106565b610e3d565b34801561062057600080fd5b506102a6600e5481565b34801561063657600080fd5b506102c9610e4a565b34801561064b57600080fd5b506102a661065a3660046121de565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561069157600080fd5b506102a6600c5481565b3480156106a757600080fd5b506102c96106b63660046121c1565b610edc565b3480156106c757600080fd5b50601c54601d54601e5461046692919083565b3480156106e657600080fd5b5060035461032b906001600160a01b031681565b6000610707338484610f77565b5060015b92915050565b60135460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561074b573d6000803e3d6000fd5b5050565b600061075c84848461109b565b6001600160a01b0384166000908152600960209081526040808320338452909152902054828110156107e65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107fa85336107f58685612222565b610f77565b506001949350505050565b60008061081061151a565b905061081c8184612235565b9392505050565b3360008181526009602090815260408083206001600160a01b038716845290915281205490916107079185906107f5908690612257565b6000600e548311156108ae5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107dd565b816108cf5760006108c5846001600080600061153d565b51915061070b9050565b60006108e1846001600080600061153d565b60200151915061070b9050565b6000546001600160a01b031633146109185760405162461bcd60e51b81526004016107dd9061226a565b6001600160a01b03811660009081526008602052604090205460ff16156109815760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107dd565b6001600160a01b038116600090815260016020526040902054156109db576001600160a01b0381166000908152600160205260409020546109c190610805565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6001600160a01b03811660009081526008602052604081205460ff1615610a7e57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461070b90610805565b6000546001600160a01b03163314610aca5760405162461bcd60e51b81526004016107dd9061226a565b610ad46000611586565b565b6000546001600160a01b03163314610b005760405162461bcd60e51b81526004016107dd9061226a565b600e54600a819055600b55565b6000546001600160a01b03163314610b375760405162461bcd60e51b81526004016107dd9061226a565b600360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae919061229f565b6001600160a01b031663c9c6539630600360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c34919061229f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca5919061229f565b600480546001600160a01b0319166001600160a01b03928316179055600354610cd391309116600019610f77565b600454610ce8906001600160a01b03166108ee565b6015546001600160a01b039081166000908152600d60205260409020805460ff191660011790556003541663f305d7193430610d2381610a41565b600080610d386000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610d5a969594939291906122bc565b60606040518083038185885af1158015610d78573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d9d91906122f7565b505050565b3360009081526009602090815260408083206001600160a01b038616845290915281205482811015610e245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107dd565b610e3333856107f58685612222565b5060019392505050565b600061070733848461109b565b6000546001600160a01b03163314610e745760405162461bcd60e51b81526004016107dd9061226a565b60065460ff1615610ec75760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107dd565b6006805461ffff191661010117905543601055565b6000546001600160a01b03163314610f065760405162461bcd60e51b81526004016107dd9061226a565b6001600160a01b038116610f6b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b610f7481611586565b50565b6001600160a01b038316610fd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b03821661103a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107dd565b6001600160a01b0382166111615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107dd565b600081116111c35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107dd565b6001600160a01b03831660009081526007602052604090205460ff1615801561120557506001600160a01b03821660009081526007602052604090205460ff16155b156112515760065460ff166112515760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107dd565b6004546001600160a01b03848116911614801561127c57506004546001600160a01b03838116911614155b80156112a157506001600160a01b03821660009081526007602052604090205460ff16155b1561135d57600a548111156112f85760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016107dd565b600b548161130584610a41565b61130f9190612257565b111561135d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016107dd565b6000600c5461136b30610a41565b600654911115915062010000900460ff161580156113905750600654610100900460ff165b80156113995750805b80156113a65750600c5482115b80156113c057506004546001600160a01b03858116911614155b80156113e557506001600160a01b03841660009081526007602052604090205460ff16155b801561140a57506001600160a01b03831660009081526007602052604090205460ff16155b15611453576004546001600160a01b039081169084160361145357600c5460408051606081018252601c548152601d546020820152601e549181019190915261145391906115d6565b60065460019060009062010000900460ff168061148857506001600160a01b03861660009081526007602052604090205460ff165b806114ab57506001600160a01b03851660009081526007602052604090205460ff165b156114b557600091505b6004546001600160a01b03908116908616036114cf575060015b6004546001600160a01b038781169116148015906114fb57506004546001600160a01b03868116911614155b1561150557600091505b6115128686868585611719565b505050505050565b6000806000611527611a25565b90925090506115368183612235565b9250505090565b611545612057565b61155186868686611ba8565b905061156781878761156161151a565b86611d05565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6006805462ff0000191662010000179055602081015160408201516000916115fd91612257565b611608906002612325565b9050806000036116185750611709565b60008183604001518561162b9190612325565b6116359190612235565b905060006116438286612222565b90504761164f82611da3565b600061165b8247612222565b9050600086604001518661166f9190612222565b6116799083612235565b9050600087604001518261168d9190612325565b9050801561169f5761169f8682611ef5565b60208801516000906116b2846002612325565b6116bc9190612325565b90508015611700576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116fe573d6000803e3d6000fd5b505b50505050505050505b50506006805462ff000019169055565b6001600160a01b03851660009081526007602052604081205460ff1615801561175b57506001600160a01b03851660009081526007602052604090205460ff16155b801561177557506011546010546117729190612257565b43105b905060006117a7858585856117a28c6001600160a01b03166000908152600d602052604090205460ff1690565b61153d565b6001600160a01b03881660009081526008602052604090205490915060ff1615611809576001600160a01b0387166000908152600260205260409020546117ef908690612222565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526008602052604090205460ff161561186c5760a08101516001600160a01b0387166000908152600260205260409020546118529190612257565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546118919190612222565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546118c89190612257565b6001600160a01b03871660009081526001602052604090819020919091558101511515806118fa575060008160c00151115b156119115761191181604001518260c00151611f97565b60008160800151118061192957506000816101000151115b1561199d576119418160800151826101000151611fcc565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e0015184610100015161198b9190612257565b60405190815260200160405180910390a35b6000816060015111806119b4575060008160e00151115b156119cb576119cb81606001518260e00151612042565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a1491815260200190565b60405180910390a350505050505050565b600f54600e546000918291825b600554811015611b7757826001600060058481548110611a5457611a5461233c565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611abf5750816002600060058481548110611a9857611a9861233c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611ad557600f54600e54945094505050509091565b6001600060058381548110611aec57611aec61233c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b1b9084612222565b92506002600060058381548110611b3457611b3461233c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b639083612222565b915080611b6f81612352565b915050611a32565b50600e54600f54611b889190612235565b821015611b9f57600f54600e549350935050509091565b90939092509050565b611bb0612057565b83611bc15760a08101859052611cfd565b611be560405180606001604052806000815260200160008152602001600081525090565b838015611bf0575082155b15611c1c575060408051606081018252601c548152601d546020820152601e5491810191909152611c6b565b82611c485750604080516060810182526019548152601a546020820152601b5491810191909152611c6b565b5060408051606081018252601f5481526020805490820152602154918101919091525b8051606490611c7a9088612325565b611c849190612235565b60c08301526020810151606490611c9b9088612325565b611ca59190612235565b60e08301526040810151606490611cbc9088612325565b611cc69190612235565b610100830181905260e083015160c0840151611ce29089612222565b611cec9190612222565b611cf69190612222565b60a0830152505b949350505050565b600080808080611d15878a612325565b945087611d3c5785611d275784611d2a565b60005b94935060009250829150819050611d96565b868a60c00151611d4c9190612325565b9250868a60e00151611d5e9190612325565b9150868a6101000151611d719190612325565b90508082611d7f8588612222565b611d899190612222565b611d939190612222565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611dd857611dd861233c565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e55919061229f565b81600181518110611e6857611e6861233c565b6001600160a01b039283166020918202929092010152600354611e8e9130911684610f77565b60035460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ec790859060009086903090429060040161236b565b600060405180830381600087803b158015611ee157600080fd5b505af1158015611512573d6000803e3d6000fd5b600354611f0d9030906001600160a01b031684610f77565b60035460125460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f4d92309289926000928392169042906004016122bc565b60606040518083038185885af1158015611f6b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f9091906122f7565b5050505050565b81600f6000828254611fa99190612222565b909155505060168054829190600090611fc3908490612257565b90915550505050565b8060166002016000828254611fe19190612257565b90915550503060009081526008602052604090205460ff161561202357306000908152600260205260408120805483929061201d908490612257565b90915550505b3060009081526001602052604081208054849290611fc3908490612257565b8060166001016000828254611fe19190612257565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156120d0578581018301518582016040015282016120b4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f7457600080fd5b6000806040838503121561211957600080fd5b8235612124816120f1565b946020939093013593505050565b60008060006060848603121561214757600080fd5b8335612152816120f1565b92506020840135612162816120f1565b929592945050506040919091013590565b60006020828403121561218557600080fd5b5035919050565b6000806040838503121561219f57600080fd5b82359150602083013580151581146121b657600080fd5b809150509250929050565b6000602082840312156121d357600080fd5b813561081c816120f1565b600080604083850312156121f157600080fd5b82356121fc816120f1565b915060208301356121b6816120f1565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070b5761070b61220c565b60008261225257634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561070b5761070b61220c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156122b157600080fd5b815161081c816120f1565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561230c57600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761070b5761070b61220c565b634e487b7160e01b600052603260045260246000fd5b6000600182016123645761236461220c565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123bb5784516001600160a01b031683529383019391830191600101612396565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208f2ec76a2ef5cda04e1b5b8cc6d5b8a98e48aeb66ea34095a68efa93283ee69f64736f6c63430008120033

Deployed Bytecode Sourcemap

3454:16918:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7040:83;;;;;;;;;;-1:-1:-1;7110:5:0;;;;;;;;;;;;-1:-1:-1;;;7110:5:0;;;;7040:83;;;;;;;:::i;:::-;;;;;;;;7777:161;;;;;;;;;;-1:-1:-1;7777:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7777:161:0;1023:187:1;7317:95:0;;;;;;;;;;-1:-1:-1;7397:7:0;;7317:95;;;1361:25:1;;;1349:2;1334:18;7317:95:0;1215:177:1;19010:163:0;;;;;;;;;;;;;:::i;:::-;;7946:448;;;;;;;;;;-1:-1:-1;7946:448:0;;;;;:::i;:::-;;:::i;9857:253::-;;;;;;;;;;-1:-1:-1;9857:253:0;;;;;:::i;:::-;;:::i;4942:70::-;;;;;;;;;;-1:-1:-1;4942:70:0;;;;-1:-1:-1;;;;;4942:70:0;;;;;;-1:-1:-1;;;;;2207:32:1;;;2189:51;;2177:2;2162:18;4942:70:0;2043:203:1;7226:83:0;;;;;;;;;;-1:-1:-1;7226:83:0;;4415:1;2393:36:1;;2381:2;2366:18;7226:83:0;2251:184:1;8402:207:0;;;;;;;;;;-1:-1:-1;8402:207:0;;;;;:::i;:::-;;:::i;9017:531::-;;;;;;;;;;-1:-1:-1;9017:531:0;;;;;:::i;:::-;;:::i;3870:26::-;;;;;;;;;;-1:-1:-1;3870:26:0;;;;;;;;10118:332;;;;;;;;;;-1:-1:-1;10118:332:0;;;;;:::i;:::-;;:::i;10458:125::-;;;;;;;;;;-1:-1:-1;10458:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;10547:28:0;10523:4;10547:28;;;:19;:28;;;;;;;;;10458:125;7420:198;;;;;;;;;;-1:-1:-1;7420:198:0;;;;;:::i;:::-;;:::i;1051:94::-;;;;;;;;;;;;;:::i;5547:35::-;;;;;;;;;;-1:-1:-1;5547:35:0;;;;;;;;;;;;;;;;3240:25:1;;;3296:2;3281:18;;3274:34;;;;3324:18;;;3317:34;3228:2;3213:18;5547:35:0;3038:319:1;20216:116:0;;;;;;;;;;;;;:::i;4859:76::-;;;;;;;;;;-1:-1:-1;4859:76:0;;;;-1:-1:-1;;;;;4859:76:0;;;4149:49;;;;;;;;;;;;;;;;4782:70;;;;;;;;;;-1:-1:-1;4782:70:0;;;;-1:-1:-1;;;;;4782:70:0;;;9729:120;;;;;;;;;;-1:-1:-1;9729:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9821:20:0;9797:4;9821:20;;;:11;:20;;;;;;;;;9729:120;828:87;;;;;;;;;;-1:-1:-1;874:7:0;901:6;-1:-1:-1;;;;;901:6:0;828:87;;4205:51;;;;;;;;;;;;;;;;7131:87;;;;;;;;;;-1:-1:-1;7203:7:0;;;;;;;;;;;;-1:-1:-1;;;7203:7:0;;;;7131:87;;5098:36;;;;;;;;;;-1:-1:-1;5098:36:0;;;;;;;;;;;;6307:500;;;:::i;8617:392::-;;;;;;;;;;-1:-1:-1;8617:392:0;;;;;:::i;:::-;;:::i;3808:19::-;;;;;;;;;;-1:-1:-1;3808:19:0;;;;-1:-1:-1;;;;;3808:19:0;;;9556:165;;;;;;;;;;-1:-1:-1;9556:165:0;;;;;:::i;:::-;;:::i;4465:54::-;;;;;;;;;;;;;;;;6815:213;;;;;;;;;;;;;:::i;7626:143::-;;;;;;;;;;-1:-1:-1;7626:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7734:18:0;;;7707:7;7734:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7626:143;4263:49;;;;;;;;;;;;;;;;1153:192;;;;;;;;;;-1:-1:-1;1153:192:0;;;;;:::i;:::-;;:::i;5589:39::-;;;;;;;;;;-1:-1:-1;5589:39:0;;;;;;;;;;;;3780:21;;;;;;;;;;-1:-1:-1;3780:21:0;;;;-1:-1:-1;;;;;3780:21:0;;;7777:161;7852:4;7869:39;329:10;7892:7;7901:6;7869:8;:39::i;:::-;-1:-1:-1;7926:4:0;7777:161;;;;;:::o;19010:163::-;19120:15;;19112:53;;19080:21;;-1:-1:-1;;;;;19120:15:0;;19112:53;;;;;19080:21;;19051:26;19112:53;19051:26;19112:53;19080:21;19120:15;19112:53;;;;;;;;;;;;;;;;;;;;;19040:133;19010:163::o;7946:448::-;8078:4;8095:36;8105:6;8113:9;8124:6;8095:9;:36::i;:::-;-1:-1:-1;;;;;8171:19:0;;8144:24;8171:19;;;:11;:19;;;;;;;;329:10;8171:33;;;;;;;;8223:26;;;;8215:79;;;;-1:-1:-1;;;8215:79:0;;4180:2:1;8215: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;;8215:79:0;;;;;;;;;8305:57;8314:6;329:10;8336:25;8355:6;8336:16;:25;:::i;:::-;8305:8;:57::i;:::-;-1:-1:-1;8382:4:0;;7946:448;-1:-1:-1;;;;7946:448:0:o;9857:253::-;9924:7;10031:19;10053:10;:8;:10::i;:::-;10031:32;-1:-1:-1;10081:21:0;10031:32;10081:7;:21;:::i;:::-;10074:28;9857:253;-1:-1:-1;;;9857:253:0:o;8402:207::-;329:10;8482:4;8531:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8531:34:0;;;;;;;;;;8482:4;;8499:80;;8522:7;;8531:47;;8568:10;;8531:47;:::i;9017:531::-;9135:7;9179;;9168;:18;;9160:62;;;;-1:-1:-1;;;9160:62:0;;5206:2:1;9160:62:0;;;5188:21:1;5245:2;5225:18;;;5218:30;5284:33;5264:18;;;5257:61;5335:18;;9160:62:0;5004:355:1;9160:62:0;9238:17;9233:308;;9272:28;9303:46;9314:7;9323:4;9329:5;9336;9343;9303:10;:46::i;:::-;9371:9;;-1:-1:-1;9364:16:0;;-1:-1:-1;9364:16:0;9233:308;9413:28;9444:46;9455:7;9464:4;9470:5;9477;9484;9444:10;:46::i;:::-;9512:17;;;;-1:-1:-1;9505:24:0;;-1:-1:-1;9505:24:0;10118:332;874:7;901:6;-1:-1:-1;;;;;901:6:0;329:10;963:23;955:68;;;;-1:-1:-1;;;955:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10199:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10198:21;10190:61;;;::::0;-1:-1:-1;;;10190:61:0;;5927:2:1;10190:61:0::1;::::0;::::1;5909:21:1::0;5966:2;5946:18;;;5939:30;6005:29;5985:18;;;5978:57;6052:18;;10190:61:0::1;5725:351:1::0;10190:61:0::1;-1:-1:-1::0;;;;;10266:16:0;::::1;10285:1;10266:16:::0;;;:7:::1;:16;::::0;;;;;:20;10262:109:::1;;-1:-1:-1::0;;;;;10342:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10322:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10303:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10262:109:::1;-1:-1:-1::0;;;;;10381:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10381:27:0::1;10404:4;10381:27:::0;;::::1;::::0;;;10419:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10419:23:0::1;::::0;;::::1;::::0;;10118:332::o;7420:198::-;-1:-1:-1;;;;;7510:20:0;;7486:7;7510:20;;;:11;:20;;;;;;;;7506:49;;;-1:-1:-1;;;;;;7539:16:0;;;;;:7;:16;;;;;;;7420:198::o;7506:49::-;-1:-1:-1;;;;;7593:16:0;;;;;;:7;:16;;;;;;7573:37;;:19;:37::i;1051:94::-;874:7;901:6;-1:-1:-1;;;;;901:6:0;329:10;963:23;955:68;;;;-1:-1:-1;;;955:68:0;;;;;;;:::i;:::-;1116:21:::1;1134:1;1116:9;:21::i;:::-;1051:94::o:0;20216:116::-;874:7;901:6;-1:-1:-1;;;;;901:6:0;329:10;963:23;955:68;;;;-1:-1:-1;;;955:68:0;;;;;;;:::i;:::-;20284:7:::1;::::0;20269:12:::1;:22:::0;;;20302:14:::1;:22:::0;20216:116::o;6307:500::-;874:7;901:6;-1:-1:-1;;;;;901:6:0;329:10;963:23;955:68;;;;-1:-1:-1;;;955:68:0;;;;;;;:::i;:::-;6383:6:::1;;;;;;;;;-1:-1:-1::0;;;;;6383:6:0::1;-1:-1:-1::0;;;;;6383:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6374:37:0::1;;6420:4;6427:6;;;;;;;;;-1:-1:-1::0;;;;;6427:6:0::1;-1:-1:-1::0;;;;;6427:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6374:67;::::0;-1:-1:-1;;;;;;6374:67:0::1;::::0;;;;;;-1:-1:-1;;;;;6567:15:1;;;6374:67:0::1;::::0;::::1;6549:34:1::0;6619:15;;6599:18;;;6592:43;6484:18;;6374:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6367:4;:74:::0;;-1:-1:-1;;;;;;6367:74:0::1;-1:-1:-1::0;;;;;6367:74:0;;::::1;;::::0;;6484:6:::1;::::0;6452:59:::1;::::0;6469:4:::1;::::0;6484:6:::1;-1:-1:-1::0;;6452:8:0::1;:59::i;:::-;6540:4;::::0;6522:23:::1;::::0;-1:-1:-1;;;;;6540:4:0::1;6522:17;:23::i;:::-;6567:9;::::0;-1:-1:-1;;;;;6567:9:0;;::::1;6547:30;::::0;;;:19:::1;:30;::::0;;;;:37;;-1:-1:-1;;6547:37:0::1;6580:4;6547:37;::::0;;6595:6:::1;::::0;::::1;:22;6625:9;6658:4;6678:24;6658:4:::0;6678:9:::1;:24::i;:::-;6717:1;6734::::0;6751:7:::1;874::::0;901:6;-1:-1:-1;;;;;901:6:0;;828:87;6751:7:::1;6773:15;6595:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6307:500::o:0;8617:392::-;329:10;8720:4;8769:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8769:34:0;;;;;;;;;;8822:35;;;;8814:85;;;;-1:-1:-1;;;8814:85:0;;7771:2:1;8814:85:0;;;7753:21:1;7810:2;7790:18;;;7783:30;7849:34;7829:18;;;7822:62;-1:-1:-1;;;7900:18:1;;;7893:35;7945:19;;8814:85:0;7569:401:1;8814:85:0;8910:67;329:10;8933:7;8942:34;8961:15;8942:16;:34;:::i;8910:67::-;-1:-1:-1;8997:4:0;;8617:392;-1:-1:-1;;;8617:392:0:o;9556:165::-;9634:4;9651:40;9661:10;9673:9;9684:6;9651:9;:40::i;6815:213::-;874:7;901:6;-1:-1:-1;;;;;901:6:0;329:10;963:23;955:68;;;;-1:-1:-1;;;955:68:0;;;;;;;:::i;:::-;6877:14:::1;::::0;::::1;;6876:15;6868:52;;;::::0;-1:-1:-1;;;6868:52:0;;8177:2:1;6868:52:0::1;::::0;::::1;8159:21:1::0;8216:2;8196:18;;;8189:30;8255:26;8235:18;;;8228:54;8299:18;;6868:52:0::1;7975:348:1::0;6868:52:0::1;6931:14;:21:::0;;-1:-1:-1;;6963:18:0;;;;;7008:12:::1;6992:13;:28:::0;6815:213::o;1153:192::-;874:7;901:6;-1:-1:-1;;;;;901:6:0;329:10;963:23;955:68;;;;-1:-1:-1;;;955:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1242:22:0;::::1;1234:73;;;::::0;-1:-1:-1;;;1234:73:0;;8530:2:1;1234: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;;1234:73:0::1;8328:402:1::0;1234:73:0::1;1318:19;1328:8;1318:9;:19::i;:::-;1153:192:::0;:::o;15003:369::-;-1:-1:-1;;;;;15130:19:0;;15122:68;;;;-1:-1:-1;;;15122:68:0;;8937:2:1;15122: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;;15122:68:0;8735:400:1;15122:68:0;-1:-1:-1;;;;;15209:21:0;;15201:68;;;;-1:-1:-1;;;15201:68:0;;9342:2:1;15201: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;;15201:68:0;9140:398:1;15201:68:0;-1:-1:-1;;;;;15280:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15332:32;;1361:25:1;;;15332:32:0;;1334:18:1;15332:32:0;;;;;;;15003:369;;;:::o;15380:1436::-;-1:-1:-1;;;;;15502:18:0;;15494:68;;;;-1:-1:-1;;;15494:68:0;;9745:2:1;15494: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;;15494:68:0;9543:401:1;15494:68:0;-1:-1:-1;;;;;15581:16:0;;15573:64;;;;-1:-1:-1;;;15573:64:0;;10151:2:1;15573: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;;15573:64:0;9949:399:1;15573:64:0;15665:1;15656:6;:10;15648:64;;;;-1:-1:-1;;;15648:64:0;;10555:2:1;15648: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;;15648:64:0;10353:405:1;15648:64:0;-1:-1:-1;;;;;15730:24:0;;;;;;:18;:24;;;;;;;;15729:25;:52;;;;-1:-1:-1;;;;;;15759:22:0;;;;;;:18;:22;;;;;;;;15758:23;15729:52;15725:130;;;15806:14;;;;15798:45;;;;-1:-1:-1;;;15798:45:0;;10965:2:1;15798:45:0;;;10947:21:1;11004:2;10984:18;;;10977:30;-1:-1:-1;;;11023:18:1;;;11016:48;11081:18;;15798:45:0;10763:342:1;15798:45:0;15879:4;;-1:-1:-1;;;;;15871:12:0;;;15879:4;;15871:12;:35;;;;-1:-1:-1;15901:4:0;;-1:-1:-1;;;;;15887:19:0;;;15901:4;;15887:19;;15871:35;:62;;;;-1:-1:-1;;;;;;15911:22:0;;;;;;:18;:22;;;;;;;;15910:23;15871:62;15867:250;;;15969:12;;15959:6;:22;;15951:60;;;;-1:-1:-1;;;15951:60:0;;11312:2:1;15951:60:0;;;11294:21:1;11351:2;11331:18;;;11324:30;11390:27;11370:18;;;11363:55;11435:18;;15951:60:0;11110:349:1;15951:60:0;16060:14;;16050:6;16034:13;16044:2;16034:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16026:79;;;;-1:-1:-1;;;16026:79:0;;11666:2:1;16026:79:0;;;11648:21:1;11705:2;11685:18;;;11678:30;11744:28;11724:18;;;11717:56;11790:18;;16026:79:0;11464:350:1;16026:79:0;16129:12;16172:18;;16144:24;16162:4;16144:9;:24::i;:::-;16206:8;;-1:-1:-1;;16144:46:0;;-1:-1:-1;16206:8:0;;;;;16205:9;:24;;;;-1:-1:-1;16218:11:0;;;;;;;16205:24;:35;;;;;16233:7;16205:35;:66;;;;;16253:18;;16244:6;:27;16205:66;:82;;;;-1:-1:-1;16283:4:0;;-1:-1:-1;;;;;16275:12:0;;;16283:4;;16275:12;;16205:82;:111;;;;-1:-1:-1;;;;;;16292:24:0;;;;;;:18;:24;;;;;;;;16291:25;16205:111;:148;;;;-1:-1:-1;;;;;;16331:22:0;;;;;;:18;:22;;;;;;;;16330:23;16205:148;16201:252;;;16390:4;;-1:-1:-1;;;;;16390:4:0;;;16384:10;;;;16380:61;;16411:18;;16396:45;;;;;;;;16431:9;16396:45;;;;;;;;;;;;;;;;;;;;16411:18;16396:14;:45::i;:::-;16527:8;;16478:4;;16463:12;;16527:8;;;;;;:36;;-1:-1:-1;;;;;;16539:24:0;;;;;;:18;:24;;;;;;;;16527:36;:62;;;-1:-1:-1;;;;;;16567:22:0;;;;;;:18;:22;;;;;;;;16527:62;16523:83;;;16601:5;16591:15;;16523:83;16627:4;;-1:-1:-1;;;;;16627:4:0;;;16621:10;;;;16617:29;;-1:-1:-1;16642:4:0;16617:29;16669:4;;-1:-1:-1;;;;;16661:12:0;;;16669:4;;16661:12;;;;:26;;-1:-1:-1;16683:4:0;;-1:-1:-1;;;;;16677:10:0;;;16683:4;;16677:10;;16661:26;16657:83;;;16724:5;16714:15;;16657:83;16759:49;16774:4;16780:2;16784:6;16792:7;16801:6;16759:14;:49::i;:::-;15483:1333;;;15380:1436;;;:::o;14262:161::-;14304:7;14325:15;14342;14361:19;:17;:19::i;:::-;14324:56;;-1:-1:-1;14324:56:0;-1:-1:-1;14398:17:0;14324:56;;14398:17;:::i;:::-;14391:24;;;;14262:161;:::o;12771:591::-;12945:36;;:::i;:::-;13006:51;13018:7;13027;13036:6;13044:12;13006:11;:51::i;:::-;12994:63;;13253:65;13266:9;13277:7;13286;13295:10;:8;:10::i;:::-;13307;13253:12;:65::i;:::-;13219:20;;;13068:250;13184:20;;;13068:250;13155:14;;;13068:250;13115:25;;;13068:250;;;12771:591;;;;;;;:::o;1353:173::-;1409:16;1428:6;;-1:-1:-1;;;;;1445:17:0;;;-1:-1:-1;;;;;;1445:17:0;;;;;;1478:40;;1428:6;;;;;;;1478:40;;1409:16;1478:40;1398:128;1353:173;:::o;19181:1023::-;5747:8;:15;;-1:-1:-1;;5747:15:0;;;;;19333:14:::1;::::0;::::1;::::0;19303::::1;::::0;::::1;::::0;5747:15;;19303:44:::1;::::0;::::1;:::i;:::-;19302:50;::::0;19351:1:::1;19302:50;:::i;:::-;19280:72;;19369:11;19384:1;19369:16:::0;19365:54:::1;;19401:7;;;19365:54;19431:32;19503:11;19485:4;:14;;;19467:15;:32;;;;:::i;:::-;19466:48;;;;:::i;:::-;19431:83:::0;-1:-1:-1;19525:14:0::1;19542:42;19431:83:::0;19542:15;:42:::1;:::i;:::-;19525:59:::0;-1:-1:-1;19620:21:0::1;19652:24;19525:59:::0;19652:16:::1;:24::i;:::-;19687:20;19710:38;19734:14:::0;19710:21:::1;:38;:::i;:::-;19687:61;;19759:19;19811:4;:14;;;19797:11;:28;;;;:::i;:::-;19781:45;::::0;:12;:45:::1;:::i;:::-;19759:67;;19837:29;19883:4;:14;;;19869:11;:28;;;;:::i;:::-;19837:60:::0;-1:-1:-1;19914:25:0;;19910:119:::1;;19956:61;19969:24;19995:21;19956:12;:61::i;:::-;20082:14;::::0;::::1;::::0;20041:20:::1;::::0;20064:15:::1;:11:::0;20078:1:::1;20064:15;:::i;:::-;:32;;;;:::i;:::-;20041:55:::0;-1:-1:-1;20111:16:0;;20107:90:::1;;20152:9;::::0;20144:41:::1;::::0;-1:-1:-1;;;;;20152:9:0;;::::1;::::0;20144:41;::::1;;;::::0;20172:12;;20152:9:::1;20144:41:::0;20152:9;20144:41;20172:12;20152:9;20144:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20107:90;19269:935;;;;;;;;5773:1;-1:-1:-1::0;;5785:8:0;:16;;-1:-1:-1;;5785:16:0;;;19181:1023::o;17235:1283::-;-1:-1:-1;;;;;17374:26:0;;17353:17;17374:26;;;:18;:26;;;;;;;;17373:27;:61;;;;-1:-1:-1;;;;;;17405:29:0;;;;;;:18;:29;;;;;;;;17404:30;17373:61;:104;;;;;17469:8;;17453:13;;:24;;;;:::i;:::-;17438:12;:39;17373:104;17353:124;;17490:28;17521:77;17532:7;17541;17550:6;17558:12;17572:25;17590:6;-1:-1:-1;;;;;10547:28:0;10523:4;10547:28;;;:19;:28;;;;;;;;;10458:125;17572:25;17521:10;:77::i;:::-;-1:-1:-1;;;;;17615:19:0;;;;;;:11;:19;;;;;;17490:108;;-1:-1:-1;17615:19:0;;17611:124;;;-1:-1:-1;;;;;17698:15:0;;;;;;:7;:15;;;;;;:25;;17716:7;;17698:25;:::i;:::-;-1:-1:-1;;;;;17680:15:0;;;;;;:7;:15;;;;;:43;17611:124;-1:-1:-1;;;;;17749:22:0;;;;;;:11;:22;;;;;;;;17745:141;;;17857:17;;;;-1:-1:-1;;;;;17836:18:0;;;;;;:7;:18;;;;;;:38;;17857:17;17836:38;:::i;:::-;-1:-1:-1;;;;;17815:18:0;;;;;;:7;:18;;;;;:59;17745:141;17934:9;;-1:-1:-1;;;;;17916:15:0;;17934:9;17916:15;;;:7;:15;;;;;;:27;;17934:9;17916:27;:::i;:::-;-1:-1:-1;;;;;17898:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;17996:17;;;17975:18;;;;;;;;;;:38;;17996:17;17975:38;:::i;:::-;-1:-1:-1;;;;;17954:18:0;;;;;;:7;:18;;;;;;;:59;;;;18030:6;;;:10;;;:24;;;18053:1;18044;:6;;;:10;18030:24;18026:57;;;18056:27;18068:1;:6;;;18076:1;:6;;;18056:11;:27::i;:::-;18113:1;18098;:12;;;:16;:36;;;;18133:1;18118;:12;;;:16;18098:36;18094:257;;;18151:42;18166:1;:12;;;18180:1;:12;;;18151:14;:42::i;:::-;18273:4;-1:-1:-1;;;;;18213:126:0;18240:6;-1:-1:-1;;;;;18213:126:0;;18312:1;:12;;;18297:1;:12;;;:27;;;;:::i;:::-;18213:126;;1361:25:1;;;1349:2;1334:18;18213:126:0;;;;;;;18094:257;18380:1;18365;:12;;;:16;:36;;;;18400:1;18385;:12;;;:16;18365:36;18361:87;;;18403:45;18421:1;:12;;;18435:1;:12;;;18403:17;:45::i;:::-;18481:9;-1:-1:-1;;;;;18464:46:0;18473:6;-1:-1:-1;;;;;18464:46:0;;18492:1;:17;;;18464:46;;;;1361:25:1;;1349:2;1334:18;;1215:177;18464:46:0;;;;;;;;17342:1176;;17235:1283;;;;;:::o;14431:564::-;14529:7;;14565;;14482;;;;;14583:300;14607:9;:16;14603:20;;14583:300;;;14673:7;14649;:21;14657:9;14667:1;14657:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14657:12:0;14649:21;;;;;;;;;;;;;:31;;:66;;;14708:7;14684;:21;14692:9;14702:1;14692:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14692:12:0;14684:21;;;;;;;;;;;;;:31;14649:66;14645:114;;;14742:7;;14751;;14734:25;;;;;;;14431:564;;:::o;14645:114::-;14794:7;:21;14802:9;14812:1;14802:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14802:12:0;14794:21;;;;;;;;;;;;;14784:31;;:7;:31;:::i;:::-;14774:41;;14850:7;:21;14858:9;14868:1;14858:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14858:12:0;14850:21;;;;;;;;;;;;;14840:31;;:7;:31;:::i;:::-;14830:41;-1:-1:-1;14625:3:0;;;;:::i;:::-;;;;14583:300;;;;14917:7;;14907;;:17;;;;:::i;:::-;14897:7;:27;14893:58;;;14934:7;;14943;;14926:25;;;;;;14431:564;;:::o;14893:58::-;14970:7;;14979;;-1:-1:-1;14431:564:0;-1:-1:-1;14431:564:0:o;12000:763::-;12149:28;;:::i;:::-;12195:7;12190:91;;12219:17;;;:27;;;12261:8;;12190:91;12291:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;12291:17:0;12323:6;:23;;;;;12334:12;12333:13;12323:23;12319:124;;;-1:-1:-1;12348:16:0;;;;;;;;12355:9;12348:16;;;;;;;;;;;;;;;;;;12319:124;;;12385:12;12380:63;;-1:-1:-1;12399:12:0;;;;;;;;12406:5;12399:12;;;;;;;;;;;;;;;;;;12380:63;;;-1:-1:-1;12427:16:0;;;;;;;;12434:9;12427:16;;;;;;;;;;;;;;;;;;;12380:63;12476:8;;12488:3;;12466:18;;:7;:18;:::i;:::-;12465:26;;;;:::i;:::-;12456:6;;;:35;12528:14;;;;12546:3;;12518:24;;:7;:24;:::i;:::-;12517:32;;;;:::i;:::-;12502:12;;;:47;12586:14;;;;12604:3;;12576:24;;:7;:24;:::i;:::-;12575:32;;;;:::i;:::-;12560:12;;;:47;;;12696:12;;;;12674:6;;;;12651:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;12618:17;;;:118;-1:-1:-1;12000:763:0;;;;;;;:::o;13370:884::-;13606:15;;;;;13790:21;13800:11;13790:7;:21;:::i;:::-;13780:31;;13829:7;13824:88;;13861:10;:20;;13874:7;13861:20;;;13872:1;13861:20;13853:47;13883:7;-1:-1:-1;13892:1:0;;-1:-1:-1;13892:1:0;;-1:-1:-1;13892:1:0;;-1:-1:-1;13853:47:0;;13824:88;13940:11;13931:1;:6;;;:20;;;;:::i;:::-;13924:27;;13990:11;13975:1;:12;;;:26;;;;:::i;:::-;13962:39;;14040:11;14025:1;:12;;;:26;;;;:::i;:::-;14012:39;-1:-1:-1;14012:39:0;14136:10;14093:27;14116:4;14093:7;:27;:::i;:::-;:53;;;;:::i;:::-;:79;;;;:::i;:::-;14062:110;;13370:884;;;;;;;;;;;;:::o;18526:476::-;18616:16;;;18630:1;18616:16;;;;;;;;18592:21;;18616:16;;;;;;;;;;-1:-1:-1;18616:16:0;18592:40;;18661:4;18643;18648:1;18643:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18643:23:0;;;:7;;;;;;;;;;:23;;;;18687:6;;:13;;;-1:-1:-1;;;18687:13:0;;;;:6;;;;;:11;;:13;;;;;18643:7;;18687:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18677:4;18682:1;18677:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18677:23:0;;;:7;;;;;;;;;:23;18745:6;;18713:53;;18730:4;;18745:6;18754:11;18713:8;:53::i;:::-;18779:6;;:215;;-1:-1:-1;;;18779:215:0;;-1:-1:-1;;;;;18779:6:0;;;;:57;;:215;;18851:11;;18779:6;;18921:4;;18948;;18968:15;;18779:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16824:403;16937:6;;16905:53;;16922:4;;-1:-1:-1;;;;;16937:6:0;16946:11;16905:8;:53::i;:::-;16971:6;;17168:10;;16971:248;;-1:-1:-1;;;16971:248:0;;-1:-1:-1;;;;;16971:6:0;;;;:22;;17002:9;;16971:248;;17036:4;;17056:11;;16971:6;;;;17168:10;;17193:15;;16971:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16824:403;;:::o;11288:125::-;11367:4;11356:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;11382:11:0;:23;;11401:4;;11382:11;:15;;:23;;11401:4;;11382:23;:::i;:::-;;;;-1:-1:-1;;;;11288:125:0:o;11421:280::-;11529:10;11504:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;11576:4:0;11556:26;;;;:11;:26;;;;;;;;11552:95;;;11615:4;11599:22;;;;:7;:22;;;;;:36;;11625:10;;11599:22;:36;;11625:10;;11599:36;:::i;:::-;;;;-1:-1:-1;;11552:95:0;11673:4;11657:22;;;;:7;:22;;;;;:36;;11683:10;;11657:22;:36;;11683:10;;11657:36;:::i;11709:283::-;11820:10;11795: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;6081:251::-;6151:6;6204:2;6192:9;6183:7;6179:23;6175:32;6172:52;;;6220:1;6217;6210:12;6172:52;6252:9;6246:16;6271:31;6296:5;6271:31;:::i;6646:607::-;-1:-1:-1;;;;;7005:15:1;;;6987:34;;7052:2;7037:18;;7030:34;;;;7095:2;7080:18;;7073:34;;;;7138:2;7123:18;;7116:34;;;;7187:15;;;7181:3;7166:19;;7159:44;6967:3;7219:19;;7212:35;;;;6936:3;6921:19;;6646:607::o;7258:306::-;7346:6;7354;7362;7415:2;7403:9;7394:7;7390:23;7386:32;7383:52;;;7431:1;7428;7421:12;7383:52;7460:9;7454:16;7444:26;;7510:2;7499:9;7495:18;7489:25;7479:35;;7554:2;7543:9;7539:18;7533:25;7523:35;;7258: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://8f2ec76a2ef5cda04e1b5b8cc6d5b8a98e48aeb66ea34095a68efa93283ee69f
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.