ETH Price: $3,042.77 (+1.10%)
Gas: 4 Gwei

Token

MAGA Coin ETH (MAGA)
 

Overview

Max Total Supply

1,000,000,000 MAGA

Holders

266

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: MAGA 10
Balance
322,708,678.834807707 MAGA

Value
$0.00
0xe6e4ab457edb65a2dc6747a93e04d0684d9ec9d8
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:
MAGACoinETH

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-16
*/

// SPDX-License-Identifier: UNLICENSE
/*

 ██████   ██████   █████████     █████████    █████████  
░░██████ ██████   ███░░░░░███   ███░░░░░███  ███░░░░░███ 
 ░███░█████░███  ░███    ░███  ███     ░░░  ░███    ░███ 
 ░███░░███ ░███  ░███████████ ░███          ░███████████ 
 ░███ ░░░  ░███  ░███░░░░░███ ░███    █████ ░███░░░░░███ 
 ░███      ░███  ░███    ░███ ░░███  ░░███  ░███    ░███ 
 █████     █████ █████   █████ ░░█████████  █████   █████
░░░░░     ░░░░░ ░░░░░   ░░░░░   ░░░░░░░░░  ░░░░░   ░░░░░ 
                                                         
                                                         Twitter: https://twitter.com/MAGACOIN_
                                                         Telegram: https://t.me/MAGACoinOfficial
                                                         Website: https://magacoin.vip/

*/
pragma solidity ^0.8.7;

interface IBEP20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

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

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

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

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

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

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

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

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

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

contract MAGACoinETH is Context, IBEP20, Ownable {
    using Address for address payable;

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

    address[] private _excluded;

    bool public tradingEnabled;
    bool public swapEnabled;
    bool private swapping;

    mapping(address => uint256) private _lastSell;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 1e9 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 public swapTokensAtAmount = 1e6 * 10**9;

    uint256 public genesis_block;
    uint256 private deadline = 3;

    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet = 0x0D29e6399E971c6234F7b5C585e6c6B4696F746d;
    address public devWallet = 0x4E9E311d1016B5F2dca9A04c280f284935875064;
    address public reserveWallet = 0x96A55711b82040F811d1B2f89E94C3B656c6ec3b;

    string private constant _name = "MAGA Coin ETH";
    string private constant _symbol = "MAGA";

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

    Taxes public taxes = Taxes(2, 4, 4, 2, 0);
    Taxes public sellTaxes = Taxes(2, 4, 4, 2, 0);
    Taxes private launchtax = Taxes(0, 99, 0, 0, 0);

    struct TotFeesPaidStruct {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity;
        uint256 dev;
        uint256 reserve;
    }

    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues {
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rRfi;
        uint256 rMarketing;
        uint256 rLiquidity;
        uint256 rDev;
        uint256 rReserve;
        uint256 tTransferAmount;
        uint256 tRfi;
        uint256 tMarketing;
        uint256 tLiquidity;
        uint256 tDev;
        uint256 tReserve;
    }

    event FeesChanged();
    event UpdatedRouter(address oldRouter, address newRouter);

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

    constructor(address routerAddress) {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        excludeFromReward(pair);
        excludeFromReward(deadWallet);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[reserveWallet] = true;
        _isExcludedFromFee[deadWallet] = true;
        

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

    //std BEP20:
    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;
    }

    //override BEP20:
    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, "BEP20: 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, "BEP20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    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 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);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, false, false);
            return s.rTransferAmount;
        }
    }

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

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5,"Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }

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

    //@dev kept original RFI naming -> "reward" as in reflection
    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 includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

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

    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 _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing += tMarketing;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tMarketing;
        }
        _rOwned[address(this)] += rMarketing;
    }

    function _takeDev(uint256 rDev, uint256 tDev) private {
        totFeesPaid.dev += tDev;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tDev;
        }
        _rOwned[address(this)] += rDev;
    }

    function _takeReserve(uint256 rReserve, uint256 tReserve) private {
        totFeesPaid.reserve += tReserve;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tReserve;
        }
        _rOwned[address(this)] += rReserve;
    }

    function _getValues(
        uint256 tAmount,
        bool takeFee,
        bool isSell,
        bool useLaunchTax
    ) 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());
        (to_return.rDev, to_return.rReserve) = _getRValues2(
            to_return,
            takeFee,
            _getRate()
        );

        return to_return;
    }

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

        s.tRfi = (tAmount * temp.rfi) / 100;
        s.tMarketing = (tAmount * temp.marketing) / 100;
        s.tLiquidity = (tAmount * temp.liquidity) / 100;
        s.tDev = (tAmount * temp.dev) / 100;
        s.tReserve = (tAmount * temp.reserve) / 100;
        s.tTransferAmount =
            tAmount -
            s.tRfi -
            s.tMarketing -
            s.tLiquidity -
            s.tDev -
            s.tReserve;
        return s;
    }

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

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

        rRfi = s.tRfi * currentRate;
        rMarketing = s.tMarketing * currentRate;
        rLiquidity = s.tLiquidity * currentRate;
        uint256 rDev = s.tDev * currentRate;
        uint256 rReserve = s.tReserve * currentRate;
        rTransferAmount =
            rAmount -
            rRfi -
            rMarketing -
            rLiquidity -
            rDev -
            rReserve;
        return (rAmount, rTransferAmount, rRfi, rMarketing, rLiquidity);
    }

    function _getRValues2(
        valuesFromGetValues memory s,
        bool takeFee,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256 rDev,uint256 rReserve
        )
    {
        if (!takeFee) {
            return (0,0);
        }

        rDev = s.tDev * currentRate;
        rReserve = s.tReserve * currentRate;
        return (rDev,rReserve);
    }

    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), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: 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), "BEP20: transfer from the zero address");
        require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(
            amount <= balanceOf(from),
            "You are trying to transfer more than your balance"
        );

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

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

        _tokenTransfer(from, to, amount, takeFee, isSell);
    }

    //this method is responsible for taking all fee, if takeFee is true
    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);

        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 + s.tDev + s.tReserve
            );
        }
        if (s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing);
        if (s.rDev > 0 || s.tDev > 0) _takeDev(s.rDev, s.tDev);
        if (s.rReserve > 0 || s.tReserve > 0) _takeReserve(s.rReserve, s.tReserve);
        emit Transfer(sender, recipient, s.tTransferAmount);
    }

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

        if (denominator == 0){
            return;
        }

        uint256 tokensToAddLiquidityWith = (contractBalance * temp.liquidity) / denominator;
        uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForBNB(toSwap);

        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance = deltaBalance / (denominator - temp.liquidity);
        uint256 bnbToAddLiquidityWith = unitBalance * temp.liquidity;

        if (bnbToAddLiquidityWith > 0) {
            // Add liquidity to pancake
            addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
        }

        uint256 marketingAmt = unitBalance * 2 * temp.marketing;
        if (marketingAmt > 0) {
            payable(marketingWallet).sendValue(marketingAmt);
        }

        uint256 devAmt = unitBalance * 2 * temp.dev;
        if (devAmt > 0) {
            payable(devWallet).sendValue(devAmt);
        }

        uint256 reserveAmt = unitBalance * 2 * temp.reserve;
        if (reserveAmt > 0) {
            payable(reserveWallet).sendValue(reserveAmt);
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

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

    function swapTokensForBNB(uint256 tokenAmount) private {
        // generate the pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

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

    function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = state;
        }
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        devWallet = newWallet;
    }

    function updateReserveWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        reserveWallet = newWallet;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner {
        require(amount <= 1e7, "Cannot set swap threshold amount higher than 1% of tokens");
        swapTokensAtAmount = amount * 10**_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner {
        swapEnabled = _enabled;
    }

    //Use this in case BNB are sent to the contract by mistake
    function rescueBNB(uint256 weiAmount) external onlyOwner {
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }

    //Use this in case BEP20 Tokens are sent to the contract by mistake
    function rescueAnyBEP20Tokens(address _tokenAddr,address _to, uint256 _amount) public onlyOwner {
        require(_tokenAddr != address(this), "Owner can't claim contract's balance of its own tokens");
        IBEP20(_tokenAddr).transfer(_to, _amount);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserveWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"reserve","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"reserve","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"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"reserve","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"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateReserveWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620009a5565b6200002290633b9aca0062000a66565b600b819055620000359060001962000ac0565b620000439060001962000a88565b600c5566038d7ea4c68000600d556003600f55601080546001600160a01b031990811661dead17909155601180548216730d29e6399e971c6234f7b5c585e6c6b4696f746d179055601280548216734e9e311d1016b5f2dca9a04c280f284935875064179055601380549091167396a55711b82040f811d1b2f89e94c3b656c6ec3b1790556040805160a08082018352600280835260046020808501829052848601829052606080860184905260006080968701819052601485905560158490556016849055601785905560188190558751808701895285815280840185905280890185905280830186905287018190526019859055601a849055601b93909355601c93909355601d82905585519384018652818452606384820181905295840182905291830181905291909201819052601e819055601f9290925581905560218190556022553480156200019757600080fd5b5060405162003bfe38038062003bfe833981016040819052620001ba916200091a565b620001c533620004f0565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020657600080fd5b505afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024191906200091a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028a57600080fd5b505afa1580156200029f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c591906200091a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200030e57600080fd5b505af115801562000323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034991906200091a565b600980546001600160a01b038086166001600160a01b031992831617909255600a80549284169290911682179055909150620003859062000540565b6010546200039c906001600160a01b031662000540565b600c5460016000620003b66000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620004056000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601154821681526004909352818320805485166001908117909155601254821684528284208054861682179055601354821684528284208054861682179055601054909116835291208054909216179055620004976000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620004df91815260200190565b60405180910390a350505062000b19565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156200060b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000597565b6001600160a01b0381166000908152600160205260409020541562000668576001600160a01b0381166000908152600160205260409020546200064e90620006ce565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000600c54821115620007375760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000597565b60006200074362000758565b905062000751818462000945565b9392505050565b60008080620007666200077e565b909250905062000777818362000945565b9250505090565b600c54600b546000918291825b600654811015620008e657826001600060068481548110620007b157620007b162000b03565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620008205750816002600060068481548110620007f957620007f962000b03565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200083757600c54600b54945094505050509091565b600160006006838154811062000851576200085162000b03565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000882908462000a88565b925060026000600683815481106200089e576200089e62000b03565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008cf908362000a88565b915080620008dd8162000aa2565b9150506200078b565b50600b54600c54620008f9919062000945565b8210156200091157600c54600b549350935050509091565b90939092509050565b6000602082840312156200092d57600080fd5b81516001600160a01b03811681146200075157600080fd5b60008262000957576200095762000aed565b500490565b600181815b808511156200099d57816000190482111562000981576200098162000ad7565b808516156200098f57918102915b93841c939080029062000961565b509250929050565b60006200075160ff841683600082620009c15750600162000a60565b81620009d05750600062000a60565b8160018114620009e95760028114620009f45762000a14565b600191505062000a60565b60ff84111562000a085762000a0862000ad7565b50506001821b62000a60565b5060208310610133831016604e8410600b841016171562000a39575081810a62000a60565b62000a4583836200095c565b806000190482111562000a5c5762000a5c62000ad7565b0290505b92915050565b600081600019048311821515161562000a835762000a8362000ad7565b500290565b60008282101562000a9d5762000a9d62000ad7565b500390565b600060001982141562000ab95762000ab962000ad7565b5060010190565b60008262000ad25762000ad262000aed565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6130d58062000b296000396000f3fe6080604052600436106102765760003560e01c8063728f8eea1161014f578063a8aa1b31116100c1578063e2f456051161007a578063e2f4560514610821578063ea2f0b3714610837578063edaa116814610857578063f2fde38b14610877578063f66895a314610897578063f887ea40146108be57600080fd5b8063a8aa1b311461073b578063a9059cbb1461075b578063aacebbe31461077b578063d257b34f1461079b578063d72b11bd146107bb578063dd62ed3e146107db57600080fd5b80638e2839ff116101135780638e2839ff146106675780638ea5220f14610687578063924de9b7146106a757806395d89b41146106c75780639ba5e4d5146106f4578063a457c2d71461071b57600080fd5b8063728f8eea1461056957806375f0a874146105b857806385141a77146105f057806388f82020146106105780638da5cb5b1461064957600080fd5b806339509351116101e85780634ada218b116101ac5780634ada218b146104a257806352390c02146104bc5780635342acb4146104dc5780636ddd17131461051557806370a0823114610534578063715018a61461055457600080fd5b80633950935114610402578063437823ec14610422578063441b1d30146104425780634549b0391461046257806347c230921461048257600080fd5b80631d97b7cd1161023a5780631d97b7cd1461035b57806323b872dd14610370578063274a533c146103905780632d838119146103a6578063313ce567146103c65780633685d419146103e257600080fd5b806306fdde0314610282578063095ea7b3146102ca57806318160ddd146102fa5780631816467f14610319578063199c27c51461033b57600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5060408051808201909152600d81526c09a828e824086ded2dc408aa89609b1b60208201525b6040516102c19190612d6e565b60405180910390f35b3480156102d657600080fd5b506102ea6102e5366004612bbe565b6108de565b60405190151581526020016102c1565b34801561030657600080fd5b50600b545b6040519081526020016102c1565b34801561032557600080fd5b50610339610334366004612b0a565b6108f5565b005b34801561034757600080fd5b50610339610356366004612b0a565b610970565b34801561036757600080fd5b506103396109e2565b34801561037c57600080fd5b506102ea61038b366004612b7d565b610a74565b34801561039c57600080fd5b5061030b600e5481565b3480156103b257600080fd5b5061030b6103c1366004612d02565b610b25565b3480156103d257600080fd5b50604051600981526020016102c1565b3480156103ee57600080fd5b506103396103fd366004612b0a565b610ba9565b34801561040e57600080fd5b506102ea61041d366004612bbe565b610d60565b34801561042e57600080fd5b5061033961043d366004612b0a565b610d97565b34801561044e57600080fd5b5061033961045d366004612d02565b610de5565b34801561046e57600080fd5b5061030b61047d366004612d1b565b610e8c565b34801561048e57600080fd5b5061033961049d366004612b7d565b610f1c565b3480156104ae57600080fd5b506007546102ea9060ff1681565b3480156104c857600080fd5b506103396104d7366004612b0a565b611046565b3480156104e857600080fd5b506102ea6104f7366004612b0a565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561052157600080fd5b506007546102ea90610100900460ff1681565b34801561054057600080fd5b5061030b61054f366004612b0a565b611199565b34801561056057600080fd5b506103396111f8565b34801561057557600080fd5b50601454601554601654601754601854610590949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016102c1565b3480156105c457600080fd5b506011546105d8906001600160a01b031681565b6040516001600160a01b0390911681526020016102c1565b3480156105fc57600080fd5b506010546105d8906001600160a01b031681565b34801561061c57600080fd5b506102ea61062b366004612b0a565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561065557600080fd5b506000546001600160a01b03166105d8565b34801561067357600080fd5b50610339610682366004612bea565b61122e565b34801561069357600080fd5b506012546105d8906001600160a01b031681565b3480156106b357600080fd5b506103396106c2366004612cc8565b6112c4565b3480156106d357600080fd5b506040805180820190915260048152634d41474160e01b60208201526102b4565b34801561070057600080fd5b50602354602454602554602654602754610590949392919085565b34801561072757600080fd5b506102ea610736366004612bbe565b611308565b34801561074757600080fd5b50600a546105d8906001600160a01b031681565b34801561076757600080fd5b506102ea610776366004612bbe565b6113a3565b34801561078757600080fd5b50610339610796366004612b0a565b6113b0565b3480156107a757600080fd5b506103396107b6366004612d02565b611422565b3480156107c757600080fd5b506013546105d8906001600160a01b031681565b3480156107e757600080fd5b5061030b6107f6366004612b44565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561082d57600080fd5b5061030b600d5481565b34801561084357600080fd5b50610339610852366004612b0a565b6114e1565b34801561086357600080fd5b50610339610872366004612d02565b61152c565b34801561088357600080fd5b50610339610892366004612b0a565b61161a565b3480156108a357600080fd5b50601954601a54601b54601c54601d54610590949392919085565b3480156108ca57600080fd5b506009546105d8906001600160a01b031681565b60006108eb3384846116b5565b5060015b92915050565b6000546001600160a01b031633146109285760405162461bcd60e51b815260040161091f90612e05565b60405180910390fd5b6001600160a01b03811661094e5760405162461bcd60e51b815260040161091f90612dc3565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461099a5760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b0381166109c05760405162461bcd60e51b815260040161091f90612dc3565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161091f90612e05565b60075460ff1615610a5f5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161091f565b6007805461ffff191661010117905543600e55565b6000610a818484846117d9565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610b065760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161091f565b610b1a8533610b158685612ff2565b6116b5565b506001949350505050565b6000600c54821115610b8c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161091f565b6000610b96611bce565b9050610ba28184612ec3565b9392505050565b6000546001600160a01b03163314610bd35760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03811660009081526005602052604090205460ff16610c3b5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015260640161091f565b60005b600654811015610d5c57816001600160a01b031660068281548110610c6557610c65613050565b6000918252602090912001546001600160a01b03161415610d4a5760068054610c9090600190612ff2565b81548110610ca057610ca0613050565b600091825260209091200154600680546001600160a01b039092169183908110610ccc57610ccc613050565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610d2457610d2461303a565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d5481613009565b915050610c3e565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108eb918590610b15908690612eab565b6000546001600160a01b03163314610dc15760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161091f90612e05565b80471015610e5f5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e63650000000000000000604482015260640161091f565b604051339082156108fc029083906000818181858888f19350505050158015610d5c573d6000803e3d6000fd5b6000600b54831115610ee05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161091f565b81610eff576000610ef5846001600080611bf1565b5191506108ef9050565b6000610f0f846001600080611bf1565b6020015191506108ef9050565b6000546001600160a01b03163314610f465760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b038316301415610fbe5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161091f565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561100857600080fd5b505af115801561101c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110409190612ce5565b50505050565b6000546001600160a01b031633146110705760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03811660009081526005602052604090205460ff16156110d95760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161091f565b6001600160a01b03811660009081526001602052604090205415611133576001600160a01b03811660009081526001602052604090205461111990610b25565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff16156111d657506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546108ef90610b25565b6000546001600160a01b031633146112225760405162461bcd60e51b815260040161091f90612e05565b61122c6000611c55565b565b6000546001600160a01b031633146112585760405162461bcd60e51b815260040161091f90612e05565b60005b82518110156112bf57816004600085848151811061127b5761127b613050565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112b781613009565b91505061125b565b505050565b6000546001600160a01b031633146112ee5760405162461bcd60e51b815260040161091f90612e05565b600780549115156101000261ff0019909216919091179055565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561138a5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161091f565b6113993385610b158685612ff2565b5060019392505050565b60006108eb3384846117d9565b6000546001600160a01b031633146113da5760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b0381166114005760405162461bcd60e51b815260040161091f90612dc3565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461144c5760405162461bcd60e51b815260040161091f90612e05565b629896808111156114c55760405162461bcd60e51b815260206004820152603960248201527f43616e6e6f74207365742073776170207468726573686f6c6420616d6f756e7460448201527f20686967686572207468616e203125206f6620746f6b656e7300000000000000606482015260840161091f565b6114d16009600a612f28565b6114db9082612fd3565b600d5550565b6000546001600160a01b0316331461150b5760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146115565760405162461bcd60e51b815260040161091f90612e05565b60075460ff16156115b75760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161091f565b600581106116155760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161091f565b600f55565b6000546001600160a01b031633146116445760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b0381166116a95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091f565b6116b281611c55565b50565b6001600160a01b0383166117175760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091f565b6001600160a01b0382166117785760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661183d5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091f565b6001600160a01b03821661189f5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091f565b600081116119015760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161091f565b61190a83611199565b8111156119735760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161091f565b6001600160a01b03831660009081526004602052604090205460ff161580156119b557506001600160a01b03821660009081526004602052604090205460ff16155b15611a015760075460ff16611a015760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161091f565b6000600d54611a0f30611199565b600754911115915062010000900460ff16158015611a345750600754610100900460ff165b8015611a3d5750805b8015611a575750600a546001600160a01b03858116911614155b8015611a7c57506001600160a01b03841660009081526004602052604090205460ff16155b8015611aa157506001600160a01b03831660009081526004602052604090205460ff16155b15611b3d57600a546001600160a01b0384811691161415611aff57600d546040805160a0810182526019548152601a546020820152601b5491810191909152601c546060820152601d546080820152611afa9190611ca5565b611b3d565b600d546040805160a081018252601454815260155460208201526016549181019190915260175460608201526018546080820152611b3d9190611ca5565b60075460019060009062010000900460ff1680611b7257506001600160a01b03861660009081526004602052604090205460ff165b80611b9557506001600160a01b03851660009081526004602052604090205460ff165b15611b9f57600091505b600a546001600160a01b0386811691161415611bb9575060015b611bc68686868585611e57565b505050505050565b6000806000611bdb6121c6565b9092509050611bea8183612ec3565b9250505090565b611bf9612a87565b611c0585858585612349565b9050611c1a818686611c15611bce565b61254d565b60808601526060850152604084015260208301528152611c428185611c3d611bce565b61261e565b60c083015260a08201525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805462ff000019166201000017905560808101516060820151602083015160408401516000939291611cd891612eab565b611ce29190612eab565b611cec9190612eab565b611cf7906002612fd3565b905080611d045750611e47565b600081836040015185611d179190612fd3565b611d219190612ec3565b90506000611d2f8286612ff2565b905047611d3b82612660565b6000611d478247612ff2565b90506000866040015186611d5b9190612ff2565b611d659083612ec3565b90506000876040015182611d799190612fd3565b90508015611d8b57611d8b86826127c1565b6020880151600090611d9e846002612fd3565b611da89190612fd3565b90508015611dc657601154611dc6906001600160a01b031682612884565b6060890151600090611dd9856002612fd3565b611de39190612fd3565b90508015611e0157601254611e01906001600160a01b031682612884565b60808a0151600090611e14866002612fd3565b611e1e9190612fd3565b90508015611e3c57601354611e3c906001600160a01b031682612884565b505050505050505050505b50506007805462ff000019169055565b6001600160a01b03851660009081526004602052604081205460ff16158015611e9957506001600160a01b03851660009081526004602052604090205460ff16155b8015611eb35750600f54600e54611eb09190612eab565b43105b90506000611ec385858585611bf1565b6001600160a01b03881660009081526005602052604090205490915060ff1615611f25576001600160a01b038716600090815260026020526040902054611f0b908690612ff2565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff1615611f885760e08101516001600160a01b038716600090815260026020526040902054611f6e9190612eab565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b038816600090815260016020526040902054611fad9190612ff2565b6001600160a01b0380891660009081526001602090815260408083209490945584015191891681529190912054611fe49190612eab565b6001600160a01b038716600090815260016020526040908190209190915581015115158061201757506000816101000151115b1561202f5761202f816040015182610100015161299d565b60008160800151118061204757506000816101400151115b156120dc5761205f81608001518261014001516129d2565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361018001518461016001518561012001518661014001516120b69190612eab565b6120c09190612eab565b6120ca9190612eab565b60405190815260200160405180910390a35b6000816060015111806120f457506000816101200151115b1561210c5761210c8160600151826101200151612a48565b60008160a00151118061212457506000816101600151115b1561213c5761213c8160a00151826101600151612a5d565b60008160c00151118061215457506000816101800151115b1561216c5761216c8160c00151826101800151612a72565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001516040516121b591815260200190565b60405180910390a350505050505050565b600c54600b546000918291825b600654811015612318578260016000600684815481106121f5576121f5613050565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612260575081600260006006848154811061223957612239613050565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561227657600c54600b54945094505050509091565b600160006006838154811061228d5761228d613050565b60009182526020808320909101546001600160a01b031683528201929092526040019020546122bc9084612ff2565b925060026000600683815481106122d5576122d5613050565b60009182526020808320909101546001600160a01b031683528201929092526040019020546123049083612ff2565b91508061231081613009565b9150506121d3565b50600b54600c546123299190612ec3565b82101561234057600c54600b549350935050509091565b90939092509050565b612351612a87565b836123625760e08101859052611c4d565b6123946040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83801561239f575082155b156123db57506040805160a0810182526019548152601a546020820152601b5491810191909152601c546060820152601d54608082015261244c565b8261241757506040805160a08101825260145481526015546020820152601654918101919091526017546060820152601854608082015261244c565b506040805160a081018252601e548152601f546020808301919091525491810191909152602154606082015260225460808201525b805160649061245b9088612fd3565b6124659190612ec3565b610100830152602081015160649061247d9088612fd3565b6124879190612ec3565b610120830152604081015160649061249f9088612fd3565b6124a99190612ec3565b61014083015260608101516064906124c19088612fd3565b6124cb9190612ec3565b61016083015260808101516064906124e39088612fd3565b6124ed9190612ec3565b6101808301819052610160830151610140840151610120850151610100860151612517908b612ff2565b6125219190612ff2565b61252b9190612ff2565b6125359190612ff2565b61253f9190612ff2565b60e083015250949350505050565b60008080808061255d8689612fd3565b94508661257557508392506000915081905080612613565b858961010001516125869190612fd3565b9250858961012001516125999190612fd3565b9150858961014001516125ac9190612fd3565b90506000868a61016001516125c19190612fd3565b90506000878b61018001516125d69190612fd3565b9050808284866125e6898c612ff2565b6125f09190612ff2565b6125fa9190612ff2565b6126049190612ff2565b61260e9190612ff2565b955050505b945094509450945094565b6000808361263157506000905080612658565b828561016001516126429190612fd3565b9150828561018001516126559190612fd3565b90505b935093915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061269557612695613050565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156126e957600080fd5b505afa1580156126fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127219190612b27565b8160018151811061273457612734613050565b6001600160a01b03928316602091820292909201015260095461275a91309116846116b5565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790612793908590600090869030904290600401612e3a565b600060405180830381600087803b1580156127ad57600080fd5b505af1158015611bc6573d6000803e3d6000fd5b6009546127d99030906001600160a01b0316846116b5565b60095460105460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061287d9190612d40565b5050505050565b804710156128d45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161091f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612921576040519150601f19603f3d011682016040523d82523d6000602084013e612926565b606091505b50509050806112bf5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161091f565b81600c60008282546129af9190612ff2565b9091555050602380548291906000906129c9908490612eab565b90915550505050565b80602360020160008282546129e79190612eab565b90915550503060009081526005602052604090205460ff1615612a29573060009081526002602052604081208054839290612a23908490612eab565b90915550505b30600090815260016020526040812080548492906129c9908490612eab565b80602360010160008282546129e79190612eab565b80602360030160008282546129e79190612eab565b80602360040160008282546129e79190612eab565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8035612afa8161307c565b919050565b8035612afa81613091565b600060208284031215612b1c57600080fd5b8135610ba28161307c565b600060208284031215612b3957600080fd5b8151610ba28161307c565b60008060408385031215612b5757600080fd5b8235612b628161307c565b91506020830135612b728161307c565b809150509250929050565b600080600060608486031215612b9257600080fd5b8335612b9d8161307c565b92506020840135612bad8161307c565b929592945050506040919091013590565b60008060408385031215612bd157600080fd5b8235612bdc8161307c565b946020939093013593505050565b60008060408385031215612bfd57600080fd5b823567ffffffffffffffff80821115612c1557600080fd5b818501915085601f830112612c2957600080fd5b8135602082821115612c3d57612c3d613066565b8160051b604051601f19603f83011681018181108682111715612c6257612c62613066565b604052838152828101945085830182870184018b1015612c8157600080fd5b600096505b84871015612cab57612c9781612aef565b865260019690960195948301948301612c86565b509650612cbb9050878201612aff565b9450505050509250929050565b600060208284031215612cda57600080fd5b8135610ba281613091565b600060208284031215612cf757600080fd5b8151610ba281613091565b600060208284031215612d1457600080fd5b5035919050565b60008060408385031215612d2e57600080fd5b823591506020830135612b7281613091565b600080600060608486031215612d5557600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612d9b57858101830151858201604001528201612d7f565b81811115612dad576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e8a5784516001600160a01b031683529383019391830191600101612e65565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612ebe57612ebe613024565b500190565b600082612ee057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612f20578160001904821115612f0657612f06613024565b80851615612f1357918102915b93841c9390800290612eea565b509250929050565b6000610ba260ff841683600082612f41575060016108ef565b81612f4e575060006108ef565b8160018114612f645760028114612f6e57612f8a565b60019150506108ef565b60ff841115612f7f57612f7f613024565b50506001821b6108ef565b5060208310610133831016604e8410600b8410161715612fad575081810a6108ef565b612fb78383612ee5565b8060001904821115612fcb57612fcb613024565b029392505050565b6000816000190483118215151615612fed57612fed613024565b500290565b60008282101561300457613004613024565b500390565b600060001982141561301d5761301d613024565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146116b257600080fd5b80151581146116b257600080fdfea2646970667358221220cc199420d61480c3535f2410853df6bfe5d2d2eb21ff814a081ed431b04a1b6e64736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102765760003560e01c8063728f8eea1161014f578063a8aa1b31116100c1578063e2f456051161007a578063e2f4560514610821578063ea2f0b3714610837578063edaa116814610857578063f2fde38b14610877578063f66895a314610897578063f887ea40146108be57600080fd5b8063a8aa1b311461073b578063a9059cbb1461075b578063aacebbe31461077b578063d257b34f1461079b578063d72b11bd146107bb578063dd62ed3e146107db57600080fd5b80638e2839ff116101135780638e2839ff146106675780638ea5220f14610687578063924de9b7146106a757806395d89b41146106c75780639ba5e4d5146106f4578063a457c2d71461071b57600080fd5b8063728f8eea1461056957806375f0a874146105b857806385141a77146105f057806388f82020146106105780638da5cb5b1461064957600080fd5b806339509351116101e85780634ada218b116101ac5780634ada218b146104a257806352390c02146104bc5780635342acb4146104dc5780636ddd17131461051557806370a0823114610534578063715018a61461055457600080fd5b80633950935114610402578063437823ec14610422578063441b1d30146104425780634549b0391461046257806347c230921461048257600080fd5b80631d97b7cd1161023a5780631d97b7cd1461035b57806323b872dd14610370578063274a533c146103905780632d838119146103a6578063313ce567146103c65780633685d419146103e257600080fd5b806306fdde0314610282578063095ea7b3146102ca57806318160ddd146102fa5780631816467f14610319578063199c27c51461033b57600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5060408051808201909152600d81526c09a828e824086ded2dc408aa89609b1b60208201525b6040516102c19190612d6e565b60405180910390f35b3480156102d657600080fd5b506102ea6102e5366004612bbe565b6108de565b60405190151581526020016102c1565b34801561030657600080fd5b50600b545b6040519081526020016102c1565b34801561032557600080fd5b50610339610334366004612b0a565b6108f5565b005b34801561034757600080fd5b50610339610356366004612b0a565b610970565b34801561036757600080fd5b506103396109e2565b34801561037c57600080fd5b506102ea61038b366004612b7d565b610a74565b34801561039c57600080fd5b5061030b600e5481565b3480156103b257600080fd5b5061030b6103c1366004612d02565b610b25565b3480156103d257600080fd5b50604051600981526020016102c1565b3480156103ee57600080fd5b506103396103fd366004612b0a565b610ba9565b34801561040e57600080fd5b506102ea61041d366004612bbe565b610d60565b34801561042e57600080fd5b5061033961043d366004612b0a565b610d97565b34801561044e57600080fd5b5061033961045d366004612d02565b610de5565b34801561046e57600080fd5b5061030b61047d366004612d1b565b610e8c565b34801561048e57600080fd5b5061033961049d366004612b7d565b610f1c565b3480156104ae57600080fd5b506007546102ea9060ff1681565b3480156104c857600080fd5b506103396104d7366004612b0a565b611046565b3480156104e857600080fd5b506102ea6104f7366004612b0a565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561052157600080fd5b506007546102ea90610100900460ff1681565b34801561054057600080fd5b5061030b61054f366004612b0a565b611199565b34801561056057600080fd5b506103396111f8565b34801561057557600080fd5b50601454601554601654601754601854610590949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016102c1565b3480156105c457600080fd5b506011546105d8906001600160a01b031681565b6040516001600160a01b0390911681526020016102c1565b3480156105fc57600080fd5b506010546105d8906001600160a01b031681565b34801561061c57600080fd5b506102ea61062b366004612b0a565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561065557600080fd5b506000546001600160a01b03166105d8565b34801561067357600080fd5b50610339610682366004612bea565b61122e565b34801561069357600080fd5b506012546105d8906001600160a01b031681565b3480156106b357600080fd5b506103396106c2366004612cc8565b6112c4565b3480156106d357600080fd5b506040805180820190915260048152634d41474160e01b60208201526102b4565b34801561070057600080fd5b50602354602454602554602654602754610590949392919085565b34801561072757600080fd5b506102ea610736366004612bbe565b611308565b34801561074757600080fd5b50600a546105d8906001600160a01b031681565b34801561076757600080fd5b506102ea610776366004612bbe565b6113a3565b34801561078757600080fd5b50610339610796366004612b0a565b6113b0565b3480156107a757600080fd5b506103396107b6366004612d02565b611422565b3480156107c757600080fd5b506013546105d8906001600160a01b031681565b3480156107e757600080fd5b5061030b6107f6366004612b44565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561082d57600080fd5b5061030b600d5481565b34801561084357600080fd5b50610339610852366004612b0a565b6114e1565b34801561086357600080fd5b50610339610872366004612d02565b61152c565b34801561088357600080fd5b50610339610892366004612b0a565b61161a565b3480156108a357600080fd5b50601954601a54601b54601c54601d54610590949392919085565b3480156108ca57600080fd5b506009546105d8906001600160a01b031681565b60006108eb3384846116b5565b5060015b92915050565b6000546001600160a01b031633146109285760405162461bcd60e51b815260040161091f90612e05565b60405180910390fd5b6001600160a01b03811661094e5760405162461bcd60e51b815260040161091f90612dc3565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461099a5760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b0381166109c05760405162461bcd60e51b815260040161091f90612dc3565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161091f90612e05565b60075460ff1615610a5f5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161091f565b6007805461ffff191661010117905543600e55565b6000610a818484846117d9565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610b065760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161091f565b610b1a8533610b158685612ff2565b6116b5565b506001949350505050565b6000600c54821115610b8c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161091f565b6000610b96611bce565b9050610ba28184612ec3565b9392505050565b6000546001600160a01b03163314610bd35760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03811660009081526005602052604090205460ff16610c3b5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015260640161091f565b60005b600654811015610d5c57816001600160a01b031660068281548110610c6557610c65613050565b6000918252602090912001546001600160a01b03161415610d4a5760068054610c9090600190612ff2565b81548110610ca057610ca0613050565b600091825260209091200154600680546001600160a01b039092169183908110610ccc57610ccc613050565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610d2457610d2461303a565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d5481613009565b915050610c3e565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108eb918590610b15908690612eab565b6000546001600160a01b03163314610dc15760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e0f5760405162461bcd60e51b815260040161091f90612e05565b80471015610e5f5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e63650000000000000000604482015260640161091f565b604051339082156108fc029083906000818181858888f19350505050158015610d5c573d6000803e3d6000fd5b6000600b54831115610ee05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161091f565b81610eff576000610ef5846001600080611bf1565b5191506108ef9050565b6000610f0f846001600080611bf1565b6020015191506108ef9050565b6000546001600160a01b03163314610f465760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b038316301415610fbe5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161091f565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561100857600080fd5b505af115801561101c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110409190612ce5565b50505050565b6000546001600160a01b031633146110705760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03811660009081526005602052604090205460ff16156110d95760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161091f565b6001600160a01b03811660009081526001602052604090205415611133576001600160a01b03811660009081526001602052604090205461111990610b25565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff16156111d657506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546108ef90610b25565b6000546001600160a01b031633146112225760405162461bcd60e51b815260040161091f90612e05565b61122c6000611c55565b565b6000546001600160a01b031633146112585760405162461bcd60e51b815260040161091f90612e05565b60005b82518110156112bf57816004600085848151811061127b5761127b613050565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806112b781613009565b91505061125b565b505050565b6000546001600160a01b031633146112ee5760405162461bcd60e51b815260040161091f90612e05565b600780549115156101000261ff0019909216919091179055565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561138a5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161091f565b6113993385610b158685612ff2565b5060019392505050565b60006108eb3384846117d9565b6000546001600160a01b031633146113da5760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b0381166114005760405162461bcd60e51b815260040161091f90612dc3565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461144c5760405162461bcd60e51b815260040161091f90612e05565b629896808111156114c55760405162461bcd60e51b815260206004820152603960248201527f43616e6e6f74207365742073776170207468726573686f6c6420616d6f756e7460448201527f20686967686572207468616e203125206f6620746f6b656e7300000000000000606482015260840161091f565b6114d16009600a612f28565b6114db9082612fd3565b600d5550565b6000546001600160a01b0316331461150b5760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146115565760405162461bcd60e51b815260040161091f90612e05565b60075460ff16156115b75760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161091f565b600581106116155760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161091f565b600f55565b6000546001600160a01b031633146116445760405162461bcd60e51b815260040161091f90612e05565b6001600160a01b0381166116a95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091f565b6116b281611c55565b50565b6001600160a01b0383166117175760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091f565b6001600160a01b0382166117785760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661183d5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091f565b6001600160a01b03821661189f5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091f565b600081116119015760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161091f565b61190a83611199565b8111156119735760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161091f565b6001600160a01b03831660009081526004602052604090205460ff161580156119b557506001600160a01b03821660009081526004602052604090205460ff16155b15611a015760075460ff16611a015760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161091f565b6000600d54611a0f30611199565b600754911115915062010000900460ff16158015611a345750600754610100900460ff165b8015611a3d5750805b8015611a575750600a546001600160a01b03858116911614155b8015611a7c57506001600160a01b03841660009081526004602052604090205460ff16155b8015611aa157506001600160a01b03831660009081526004602052604090205460ff16155b15611b3d57600a546001600160a01b0384811691161415611aff57600d546040805160a0810182526019548152601a546020820152601b5491810191909152601c546060820152601d546080820152611afa9190611ca5565b611b3d565b600d546040805160a081018252601454815260155460208201526016549181019190915260175460608201526018546080820152611b3d9190611ca5565b60075460019060009062010000900460ff1680611b7257506001600160a01b03861660009081526004602052604090205460ff165b80611b9557506001600160a01b03851660009081526004602052604090205460ff165b15611b9f57600091505b600a546001600160a01b0386811691161415611bb9575060015b611bc68686868585611e57565b505050505050565b6000806000611bdb6121c6565b9092509050611bea8183612ec3565b9250505090565b611bf9612a87565b611c0585858585612349565b9050611c1a818686611c15611bce565b61254d565b60808601526060850152604084015260208301528152611c428185611c3d611bce565b61261e565b60c083015260a08201525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805462ff000019166201000017905560808101516060820151602083015160408401516000939291611cd891612eab565b611ce29190612eab565b611cec9190612eab565b611cf7906002612fd3565b905080611d045750611e47565b600081836040015185611d179190612fd3565b611d219190612ec3565b90506000611d2f8286612ff2565b905047611d3b82612660565b6000611d478247612ff2565b90506000866040015186611d5b9190612ff2565b611d659083612ec3565b90506000876040015182611d799190612fd3565b90508015611d8b57611d8b86826127c1565b6020880151600090611d9e846002612fd3565b611da89190612fd3565b90508015611dc657601154611dc6906001600160a01b031682612884565b6060890151600090611dd9856002612fd3565b611de39190612fd3565b90508015611e0157601254611e01906001600160a01b031682612884565b60808a0151600090611e14866002612fd3565b611e1e9190612fd3565b90508015611e3c57601354611e3c906001600160a01b031682612884565b505050505050505050505b50506007805462ff000019169055565b6001600160a01b03851660009081526004602052604081205460ff16158015611e9957506001600160a01b03851660009081526004602052604090205460ff16155b8015611eb35750600f54600e54611eb09190612eab565b43105b90506000611ec385858585611bf1565b6001600160a01b03881660009081526005602052604090205490915060ff1615611f25576001600160a01b038716600090815260026020526040902054611f0b908690612ff2565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff1615611f885760e08101516001600160a01b038716600090815260026020526040902054611f6e9190612eab565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b038816600090815260016020526040902054611fad9190612ff2565b6001600160a01b0380891660009081526001602090815260408083209490945584015191891681529190912054611fe49190612eab565b6001600160a01b038716600090815260016020526040908190209190915581015115158061201757506000816101000151115b1561202f5761202f816040015182610100015161299d565b60008160800151118061204757506000816101400151115b156120dc5761205f81608001518261014001516129d2565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361018001518461016001518561012001518661014001516120b69190612eab565b6120c09190612eab565b6120ca9190612eab565b60405190815260200160405180910390a35b6000816060015111806120f457506000816101200151115b1561210c5761210c8160600151826101200151612a48565b60008160a00151118061212457506000816101600151115b1561213c5761213c8160a00151826101600151612a5d565b60008160c00151118061215457506000816101800151115b1561216c5761216c8160c00151826101800151612a72565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001516040516121b591815260200190565b60405180910390a350505050505050565b600c54600b546000918291825b600654811015612318578260016000600684815481106121f5576121f5613050565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612260575081600260006006848154811061223957612239613050565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561227657600c54600b54945094505050509091565b600160006006838154811061228d5761228d613050565b60009182526020808320909101546001600160a01b031683528201929092526040019020546122bc9084612ff2565b925060026000600683815481106122d5576122d5613050565b60009182526020808320909101546001600160a01b031683528201929092526040019020546123049083612ff2565b91508061231081613009565b9150506121d3565b50600b54600c546123299190612ec3565b82101561234057600c54600b549350935050509091565b90939092509050565b612351612a87565b836123625760e08101859052611c4d565b6123946040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83801561239f575082155b156123db57506040805160a0810182526019548152601a546020820152601b5491810191909152601c546060820152601d54608082015261244c565b8261241757506040805160a08101825260145481526015546020820152601654918101919091526017546060820152601854608082015261244c565b506040805160a081018252601e548152601f546020808301919091525491810191909152602154606082015260225460808201525b805160649061245b9088612fd3565b6124659190612ec3565b610100830152602081015160649061247d9088612fd3565b6124879190612ec3565b610120830152604081015160649061249f9088612fd3565b6124a99190612ec3565b61014083015260608101516064906124c19088612fd3565b6124cb9190612ec3565b61016083015260808101516064906124e39088612fd3565b6124ed9190612ec3565b6101808301819052610160830151610140840151610120850151610100860151612517908b612ff2565b6125219190612ff2565b61252b9190612ff2565b6125359190612ff2565b61253f9190612ff2565b60e083015250949350505050565b60008080808061255d8689612fd3565b94508661257557508392506000915081905080612613565b858961010001516125869190612fd3565b9250858961012001516125999190612fd3565b9150858961014001516125ac9190612fd3565b90506000868a61016001516125c19190612fd3565b90506000878b61018001516125d69190612fd3565b9050808284866125e6898c612ff2565b6125f09190612ff2565b6125fa9190612ff2565b6126049190612ff2565b61260e9190612ff2565b955050505b945094509450945094565b6000808361263157506000905080612658565b828561016001516126429190612fd3565b9150828561018001516126559190612fd3565b90505b935093915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061269557612695613050565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156126e957600080fd5b505afa1580156126fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127219190612b27565b8160018151811061273457612734613050565b6001600160a01b03928316602091820292909201015260095461275a91309116846116b5565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790612793908590600090869030904290600401612e3a565b600060405180830381600087803b1580156127ad57600080fd5b505af1158015611bc6573d6000803e3d6000fd5b6009546127d99030906001600160a01b0316846116b5565b60095460105460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061287d9190612d40565b5050505050565b804710156128d45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161091f565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612921576040519150601f19603f3d011682016040523d82523d6000602084013e612926565b606091505b50509050806112bf5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161091f565b81600c60008282546129af9190612ff2565b9091555050602380548291906000906129c9908490612eab565b90915550505050565b80602360020160008282546129e79190612eab565b90915550503060009081526005602052604090205460ff1615612a29573060009081526002602052604081208054839290612a23908490612eab565b90915550505b30600090815260016020526040812080548492906129c9908490612eab565b80602360010160008282546129e79190612eab565b80602360030160008282546129e79190612eab565b80602360040160008282546129e79190612eab565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8035612afa8161307c565b919050565b8035612afa81613091565b600060208284031215612b1c57600080fd5b8135610ba28161307c565b600060208284031215612b3957600080fd5b8151610ba28161307c565b60008060408385031215612b5757600080fd5b8235612b628161307c565b91506020830135612b728161307c565b809150509250929050565b600080600060608486031215612b9257600080fd5b8335612b9d8161307c565b92506020840135612bad8161307c565b929592945050506040919091013590565b60008060408385031215612bd157600080fd5b8235612bdc8161307c565b946020939093013593505050565b60008060408385031215612bfd57600080fd5b823567ffffffffffffffff80821115612c1557600080fd5b818501915085601f830112612c2957600080fd5b8135602082821115612c3d57612c3d613066565b8160051b604051601f19603f83011681018181108682111715612c6257612c62613066565b604052838152828101945085830182870184018b1015612c8157600080fd5b600096505b84871015612cab57612c9781612aef565b865260019690960195948301948301612c86565b509650612cbb9050878201612aff565b9450505050509250929050565b600060208284031215612cda57600080fd5b8135610ba281613091565b600060208284031215612cf757600080fd5b8151610ba281613091565b600060208284031215612d1457600080fd5b5035919050565b60008060408385031215612d2e57600080fd5b823591506020830135612b7281613091565b600080600060608486031215612d5557600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612d9b57858101830151858201604001528201612d7f565b81811115612dad576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e8a5784516001600160a01b031683529383019391830191600101612e65565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612ebe57612ebe613024565b500190565b600082612ee057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612f20578160001904821115612f0657612f06613024565b80851615612f1357918102915b93841c9390800290612eea565b509250929050565b6000610ba260ff841683600082612f41575060016108ef565b81612f4e575060006108ef565b8160018114612f645760028114612f6e57612f8a565b60019150506108ef565b60ff841115612f7f57612f7f613024565b50506001821b6108ef565b5060208310610133831016604e8410600b8410161715612fad575081810a6108ef565b612fb78383612ee5565b8060001904821115612fcb57612fcb613024565b029392505050565b6000816000190483118215151615612fed57612fed613024565b500290565b60008282101561300457613004613024565b500390565b600060001982141561301d5761301d613024565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146116b257600080fd5b80151581146116b257600080fdfea2646970667358221220cc199420d61480c3535f2410853df6bfe5d2d2eb21ff814a081ed431b04a1b6e64736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

4781:20667:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8017:83;;;;;;;;;;-1:-1:-1;8087:5:0;;;;;;;;;;;;-1:-1:-1;;;8087:5:0;;;;8017:83;;;;;;;:::i;:::-;;;;;;;;8777:161;;;;;;;;;;-1:-1:-1;8777:161:0;;;;;:::i;:::-;;:::i;:::-;;;5955:14:1;;5948:22;5930:41;;5918:2;5903:18;8777:161:0;5790:187:1;8317:95:0;;;;;;;;;;-1:-1:-1;8397:7:0;;8317:95;;;16363:25:1;;;16351:2;16336:18;8317:95:0;16217:177:1;24072:183:0;;;;;;;;;;-1:-1:-1;24072:183:0;;;;;:::i;:::-;;:::i;:::-;;24263:191;;;;;;;;;;-1:-1:-1;24263:191:0;;;;;:::i;:::-;;:::i;10843:215::-;;;;;;;;;;;;;:::i;8946:448::-;;;;;;;;;;-1:-1:-1;8946:448:0;;;;;:::i;:::-;;:::i;5663:28::-;;;;;;;;;;;;;;;;11324:250;;;;;;;;;;-1:-1:-1;11324:250:0;;;;;:::i;:::-;;:::i;8203:83::-;;;;;;;;;;-1:-1:-1;8203:83:0;;5438:1;17994:36:1;;17982:2;17967:18;8203:83:0;17852:184:1;11988:473:0;;;;;;;;;;-1:-1:-1;11988:473:0;;;;;:::i;:::-;;:::i;9402:207::-;;;;;;;;;;-1:-1:-1;9402:207:0;;;;;:::i;:::-;;:::i;12469:111::-;;;;;;;;;;-1:-1:-1;12469:111:0;;;;;:::i;:::-;;:::i;24869:197::-;;;;;;;;;;-1:-1:-1;24869:197:0;;;;;:::i;:::-;;:::i;10318:517::-;;;;;;;;;;-1:-1:-1;10318:517:0;;;;;:::i;:::-;;:::i;25147:261::-;;;;;;;;;;-1:-1:-1;25147:261:0;;;;;:::i;:::-;;:::i;5200:26::-;;;;;;;;;;-1:-1:-1;5200:26:0;;;;;;;;11648:332;;;;;;;;;;-1:-1:-1;11648:332:0;;;;;:::i;:::-;;:::i;12706:124::-;;;;;;;;;;-1:-1:-1;12706:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;12795:27:0;12771:4;12795:27;;;:18;:27;;;;;;;;;12706:124;5233:23;;;;;;;;;;-1:-1:-1;5233:23:0;;;;;;;;;;;8420:198;;;;;;;;;;-1:-1:-1;8420:198:0;;;;;:::i;:::-;;:::i;3095:94::-;;;;;;;;;;;;;:::i;6310:41::-;;;;;;;;;;-1:-1:-1;6310:41:0;;;;;;;;;;;;;;;;;;;;;;17643:25:1;;;17699:2;17684:18;;17677:34;;;;17727:18;;;17720:34;;;;17785:2;17770:18;;17763:34;17828:3;17813:19;;17806:35;17630:3;17615:19;6310:41:0;17384:463:1;5812:75:0;;;;;;;;;;-1:-1:-1;5812:75:0;;;;-1:-1:-1;;;;;5812:75:0;;;;;;-1:-1:-1;;;;;4855:32:1;;;4837:51;;4825:2;4810:18;5812:75:0;4691:203:1;5735:70:0;;;;;;;;;;-1:-1:-1;5735:70:0;;;;-1:-1:-1;;;;;5735:70:0;;;10190:120;;;;;;;;;;-1:-1:-1;10190:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;10282:20:0;10258:4;10282:20;;;:11;:20;;;;;;;;;10190:120;2872:87;;;;;;;;;;-1:-1:-1;2918:7:0;2945:6;-1:-1:-1;;;;;2945:6:0;2872:87;;23649:212;;;;;;;;;;-1:-1:-1;23649:212:0;;;;;:::i;:::-;;:::i;5894:69::-;;;;;;;;;;-1:-1:-1;5894:69:0;;;;-1:-1:-1;;;;;5894:69:0;;;24695:102;;;;;;;;;;-1:-1:-1;24695:102:0;;;;;:::i;:::-;;:::i;8108:87::-;;;;;;;;;;-1:-1:-1;8180:7:0;;;;;;;;;;;;-1:-1:-1;;;8180:7:0;;;;8108:87;;6633:36;;;;;;;;;;-1:-1:-1;6633:36:0;;;;;;;;;;;;;;;;;;9617:392;;;;;;;;;;-1:-1:-1;9617:392:0;;;;;:::i;:::-;;:::i;5375:19::-;;;;;;;;;;-1:-1:-1;5375:19:0;;;;-1:-1:-1;;;;;5375:19:0;;;10017:165;;;;;;;;;;-1:-1:-1;10017:165:0;;;;;:::i;:::-;;:::i;23869:195::-;;;;;;;;;;-1:-1:-1;23869:195:0;;;;;:::i;:::-;;:::i;24462:225::-;;;;;;;;;;-1:-1:-1;24462:225:0;;;;;:::i;:::-;;:::i;5970:73::-;;;;;;;;;;-1:-1:-1;5970:73:0;;;;-1:-1:-1;;;;;5970:73:0;;;8626:143;;;;;;;;;;-1:-1:-1;8626:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8734:18:0;;;8707:7;8734:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8626:143;5607:47;;;;;;;;;;;;;;;;12588:110;;;;;;;;;;-1:-1:-1;12588:110:0;;;;;:::i;:::-;;:::i;11066:250::-;;;;;;;;;;-1:-1:-1;11066:250:0;;;;;:::i;:::-;;:::i;3197:192::-;;;;;;;;;;-1:-1:-1;3197:192:0;;;;;:::i;:::-;;:::i;6358:45::-;;;;;;;;;;-1:-1:-1;6358:45:0;;;;;;;;;;;;;;;;;;5347:21;;;;;;;;;;-1:-1:-1;5347:21:0;;;;-1:-1:-1;;;;;5347:21:0;;;8777:161;8852:4;8869:39;2373:10;8892:7;8901:6;8869:8;:39::i;:::-;-1:-1:-1;8926:4:0;8777:161;;;;;:::o;24072:183::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;24154:23:0;::::1;24146:69;;;;-1:-1:-1::0;;;24146:69:0::1;;;;;;;:::i;:::-;24226:9;:21:::0;;-1:-1:-1;;;;;;24226:21:0::1;-1:-1:-1::0;;;;;24226:21:0;;;::::1;::::0;;;::::1;::::0;;24072:183::o;24263:191::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24349:23:0;::::1;24341:69;;;;-1:-1:-1::0;;;24341:69:0::1;;;;;;;:::i;:::-;24421:13;:25:::0;;-1:-1:-1;;;;;;24421:25:0::1;-1:-1:-1::0;;;;;24421:25:0;;;::::1;::::0;;;::::1;::::0;;24263:191::o;10843:215::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;10907:14:::1;::::0;::::1;;10906:15;10898:52;;;::::0;-1:-1:-1;;;10898:52:0;;13323:2:1;10898:52:0::1;::::0;::::1;13305:21:1::0;13362:2;13342:18;;;13335:30;13401:26;13381:18;;;13374:54;13445:18;;10898:52:0::1;13121:348:1::0;10898:52:0::1;10961:14;:21:::0;;-1:-1:-1;;10993:18:0;;;;;11038:12:::1;11022:13;:28:::0;10843:215::o;8946:448::-;9078:4;9095:36;9105:6;9113:9;9124:6;9095:9;:36::i;:::-;-1:-1:-1;;;;;9171:19:0;;9144:24;9171:19;;;:11;:19;;;;;;;;2373:10;9171:33;;;;;;;;9223:26;;;;9215:79;;;;-1:-1:-1;;;9215:79:0;;10608:2:1;9215:79:0;;;10590:21:1;10647:2;10627:18;;;10620:30;10686:34;10666:18;;;10659:62;-1:-1:-1;;;10737:18:1;;;10730:38;10785:19;;9215:79:0;10406:404:1;9215:79:0;9305:57;9314:6;2373:10;9336:25;9355:6;9336:16;:25;:::i;:::-;9305:8;:57::i;:::-;-1:-1:-1;9382:4:0;;8946:448;-1:-1:-1;;;;8946:448:0:o;11324:250::-;11391:7;11430;;11419;:18;;11411:73;;;;-1:-1:-1;;;11411:73:0;;9011:2:1;11411:73:0;;;8993:21:1;9050:2;9030:18;;;9023:30;9089:34;9069:18;;;9062:62;-1:-1:-1;;;9140:18:1;;;9133:40;9190:19;;11411:73:0;8809:406:1;11411:73:0;11495:19;11517:10;:8;:10::i;:::-;11495:32;-1:-1:-1;11545:21:0;11495:32;11545:7;:21;:::i;:::-;11538:28;11324:250;-1:-1:-1;;;11324:250:0:o;11988:473::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12068:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;12060:56;;;::::0;-1:-1:-1;;;12060:56:0;;11444:2:1;12060:56:0::1;::::0;::::1;11426:21:1::0;11483:2;11463:18;;;11456:30;11522:25;11502:18;;;11495:53;11565:18;;12060:56:0::1;11242:347:1::0;12060:56:0::1;12132:9;12127:327;12151:9;:16:::0;12147:20;::::1;12127:327;;;12209:7;-1:-1:-1::0;;;;;12193:23:0::1;:9;12203:1;12193:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;12193:12:0::1;:23;12189:254;;;12252:9;12262:16:::0;;:20:::1;::::0;12281:1:::1;::::0;12262:20:::1;:::i;:::-;12252:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;12237:9:::1;:12:::0;;-1:-1:-1;;;;;12252:31:0;;::::1;::::0;12247:1;;12237:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;12237:46:0::1;-1:-1:-1::0;;;;;12237:46:0;;::::1;;::::0;;12302:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;12341:11:::1;:20:::0;;;;:28;;-1:-1:-1;;12341:28:0::1;::::0;;12388:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;12388:15:0;;;;;-1:-1:-1;;;;;;12388:15:0::1;::::0;;;;;12127:327:::1;11988:473:::0;:::o;12189:254::-:1;12169:3:::0;::::1;::::0;::::1;:::i;:::-;;;;12127:327;;;;11988:473:::0;:::o;9402:207::-;2373:10;9482:4;9531:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9531:34:0;;;;;;;;;;9482:4;;9499:80;;9522:7;;9531:47;;9568:10;;9531:47;:::i;12469:111::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12538:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;12538:34:0::1;12568:4;12538:34;::::0;;12469:111::o;24869:197::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;24970:9:::1;24945:21;:34;;24937:71;;;::::0;-1:-1:-1;;;24937:71:0;;14082:2:1;24937:71:0::1;::::0;::::1;14064:21:1::0;14121:2;14101:18;;;14094:30;14160:26;14140:18;;;14133:54;14204:18;;24937:71:0::1;13880:348:1::0;24937:71:0::1;25019:39;::::0;25027:10:::1;::::0;25019:39;::::1;;;::::0;25048:9;;25019:39:::1;::::0;;;25048:9;25027:10;25019:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;10318:517:::0;10436:7;10480;;10469;:18;;10461:62;;;;-1:-1:-1;;;10461:62:0;;12963:2:1;10461:62:0;;;12945:21:1;13002:2;12982:18;;;12975:30;13041:33;13021:18;;;13014:61;13092:18;;10461:62:0;12761:355:1;10461:62:0;10539:17;10534:294;;10573:28;10604:39;10615:7;10624:4;10630:5;10637;10604:10;:39::i;:::-;10665:9;;-1:-1:-1;10658:16:0;;-1:-1:-1;10658:16:0;10534:294;10707:28;10738:39;10749:7;10758:4;10764:5;10771;10738:10;:39::i;:::-;10799:17;;;;-1:-1:-1;10792:24:0;;-1:-1:-1;10792:24:0;25147:261;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25262:27:0;::::1;25284:4;25262:27;;25254:94;;;::::0;-1:-1:-1;;;25254:94:0;;9829:2:1;25254:94:0::1;::::0;::::1;9811:21:1::0;9868:2;9848:18;;;9841:30;9907:34;9887:18;;;9880:62;-1:-1:-1;;;9958:18:1;;;9951:52;10020:19;;25254:94:0::1;9627:418:1::0;25254:94:0::1;25359:41;::::0;-1:-1:-1;;;25359:41:0;;-1:-1:-1;;;;;5091:32:1;;;25359:41:0::1;::::0;::::1;5073:51:1::0;5140:18;;;5133:34;;;25359:27:0;::::1;::::0;::::1;::::0;5046:18:1;;25359:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25147:261:::0;;;:::o;11648:332::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11729:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;11728:21;11720:61;;;::::0;-1:-1:-1;;;11720:61:0;;10252:2:1;11720:61:0::1;::::0;::::1;10234:21:1::0;10291:2;10271:18;;;10264:30;10330:29;10310:18;;;10303:57;10377:18;;11720:61:0::1;10050:351:1::0;11720:61:0::1;-1:-1:-1::0;;;;;11796:16:0;::::1;11815:1;11796:16:::0;;;:7:::1;:16;::::0;;;;;:20;11792:109:::1;;-1:-1:-1::0;;;;;11872:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;11852:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;11833:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;11792:109:::1;-1:-1:-1::0;;;;;11911:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;11911:27:0::1;11934:4;11911:27:::0;;::::1;::::0;;;11949:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;11949:23:0::1;::::0;;::::1;::::0;;11648:332::o;8420:198::-;-1:-1:-1;;;;;8510:20:0;;8486:7;8510:20;;;:11;:20;;;;;;;;8506:49;;;-1:-1:-1;;;;;;8539:16:0;;;;;:7;:16;;;;;;;8420:198::o;8506:49::-;-1:-1:-1;;;;;8593:16:0;;;;;;:7;:16;;;;;;8573:37;;:19;:37::i;3095:94::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;3160:21:::1;3178:1;3160:9;:21::i;:::-;3095:94::o:0;23649:212::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;23747:9:::1;23742:112;23766:8;:15;23762:1;:19;23742:112;;;23837:5;23803:18;:31;23822:8;23831:1;23822:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23803:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23803:31:0;:39;;-1:-1:-1;;23803:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23783:3;::::1;::::0;::::1;:::i;:::-;;;;23742:112;;;;23649:212:::0;;:::o;24695:102::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;24767:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;24767:22:0;;::::1;::::0;;;::::1;::::0;;24695:102::o;9617:392::-;2373:10;9720:4;9769:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9769:34:0;;;;;;;;;;9822:35;;;;9814:85;;;;-1:-1:-1;;;9814:85:0;;15610:2:1;9814:85:0;;;15592:21:1;15649:2;15629:18;;;15622:30;15688:34;15668:18;;;15661:62;-1:-1:-1;;;15739:18:1;;;15732:35;15784:19;;9814:85:0;15408:401:1;9814:85:0;9910:67;2373:10;9933:7;9942:34;9961:15;9942:16;:34;:::i;9910:67::-;-1:-1:-1;9997:4:0;;9617:392;-1:-1:-1;;;9617:392:0:o;10017:165::-;10095:4;10112:40;10122:10;10134:9;10145:6;10112:9;:40::i;23869:195::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23957:23:0;::::1;23949:69;;;;-1:-1:-1::0;;;23949:69:0::1;;;;;;;:::i;:::-;24029:15;:27:::0;;-1:-1:-1;;;;;;24029:27:0::1;-1:-1:-1::0;;;;;24029:27:0;;;::::1;::::0;;;::::1;::::0;;23869:195::o;24462:225::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;24560:3:::1;24550:6;:13;;24542:83;;;::::0;-1:-1:-1;;;24542:83:0;;7820:2:1;24542:83:0::1;::::0;::::1;7802:21:1::0;7859:2;7839:18;;;7832:30;7898:34;7878:18;;;7871:62;7969:27;7949:18;;;7942:55;8014:19;;24542:83:0::1;7618:421:1::0;24542:83:0::1;24666:13;5438:1;24666:2;:13;:::i;:::-;24657:22;::::0;:6;:22:::1;:::i;:::-;24636:18;:43:::0;-1:-1:-1;24462:225:0:o;12588:110::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12655:27:0::1;12685:5;12655:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12655:35:0::1;::::0;;12588:110::o;11066:250::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;11148:14:::1;::::0;::::1;;11147:15;11139:65;;;::::0;-1:-1:-1;;;11139:65:0;;13676:2:1;11139:65:0::1;::::0;::::1;13658:21:1::0;13715:2;13695:18;;;13688:30;13754:34;13734:18;;;13727:62;-1:-1:-1;;;13805:18:1;;;13798:35;13850:19;;11139:65:0::1;13474:401:1::0;11139:65:0::1;11235:1;11223:9;:13;11215:62;;;::::0;-1:-1:-1;;;11215:62:0;;12557:2:1;11215:62:0::1;::::0;::::1;12539:21:1::0;12596:2;12576:18;;;12569:30;12635:34;12615:18;;;12608:62;-1:-1:-1;;;12686:18:1;;;12679:35;12731:19;;11215:62:0::1;12355:401:1::0;11215:62:0::1;11288:8;:20:::0;11066:250::o;3197:192::-;2918:7;2945:6;-1:-1:-1;;;;;2945:6:0;2373:10;3007:23;2999:68;;;;-1:-1:-1;;;2999:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3286:22:0;::::1;3278:73;;;::::0;-1:-1:-1;;;3278:73:0;;9422:2:1;3278:73:0::1;::::0;::::1;9404:21:1::0;9461:2;9441:18;;;9434:30;9500:34;9480:18;;;9473:62;-1:-1:-1;;;9551:18:1;;;9544:36;9597:19;;3278:73:0::1;9220:402:1::0;3278:73:0::1;3362:19;3372:8;3362:9;:19::i;:::-;3197:192:::0;:::o;17850:369::-;-1:-1:-1;;;;;17977:19:0;;17969:68;;;;-1:-1:-1;;;17969:68:0;;7415:2:1;17969:68:0;;;7397:21:1;7454:2;7434:18;;;7427:30;7493:34;7473:18;;;7466:62;-1:-1:-1;;;7544:18:1;;;7537:34;7588:19;;17969:68:0;7213:400:1;17969:68:0;-1:-1:-1;;;;;18056:21:0;;18048:68;;;;-1:-1:-1;;;18048:68:0;;16016:2:1;18048:68:0;;;15998:21:1;16055:2;16035:18;;;16028:30;16094:34;16074:18;;;16067:62;-1:-1:-1;;;16145:18:1;;;16138:32;16187:19;;18048:68:0;15814:398:1;18048:68:0;-1:-1:-1;;;;;18127:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18179:32;;16363:25:1;;;18179:32:0;;16336:18:1;18179:32:0;;;;;;;17850:369;;;:::o;18227:1308::-;-1:-1:-1;;;;;18349:18:0;;18341:68;;;;-1:-1:-1;;;18341:68:0;;7009:2:1;18341:68:0;;;6991:21:1;7048:2;7028:18;;;7021:30;7087:34;7067:18;;;7060:62;-1:-1:-1;;;7138:18:1;;;7131:35;7183:19;;18341:68:0;6807:401:1;18341:68:0;-1:-1:-1;;;;;18428:16:0;;18420:64;;;;-1:-1:-1;;;18420:64:0;;15206:2:1;18420:64:0;;;15188:21:1;15245:2;15225:18;;;15218:30;15284:34;15264:18;;;15257:62;-1:-1:-1;;;15335:18:1;;;15328:33;15378:19;;18420:64:0;15004:399:1;18420:64:0;18512:1;18503:6;:10;18495:64;;;;-1:-1:-1;;;18495:64:0;;14796:2:1;18495:64:0;;;14778:21:1;14835:2;14815:18;;;14808:30;14874:34;14854:18;;;14847:62;-1:-1:-1;;;14925:18:1;;;14918:39;14974:19;;18495:64:0;14594:405:1;18495:64:0;18602:15;18612:4;18602:9;:15::i;:::-;18592:6;:25;;18570:124;;;;-1:-1:-1;;;18570:124:0;;8593:2:1;18570:124:0;;;8575:21:1;8632:2;8612:18;;;8605:30;8671:34;8651:18;;;8644:62;-1:-1:-1;;;8722:18:1;;;8715:47;8779:19;;18570:124:0;8391:413:1;18570:124:0;-1:-1:-1;;;;;18712:24:0;;;;;;:18;:24;;;;;;;;18711:25;:52;;;;-1:-1:-1;;;;;;18741:22:0;;;;;;:18;:22;;;;;;;;18740:23;18711:52;18707:130;;;18788:14;;;;18780:45;;;;-1:-1:-1;;;18780:45:0;;8246:2:1;18780:45:0;;;8228:21:1;8285:2;8265:18;;;8258:30;-1:-1:-1;;;8304:18:1;;;8297:48;8362:18;;18780:45:0;8044:342:1;18780:45:0;18849:12;18892:18;;18864:24;18882:4;18864:9;:24::i;:::-;18940:8;;-1:-1:-1;;18864:46:0;;-1:-1:-1;18940:8:0;;;;;18939:9;:37;;;;-1:-1:-1;18965:11:0;;;;;;;18939:37;:61;;;;;18993:7;18939:61;:90;;;;-1:-1:-1;19025:4:0;;-1:-1:-1;;;;;19017:12:0;;;19025:4;;19017:12;;18939:90;:132;;;;-1:-1:-1;;;;;;19047:24:0;;;;;;:18;:24;;;;;;;;19046:25;18939:132;:172;;;;-1:-1:-1;;;;;;19089:22:0;;;;;;:18;:22;;;;;;;;19088:23;18939:172;18921:351;;;19148:4;;-1:-1:-1;;;;;19142:10:0;;;19148:4;;19142:10;19138:122;;;19169:18;;19154:45;;;;;;;;19189:9;19154:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19169:18;19154:14;:45::i;:::-;19138:122;;;19234:18;;19219:41;;;;;;;;19254:5;19219:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19234:18;19219:14;:41::i;:::-;19346:8;;19297:4;;19282:12;;19346:8;;;;;;:36;;-1:-1:-1;;;;;;19358:24:0;;;;;;:18;:24;;;;;;;;19346:36;:62;;;-1:-1:-1;;;;;;19386:22:0;;;;;;:18;:22;;;;;;;;19346:62;19342:83;;;19420:5;19410:15;;19342:83;19446:4;;-1:-1:-1;;;;;19440:10:0;;;19446:4;;19440:10;19436:29;;;-1:-1:-1;19461:4:0;19436:29;19478:49;19493:4;19499:2;19503:6;19511:7;19520:6;19478:14;:49::i;:::-;18330:1205;;;18227:1308;;;:::o;17109:161::-;17151:7;17172:15;17189;17208:19;:17;:19::i;:::-;17171:56;;-1:-1:-1;17171:56:0;-1:-1:-1;17245:17:0;17171:56;;17245:17;:::i;:::-;17238:24;;;;17109:161;:::o;14067:690::-;14215:36;;:::i;:::-;14276:51;14288:7;14297;14306:6;14314:12;14276:11;:51::i;:::-;14264:63;;14523:53;14536:9;14547:7;14556;14565:10;:8;:10::i;:::-;14523:12;:53::i;:::-;14489:20;;;14338:238;14454:20;;;14338:238;14425:14;;;14338:238;14385:25;;;14338:238;;;14626:94;14353:9;14677:7;14699:10;:8;:10::i;:::-;14626:12;:94::i;:::-;14604:18;;;14587:133;14588:14;;;14587:133;14067:690;;;;;;;:::o;3397:173::-;3453:16;3472:6;;-1:-1:-1;;;;;3489:17:0;;;-1:-1:-1;;;;;;3489:17:0;;;;;;3522:40;;3472:6;;;;;;;3522:40;;3453:16;3522:40;3442:128;3397:173;:::o;21131:1440::-;7203:8;:15;;-1:-1:-1;;7203:15:0;;;;;21338:12:::1;::::0;::::1;::::0;21313:8:::1;::::0;::::1;::::0;21283:14:::1;::::0;::::1;::::0;21253::::1;::::0;::::1;::::0;7203:15;;21338:12;21313:8;21253:44:::1;::::0;::::1;:::i;:::-;:68;;;;:::i;:::-;:97;;;;:::i;:::-;21252:103;::::0;21354:1:::1;21252:103;:::i;:::-;21230:125:::0;-1:-1:-1;21372:16:0;21368:54:::1;;21404:7;;;21368:54;21434:32;21506:11;21488:4;:14;;;21470:15;:32;;;;:::i;:::-;21469:48;;;;:::i;:::-;21434:83:::0;-1:-1:-1;21528:14:0::1;21545:42;21434:83:::0;21545:15;:42:::1;:::i;:::-;21528:59:::0;-1:-1:-1;21625:21:0::1;21659:24;21528:59:::0;21659:16:::1;:24::i;:::-;21696:20;21719:38;21743:14:::0;21719:21:::1;:38;:::i;:::-;21696:61;;21768:19;21820:4;:14;;;21806:11;:28;;;;:::i;:::-;21790:45;::::0;:12;:45:::1;:::i;:::-;21768:67;;21846:29;21892:4;:14;;;21878:11;:28;;;;:::i;:::-;21846:60:::0;-1:-1:-1;21923:25:0;;21919:160:::1;;22006:61;22019:24;22045:21;22006:12;:61::i;:::-;22132:14;::::0;::::1;::::0;22091:20:::1;::::0;22114:15:::1;:11:::0;22128:1:::1;22114:15;:::i;:::-;:32;;;;:::i;:::-;22091:55:::0;-1:-1:-1;22161:16:0;;22157:97:::1;;22202:15;::::0;22194:48:::1;::::0;-1:-1:-1;;;;;22202:15:0::1;22229:12:::0;22194:34:::1;:48::i;:::-;22301:8;::::0;::::1;::::0;22266:14:::1;::::0;22283:15:::1;:11:::0;22297:1:::1;22283:15;:::i;:::-;:26;;;;:::i;:::-;22266:43:::0;-1:-1:-1;22324:10:0;;22320:79:::1;;22359:9;::::0;22351:36:::1;::::0;-1:-1:-1;;;;;22359:9:0::1;22380:6:::0;22351:28:::1;:36::i;:::-;22450:12;::::0;::::1;::::0;22411:18:::1;::::0;22432:15:::1;:11:::0;22446:1:::1;22432:15;:::i;:::-;:30;;;;:::i;:::-;22411:51:::0;-1:-1:-1;22477:14:0;;22473:91:::1;;22516:13;::::0;22508:44:::1;::::0;-1:-1:-1;;;;;22516:13:0::1;22541:10:::0;22508:32:::1;:44::i;:::-;21219:1352;;;;;;;;;;7229:1;-1:-1:-1::0;;7241:8:0;:16;;-1:-1:-1;;7241:16:0;;;21131:1440::o;19616:1507::-;-1:-1:-1;;;;;19811:26:0;;19790:17;19811:26;;;:18;:26;;;;;;;;19810:27;:74;;;;-1:-1:-1;;;;;;19855:29:0;;;;;;:18;:29;;;;;;;;19854:30;19810:74;:130;;;;;19932:8;;19916:13;;:24;;;;:::i;:::-;19901:12;:39;19810:130;19790:150;;19953:28;19984:50;19995:7;20004;20013:6;20021:12;19984:10;:50::i;:::-;-1:-1:-1;;;;;20051:19:0;;;;;;:11;:19;;;;;;19953:81;;-1:-1:-1;20051:19:0;;20047:124;;;-1:-1:-1;;;;;20134:15:0;;;;;;:7;:15;;;;;;:25;;20152:7;;20134:25;:::i;:::-;-1:-1:-1;;;;;20116:15:0;;;;;;:7;:15;;;;;:43;20047:124;-1:-1:-1;;;;;20185:22:0;;;;;;:11;:22;;;;;;;;20181:141;;;20293:17;;;;-1:-1:-1;;;;;20272:18:0;;;;;;:7;:18;;;;;;:38;;20293:17;20272:38;:::i;:::-;-1:-1:-1;;;;;20251:18:0;;;;;;:7;:18;;;;;:59;20181:141;20370:9;;-1:-1:-1;;;;;20352:15:0;;20370:9;20352:15;;;:7;:15;;;;;;:27;;20370:9;20352:27;:::i;:::-;-1:-1:-1;;;;;20334:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;20432:17;;;20411:18;;;;;;;;;;:38;;20432:17;20411:38;:::i;:::-;-1:-1:-1;;;;;20390:18:0;;;;;;:7;:18;;;;;;;:59;;;;20466:6;;;:10;;;:24;;;20489:1;20480;:6;;;:10;20466:24;20462:57;;;20492:27;20504:1;:6;;;20512:1;:6;;;20492:11;:27::i;:::-;20549:1;20534;:12;;;:16;:36;;;;20569:1;20554;:12;;;:16;20534:36;20530:279;;;20587:42;20602:1;:12;;;20616:1;:12;;;20587:14;:42::i;:::-;20709:4;-1:-1:-1;;;;;20649:148:0;20676:6;-1:-1:-1;;;;;20649:148:0;;20772:1;:10;;;20763:1;:6;;;20748:1;:12;;;20733:1;:12;;;:27;;;;:::i;:::-;:36;;;;:::i;:::-;:49;;;;:::i;:::-;20649:148;;16363:25:1;;;16351:2;16336:18;20649:148:0;;;;;;;20530:279;20838:1;20823;:12;;;:16;:36;;;;20858:1;20843;:12;;;:16;20823:36;20819:84;;;20861:42;20876:1;:12;;;20890:1;:12;;;20861:14;:42::i;:::-;20927:1;20918;:6;;;:10;:24;;;;20941:1;20932;:6;;;:10;20918:24;20914:54;;;20944:24;20953:1;:6;;;20961:1;:6;;;20944:8;:24::i;:::-;20996:1;20983;:10;;;:14;:32;;;;21014:1;21001;:10;;;:14;20983:32;20979:74;;;21017:36;21030:1;:10;;;21042:1;:10;;;21017:12;:36::i;:::-;21086:9;-1:-1:-1;;;;;21069:46:0;21078:6;-1:-1:-1;;;;;21069:46:0;;21097:1;:17;;;21069:46;;;;16363:25:1;;16351:2;16336:18;;16217:177;21069:46:0;;;;;;;;19779:1344;;19616:1507;;;;;:::o;17278:564::-;17376:7;;17412;;17329;;;;;17430:300;17454:9;:16;17450:20;;17430:300;;;17520:7;17496;:21;17504:9;17514:1;17504:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17504:12:0;17496:21;;;;;;;;;;;;;:31;;:66;;;17555:7;17531;:21;17539:9;17549:1;17539:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17539:12:0;17531:21;;;;;;;;;;;;;:31;17496:66;17492:114;;;17589:7;;17598;;17581:25;;;;;;;17278:564;;:::o;17492:114::-;17641:7;:21;17649:9;17659:1;17649:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17649:12:0;17641:21;;;;;;;;;;;;;17631:31;;:7;:31;:::i;:::-;17621:41;;17697:7;:21;17705:9;17715:1;17705:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17705:12:0;17697:21;;;;;;;;;;;;;17687:31;;:7;:31;:::i;:::-;17677:41;-1:-1:-1;17472:3:0;;;;:::i;:::-;;;;17430:300;;;;17764:7;;17754;;:17;;;;:::i;:::-;17744:7;:27;17740:58;;;17781:7;;17790;;17773:25;;;;;;17278:564;;:::o;17740:58::-;17817:7;;17826;;-1:-1:-1;17278:564:0;-1:-1:-1;17278:564:0:o;14765:911::-;14914:28;;:::i;:::-;14960:7;14955:91;;14984:17;;;:27;;;15026:8;;14955:91;15056:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15056:17:0;15088:6;:23;;;;;15099:12;15098:13;15088:23;15084:124;;;-1:-1:-1;15113:16:0;;;;;;;;15120:9;15113:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15084:124;;;15150:12;15145:63;;-1:-1:-1;15164:12:0;;;;;;;;15171:5;15164:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15145:63;;;-1:-1:-1;15192:16:0;;;;;;;;15199:9;15192:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15145:63;15241:8;;15253:3;;15231:18;;:7;:18;:::i;:::-;15230:26;;;;:::i;:::-;15221:6;;;:35;15293:14;;;;15311:3;;15283:24;;:7;:24;:::i;:::-;15282:32;;;;:::i;:::-;15267:12;;;:47;15351:14;;;;15369:3;;15341:24;;:7;:24;:::i;:::-;15340:32;;;;:::i;:::-;15325:12;;;:47;15403:8;;;;15415:3;;15393:18;;:7;:18;:::i;:::-;15392:26;;;;:::i;:::-;15383:6;;;:35;15453:12;;;;15469:3;;15443:22;;:7;:22;:::i;:::-;15442:30;;;;:::i;:::-;15429:10;;;:43;;;15617:6;;;;15589:12;;;;15561;;;;15539:6;;;;15516:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;:107;;;;:::i;:::-;:133;;;;:::i;:::-;15483:17;;;:166;-1:-1:-1;14765:911:0;;;;;;:::o;15684:989::-;15894:15;;;;;16078:21;16088:11;16078:7;:21;:::i;:::-;16068:31;;16117:7;16112:75;;-1:-1:-1;16149:7:0;;-1:-1:-1;16167:1:0;;-1:-1:-1;16167:1:0;;-1:-1:-1;16167:1:0;16141:34;;16112:75;16215:11;16206:1;:6;;;:20;;;;:::i;:::-;16199:27;;16265:11;16250:1;:12;;;:26;;;;:::i;:::-;16237:39;;16315:11;16300:1;:12;;;:26;;;;:::i;:::-;16287:39;;16337:12;16361:11;16352:1;:6;;;:20;;;;:::i;:::-;16337:35;;16383:16;16415:11;16402:1;:10;;;:24;;;;:::i;:::-;16383:43;-1:-1:-1;16383:43:0;16563:4;16537:10;16511;16468:27;16491:4;16468:7;:27;:::i;:::-;:53;;;;:::i;:::-;:79;;;;:::i;:::-;:99;;;;:::i;:::-;:123;;;;:::i;:::-;16437:154;;16602:63;;15684:989;;;;;;;;;;:::o;16681:420::-;16865:12;16878:16;16927:7;16922:53;;-1:-1:-1;16959:1:0;;-1:-1:-1;16959:1:0;16951:12;;16922:53;17003:11;16994:1;:6;;;:20;;;;:::i;:::-;16987:27;;17049:11;17036:1;:10;;;:24;;;;:::i;:::-;17025:35;;16681:420;;;;;;;:::o;23087:554::-;23229:16;;;23243:1;23229:16;;;;;;;;23205:21;;23229:16;;;;;;;;;;-1:-1:-1;23229:16:0;23205:40;;23274:4;23256;23261:1;23256:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23256:23:0;;;:7;;;;;;;;;;:23;;;;23300:6;;:13;;;-1:-1:-1;;;23300:13:0;;;;:6;;;;;:11;;:13;;;;;23256:7;;23300:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23290:4;23295:1;23290:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23290:23:0;;;:7;;;;;;;;;:23;23358:6;;23326:53;;23343:4;;23358:6;23367:11;23326:8;:53::i;:::-;23418:6;;:215;;-1:-1:-1;;;23418:215:0;;-1:-1:-1;;;;;23418:6:0;;;;:57;;:215;;23490:11;;23418:6;;23560:4;;23587;;23607:15;;23418:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22579:500;22759:6;;22727:53;;22744:4;;-1:-1:-1;;;;;22759:6:0;22768:11;22727:8;:53::i;:::-;22823:6;;23020:10;;22823:248;;-1:-1:-1;;;22823:248:0;;22888:4;22823:248;;;5519:34:1;5569:18;;;5562:34;;;22823:6:0;5612:18:1;;;5605:34;;;5655:18;;;5648:34;-1:-1:-1;;;;;23020:10:0;;;5698:19:1;;;5691:44;23045:15:0;5751:19:1;;;5744:35;22823:6:0;;;:22;;22854:9;;5453:19:1;;22823:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22579:500;;:::o;4455:319::-;4570:6;4545:21;:31;;4537:73;;;;-1:-1:-1;;;4537:73:0;;11796:2:1;4537:73:0;;;11778:21:1;11835:2;11815:18;;;11808:30;11874:31;11854:18;;;11847:59;11923:18;;4537:73:0;11594:353:1;4537:73:0;4624:12;4642:9;-1:-1:-1;;;;;4642:14:0;4665:6;4642:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4623:54;;;4696:7;4688:78;;;;-1:-1:-1;;;4688:78:0;;11017:2:1;4688:78:0;;;10999:21:1;11056:2;11036:18;;;11029:30;11095:34;11075:18;;;11068:62;11166:28;11146:18;;;11139:56;11212:19;;4688:78:0;10815:422:1;12838:125:0;12917:4;12906:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;12932:11:0;:23;;12951:4;;12932:11;:15;;:23;;12951:4;;12932:23;:::i;:::-;;;;-1:-1:-1;;;;12838:125:0:o;12971:280::-;13079:10;13054:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;13126:4:0;13106:26;;;;:11;:26;;;;;;;;13102:95;;;13165:4;13149:22;;;;:7;:22;;;;;:36;;13175:10;;13149:22;:36;;13175:10;;13149:36;:::i;:::-;;;;-1:-1:-1;;13102:95:0;13223:4;13207:22;;;;:7;:22;;;;;:36;;13233:10;;13207:22;:36;;13233:10;;13207:36;:::i;13259:280::-;13367:10;13342:11;:21;;;:35;;;;;;;:::i;13547:238::-;13631:4;13612:11;:15;;;:23;;;;;;;:::i;13793:266::-;13893:8;13870:11;:19;;;:31;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:128::-;218:20;;247:28;218:20;247:28;:::i;286:247::-;345:6;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;453:9;440:23;472:31;497:5;472:31;:::i;538:251::-;608:6;661:2;649:9;640:7;636:23;632:32;629:52;;;677:1;674;667:12;629:52;709:9;703:16;728:31;753:5;728:31;:::i;794:388::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;978:9;965:23;997:31;1022:5;997:31;:::i;:::-;1047:5;-1:-1:-1;1104:2:1;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;794:388;;;;;:::o;1187:456::-;1264:6;1272;1280;1333:2;1321:9;1312:7;1308:23;1304:32;1301:52;;;1349:1;1346;1339:12;1301:52;1388:9;1375:23;1407:31;1432:5;1407:31;:::i;:::-;1457:5;-1:-1:-1;1514:2:1;1499:18;;1486:32;1527:33;1486:32;1527:33;:::i;:::-;1187:456;;1579:7;;-1:-1:-1;;;1633:2:1;1618:18;;;;1605:32;;1187:456::o;1648:315::-;1716:6;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;1953:2;1938:18;;;;1925:32;;-1:-1:-1;;;1648:315:1:o;1968:1202::-;2058:6;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2175:9;2162:23;2204:18;2245:2;2237:6;2234:14;2231:34;;;2261:1;2258;2251:12;2231:34;2299:6;2288:9;2284:22;2274:32;;2344:7;2337:4;2333:2;2329:13;2325:27;2315:55;;2366:1;2363;2356:12;2315:55;2402:2;2389:16;2424:4;2447:2;2443;2440:10;2437:36;;;2453:18;;:::i;:::-;2499:2;2496:1;2492:10;2531:2;2525:9;2594:2;2590:7;2585:2;2581;2577:11;2573:25;2565:6;2561:38;2649:6;2637:10;2634:22;2629:2;2617:10;2614:18;2611:46;2608:72;;;2660:18;;:::i;:::-;2696:2;2689:22;2746:18;;;2780:15;;;;-1:-1:-1;2815:11:1;;;2845;;;2841:20;;2838:33;-1:-1:-1;2835:53:1;;;2884:1;2881;2874:12;2835:53;2906:1;2897:10;;2916:169;2930:2;2927:1;2924:9;2916:169;;;2987:23;3006:3;2987:23;:::i;:::-;2975:36;;2948:1;2941:9;;;;;3031:12;;;;3063;;2916:169;;;-1:-1:-1;3104:6:1;-1:-1:-1;3129:35:1;;-1:-1:-1;3145:18:1;;;3129:35;:::i;:::-;3119:45;;;;;;1968:1202;;;;;:::o;3175:241::-;3231:6;3284:2;3272:9;3263:7;3259:23;3255:32;3252:52;;;3300:1;3297;3290:12;3252:52;3339:9;3326:23;3358:28;3380:5;3358:28;:::i;3421:245::-;3488:6;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3589:9;3583:16;3608:28;3630:5;3608:28;:::i;3671:180::-;3730:6;3783:2;3771:9;3762:7;3758:23;3754:32;3751:52;;;3799:1;3796;3789:12;3751:52;-1:-1:-1;3822:23:1;;3671:180;-1:-1:-1;3671:180:1:o;3856:309::-;3921:6;3929;3982:2;3970:9;3961:7;3957:23;3953:32;3950:52;;;3998:1;3995;3988:12;3950:52;4034:9;4021:23;4011:33;;4094:2;4083:9;4079:18;4066:32;4107:28;4129:5;4107:28;:::i;4170:306::-;4258:6;4266;4274;4327:2;4315:9;4306:7;4302:23;4298:32;4295:52;;;4343:1;4340;4333:12;4295:52;4372:9;4366:16;4356:26;;4422:2;4411:9;4407:18;4401:25;4391:35;;4466:2;4455:9;4451:18;4445:25;4435:35;;4170:306;;;;;:::o;6205:597::-;6317:4;6346:2;6375;6364:9;6357:21;6407:6;6401:13;6450:6;6445:2;6434:9;6430:18;6423:34;6475:1;6485:140;6499:6;6496:1;6493:13;6485:140;;;6594:14;;;6590:23;;6584:30;6560:17;;;6579:2;6556:26;6549:66;6514:10;;6485:140;;;6643:6;6640:1;6637:13;6634:91;;;6713:1;6708:2;6699:6;6688:9;6684:22;6680:31;6673:42;6634:91;-1:-1:-1;6786:2:1;6765:15;-1:-1:-1;;6761:29:1;6746:45;;;;6793:2;6742:54;;6205:597;-1:-1:-1;;;6205:597:1:o;11952:398::-;12154:2;12136:21;;;12193:2;12173:18;;;12166:30;12232:34;12227:2;12212:18;;12205:62;-1:-1:-1;;;12298:2:1;12283:18;;12276:32;12340:3;12325:19;;11952:398::o;14233:356::-;14435:2;14417:21;;;14454:18;;;14447:30;14513:34;14508:2;14493:18;;14486:62;14580:2;14565:18;;14233:356::o;16399:980::-;16661:4;16709:3;16698:9;16694:19;16740:6;16729:9;16722:25;16766:2;16804:6;16799:2;16788:9;16784:18;16777:34;16847:3;16842:2;16831:9;16827:18;16820:31;16871:6;16906;16900:13;16937:6;16929;16922:22;16975:3;16964:9;16960:19;16953:26;;17014:2;17006:6;17002:15;16988:29;;17035:1;17045:195;17059:6;17056:1;17053:13;17045:195;;;17124:13;;-1:-1:-1;;;;;17120:39:1;17108:52;;17215:15;;;;17180:12;;;;17156:1;17074:9;17045:195;;;-1:-1:-1;;;;;;;17296:32:1;;;;17291:2;17276:18;;17269:60;-1:-1:-1;;;17360:3:1;17345:19;17338:35;17257:3;16399:980;-1:-1:-1;;;16399:980:1:o;18041:128::-;18081:3;18112:1;18108:6;18105:1;18102:13;18099:39;;;18118:18;;:::i;:::-;-1:-1:-1;18154:9:1;;18041:128::o;18174:217::-;18214:1;18240;18230:132;;18284:10;18279:3;18275:20;18272:1;18265:31;18319:4;18316:1;18309:15;18347:4;18344:1;18337:15;18230:132;-1:-1:-1;18376:9:1;;18174:217::o;18396:422::-;18485:1;18528:5;18485:1;18542:270;18563:7;18553:8;18550:21;18542:270;;;18622:4;18618:1;18614:6;18610:17;18604:4;18601:27;18598:53;;;18631:18;;:::i;:::-;18681:7;18671:8;18667:22;18664:55;;;18701:16;;;;18664:55;18780:22;;;;18740:15;;;;18542:270;;;18546:3;18396:422;;;;;:::o;18823:140::-;18881:5;18910:47;18951:4;18941:8;18937:19;18931:4;19017:5;19047:8;19037:80;;-1:-1:-1;19088:1:1;19102:5;;19037:80;19136:4;19126:76;;-1:-1:-1;19173:1:1;19187:5;;19126:76;19218:4;19236:1;19231:59;;;;19304:1;19299:130;;;;19211:218;;19231:59;19261:1;19252:10;;19275:5;;;19299:130;19336:3;19326:8;19323:17;19320:43;;;19343:18;;:::i;:::-;-1:-1:-1;;19399:1:1;19385:16;;19414:5;;19211:218;;19513:2;19503:8;19500:16;19494:3;19488:4;19485:13;19481:36;19475:2;19465:8;19462:16;19457:2;19451:4;19448:12;19444:35;19441:77;19438:159;;;-1:-1:-1;19550:19:1;;;19582:5;;19438:159;19629:34;19654:8;19648:4;19629:34;:::i;:::-;19699:6;19695:1;19691:6;19687:19;19678:7;19675:32;19672:58;;;19710:18;;:::i;:::-;19748:20;;18968:806;-1:-1:-1;;;18968:806:1:o;19779:168::-;19819:7;19885:1;19881;19877:6;19873:14;19870:1;19867:21;19862:1;19855:9;19848:17;19844:45;19841:71;;;19892:18;;:::i;:::-;-1:-1:-1;19932:9:1;;19779:168::o;19952:125::-;19992:4;20020:1;20017;20014:8;20011:34;;;20025:18;;:::i;:::-;-1:-1:-1;20062:9:1;;19952:125::o;20082:135::-;20121:3;-1:-1:-1;;20142:17:1;;20139:43;;;20162:18;;:::i;:::-;-1:-1:-1;20209:1:1;20198:13;;20082:135::o;20222:127::-;20283:10;20278:3;20274:20;20271:1;20264:31;20314:4;20311:1;20304:15;20338:4;20335:1;20328:15;20354:127;20415:10;20410:3;20406:20;20403:1;20396:31;20446:4;20443:1;20436:15;20470:4;20467:1;20460:15;20486:127;20547:10;20542:3;20538:20;20535:1;20528:31;20578:4;20575:1;20568:15;20602:4;20599:1;20592:15;20618:127;20679:10;20674:3;20670:20;20667:1;20660:31;20710:4;20707:1;20700:15;20734:4;20731:1;20724:15;20750:131;-1:-1:-1;;;;;20825:31:1;;20815:42;;20805:70;;20871:1;20868;20861:12;20886:118;20972:5;20965:13;20958:21;20951:5;20948:32;20938:60;;20994:1;20991;20984:12

Swarm Source

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