ETH Price: $2,523.66 (+2.56%)

Token

FMONEY TOKEN (FMON)
 

Overview

Max Total Supply

10,000,000,000 FMON

Holders

330

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,881,165.040525431 FMON

Value
$0.00
0xa9b809cfe8d95edbdd61603ba40081ba6da4f24b
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:
Fmoney

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-14
*/

/**
 *Submitted for verification at Etherscan.io on 2022-10-12
*/

// SPDX-License-Identifier: NOLICENSE
pragma solidity ^0.8.14;

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

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

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

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

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

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

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

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

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

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

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,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract Fmoney is Context, IERC20, Ownable {

    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;
    mapping (address => bool) private _isBot;

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

    IRouter public router;
    address public pair;

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

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

    
    uint256 public swapTokensAtAmount = 5_000_000 * 10**_decimals;
    uint256 public maxTxAmount = 5_000_000 * 10**_decimals;
    bool private maxTxAmountFilterEnabled = true;
    
    // Anti Dump //
    mapping (address => uint256) public _lastTrade;
    bool private coolDownEnabled = true;
    uint256 public coolDownTime = 10 seconds;

    address public treasuryAddress = 0x6cd8B2464779C8F18EC2d5576C43266d4bEE197e;
    address public megaPoolAddress = 0x45B5AA9BB3041e69f125841E451372805f34A69D;
    address public burnAddress = 0x000000000000000000000000000000000000dEaD;
    address public lpRecipient = 0x8b49089bd60B69D111FbA4cE2DaEc92316631d86;

    string private constant _name = "FMONEY TOKEN";
    string private constant _symbol = "FMON";

    struct Taxes {
      uint256 rfi;
      uint256 treasury;
      uint256 megaPool;
      uint256 burn;
      uint256 liquidity;
    }

    Taxes public taxes = Taxes(10,10,10,0,0);

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 treasury;
        uint256 megaPool;
        uint256 burn;
        uint256 liquidity;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rTreasury;
      uint256 rMegaPool;
      uint256 rBurn;
      uint256 rLiquidity;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tTreasury;
      uint256 tMegaPool;
      uint256 tBurn;
      uint256 tLiquidity;
    }

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

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[treasuryAddress]=true;
        _isExcludedFromFee[burnAddress] = true;
        _isExcludedFromFee[megaPoolAddress] = true;
        _isExcludedFromFee[lpRecipient] = true;

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

    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

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

    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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

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

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

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

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

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

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        require(_excluded.length <= 2000, "Excluded accounts array is too big, please consider to review it");
        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 setTaxes(uint256 _rfi, uint256 _treasury, uint256 _megaPool, uint256 _burn, uint256 _liquidity) public onlyOwner {
        taxes.rfi = _rfi;
        taxes.treasury = _treasury;
        taxes.megaPool = _megaPool;
        taxes.burn = _burn;
        taxes.liquidity = _liquidity;
        emit FeesChanged();
    }


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

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;
        if(_isExcluded[address(this)]) _tOwned[address(this)]+=tLiquidity;
        _rOwned[address(this)] +=rLiquidity;
    }

    function _takeTreasury(uint256 rTreasury, uint256 tTreasury) private {
        totFeesPaid.treasury +=tTreasury;
        if(_isExcluded[treasuryAddress]) _tOwned[treasuryAddress]+=tTreasury;
        _rOwned[treasuryAddress] +=rTreasury;
    }
    
    function _takeMegaPool(uint256 rMegaPool, uint256 tMegaPool) private{
        totFeesPaid.megaPool +=tMegaPool;
        if(_isExcluded[megaPoolAddress]) _tOwned[megaPoolAddress]+=tMegaPool;
        _rOwned[megaPoolAddress] +=rMegaPool;
    }

    function _takeBurn(uint256 rBurn, uint256 tBurn) private{
        totFeesPaid.burn +=tBurn;
        if(_isExcluded[burnAddress])_tOwned[burnAddress]+=tBurn;
        _rOwned[burnAddress] +=rBurn;
    }

    function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rTreasury,to_return.rMegaPool, to_return.rBurn, to_return.rLiquidity) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        
        s.tRfi = tAmount*taxes.rfi/1000;
        s.tTreasury = tAmount*taxes.treasury/1000;
        s.tMegaPool = tAmount*taxes.megaPool/1000;
        s.tBurn = tAmount*taxes.burn/1000;
        s.tLiquidity = tAmount*taxes.liquidity/1000;
        s.tTransferAmount = tAmount-s.tRfi-s.tTreasury-s.tLiquidity-s.tMegaPool-s.tBurn;
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rTreasury,uint256 rMegaPool,uint256 rBurn,uint256 rLiquidity) {
        rAmount = tAmount*currentRate;

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

        rRfi = s.tRfi*currentRate;
        rTreasury = s.tTreasury*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rMegaPool = s.tMegaPool*currentRate;
        rBurn = s.tBurn*currentRate;
        rTransferAmount =  rAmount-rRfi-rTreasury-rLiquidity-rMegaPool-rBurn;
        return (rAmount, rTransferAmount, rRfi,rTreasury,rMegaPool,rBurn,rLiquidity);
    }

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        require(_excluded.length <= 2000, "Excluded accounts array is too big, please consider to review it");
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-_rOwned[_excluded[i]];
            tSupply = tSupply-_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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


    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        // require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        require(!_isBot[from] && !_isBot[to], "You are a bot");

        if((!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping) || maxTxAmountFilterEnabled){
            require(amount <= maxTxAmount ,"Amount is exceeding maxTxAmount");
            // _handleCoolDownFilter(from, to);
            if(from != pair && coolDownEnabled){
                uint256 timePassed = block.timestamp - _lastTrade[from];
                require(timePassed > coolDownTime, "You must wait coolDownTime");
                _lastTrade[from] = block.timestamp;
            }
            
            if(to != pair && coolDownEnabled){
                uint256 timePassed2 = block.timestamp - _lastTrade[to];
                require(timePassed2 > coolDownTime, "You must wait coolDownTime");
                _lastTrade[to] = block.timestamp;
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            swapAndLiquify(swapTokensAtAmount);
        }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        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);
        }
        if(s.rTreasury > 0 || s.tTreasury > 0){
            _takeTreasury(s.rTreasury, s.tTreasury);
            emit Transfer(sender, treasuryAddress, s.tTreasury);
        }
        if(s.rMegaPool > 0 || s.tMegaPool > 0){
            _takeMegaPool(s.rMegaPool, s.tMegaPool);
            emit Transfer(sender, megaPoolAddress, s.tMegaPool);
        }
        if(s.rBurn > 0 || s.tBurn > 0){
            _takeBurn(s.rBurn, s.tBurn);
            emit Transfer(sender, burnAddress, s.tBurn);
        }
        
        emit Transfer(sender, recipient, s.tTransferAmount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
       // Split the contract balance into halves
        uint256 tokensToAddLiquidityWith = tokens / 2;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 ETHToAddLiquidityWith = address(this).balance - initialBalance;

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

    }

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

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

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap 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 updateTreasuryWallet(address newWallet) external onlyOwner{
        require(treasuryAddress != newWallet ,'Wallet already set');
        treasuryAddress = newWallet;
        _isExcludedFromFee[treasuryAddress];
    }

    function updateBurnWallet(address newWallet) external onlyOwner{
        require(burnAddress != newWallet ,'Wallet already set');
        burnAddress = newWallet;
        _isExcludedFromFee[burnAddress];
    }

    function updateMegaPoolWallet(address newWallet) external onlyOwner{
        require(megaPoolAddress != newWallet ,'Wallet already set');
        megaPoolAddress = newWallet;
        _isExcludedFromFee[megaPoolAddress];
    }

    function updateLPRecipient(address newWallet) external onlyOwner{
        require(lpRecipient != newWallet ,'Wallet already set');
        lpRecipient = newWallet;
        _isExcludedFromFee[lpRecipient];
    }

    function updateMaxTxAmt(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**_decimals;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**_decimals;
    }

    function updateMaxTxAmountFilterEnabled(bool _enabled) external onlyOwner{
        maxTxAmountFilterEnabled = _enabled;
    }

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

    function updateCoolDownSettings(bool _enabled, uint256 _timeInSeconds) external onlyOwner{
        coolDownEnabled = _enabled;
        coolDownTime = _timeInSeconds * 1 seconds;
    }

    function setAntibot(address account, bool state) external onlyOwner{
        require(_isBot[account] != state, 'Value already set');
        _isBot[account] = state;
    }
    
    function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
        require(accounts.length <= 10, "This bulk only accept a length of 10 accounts");
        for(uint256 i = 0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
        }
    }
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    function isBot(address account) public view returns(bool){
        return _isBot[account];
    }

    function getLiquidityProtectionData() public view onlyOwner returns(bool _maxTxAmountFilterEnabled, bool _coolDownEnabled){
        return (maxTxAmountFilterEnabled, coolDownEnabled);
    }
    
    function airdropTokens(address[] memory recipients, uint256[] memory amounts) external onlyOwner {
        require(recipients.length <= 100, "This bulk only accept a length of 100 recipients");
        require(recipients.length == amounts.length,"Invalid size");
        address sender = msg.sender;
        for(uint256 i; i < recipients.length; i++) {
            if (_isExcluded[recipients[i]] == false) {
                address recipient = recipients[i];
                uint256 rAmount = amounts[i] * _getRate();
                _rOwned[sender] = _rOwned[sender] - rAmount;
                _rOwned[recipient] = _rOwned[recipient] + rAmount;
                emit Transfer(sender, recipient, amounts[i]);
            }
        }
    }

    //Use this in case ETH are sent to the contract by mistake
    function rescueETH(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient ETH balance");
        payable(owner()).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* ERC20 tokens sent to this contract (by mistake)
    // Owner cannot transfer out catecoin from this smart contract
    function rescueAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        IERC20(_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":[{"internalType":"address","name":"","type":"address"}],"name":"_lastTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","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":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLiquidityProtectionData","outputs":[{"internalType":"bool","name":"_maxTxAmountFilterEnabled","type":"bool"},{"internalType":"bool","name":"_coolDownEnabled","type":"bool"}],"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":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"lpRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"megaPoolAddress","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":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_treasury","type":"uint256"},{"internalType":"uint256","name":"_megaPool","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","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":"treasury","type":"uint256"},{"internalType":"uint256","name":"megaPool","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"treasury","type":"uint256"},{"internalType":"uint256","name":"megaPool","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateBurnWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_timeInSeconds","type":"uint256"}],"name":"updateCoolDownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateLPRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateMaxTxAmountFilterEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMegaPoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","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":"address","name":"newWallet","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000a59565b62000023906402540be40062000a6a565b600a819055620000369060001962000aa2565b620000449060001962000ab9565b600b55620000556009600a62000a59565b6200006490624c4b4062000a6a565b600c55620000756009600a62000a59565b6200008490624c4b4062000a6a565b600d55600e805460ff199081166001908117909255601080549091169091179055600a6011819055601280546001600160a01b0319908116736cd8b2464779c8f18ec2d5576c43266d4bee197e179091556013805482167345b5aa9bb3041e69f125841e451372805f34a69d17905560148054821661dead17905560158054909116738b49089bd60b69d111fba4ce2daec92316631d861790556040805160a081018252828152602081018390529081018290526000606082018190526080909101819052601682905560178290556018919091556019819055601a553480156200016e57600080fd5b506040516200425538038062004255833981016040819052620001919162000ad3565b6200019c336200048b565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000208919062000ad3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c919062000ad3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f0919062000ad3565b600880546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600980549183166001600160a01b0319909216821790559091506200033e90620004db565b600b5460016000620003586000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620003926200066960201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155601254821684528284208054861682179055601454821684528284208054861682179055601354821684528284208054861682179055601554909116835291208054909216179055620004326000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200047a91815260200190565b60405180910390a350505062000b47565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146200053b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620005a65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000532565b6001600160a01b0381166000908152600160205260409020541562000603576001600160a01b038116600090815260016020526040902054620005e99062000678565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b54821115620006e15760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000532565b6000620006ed62000702565b9050620006fb818462000afe565b9392505050565b600080806200071062000728565b909250905062000721818362000afe565b9250505090565b6000806107d06007805490501115620007ac576040805162461bcd60e51b81526020600482015260248101919091527f4578636c75646564206163636f756e747320617272617920697320746f6f206260448201527f69672c20706c6561736520636f6e736964657220746f20726576696577206974606482015260840162000532565b600b54600a5460005b6007548110156200091057826001600060078481548110620007db57620007db62000b15565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200084a575081600260006007848154811062000823576200082362000b15565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200086157600b54600a54945094505050509091565b60016000600783815481106200087b576200087b62000b15565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008ac908462000ab9565b92506002600060078381548110620008c857620008c862000b15565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008f9908362000ab9565b915080620009078162000b2b565b915050620007b5565b50600a54600b5462000923919062000afe565b8210156200093b57600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200099b5781600019048211156200097f576200097f62000944565b808516156200098d57918102915b93841c93908002906200095f565b509250929050565b600082620009b45750600162000a53565b81620009c35750600062000a53565b8160018114620009dc5760028114620009e75762000a07565b600191505062000a53565b60ff841115620009fb57620009fb62000944565b50506001821b62000a53565b5060208310610133831016604e8410600b841016171562000a2c575081810a62000a53565b62000a3883836200095a565b806000190482111562000a4f5762000a4f62000944565b0290505b92915050565b6000620006fb60ff841683620009a3565b600081600019048311821515161562000a875762000a8762000944565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262000ab45762000ab462000a8c565b500690565b60008282101562000ace5762000ace62000944565b500390565b60006020828403121562000ae657600080fd5b81516001600160a01b0381168114620006fb57600080fd5b60008262000b105762000b1062000a8c565b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820162000b405762000b4062000944565b5060010190565b6136fe8062000b576000396000f3fe60806040526004361061031e5760003560e01c8063715018a6116101ab578063a8aa1b31116100f7578063d2ce0db211610095578063e2f456051161006f578063e2f4560514610a3c578063ea2f0b3714610a52578063f2fde38b14610a72578063f887ea4014610a9257600080fd5b8063d2ce0db2146109c0578063dd62ed3e146109d6578063e116554514610a1c57600080fd5b8063b3839389116100d1578063b383938914610934578063c40e66f814610954578063c5f956af14610980578063d257b34f146109a057600080fd5b8063a8aa1b31146108d4578063a9059cbb146108f4578063b31470a41461091457600080fd5b80638da5cb5b116101645780639ba5e4d51161013e5780639ba5e4d5146108405780639e252f0014610867578063a457c2d714610887578063a87859f6146108a757600080fd5b80638da5cb5b146107d5578063924de9b7146107f357806395d89b411461081357600080fd5b8063715018a6146106e2578063728f8eea146106f7578063809d458d1461074657806388f82020146107665780638c0ae3df1461079f5780638c0b5e22146107bf57600080fd5b80633bbac5791161026a5780635342acb4116102235780636ddd1713116101fd5780636ddd171314610668578063706f69371461068257806370a08231146106a257806370d5ae05146106c257600080fd5b80635342acb4146105ef5780635fcefa421461062857806361ea4bb91461064857600080fd5b80633bbac5791461051657806340b28c2f1461054f578063437823ec1461056f578063452e68dd1461058f5780634549b039146105af57806352390c02146105cf57600080fd5b806328efa5fa116102d75780633008d104116102b15780633008d1041461049a578063313ce567146104ba5780633685d419146104d657806339509351146104f657600080fd5b806328efa5fa1461043a5780632d8381191461045a5780632e092fe81461047a57600080fd5b806306fdde031461032a5780630785cd4514610371578063095ea7b3146103a95780630d65df9b146103d957806318160ddd146103fb57806323b872dd1461041a57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060408051808201909152600c81526b2326a7a722ac902a27a5a2a760a11b60208201525b6040516103689190612f54565b60405180910390f35b34801561037d57600080fd5b50601354610391906001600160a01b031681565b6040516001600160a01b039091168152602001610368565b3480156103b557600080fd5b506103c96103c4366004612fbe565b610ab8565b6040519015158152602001610368565b3480156103e557600080fd5b506103f96103f4366004612fea565b610acf565b005b34801561040757600080fd5b50600a545b604051908152602001610368565b34801561042657600080fd5b506103c9610435366004612fea565b610b7b565b34801561044657600080fd5b506103f961045536600461302b565b610c2c565b34801561046657600080fd5b5061040c610475366004613048565b610cac565b34801561048657600080fd5b506103f9610495366004613048565b610d30565b3480156104a657600080fd5b506103f96104b536600461302b565b610d76565b3480156104c657600080fd5b5060405160098152602001610368565b3480156104e257600080fd5b506103f96104f136600461302b565b610df6565b34801561050257600080fd5b506103c9610511366004612fbe565b610fd0565b34801561052257600080fd5b506103c961053136600461302b565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561055b57600080fd5b506103f961056a366004613061565b611007565b34801561057b57600080fd5b506103f961058a36600461302b565b61106b565b34801561059b57600080fd5b50601554610391906001600160a01b031681565b3480156105bb57600080fd5b5061040c6105ca3660046130a8565b6110b9565b3480156105db57600080fd5b506103f96105ea36600461302b565b611143565b3480156105fb57600080fd5b506103c961060a36600461302b565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561063457600080fd5b506103f96106433660046130cd565b611296565b34801561065457600080fd5b506103f9610663366004613108565b611309565b34801561067457600080fd5b506008546103c99060ff1681565b34801561068e57600080fd5b506103f961069d366004613204565b611346565b3480156106ae57600080fd5b5061040c6106bd36600461302b565b61158b565b3480156106ce57600080fd5b50601454610391906001600160a01b031681565b3480156106ee57600080fd5b506103f96115ea565b34801561070357600080fd5b50601654601754601854601954601a5461071e949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610368565b34801561075257600080fd5b506103f961076136600461302b565b611620565b34801561077257600080fd5b506103c961078136600461302b565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156107ab57600080fd5b506103f96107ba3660046132bf565b6116a0565b3480156107cb57600080fd5b5061040c600d5481565b3480156107e157600080fd5b506000546001600160a01b0316610391565b3480156107ff57600080fd5b506103f961080e366004613108565b6116ea565b34801561081f57600080fd5b506040805180820190915260048152632326a7a760e11b602082015261035b565b34801561084c57600080fd5b50601b54601c54601d54601e54601f5461071e949392919085565b34801561087357600080fd5b506103f9610882366004613048565b611727565b34801561089357600080fd5b506103c96108a2366004612fbe565b6117da565b3480156108b357600080fd5b5061040c6108c236600461302b565b600f6020526000908152604090205481565b3480156108e057600080fd5b50600954610391906001600160a01b031681565b34801561090057600080fd5b506103c961090f366004612fbe565b611875565b34801561092057600080fd5b506103f961092f3660046132dd565b611882565b34801561094057600080fd5b506103f961094f36600461302b565b611980565b34801561096057600080fd5b50610969611a00565b604080519215158352901515602083015201610368565b34801561098c57600080fd5b50601254610391906001600160a01b031681565b3480156109ac57600080fd5b506103f96109bb366004613048565b611a40565b3480156109cc57600080fd5b5061040c60115481565b3480156109e257600080fd5b5061040c6109f1366004613061565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a2857600080fd5b506103f9610a37366004613324565b611a86565b348015610a4857600080fd5b5061040c600c5481565b348015610a5e57600080fd5b506103f9610a6d36600461302b565b611b3f565b348015610a7e57600080fd5b506103f9610a8d36600461302b565b611b8a565b348015610a9e57600080fd5b50600854610391906201000090046001600160a01b031681565b6000610ac5338484611c25565b5060015b92915050565b6000546001600160a01b03163314610b025760405162461bcd60e51b8152600401610af990613352565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610b51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b759190613387565b50505050565b6000610b88848484611d49565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610c0d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610af9565b610c218533610c1c86856133ba565b611c25565b506001949350505050565b6000546001600160a01b03163314610c565760405162461bcd60e51b8152600401610af990613352565b6015546001600160a01b03808316911603610c835760405162461bcd60e51b8152600401610af9906133d1565b601580546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000600b54821115610d135760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610af9565b6000610d1d612212565b9050610d2981846133fd565b9392505050565b6000546001600160a01b03163314610d5a5760405162461bcd60e51b8152600401610af990613352565b610d666009600a613503565b610d709082613512565b600d5550565b6000546001600160a01b03163314610da05760405162461bcd60e51b8152600401610af990613352565b6013546001600160a01b03808316911603610dcd5760405162461bcd60e51b8152600401610af9906133d1565b601380546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b03163314610e205760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03811660009081526005602052604090205460ff16610e885760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610af9565b6007546107d01015610eac5760405162461bcd60e51b8152600401610af990613531565b60005b600754811015610fcc57816001600160a01b031660078281548110610ed657610ed661358f565b6000918252602090912001546001600160a01b031603610fba5760078054610f00906001906133ba565b81548110610f1057610f1061358f565b600091825260209091200154600780546001600160a01b039092169183908110610f3c57610f3c61358f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610f9457610f946135a5565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610fc4816135bb565b915050610eaf565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610ac5918590610c1c9086906135d4565b6000546001600160a01b031633146110315760405162461bcd60e51b8152600401610af990613352565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b031633146110955760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a5483111561110d5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610af9565b8161112957600061111f846001612235565b519150610ac99050565b6000611136846001612235565b602001519150610ac99050565b6000546001600160a01b0316331461116d5760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03811660009081526005602052604090205460ff16156111d65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610af9565b6001600160a01b03811660009081526001602052604090205415611230576001600160a01b03811660009081526001602052604090205461121690610cac565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146112c05760405162461bcd60e51b8152600401610af990613352565b6016859055601784905560188390556019829055601a8190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b031633146113335760405162461bcd60e51b8152600401610af990613352565b600e805460ff1916911515919091179055565b6000546001600160a01b031633146113705760405162461bcd60e51b8152600401610af990613352565b6064825111156113db5760405162461bcd60e51b815260206004820152603060248201527f546869732062756c6b206f6e6c79206163636570742061206c656e677468206f60448201526f662031303020726563697069656e747360801b6064820152608401610af9565b805182511461141b5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c69642073697a6560a01b6044820152606401610af9565b3360005b8351811015610b75576005600085838151811061143e5761143e61358f565b6020908102919091018101516001600160a01b0316825281019190915260400160009081205460ff16151590036115795760008482815181106114835761148361358f565b602002602001015190506000611497612212565b8584815181106114a9576114a961358f565b60200260200101516114bb9190613512565b6001600160a01b0385166000908152600160205260409020549091506114e29082906133ba565b6001600160a01b0380861660009081526001602052604080822093909355908416815220546115129082906135d4565b6001600160a01b038084166000818152600160205260409020929092558651908616906000805160206136a9833981519152908890879081106115575761155761358f565b602002602001015160405161156e91815260200190565b60405180910390a350505b80611583816135bb565b91505061141f565b6001600160a01b03811660009081526005602052604081205460ff16156115c857506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610ac990610cac565b6000546001600160a01b031633146116145760405162461bcd60e51b8152600401610af990613352565b61161e6000612282565b565b6000546001600160a01b0316331461164a5760405162461bcd60e51b8152600401610af990613352565b6012546001600160a01b038083169116036116775760405162461bcd60e51b8152600401610af9906133d1565b601280546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146116ca5760405162461bcd60e51b8152600401610af990613352565b6010805460ff19168315151790556116e3816001613512565b6011555050565b6000546001600160a01b031633146117145760405162461bcd60e51b8152600401610af990613352565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146117515760405162461bcd60e51b8152600401610af990613352565b804710156117a15760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610af9565b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610fcc573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561185c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610af9565b61186b3385610c1c86856133ba565b5060019392505050565b6000610ac5338484611d49565b6000546001600160a01b031633146118ac5760405162461bcd60e51b8152600401610af990613352565b600a825111156119145760405162461bcd60e51b815260206004820152602d60248201527f546869732062756c6b206f6e6c79206163636570742061206c656e677468206f60448201526c66203130206163636f756e747360981b6064820152608401610af9565b60005b825181101561197b5781600660008584815181106119375761193761358f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611973816135bb565b915050611917565b505050565b6000546001600160a01b031633146119aa5760405162461bcd60e51b8152600401610af990613352565b6014546001600160a01b038083169116036119d75760405162461bcd60e51b8152600401610af9906133d1565b601480546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000805481906001600160a01b03163314611a2d5760405162461bcd60e51b8152600401610af990613352565b5050600e5460105460ff91821691169091565b6000546001600160a01b03163314611a6a5760405162461bcd60e51b8152600401610af990613352565b611a766009600a613503565b611a809082613512565b600c5550565b6000546001600160a01b03163314611ab05760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03821660009081526006602052604090205481151560ff909116151503611b145760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610af9565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611b695760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611bb45760405162461bcd60e51b8152600401610af990613352565b6001600160a01b038116611c195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af9565b611c2281612282565b50565b6001600160a01b038316611c875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af9565b6001600160a01b038216611ce85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611dad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af9565b6001600160a01b038216611e0f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af9565b60008111611e715760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af9565b6001600160a01b03831660009081526006602052604090205460ff16158015611eb357506001600160a01b03821660009081526006602052604090205460ff16155b611eef5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610af9565b6001600160a01b03831660009081526004602052604090205460ff16158015611f3157506001600160a01b03821660009081526004602052604090205460ff16155b8015611f455750600854610100900460ff16155b80611f525750600e5460ff165b1561211957600d54811115611fa95760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e74006044820152606401610af9565b6009546001600160a01b03848116911614801590611fc9575060105460ff165b15612061576001600160a01b0383166000908152600f6020526040812054611ff190426133ba565b905060115481116120445760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610af9565b506001600160a01b0383166000908152600f602052604090204290555b6009546001600160a01b03838116911614801590612081575060105460ff165b15612119576001600160a01b0382166000908152600f60205260408120546120a990426133ba565b905060115481116120fc5760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610af9565b506001600160a01b0382166000908152600f602052604090204290555b6000600c546121273061158b565b6008549111159150610100900460ff16158015612146575060085460ff165b801561214f5750805b801561216957506009546001600160a01b03858116911614155b801561218e57506001600160a01b03841660009081526004602052604090205460ff16155b80156121b357506001600160a01b03831660009081526004602052604090205460ff16155b156121c3576121c3600c546122d2565b6001600160a01b038416600090815260046020526040902054610b759085908590859060ff168061220c57506001600160a01b03871660009081526004602052604090205460ff165b15612338565b600080600061221f6126a5565b909250905061222e81836133fd565b9250505090565b61223d612eec565b612247838361284e565b905061225c818484612257612212565b612967565b60c088015260a08701526080860152606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560006122ee6002836133fd565b905060006122fc82846133ba565b90504761230882612a3d565b600061231482476133ba565b90508015612326576123268482612bbc565b50506008805461ff0019169055505050565b60006123448383612235565b6001600160a01b03861660009081526005602052604090205490915060ff16156123a6576001600160a01b03851660009081526002602052604090205461238c9084906133ba565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156124095760e08101516001600160a01b0385166000908152600260205260409020546123ef91906135d4565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b03861660009081526001602052604090205461242e91906133ba565b6001600160a01b038087166000908152600160209081526040808320949094558401519187168152919091205461246591906135d4565b6001600160a01b038516600090815260016020526040908190209190915581015115158061249857506000816101000151115b156124b0576124b08160400151826101000151612c7c565b60008160c0015111806124c857506000816101800151115b15612521576124e08160c00151826101800151612cb1565b306001600160a01b0316856001600160a01b03166000805160206136a983398151915283610180015160405161251891815260200190565b60405180910390a35b60008160600151118061253957506000816101200151115b1561258b576125518160600151826101200151612d27565b6012546101208201516040519081526001600160a01b03918216918716906000805160206136a98339815191529060200160405180910390a35b6000816080015111806125a357506000816101400151115b156125f5576125bb8160800151826101400151612dbe565b6013546101408201516040519081526001600160a01b03918216918716906000805160206136a98339815191529060200160405180910390a35b60008160a00151118061260d57506000816101600151115b1561265f576126258160a00151826101600151612e55565b6014546101608201516040519081526001600160a01b03918216918716906000805160206136a98339815191529060200160405180910390a35b836001600160a01b0316856001600160a01b03166000805160206136a98339815191528360e0015160405161269691815260200190565b60405180910390a35050505050565b6000806107d060078054905011156126cf5760405162461bcd60e51b8152600401610af990613531565b600b54600a5460005b60075481101561281d578260016000600784815481106126fa576126fa61358f565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612765575081600260006007848154811061273e5761273e61358f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561277b57600b54600a54945094505050509091565b60016000600783815481106127925761279261358f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546127c190846133ba565b925060026000600783815481106127da576127da61358f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461280990836133ba565b915080612815816135bb565b9150506126d8565b50600a54600b5461282e91906133fd565b82101561284557600b54600a549350935050509091565b90939092509050565b612856612eec565b816128675760e08101839052610ac9565b6016546103e8906128789085613512565b61288291906133fd565b6101008201526017546103e8906128999085613512565b6128a391906133fd565b6101208201526018546103e8906128ba9085613512565b6128c491906133fd565b6101408201526019546103e8906128db9085613512565b6128e591906133fd565b610160820152601a546103e8906128fc9085613512565b61290691906133fd565b61018082018190526101608201516101408301516101208401516101008501519293919261293490886133ba565b61293e91906133ba565b61294891906133ba565b61295291906133ba565b61295c91906133ba565b60e082015292915050565b6000808080808080612979888b613512565b96508861299757508594506000935083925082915081905080612a2f565b878b61010001516129a89190613512565b9450878b61012001516129bb9190613512565b9350878b61018001516129ce9190613512565b9050878b61014001516129e19190613512565b9250878b61016001516129f49190613512565b915081838286612a04898c6133ba565b612a0e91906133ba565b612a1891906133ba565b612a2291906133ba565b612a2c91906133ba565b95505b949950949992975094509450565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a7257612a7261358f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0991906135ec565b81600181518110612b1c57612b1c61358f565b6001600160a01b039283166020918202929092010152600854612b489130916201000090041684611c25565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612b86908590600090869030904290600401613609565b600060405180830381600087803b158015612ba057600080fd5b505af1158015612bb4573d6000803e3d6000fd5b505050505050565b600854612bda9030906201000090046001600160a01b031684611c25565b60085460155460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af1158015612c50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c75919061367a565b5050505050565b81600b6000828254612c8e91906133ba565b9091555050601b8054829190600090612ca89084906135d4565b90915550505050565b80601b6004016000828254612cc691906135d4565b90915550503060009081526005602052604090205460ff1615612d08573060009081526002602052604081208054839290612d029084906135d4565b90915550505b3060009081526001602052604081208054849290612ca89084906135d4565b80601b6001016000828254612d3c91906135d4565b90915550506012546001600160a01b031660009081526005602052604090205460ff1615612d94576012546001600160a01b031660009081526002602052604081208054839290612d8e9084906135d4565b90915550505b6012546001600160a01b031660009081526001602052604081208054849290612ca89084906135d4565b80601b6002016000828254612dd391906135d4565b90915550506013546001600160a01b031660009081526005602052604090205460ff1615612e2b576013546001600160a01b031660009081526002602052604081208054839290612e259084906135d4565b90915550505b6013546001600160a01b031660009081526001602052604081208054849290612ca89084906135d4565b80601b6003016000828254612e6a91906135d4565b90915550506014546001600160a01b031660009081526005602052604090205460ff1615612ec2576014546001600160a01b031660009081526002602052604081208054839290612ebc9084906135d4565b90915550505b6014546001600160a01b031660009081526001602052604081208054849290612ca89084906135d4565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612f8157858101830151858201604001528201612f65565b81811115612f93576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c2257600080fd5b60008060408385031215612fd157600080fd5b8235612fdc81612fa9565b946020939093013593505050565b600080600060608486031215612fff57600080fd5b833561300a81612fa9565b9250602084013561301a81612fa9565b929592945050506040919091013590565b60006020828403121561303d57600080fd5b8135610d2981612fa9565b60006020828403121561305a57600080fd5b5035919050565b6000806040838503121561307457600080fd5b823561307f81612fa9565b9150602083013561308f81612fa9565b809150509250929050565b8015158114611c2257600080fd5b600080604083850312156130bb57600080fd5b82359150602083013561308f8161309a565b600080600080600060a086880312156130e557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561311a57600080fd5b8135610d298161309a565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561316457613164613125565b604052919050565b600067ffffffffffffffff82111561318657613186613125565b5060051b60200190565b600082601f8301126131a157600080fd5b813560206131b66131b18361316c565b61313b565b82815260059290921b840181019181810190868411156131d557600080fd5b8286015b848110156131f95780356131ec81612fa9565b83529183019183016131d9565b509695505050505050565b6000806040838503121561321757600080fd5b823567ffffffffffffffff8082111561322f57600080fd5b61323b86838701613190565b935060209150818501358181111561325257600080fd5b85019050601f8101861361326557600080fd5b80356132736131b18261316c565b81815260059190911b8201830190838101908883111561329257600080fd5b928401925b828410156132b057833582529284019290840190613297565b80955050505050509250929050565b600080604083850312156132d257600080fd5b8235612fdc8161309a565b600080604083850312156132f057600080fd5b823567ffffffffffffffff81111561330757600080fd5b61331385828601613190565b925050602083013561308f8161309a565b6000806040838503121561333757600080fd5b823561334281612fa9565b9150602083013561308f8161309a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561339957600080fd5b8151610d298161309a565b634e487b7160e01b600052601160045260246000fd5b6000828210156133cc576133cc6133a4565b500390565b60208082526012908201527115d85b1b195d08185b1c9958591e481cd95d60721b604082015260600190565b60008261341a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561345a578160001904821115613440576134406133a4565b8085161561344d57918102915b93841c9390800290613424565b509250929050565b60008261347157506001610ac9565b8161347e57506000610ac9565b8160018114613494576002811461349e576134ba565b6001915050610ac9565b60ff8411156134af576134af6133a4565b50506001821b610ac9565b5060208310610133831016604e8410600b84101617156134dd575081810a610ac9565b6134e7838361341f565b80600019048211156134fb576134fb6133a4565b029392505050565b6000610d2960ff841683613462565b600081600019048311821515161561352c5761352c6133a4565b500290565b602080825260409082018190527f4578636c75646564206163636f756e747320617272617920697320746f6f2062908201527f69672c20706c6561736520636f6e736964657220746f20726576696577206974606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016135cd576135cd6133a4565b5060010190565b600082198211156135e7576135e76133a4565b500190565b6000602082840312156135fe57600080fd5b8151610d2981612fa9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156136595784516001600160a01b031683529383019391830191600101613634565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561368f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220438982c629da774005bb55c5c67d057932dd1191c6693e3ffc942917f28d75bb64736f6c634300080e00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061031e5760003560e01c8063715018a6116101ab578063a8aa1b31116100f7578063d2ce0db211610095578063e2f456051161006f578063e2f4560514610a3c578063ea2f0b3714610a52578063f2fde38b14610a72578063f887ea4014610a9257600080fd5b8063d2ce0db2146109c0578063dd62ed3e146109d6578063e116554514610a1c57600080fd5b8063b3839389116100d1578063b383938914610934578063c40e66f814610954578063c5f956af14610980578063d257b34f146109a057600080fd5b8063a8aa1b31146108d4578063a9059cbb146108f4578063b31470a41461091457600080fd5b80638da5cb5b116101645780639ba5e4d51161013e5780639ba5e4d5146108405780639e252f0014610867578063a457c2d714610887578063a87859f6146108a757600080fd5b80638da5cb5b146107d5578063924de9b7146107f357806395d89b411461081357600080fd5b8063715018a6146106e2578063728f8eea146106f7578063809d458d1461074657806388f82020146107665780638c0ae3df1461079f5780638c0b5e22146107bf57600080fd5b80633bbac5791161026a5780635342acb4116102235780636ddd1713116101fd5780636ddd171314610668578063706f69371461068257806370a08231146106a257806370d5ae05146106c257600080fd5b80635342acb4146105ef5780635fcefa421461062857806361ea4bb91461064857600080fd5b80633bbac5791461051657806340b28c2f1461054f578063437823ec1461056f578063452e68dd1461058f5780634549b039146105af57806352390c02146105cf57600080fd5b806328efa5fa116102d75780633008d104116102b15780633008d1041461049a578063313ce567146104ba5780633685d419146104d657806339509351146104f657600080fd5b806328efa5fa1461043a5780632d8381191461045a5780632e092fe81461047a57600080fd5b806306fdde031461032a5780630785cd4514610371578063095ea7b3146103a95780630d65df9b146103d957806318160ddd146103fb57806323b872dd1461041a57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060408051808201909152600c81526b2326a7a722ac902a27a5a2a760a11b60208201525b6040516103689190612f54565b60405180910390f35b34801561037d57600080fd5b50601354610391906001600160a01b031681565b6040516001600160a01b039091168152602001610368565b3480156103b557600080fd5b506103c96103c4366004612fbe565b610ab8565b6040519015158152602001610368565b3480156103e557600080fd5b506103f96103f4366004612fea565b610acf565b005b34801561040757600080fd5b50600a545b604051908152602001610368565b34801561042657600080fd5b506103c9610435366004612fea565b610b7b565b34801561044657600080fd5b506103f961045536600461302b565b610c2c565b34801561046657600080fd5b5061040c610475366004613048565b610cac565b34801561048657600080fd5b506103f9610495366004613048565b610d30565b3480156104a657600080fd5b506103f96104b536600461302b565b610d76565b3480156104c657600080fd5b5060405160098152602001610368565b3480156104e257600080fd5b506103f96104f136600461302b565b610df6565b34801561050257600080fd5b506103c9610511366004612fbe565b610fd0565b34801561052257600080fd5b506103c961053136600461302b565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561055b57600080fd5b506103f961056a366004613061565b611007565b34801561057b57600080fd5b506103f961058a36600461302b565b61106b565b34801561059b57600080fd5b50601554610391906001600160a01b031681565b3480156105bb57600080fd5b5061040c6105ca3660046130a8565b6110b9565b3480156105db57600080fd5b506103f96105ea36600461302b565b611143565b3480156105fb57600080fd5b506103c961060a36600461302b565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561063457600080fd5b506103f96106433660046130cd565b611296565b34801561065457600080fd5b506103f9610663366004613108565b611309565b34801561067457600080fd5b506008546103c99060ff1681565b34801561068e57600080fd5b506103f961069d366004613204565b611346565b3480156106ae57600080fd5b5061040c6106bd36600461302b565b61158b565b3480156106ce57600080fd5b50601454610391906001600160a01b031681565b3480156106ee57600080fd5b506103f96115ea565b34801561070357600080fd5b50601654601754601854601954601a5461071e949392919085565b604080519586526020860194909452928401919091526060830152608082015260a001610368565b34801561075257600080fd5b506103f961076136600461302b565b611620565b34801561077257600080fd5b506103c961078136600461302b565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156107ab57600080fd5b506103f96107ba3660046132bf565b6116a0565b3480156107cb57600080fd5b5061040c600d5481565b3480156107e157600080fd5b506000546001600160a01b0316610391565b3480156107ff57600080fd5b506103f961080e366004613108565b6116ea565b34801561081f57600080fd5b506040805180820190915260048152632326a7a760e11b602082015261035b565b34801561084c57600080fd5b50601b54601c54601d54601e54601f5461071e949392919085565b34801561087357600080fd5b506103f9610882366004613048565b611727565b34801561089357600080fd5b506103c96108a2366004612fbe565b6117da565b3480156108b357600080fd5b5061040c6108c236600461302b565b600f6020526000908152604090205481565b3480156108e057600080fd5b50600954610391906001600160a01b031681565b34801561090057600080fd5b506103c961090f366004612fbe565b611875565b34801561092057600080fd5b506103f961092f3660046132dd565b611882565b34801561094057600080fd5b506103f961094f36600461302b565b611980565b34801561096057600080fd5b50610969611a00565b604080519215158352901515602083015201610368565b34801561098c57600080fd5b50601254610391906001600160a01b031681565b3480156109ac57600080fd5b506103f96109bb366004613048565b611a40565b3480156109cc57600080fd5b5061040c60115481565b3480156109e257600080fd5b5061040c6109f1366004613061565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a2857600080fd5b506103f9610a37366004613324565b611a86565b348015610a4857600080fd5b5061040c600c5481565b348015610a5e57600080fd5b506103f9610a6d36600461302b565b611b3f565b348015610a7e57600080fd5b506103f9610a8d36600461302b565b611b8a565b348015610a9e57600080fd5b50600854610391906201000090046001600160a01b031681565b6000610ac5338484611c25565b5060015b92915050565b6000546001600160a01b03163314610b025760405162461bcd60e51b8152600401610af990613352565b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610b51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b759190613387565b50505050565b6000610b88848484611d49565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610c0d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610af9565b610c218533610c1c86856133ba565b611c25565b506001949350505050565b6000546001600160a01b03163314610c565760405162461bcd60e51b8152600401610af990613352565b6015546001600160a01b03808316911603610c835760405162461bcd60e51b8152600401610af9906133d1565b601580546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000600b54821115610d135760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610af9565b6000610d1d612212565b9050610d2981846133fd565b9392505050565b6000546001600160a01b03163314610d5a5760405162461bcd60e51b8152600401610af990613352565b610d666009600a613503565b610d709082613512565b600d5550565b6000546001600160a01b03163314610da05760405162461bcd60e51b8152600401610af990613352565b6013546001600160a01b03808316911603610dcd5760405162461bcd60e51b8152600401610af9906133d1565b601380546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b03163314610e205760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03811660009081526005602052604090205460ff16610e885760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610af9565b6007546107d01015610eac5760405162461bcd60e51b8152600401610af990613531565b60005b600754811015610fcc57816001600160a01b031660078281548110610ed657610ed661358f565b6000918252602090912001546001600160a01b031603610fba5760078054610f00906001906133ba565b81548110610f1057610f1061358f565b600091825260209091200154600780546001600160a01b039092169183908110610f3c57610f3c61358f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610f9457610f946135a5565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610fc4816135bb565b915050610eaf565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610ac5918590610c1c9086906135d4565b6000546001600160a01b031633146110315760405162461bcd60e51b8152600401610af990613352565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b031633146110955760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a5483111561110d5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610af9565b8161112957600061111f846001612235565b519150610ac99050565b6000611136846001612235565b602001519150610ac99050565b6000546001600160a01b0316331461116d5760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03811660009081526005602052604090205460ff16156111d65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610af9565b6001600160a01b03811660009081526001602052604090205415611230576001600160a01b03811660009081526001602052604090205461121690610cac565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146112c05760405162461bcd60e51b8152600401610af990613352565b6016859055601784905560188390556019829055601a8190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b031633146113335760405162461bcd60e51b8152600401610af990613352565b600e805460ff1916911515919091179055565b6000546001600160a01b031633146113705760405162461bcd60e51b8152600401610af990613352565b6064825111156113db5760405162461bcd60e51b815260206004820152603060248201527f546869732062756c6b206f6e6c79206163636570742061206c656e677468206f60448201526f662031303020726563697069656e747360801b6064820152608401610af9565b805182511461141b5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c69642073697a6560a01b6044820152606401610af9565b3360005b8351811015610b75576005600085838151811061143e5761143e61358f565b6020908102919091018101516001600160a01b0316825281019190915260400160009081205460ff16151590036115795760008482815181106114835761148361358f565b602002602001015190506000611497612212565b8584815181106114a9576114a961358f565b60200260200101516114bb9190613512565b6001600160a01b0385166000908152600160205260409020549091506114e29082906133ba565b6001600160a01b0380861660009081526001602052604080822093909355908416815220546115129082906135d4565b6001600160a01b038084166000818152600160205260409020929092558651908616906000805160206136a9833981519152908890879081106115575761155761358f565b602002602001015160405161156e91815260200190565b60405180910390a350505b80611583816135bb565b91505061141f565b6001600160a01b03811660009081526005602052604081205460ff16156115c857506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610ac990610cac565b6000546001600160a01b031633146116145760405162461bcd60e51b8152600401610af990613352565b61161e6000612282565b565b6000546001600160a01b0316331461164a5760405162461bcd60e51b8152600401610af990613352565b6012546001600160a01b038083169116036116775760405162461bcd60e51b8152600401610af9906133d1565b601280546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000546001600160a01b031633146116ca5760405162461bcd60e51b8152600401610af990613352565b6010805460ff19168315151790556116e3816001613512565b6011555050565b6000546001600160a01b031633146117145760405162461bcd60e51b8152600401610af990613352565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146117515760405162461bcd60e51b8152600401610af990613352565b804710156117a15760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610af9565b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610fcc573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561185c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610af9565b61186b3385610c1c86856133ba565b5060019392505050565b6000610ac5338484611d49565b6000546001600160a01b031633146118ac5760405162461bcd60e51b8152600401610af990613352565b600a825111156119145760405162461bcd60e51b815260206004820152602d60248201527f546869732062756c6b206f6e6c79206163636570742061206c656e677468206f60448201526c66203130206163636f756e747360981b6064820152608401610af9565b60005b825181101561197b5781600660008584815181106119375761193761358f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611973816135bb565b915050611917565b505050565b6000546001600160a01b031633146119aa5760405162461bcd60e51b8152600401610af990613352565b6014546001600160a01b038083169116036119d75760405162461bcd60e51b8152600401610af9906133d1565b601480546001600160a01b039092166001600160a01b0319909216821790556000526004602052565b6000805481906001600160a01b03163314611a2d5760405162461bcd60e51b8152600401610af990613352565b5050600e5460105460ff91821691169091565b6000546001600160a01b03163314611a6a5760405162461bcd60e51b8152600401610af990613352565b611a766009600a613503565b611a809082613512565b600c5550565b6000546001600160a01b03163314611ab05760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03821660009081526006602052604090205481151560ff909116151503611b145760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610af9565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611b695760405162461bcd60e51b8152600401610af990613352565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611bb45760405162461bcd60e51b8152600401610af990613352565b6001600160a01b038116611c195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af9565b611c2281612282565b50565b6001600160a01b038316611c875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af9565b6001600160a01b038216611ce85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611dad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af9565b6001600160a01b038216611e0f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af9565b60008111611e715760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af9565b6001600160a01b03831660009081526006602052604090205460ff16158015611eb357506001600160a01b03821660009081526006602052604090205460ff16155b611eef5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610af9565b6001600160a01b03831660009081526004602052604090205460ff16158015611f3157506001600160a01b03821660009081526004602052604090205460ff16155b8015611f455750600854610100900460ff16155b80611f525750600e5460ff165b1561211957600d54811115611fa95760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e74006044820152606401610af9565b6009546001600160a01b03848116911614801590611fc9575060105460ff165b15612061576001600160a01b0383166000908152600f6020526040812054611ff190426133ba565b905060115481116120445760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610af9565b506001600160a01b0383166000908152600f602052604090204290555b6009546001600160a01b03838116911614801590612081575060105460ff165b15612119576001600160a01b0382166000908152600f60205260408120546120a990426133ba565b905060115481116120fc5760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610af9565b506001600160a01b0382166000908152600f602052604090204290555b6000600c546121273061158b565b6008549111159150610100900460ff16158015612146575060085460ff165b801561214f5750805b801561216957506009546001600160a01b03858116911614155b801561218e57506001600160a01b03841660009081526004602052604090205460ff16155b80156121b357506001600160a01b03831660009081526004602052604090205460ff16155b156121c3576121c3600c546122d2565b6001600160a01b038416600090815260046020526040902054610b759085908590859060ff168061220c57506001600160a01b03871660009081526004602052604090205460ff165b15612338565b600080600061221f6126a5565b909250905061222e81836133fd565b9250505090565b61223d612eec565b612247838361284e565b905061225c818484612257612212565b612967565b60c088015260a08701526080860152606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560006122ee6002836133fd565b905060006122fc82846133ba565b90504761230882612a3d565b600061231482476133ba565b90508015612326576123268482612bbc565b50506008805461ff0019169055505050565b60006123448383612235565b6001600160a01b03861660009081526005602052604090205490915060ff16156123a6576001600160a01b03851660009081526002602052604090205461238c9084906133ba565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156124095760e08101516001600160a01b0385166000908152600260205260409020546123ef91906135d4565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b03861660009081526001602052604090205461242e91906133ba565b6001600160a01b038087166000908152600160209081526040808320949094558401519187168152919091205461246591906135d4565b6001600160a01b038516600090815260016020526040908190209190915581015115158061249857506000816101000151115b156124b0576124b08160400151826101000151612c7c565b60008160c0015111806124c857506000816101800151115b15612521576124e08160c00151826101800151612cb1565b306001600160a01b0316856001600160a01b03166000805160206136a983398151915283610180015160405161251891815260200190565b60405180910390a35b60008160600151118061253957506000816101200151115b1561258b576125518160600151826101200151612d27565b6012546101208201516040519081526001600160a01b03918216918716906000805160206136a98339815191529060200160405180910390a35b6000816080015111806125a357506000816101400151115b156125f5576125bb8160800151826101400151612dbe565b6013546101408201516040519081526001600160a01b03918216918716906000805160206136a98339815191529060200160405180910390a35b60008160a00151118061260d57506000816101600151115b1561265f576126258160a00151826101600151612e55565b6014546101608201516040519081526001600160a01b03918216918716906000805160206136a98339815191529060200160405180910390a35b836001600160a01b0316856001600160a01b03166000805160206136a98339815191528360e0015160405161269691815260200190565b60405180910390a35050505050565b6000806107d060078054905011156126cf5760405162461bcd60e51b8152600401610af990613531565b600b54600a5460005b60075481101561281d578260016000600784815481106126fa576126fa61358f565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612765575081600260006007848154811061273e5761273e61358f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561277b57600b54600a54945094505050509091565b60016000600783815481106127925761279261358f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546127c190846133ba565b925060026000600783815481106127da576127da61358f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461280990836133ba565b915080612815816135bb565b9150506126d8565b50600a54600b5461282e91906133fd565b82101561284557600b54600a549350935050509091565b90939092509050565b612856612eec565b816128675760e08101839052610ac9565b6016546103e8906128789085613512565b61288291906133fd565b6101008201526017546103e8906128999085613512565b6128a391906133fd565b6101208201526018546103e8906128ba9085613512565b6128c491906133fd565b6101408201526019546103e8906128db9085613512565b6128e591906133fd565b610160820152601a546103e8906128fc9085613512565b61290691906133fd565b61018082018190526101608201516101408301516101208401516101008501519293919261293490886133ba565b61293e91906133ba565b61294891906133ba565b61295291906133ba565b61295c91906133ba565b60e082015292915050565b6000808080808080612979888b613512565b96508861299757508594506000935083925082915081905080612a2f565b878b61010001516129a89190613512565b9450878b61012001516129bb9190613512565b9350878b61018001516129ce9190613512565b9050878b61014001516129e19190613512565b9250878b61016001516129f49190613512565b915081838286612a04898c6133ba565b612a0e91906133ba565b612a1891906133ba565b612a2291906133ba565b612a2c91906133ba565b95505b949950949992975094509450565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a7257612a7261358f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0991906135ec565b81600181518110612b1c57612b1c61358f565b6001600160a01b039283166020918202929092010152600854612b489130916201000090041684611c25565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612b86908590600090869030904290600401613609565b600060405180830381600087803b158015612ba057600080fd5b505af1158015612bb4573d6000803e3d6000fd5b505050505050565b600854612bda9030906201000090046001600160a01b031684611c25565b60085460155460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af1158015612c50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c75919061367a565b5050505050565b81600b6000828254612c8e91906133ba565b9091555050601b8054829190600090612ca89084906135d4565b90915550505050565b80601b6004016000828254612cc691906135d4565b90915550503060009081526005602052604090205460ff1615612d08573060009081526002602052604081208054839290612d029084906135d4565b90915550505b3060009081526001602052604081208054849290612ca89084906135d4565b80601b6001016000828254612d3c91906135d4565b90915550506012546001600160a01b031660009081526005602052604090205460ff1615612d94576012546001600160a01b031660009081526002602052604081208054839290612d8e9084906135d4565b90915550505b6012546001600160a01b031660009081526001602052604081208054849290612ca89084906135d4565b80601b6002016000828254612dd391906135d4565b90915550506013546001600160a01b031660009081526005602052604090205460ff1615612e2b576013546001600160a01b031660009081526002602052604081208054839290612e259084906135d4565b90915550505b6013546001600160a01b031660009081526001602052604081208054849290612ca89084906135d4565b80601b6003016000828254612e6a91906135d4565b90915550506014546001600160a01b031660009081526005602052604090205460ff1615612ec2576014546001600160a01b031660009081526002602052604081208054839290612ebc9084906135d4565b90915550505b6014546001600160a01b031660009081526001602052604081208054849290612ca89084906135d4565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612f8157858101830151858201604001528201612f65565b81811115612f93576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c2257600080fd5b60008060408385031215612fd157600080fd5b8235612fdc81612fa9565b946020939093013593505050565b600080600060608486031215612fff57600080fd5b833561300a81612fa9565b9250602084013561301a81612fa9565b929592945050506040919091013590565b60006020828403121561303d57600080fd5b8135610d2981612fa9565b60006020828403121561305a57600080fd5b5035919050565b6000806040838503121561307457600080fd5b823561307f81612fa9565b9150602083013561308f81612fa9565b809150509250929050565b8015158114611c2257600080fd5b600080604083850312156130bb57600080fd5b82359150602083013561308f8161309a565b600080600080600060a086880312156130e557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561311a57600080fd5b8135610d298161309a565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561316457613164613125565b604052919050565b600067ffffffffffffffff82111561318657613186613125565b5060051b60200190565b600082601f8301126131a157600080fd5b813560206131b66131b18361316c565b61313b565b82815260059290921b840181019181810190868411156131d557600080fd5b8286015b848110156131f95780356131ec81612fa9565b83529183019183016131d9565b509695505050505050565b6000806040838503121561321757600080fd5b823567ffffffffffffffff8082111561322f57600080fd5b61323b86838701613190565b935060209150818501358181111561325257600080fd5b85019050601f8101861361326557600080fd5b80356132736131b18261316c565b81815260059190911b8201830190838101908883111561329257600080fd5b928401925b828410156132b057833582529284019290840190613297565b80955050505050509250929050565b600080604083850312156132d257600080fd5b8235612fdc8161309a565b600080604083850312156132f057600080fd5b823567ffffffffffffffff81111561330757600080fd5b61331385828601613190565b925050602083013561308f8161309a565b6000806040838503121561333757600080fd5b823561334281612fa9565b9150602083013561308f8161309a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561339957600080fd5b8151610d298161309a565b634e487b7160e01b600052601160045260246000fd5b6000828210156133cc576133cc6133a4565b500390565b60208082526012908201527115d85b1b195d08185b1c9958591e481cd95d60721b604082015260600190565b60008261341a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561345a578160001904821115613440576134406133a4565b8085161561344d57918102915b93841c9390800290613424565b509250929050565b60008261347157506001610ac9565b8161347e57506000610ac9565b8160018114613494576002811461349e576134ba565b6001915050610ac9565b60ff8411156134af576134af6133a4565b50506001821b610ac9565b5060208310610133831016604e8410600b84101617156134dd575081810a610ac9565b6134e7838361341f565b80600019048211156134fb576134fb6133a4565b029392505050565b6000610d2960ff841683613462565b600081600019048311821515161561352c5761352c6133a4565b500290565b602080825260409082018190527f4578636c75646564206163636f756e747320617272617920697320746f6f2062908201527f69672c20706c6561736520636f6e736964657220746f20726576696577206974606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016135cd576135cd6133a4565b5060010190565b600082198211156135e7576135e76133a4565b500190565b6000602082840312156135fe57600080fd5b8151610d2981612fa9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156136595784516001600160a01b031683529383019391830191600101613634565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561368f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220438982c629da774005bb55c5c67d057932dd1191c6693e3ffc942917f28d75bb64736f6c634300080e0033

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

2921:20637:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6129:83;;;;;;;;;;-1:-1:-1;6199:5:0;;;;;;;;;;;;-1:-1:-1;;;6199:5:0;;;;6129:83;;;;;;;:::i;:::-;;;;;;;;4112:75;;;;;;;;;;-1:-1:-1;4112:75:0;;;;-1:-1:-1;;;;;4112:75:0;;;;;;-1:-1:-1;;;;;780:32:1;;;762:51;;750:2;735:18;4112:75:0;616:203:1;7037:161:0;;;;;;;;;;-1:-1:-1;7037:161:0;;;;;:::i;:::-;;:::i;:::-;;;1445:14:1;;1438:22;1420:41;;1408:2;1393:18;7037:161:0;1280:187:1;23359:154:0;;;;;;;;;;-1:-1:-1;23359:154:0;;;;;:::i;:::-;;:::i;:::-;;6402:95;;;;;;;;;;-1:-1:-1;6482:7:0;;6402:95;;;2079:25:1;;;2067:2;2052:18;6402:95:0;1933:177:1;7206:422:0;;;;;;;;;;-1:-1:-1;7206:422:0;;;;;:::i;:::-;;:::i;20291:214::-;;;;;;;;;;-1:-1:-1;20291:214:0;;;;;:::i;:::-;;:::i;8836:248::-;;;;;;;;;;-1:-1:-1;8836:248:0;;;;;:::i;:::-;;:::i;20513:113::-;;;;;;;;;;-1:-1:-1;20513:113:0;;;;;:::i;:::-;;:::i;20054:229::-;;;;;;;;;;-1:-1:-1;20054:229:0;;;;;:::i;:::-;;:::i;6311:83::-;;;;;;;;;;-1:-1:-1;6311:83:0;;3503:1;2694:36:1;;2682:2;2667:18;6311:83:0;2552:184:1;9433:587:0;;;;;;;;;;-1:-1:-1;9433:587:0;;;;;:::i;:::-;;:::i;7636:215::-;;;;;;;;;;-1:-1:-1;7636:215:0;;;;;:::i;:::-;;:::i;21858:98::-;;;;;;;;;;-1:-1:-1;21858:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;21933:15:0;21910:4;21933:15;;;:6;:15;;;;;;;;;21858:98;21692:154;;;;;;;;;;-1:-1:-1;21692:154:0;;;;;:::i;:::-;;:::i;10030:111::-;;;;;;;;;;-1:-1:-1;10030:111:0;;;;;:::i;:::-;;:::i;4272:71::-;;;;;;;;;;-1:-1:-1;4272:71:0;;;;-1:-1:-1;;;;;4272:71:0;;;8372:456;;;;;;;;;;-1:-1:-1;8372:456:0;;;;;:::i;:::-;;:::i;9092:333::-;;;;;;;;;;-1:-1:-1;9092:333:0;;;;;:::i;:::-;;:::i;10269:123::-;;;;;;;;;;-1:-1:-1;10269:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10357:27:0;10333:4;10357:27;;;:18;:27;;;;;;;;;10269:123;10400:328;;;;;;;;;;-1:-1:-1;10400:328:0;;;;;:::i;:::-;;:::i;20772:127::-;;;;;;;;;;-1:-1:-1;20772:127:0;;;;;:::i;:::-;;:::i;3352:23::-;;;;;;;;;;-1:-1:-1;3352:23:0;;;;;;;;22167:750;;;;;;;;;;-1:-1:-1;22167:750:0;;;;;:::i;:::-;;:::i;6505:198::-;;;;;;;;;;-1:-1:-1;6505:198:0;;;;;:::i;:::-;;:::i;4194:71::-;;;;;;;;;;-1:-1:-1;4194:71:0;;;;-1:-1:-1;;;;;4194:71:0;;;1698:94;;;;;;;;;;;;;:::i;4600:40::-;;;;;;;;;;-1:-1:-1;4600:40:0;;;;;;;;;;;;;;;;;;;;;;7020:25:1;;;7076:2;7061:18;;7054:34;;;;7104:18;;;7097:34;;;;7162:2;7147:18;;7140:34;7205:3;7190:19;;7183:35;7007:3;6992:19;4600:40:0;6761:463:1;19596:229:0;;;;;;;;;;-1:-1:-1;19596:229:0;;;;;:::i;:::-;;:::i;8244:120::-;;;;;;;;;;-1:-1:-1;8244:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;8336:20:0;8312:4;8336:20;;;:11;:20;;;;;;;;;8244:120;21016:186;;;;;;;;;;-1:-1:-1;21016:186:0;;;;;:::i;:::-;;:::i;3747:54::-;;;;;;;;;;;;;;;;1475:87;;;;;;;;;;-1:-1:-1;1521:7:0;1548:6;-1:-1:-1;;;;;1548:6:0;1475:87;;20907:101;;;;;;;;;;-1:-1:-1;20907:101:0;;;;;:::i;:::-;;:::i;6218:87::-;;;;;;;;;;-1:-1:-1;6290:7:0;;;;;;;;;;;;-1:-1:-1;;;6290:7:0;;;;6218:87;;4814:36;;;;;;;;;;-1:-1:-1;4814:36:0;;;;;;;;;;;;;;;;;;22989:193;;;;;;;;;;-1:-1:-1;22989:193:0;;;;;:::i;:::-;;:::i;7859:377::-;;;;;;;;;;-1:-1:-1;7859:377:0;;;;;:::i;:::-;;:::i;3886:46::-;;;;;;;;;;-1:-1:-1;3886:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;3440:19;;;;;;;;;;-1:-1:-1;3440:19:0;;;;-1:-1:-1;;;;;3440:19:0;;;6711:167;;;;;;;;;;-1:-1:-1;6711:167:0;;;;;:::i;:::-;;:::i;21396:284::-;;;;;;;;;;-1:-1:-1;21396:284:0;;;;;:::i;:::-;;:::i;19833:213::-;;;;;;;;;;-1:-1:-1;19833:213:0;;;;;:::i;:::-;;:::i;21964:191::-;;;;;;;;;;;;;:::i;:::-;;;;8212:14:1;;8205:22;8187:41;;8271:14;;8264:22;8259:2;8244:18;;8237:50;8160:18;21964:191:0;8025:268:1;4030:75:0;;;;;;;;;;-1:-1:-1;4030:75:0;;;;-1:-1:-1;;;;;4030:75:0;;;20634:130;;;;;;;;;;-1:-1:-1;20634:130:0;;;;;:::i;:::-;;:::i;3981:40::-;;;;;;;;;;;;;;;;6886:143;;;;;;;;;;-1:-1:-1;6886:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6994:18:0;;;6967:7;6994:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6886:143;21210:174;;;;;;;;;;-1:-1:-1;21210:174:0;;;;;:::i;:::-;;:::i;3679:61::-;;;;;;;;;;;;;;;;10149:110;;;;;;;;;;-1:-1:-1;10149:110:0;;;;;:::i;:::-;;:::i;1800:192::-;;;;;;;;;;-1:-1:-1;1800:192:0;;;;;:::i;:::-;;:::i;3412:21::-;;;;;;;;;;-1:-1:-1;3412:21:0;;;;;;;-1:-1:-1;;;;;3412:21:0;;;7037:161;7112:4;7129:39;976:10;7152:7;7161:6;7129:8;:39::i;:::-;-1:-1:-1;7186:4:0;7037:161;;;;;:::o;23359:154::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;;;;;;;;;23464:41:::1;::::0;-1:-1:-1;;;23464:41:0;;-1:-1:-1;;;;;9461:32:1;;;23464:41:0::1;::::0;::::1;9443:51:1::0;9510:18;;;9503:34;;;23464:27:0;::::1;::::0;::::1;::::0;9416:18:1;;23464:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23359:154:::0;;;:::o;7206:422::-;7312:4;7329:36;7339:6;7347:9;7358:6;7329:9;:36::i;:::-;-1:-1:-1;;;;;7405:19:0;;7378:24;7405:19;;;:11;:19;;;;;;;;976:10;7405:33;;;;;;;;7457:26;;;;7449:79;;;;-1:-1:-1;;;7449:79:0;;10000:2:1;7449:79:0;;;9982:21:1;10039:2;10019:18;;;10012:30;10078:34;10058:18;;;10051:62;-1:-1:-1;;;10129:18:1;;;10122:38;10177:19;;7449:79:0;9798:404:1;7449:79:0;7539:57;7548:6;976:10;7570:25;7589:6;7570:16;:25;:::i;:::-;7539:8;:57::i;:::-;-1:-1:-1;7616:4:0;;7206:422;-1:-1:-1;;;;7206:422:0:o;20291:214::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;20374:11:::1;::::0;-1:-1:-1;;;;;20374:24:0;;::::1;:11:::0;::::1;:24:::0;20366:55:::1;;;;-1:-1:-1::0;;;20366:55:0::1;;;;;;;:::i;:::-;20432:11;:23:::0;;-1:-1:-1;;;;;20432:23:0;;::::1;-1:-1:-1::0;;;;;;20432:23:0;;::::1;::::0;::::1;::::0;;:11:::1;20466:31:::0;:18:::1;:31;::::0;20291:214::o;8836:248::-;8902:7;8941;;8930;:18;;8922:73;;;;-1:-1:-1;;;8922:73:0;;11018:2:1;8922:73:0;;;11000:21:1;11057:2;11037:18;;;11030:30;11096:34;11076:18;;;11069:62;-1:-1:-1;;;11147:18:1;;;11140:40;11197:19;;8922:73:0;10816:406:1;8922:73:0;9006:19;9029:10;:8;:10::i;:::-;9006:33;-1:-1:-1;9057:19:0;9006:33;9057:7;:19;:::i;:::-;9050:26;8836:248;-1:-1:-1;;;8836:248:0:o;20513:113::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;20605:13:::1;3503:1;20605:2;:13;:::i;:::-;20596:22;::::0;:6;:22:::1;:::i;:::-;20582:11;:36:::0;-1:-1:-1;20513:113:0:o;20054:229::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;20140:15:::1;::::0;-1:-1:-1;;;;;20140:28:0;;::::1;:15:::0;::::1;:28:::0;20132:59:::1;;;;-1:-1:-1::0;;;20132:59:0::1;;;;;;;:::i;:::-;20202:15;:27:::0;;-1:-1:-1;;;;;20202:27:0;;::::1;-1:-1:-1::0;;;;;;20202:27:0;;::::1;::::0;::::1;::::0;;:15:::1;20240:35:::0;:18:::1;:35;::::0;20054:229::o;9433:587::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9515:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9507:56;;;::::0;-1:-1:-1;;;9507:56:0;;13207:2:1;9507:56:0::1;::::0;::::1;13189:21:1::0;13246:2;13226:18;;;13219:30;13285:25;13265:18;;;13258:53;13328:18;;9507:56:0::1;13005:347:1::0;9507:56:0::1;9582:9;:16:::0;9602:4:::1;-1:-1:-1::0;9582:24:0::1;9574:101;;;;-1:-1:-1::0;;;9574:101:0::1;;;;;;;:::i;:::-;9691:9;9686:327;9710:9;:16:::0;9706:20;::::1;9686:327;;;9768:7;-1:-1:-1::0;;;;;9752:23:0::1;:9;9762:1;9752:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9752:12:0::1;:23:::0;9748:254:::1;;9811:9;9821:16:::0;;:20:::1;::::0;9840:1:::1;::::0;9821:20:::1;:::i;:::-;9811:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9796:9:::1;:12:::0;;-1:-1:-1;;;;;9811:31:0;;::::1;::::0;9806:1;;9796:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9796:46:0::1;-1:-1:-1::0;;;;;9796:46:0;;::::1;;::::0;;9861:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9900:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9900:28:0::1;::::0;;9947:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9947:15:0;;;;;-1:-1:-1;;;;;;9947:15:0::1;::::0;;;;;9686:327:::1;9433:587:::0;:::o;9748:254::-:1;9728:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9686:327;;;;9433:587:::0;:::o;7636:215::-;976:10;7724:4;7773:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7773:34:0;;;;;;;;;;7724:4;;7741:80;;7764:7;;7773:47;;7810:10;;7773:47;:::i;21692:154::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;21786:6:::1;:27:::0;;-1:-1:-1;;;;;;21786:27:0::1;::::0;-1:-1:-1;;;;;21786:27:0;;::::1;;;::::0;;21824:4:::1;:14:::0;;-1:-1:-1;;;;;;21824:14:0::1;::::0;;;::::1;;::::0;;21692:154::o;10030:111::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10099:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;10099:34:0::1;10129:4;10099:34;::::0;;10030:111::o;8372:456::-;8462:7;8501;;8490;:18;;8482:62;;;;-1:-1:-1;;;8482:62:0;;14529:2:1;8482:62:0;;;14511:21:1;14568:2;14548:18;;;14541:30;14607:33;14587:18;;;14580:61;14658:18;;8482:62:0;14327:355:1;8482:62:0;8560:17;8555:266;;8594:28;8625:25;8636:7;8645:4;8625:10;:25::i;:::-;8672:9;;-1:-1:-1;8665:16:0;;-1:-1:-1;8665:16:0;8555:266;8714:28;8745:25;8756:7;8765:4;8745:10;:25::i;:::-;8792:17;;;;-1:-1:-1;8785:24:0;;-1:-1:-1;8785:24:0;9092:333;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9175:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9174:21;9166:61;;;::::0;-1:-1:-1;;;9166:61:0;;14889:2:1;9166:61:0::1;::::0;::::1;14871:21:1::0;14928:2;14908:18;;;14901:30;14967:29;14947:18;;;14940:57;15014:18;;9166:61:0::1;14687:351:1::0;9166:61:0::1;-1:-1:-1::0;;;;;9241:16:0;::::1;9260:1;9241:16:::0;;;:7:::1;:16;::::0;;;;;:20;9238:108:::1;;-1:-1:-1::0;;;;;9317:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9297:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9278:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9238:108:::1;-1:-1:-1::0;;;;;9356:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9356:27:0::1;9379:4;9356:27:::0;;::::1;::::0;;;9394:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9394:23:0::1;::::0;;::::1;::::0;;9092:333::o;10400:328::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;10533:5:::1;:16:::0;;;10560:14;:26;;;10597:14;:26;;;10634:10;:18;;;10663:15;:28;;;10707:13:::1;::::0;::::1;::::0;10533:9:::1;::::0;10707:13:::1;10400:328:::0;;;;;:::o;20772:127::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;20856:24:::1;:35:::0;;-1:-1:-1;;20856:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20772:127::o;22167:750::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;22304:3:::1;22283:10;:17;:24;;22275:85;;;::::0;-1:-1:-1;;;22275:85:0;;15245:2:1;22275:85:0::1;::::0;::::1;15227:21:1::0;15284:2;15264:18;;;15257:30;15323:34;15303:18;;;15296:62;-1:-1:-1;;;15374:18:1;;;15367:46;15430:19;;22275:85:0::1;15043:412:1::0;22275:85:0::1;22400:7;:14;22379:10;:17;:35;22371:59;;;::::0;-1:-1:-1;;;22371:59:0;;15662:2:1;22371:59:0::1;::::0;::::1;15644:21:1::0;15701:2;15681:18;;;15674:30;-1:-1:-1;;;15720:18:1;;;15713:42;15772:18;;22371:59:0::1;15460:336:1::0;22371:59:0::1;22458:10;22441:14;22479:431;22498:10;:17;22494:1;:21;22479:431;;;22541:11;:26;22553:10;22564:1;22553:13;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22541:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22541:26:0;;;;::::1;;:35;;::::0;;22537:362:::1;;22597:17;22617:10;22628:1;22617:13;;;;;;;;:::i;:::-;;;;;;;22597:33;;22649:15;22680:10;:8;:10::i;:::-;22667:7;22675:1;22667:10;;;;;;;;:::i;:::-;;;;;;;:23;;;;:::i;:::-;-1:-1:-1::0;;;;;22727:15:0;::::1;;::::0;;;:7:::1;:15;::::0;;;;;22649:41;;-1:-1:-1;22727:25:0::1;::::0;22649:41;;22727:25:::1;:::i;:::-;-1:-1:-1::0;;;;;22709:15:0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;;:43;;;;22792:18;;::::1;::::0;;;;:28:::1;::::0;22813:7;;22792:28:::1;:::i;:::-;-1:-1:-1::0;;;;;22771:18:0;;::::1;;::::0;;;:7:::1;:18;::::0;;;;:49;;;;22872:10;;22844:39;;::::1;::::0;-1:-1:-1;;;;;;;;;;;22844:39:0;22872:7;;22880:1;;22872:10;::::1;;;;;:::i;:::-;;;;;;;22844:39;;;;2079:25:1::0;;2067:2;2052:18;;1933:177;22844:39:0::1;;;;;;;;22578:321;;22537:362;22517:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22479:431;;6505:198:::0;-1:-1:-1;;;;;6595:20:0;;6571:7;6595:20;;;:11;:20;;;;;;;;6591:49;;;-1:-1:-1;;;;;;6624:16:0;;;;;:7;:16;;;;;;;6505:198::o;6591:49::-;-1:-1:-1;;;;;6678:16:0;;;;;;:7;:16;;;;;;6658:37;;:19;:37::i;1698:94::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;1763:21:::1;1781:1;1763:9;:21::i;:::-;1698:94::o:0;19596:229::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;19682:15:::1;::::0;-1:-1:-1;;;;;19682:28:0;;::::1;:15:::0;::::1;:28:::0;19674:59:::1;;;;-1:-1:-1::0;;;19674:59:0::1;;;;;;;:::i;:::-;19744:15;:27:::0;;-1:-1:-1;;;;;19744:27:0;;::::1;-1:-1:-1::0;;;;;;19744:27:0;;::::1;::::0;::::1;::::0;;:15:::1;19782:35:::0;:18:::1;:35;::::0;19596:229::o;21016:186::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;21116:15:::1;:26:::0;;-1:-1:-1;;21116:26:0::1;::::0;::::1;;;::::0;;21168::::1;:14:::0;-1:-1:-1;21168:26:0::1;:::i;:::-;21153:12;:41:::0;-1:-1:-1;;21016:186:0:o;20907:101::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;20978:11:::1;:22:::0;;-1:-1:-1;;20978:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20907:101::o;22989:193::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;23089:9:::1;23064:21;:34;;23056:71;;;::::0;-1:-1:-1;;;23056:71:0;;16003:2:1;23056:71:0::1;::::0;::::1;15985:21:1::0;16042:2;16022:18;;;16015:30;16081:26;16061:18;;;16054:54;16125:18;;23056:71:0::1;15801:348:1::0;23056:71:0::1;1521:7:::0;1548:6;;23138:36:::1;::::0;-1:-1:-1;;;;;1548:6:0;;;;23138:36;::::1;;;::::0;23164:9;;23138:36;1521:7;23138:36;23164:9;1548:6;23138:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;7859:377:::0;976:10;7952:4;7996:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7996:34:0;;;;;;;;;;8049:35;;;;8041:85;;;;-1:-1:-1;;;8041:85:0;;16356:2:1;8041:85:0;;;16338:21:1;16395:2;16375:18;;;16368:30;16434:34;16414:18;;;16407:62;-1:-1:-1;;;16485:18:1;;;16478:35;16530:19;;8041:85:0;16154:401:1;8041:85:0;8137:67;976:10;8160:7;8169:34;8188:15;8169:16;:34;:::i;8137:67::-;-1:-1:-1;8224:4:0;;7859:377;-1:-1:-1;;;7859:377:0:o;6711:167::-;6789:4;6806:42;976:10;6830:9;6841:6;6806:9;:42::i;21396:284::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;21512:2:::1;21493:8;:15;:21;;21485:79;;;::::0;-1:-1:-1;;;21485:79:0;;16762:2:1;21485:79:0::1;::::0;::::1;16744:21:1::0;16801:2;16781:18;;;16774:30;16840:34;16820:18;;;16813:62;-1:-1:-1;;;16891:18:1;;;16884:43;16944:19;;21485:79:0::1;16560:409:1::0;21485:79:0::1;21579:9;21575:98;21598:8;:15;21594:1;:19;21575:98;;;21656:5;21634:6;:19;21641:8;21650:1;21641:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21634:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21634:19:0;:27;;-1:-1:-1;;21634:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21615:3;::::1;::::0;::::1;:::i;:::-;;;;21575:98;;;;21396:284:::0;;:::o;19833:213::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;19915:11:::1;::::0;-1:-1:-1;;;;;19915:24:0;;::::1;:11:::0;::::1;:24:::0;19907:55:::1;;;;-1:-1:-1::0;;;19907:55:0::1;;;;;;;:::i;:::-;19973:11;:23:::0;;-1:-1:-1;;;;;19973:23:0;;::::1;-1:-1:-1::0;;;;;;19973:23:0;;::::1;::::0;::::1;::::0;;:11:::1;20007:31:::0;:18:::1;:31;::::0;19833:213::o;21964:191::-;22032:30;1548:6;;22032:30;;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;-1:-1:-1;;22105:24:0::1;::::0;22131:15:::1;::::0;22105:24:::1;::::0;;::::1;::::0;22131:15:::1;21964:191:::0;;:::o;20634:130::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;20743:13:::1;3503:1;20743:2;:13;:::i;:::-;20734:22;::::0;:6;:22:::1;:::i;:::-;20713:18;:43:::0;-1:-1:-1;20634:130:0:o;21210:174::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21296:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;:24;::::1;;:15;::::0;;::::1;:24;;::::0;21288:54:::1;;;::::0;-1:-1:-1;;;21288:54:0;;17176:2:1;21288:54:0::1;::::0;::::1;17158:21:1::0;17215:2;17195:18;;;17188:30;-1:-1:-1;;;17234:18:1;;;17227:47;17291:18;;21288:54:0::1;16974:341:1::0;21288:54:0::1;-1:-1:-1::0;;;;;21353:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;21353:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21210:174::o;10149:110::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10216:27:0::1;10246:5;10216:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;10216:35:0::1;::::0;;10149:110::o;1800:192::-;1521:7;1548:6;-1:-1:-1;;;;;1548:6:0;976:10;1610:23;1602:68;;;;-1:-1:-1;;;1602:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1889:22:0;::::1;1881:73;;;::::0;-1:-1:-1;;;1881:73:0;;17522:2:1;1881:73:0::1;::::0;::::1;17504:21:1::0;17561:2;17541:18;;;17534:30;17600:34;17580:18;;;17573:62;-1:-1:-1;;;17651:18:1;;;17644:36;17697:19;;1881:73:0::1;17320:402:1::0;1881:73:0::1;1965:19;1975:8;1965:9;:19::i;:::-;1800:192:::0;:::o;14441:335::-;-1:-1:-1;;;;;14534:19:0;;14526:68;;;;-1:-1:-1;;;14526:68:0;;17929:2:1;14526:68:0;;;17911:21:1;17968:2;17948:18;;;17941:30;18007:34;17987:18;;;17980:62;-1:-1:-1;;;18058:18:1;;;18051:34;18102:19;;14526:68:0;17727:400:1;14526:68:0;-1:-1:-1;;;;;14613:21:0;;14605:68;;;;-1:-1:-1;;;14605:68:0;;18334:2:1;14605:68:0;;;18316:21:1;18373:2;18353:18;;;18346:30;18412:34;18392:18;;;18385:62;-1:-1:-1;;;18463:18:1;;;18456:32;18505:19;;14605:68:0;18132:398:1;14605:68:0;-1:-1:-1;;;;;14684:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14736:32;;2079:25:1;;;14736:32:0;;2052:18:1;14736:32:0;;;;;;;14441:335;;;:::o;14786:1639::-;-1:-1:-1;;;;;14874:18:0;;14866:68;;;;-1:-1:-1;;;14866:68:0;;18737:2:1;14866:68:0;;;18719:21:1;18776:2;18756:18;;;18749:30;18815:34;18795:18;;;18788:62;-1:-1:-1;;;18866:18:1;;;18859:35;18911:19;;14866:68:0;18535:401:1;14866:68:0;-1:-1:-1;;;;;14953:16:0;;14945:64;;;;-1:-1:-1;;;14945:64:0;;19143:2:1;14945:64:0;;;19125:21:1;19182:2;19162:18;;;19155:30;19221:34;19201:18;;;19194:62;-1:-1:-1;;;19272:18:1;;;19265:33;19315:19;;14945:64:0;18941:399:1;14945:64:0;15037:1;15028:6;:10;15020:64;;;;-1:-1:-1;;;15020:64:0;;19547:2:1;15020:64:0;;;19529:21:1;19586:2;19566:18;;;19559:30;19625:34;19605:18;;;19598:62;-1:-1:-1;;;19676:18:1;;;19669:39;19725:19;;15020:64:0;19345:405:1;15020:64:0;-1:-1:-1;;;;;15204:12:0;;;;;;:6;:12;;;;;;;;15203:13;:28;;;;-1:-1:-1;;;;;;15221:10:0;;;;;;:6;:10;;;;;;;;15220:11;15203:28;15195:54;;;;-1:-1:-1;;;15195:54:0;;19957:2:1;15195:54:0;;;19939:21:1;19996:2;19976:18;;;19969:30;-1:-1:-1;;;20015:18:1;;;20008:43;20068:18;;15195:54:0;19755:337:1;15195:54:0;-1:-1:-1;;;;;15267:24:0;;;;;;:18;:24;;;;;;;;15266:25;:52;;;;-1:-1:-1;;;;;;15296:22:0;;;;;;:18;:22;;;;;;;;15295:23;15266:52;:65;;;;-1:-1:-1;15323:8:0;;;;;;;15322:9;15266:65;15265:95;;;-1:-1:-1;15336:24:0;;;;15265:95;15262:800;;;15394:11;;15384:6;:21;;15376:65;;;;-1:-1:-1;;;15376:65:0;;20299:2:1;15376:65:0;;;20281:21:1;20338:2;20318:18;;;20311:30;20377:33;20357:18;;;20350:61;20428:18;;15376:65:0;20097:355:1;15376:65:0;15516:4;;-1:-1:-1;;;;;15508:12:0;;;15516:4;;15508:12;;;;:31;;-1:-1:-1;15524:15:0;;;;15508:31;15505:261;;;-1:-1:-1;;;;;15598:16:0;;15559:18;15598:16;;;:10;:16;;;;;;15580:34;;:15;:34;:::i;:::-;15559:55;;15654:12;;15641:10;:25;15633:64;;;;-1:-1:-1;;;15633:64:0;;20659:2:1;15633:64:0;;;20641:21:1;20698:2;20678:18;;;20671:30;20737:28;20717:18;;;20710:56;20783:18;;15633:64:0;20457:350:1;15633:64:0;-1:-1:-1;;;;;;15716:16:0;;;;;;:10;:16;;;;;15735:15;15716:34;;15505:261;15803:4;;-1:-1:-1;;;;;15797:10:0;;;15803:4;;15797:10;;;;:29;;-1:-1:-1;15811:15:0;;;;15797:29;15794:257;;;-1:-1:-1;;;;;15886:14:0;;15846:19;15886:14;;;:10;:14;;;;;;15868:32;;:15;:32;:::i;:::-;15846:54;;15941:12;;15927:11;:26;15919:65;;;;-1:-1:-1;;;15919:65:0;;20659:2:1;15919:65:0;;;20641:21:1;20698:2;20678:18;;;20671:30;20737:28;20717:18;;;20710:56;20783:18;;15919:65:0;20457:350:1;15919:65:0;-1:-1:-1;;;;;;16003:14:0;;;;;;:10;:14;;;;;16020:15;16003:32;;15794:257;16074:12;16117:18;;16089:24;16107:4;16089:9;:24::i;:::-;16150:8;;-1:-1:-1;;16089:46:0;;-1:-1:-1;16150:8:0;;;;;16149:9;:24;;;;-1:-1:-1;16162:11:0;;;;16149:24;:35;;;;;16177:7;16149:35;:51;;;;-1:-1:-1;16196:4:0;;-1:-1:-1;;;;;16188:12:0;;;16196:4;;16188:12;;16149:51;:80;;;;-1:-1:-1;;;;;;16205:24:0;;;;;;:18;:24;;;;;;;;16204:25;16149:80;:107;;;;-1:-1:-1;;;;;;16234:22:0;;;;;;:18;:22;;;;;;;;16233:23;16149:107;16146:172;;;16272:34;16287:18;;16272:14;:34::i;:::-;-1:-1:-1;;;;;16365:24:0;;;;;;:18;:24;;;;;;16330:87;;16345:4;;16351:2;;16355:6;;16365:24;;;:50;;-1:-1:-1;;;;;;16393:22:0;;;;;;:18;:22;;;;;;;;16365:50;16363:53;16330:14;:87::i;13615:158::-;13656:7;13677:15;13694;13713:19;:17;:19::i;:::-;13676:56;;-1:-1:-1;13676:56:0;-1:-1:-1;13750:15:0;13676:56;;13750:15;:::i;:::-;13743:22;;;;13615:158;:::o;11847:406::-;11920:36;;:::i;:::-;11981:29;11993:7;12002;11981:11;:29::i;:::-;11969:41;;12166:52;12178:9;12189:7;12198;12207:10;:8;:10::i;:::-;12166:11;:52::i;:::-;12142:20;;;12021:197;12125:15;;;12021:197;12104:19;;;12021:197;12084:19;;;12021:197;12068:14;;;12021:197;12041:25;;;12021:197;;;11847:406;;;;:::o;2000:173::-;2056:16;2075:6;;-1:-1:-1;;;;;2092:17:0;;;-1:-1:-1;;;;;;2092:17:0;;;;;;2125:40;;2075:6;;;;;;;2125:40;;2056:16;2125:40;2045:128;2000:173;:::o;17930:581::-;5357:8;:15;;-1:-1:-1;;5357:15:0;;;;;;18085:10:::1;18094:1;18085:6:::0;:10:::1;:::i;:::-;18050:45:::0;-1:-1:-1;18106:14:0::1;18123:33;18050:45:::0;18123:6;:33:::1;:::i;:::-;18106:50:::0;-1:-1:-1;18194:21:0::1;18226:24;18106:50:::0;18226:16:::1;:24::i;:::-;18261:29;18293:38;18317:14:::0;18293:21:::1;:38;:::i;:::-;18261:70:::0;-1:-1:-1;18347:25:0;;18344:158:::1;;18429:61;18442:24;18468:21;18429:12;:61::i;:::-;-1:-1:-1::0;;5395:8:0;:16;;-1:-1:-1;;5395:16:0;;;-1:-1:-1;;;17930:581:0:o;16506:1416::-;16617:28;16648;16659:7;16668;16648:10;:28::i;:::-;-1:-1:-1;;;;;16693:19:0;;;;;;:11;:19;;;;;;16617:59;;-1:-1:-1;16693:19:0;;16689:115;;;-1:-1:-1;;;;;16769:15:0;;;;;;:7;:15;;;;;;:23;;16785:7;;16769:23;:::i;:::-;-1:-1:-1;;;;;16751:15:0;;;;;;:7;:15;;;;;:41;16689:115;-1:-1:-1;;;;;16818:22:0;;;;;;:11;:22;;;;;;;;16814:130;;;16915:17;;;;-1:-1:-1;;;;;16896:18:0;;;;;;:7;:18;;;;;;:36;;16915:17;16896:36;:::i;:::-;-1:-1:-1;;;;;16875:18:0;;;;;;:7;:18;;;;;:57;16814:130;16990:9;;-1:-1:-1;;;;;16974:15:0;;16990:9;16974:15;;;:7;:15;;;;;;:25;;16990:9;16974:25;:::i;:::-;-1:-1:-1;;;;;16956:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;17050:17;;;17031:18;;;;;;;;;;:36;;17050:17;17031:36;:::i;:::-;-1:-1:-1;;;;;17010:18:0;;;;;;:7;:18;;;;;;;:57;;;;17091:6;;;:10;;;:24;;;17114:1;17105;:6;;;:10;17091:24;17088:56;;;17117:27;17129:1;:6;;;17137:1;:6;;;17117:11;:27::i;:::-;17175:1;17160;:12;;;:16;:36;;;;17195:1;17180;:12;;;:16;17160:36;17157:174;;;17213:41;17228:1;:12;;;17241:1;:12;;;17213:14;:41::i;:::-;17299:4;-1:-1:-1;;;;;17274:45:0;17283:6;-1:-1:-1;;;;;17274:45:0;-1:-1:-1;;;;;;;;;;;17306:1:0;:12;;;17274:45;;;;2079:25:1;;2067:2;2052:18;;1933:177;17274:45:0;;;;;;;;17157:174;17358:1;17344;:11;;;:15;:34;;;;17377:1;17363;:11;;;:15;17344:34;17341:170;;;17394:39;17408:1;:11;;;17421:1;:11;;;17394:13;:39::i;:::-;17470:15;;17487:11;;;;17453:46;;2079:25:1;;;-1:-1:-1;;;;;17470:15:0;;;;17453:46;;;-1:-1:-1;;;;;;;;;;;17453:46:0;2067:2:1;2052:18;17453:46:0;;;;;;;17341:170;17538:1;17524;:11;;;:15;:34;;;;17557:1;17543;:11;;;:15;17524:34;17521:170;;;17574:39;17588:1;:11;;;17601:1;:11;;;17574:13;:39::i;:::-;17650:15;;17667:11;;;;17633:46;;2079:25:1;;;-1:-1:-1;;;;;17650:15:0;;;;17633:46;;;-1:-1:-1;;;;;;;;;;;17633:46:0;2067:2:1;2052:18;17633:46:0;;;;;;;17521:170;17714:1;17704;:7;;;:11;:26;;;;17729:1;17719;:7;;;:11;17704:26;17701:142;;;17746:27;17756:1;:7;;;17765:1;:7;;;17746:9;:27::i;:::-;17810:11;;17823:7;;;;17793:38;;2079:25:1;;;-1:-1:-1;;;;;17810:11:0;;;;17793:38;;;-1:-1:-1;;;;;;;;;;;17793:38:0;2067:2:1;2052:18;17793:38:0;;;;;;;17701:142;17885:9;-1:-1:-1;;;;;17868:46:0;17877:6;-1:-1:-1;;;;;17868:46:0;-1:-1:-1;;;;;;;;;;;17896:1:0;:17;;;17868:46;;;;2079:25:1;;2067:2;2052:18;;1933:177;17868:46:0;;;;;;;;16604:1318;16506:1416;;;;:::o;13781:652::-;13831:7;13840;13888:4;13868:9;:16;;;;:24;;13860:101;;;;-1:-1:-1;;;13860:101:0;;;;;;;:::i;:::-;13990:7;;14026;;13972:15;14044:279;14068:9;:16;14064:20;;14044:279;;;14134:7;14110;:21;14118:9;14128:1;14118:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14118:12:0;14110:21;;;;;;;;;;;;;:31;;:66;;;14169:7;14145;:21;14153:9;14163:1;14153:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14153:12:0;14145:21;;;;;;;;;;;;;:31;14110:66;14106:97;;;14186:7;;14195;;14178:25;;;;;;;13781:652;;:::o;14106:97::-;14236:7;:21;14244:9;14254:1;14244:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14244:12:0;14236:21;;;;;;;;;;;;;14228:29;;:7;:29;:::i;:::-;14218:39;;14290:7;:21;14298:9;14308:1;14298:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14298:12:0;14290:21;;;;;;;;;;;;;14282:29;;:7;:29;:::i;:::-;14272:39;-1:-1:-1;14086:3:0;;;;:::i;:::-;;;;14044:279;;;;14355:7;;14347;;:15;;;;:::i;:::-;14337:7;:25;14333:56;;;14372:7;;14381;;14364:25;;;;;;13781:652;;:::o;14333:56::-;14408:7;;14417;;-1:-1:-1;13781:652:0;-1:-1:-1;13781:652:0:o;12261:573::-;12335:28;;:::i;:::-;12382:7;12378:86;;12404:17;;;:27;;;12444:8;;12378:86;12501:5;:9;12511:4;;12493:17;;:7;:17;:::i;:::-;:22;;;;:::i;:::-;12484:6;;;:31;12548:14;;12563:4;;12540:22;;:7;:22;:::i;:::-;:27;;;;:::i;:::-;12526:11;;;:41;12600:14;;12615:4;;12592:22;;:7;:22;:::i;:::-;:27;;;;:::i;:::-;12578:11;;;:41;12648:10;;12659:4;;12640:18;;:7;:18;:::i;:::-;:23;;;;:::i;:::-;12630:7;;;:33;12697:15;;12713:4;;12689:23;;:7;:23;:::i;:::-;:28;;;;:::i;:::-;12674:12;;;:43;;;12800:7;;;;12788:11;;;;12763;;;;12756:6;;;;12800:7;;12788:11;;12748:14;;:7;:14;:::i;:::-;:26;;;;:::i;:::-;:39;;;;:::i;:::-;:51;;;;:::i;:::-;:59;;;;:::i;:::-;12728:17;;;:79;12261:573;;;;:::o;12842:765::-;12967:15;;;;;;;13113:19;13121:11;13113:7;:19;:::i;:::-;13103:29;;13149:7;13145:73;;-1:-1:-1;13178:7:0;;-1:-1:-1;13196:1:0;;-1:-1:-1;13196:1:0;;-1:-1:-1;13196:1:0;;-1:-1:-1;13196:1:0;;-1:-1:-1;13196:1:0;13171:35;;13145:73;13244:11;13237:1;:6;;;:18;;;;:::i;:::-;13230:25;;13290:11;13278:1;:11;;;:23;;;;:::i;:::-;13266:35;;13338:11;13325:1;:12;;;:24;;;;:::i;:::-;13312:37;;13384:11;13372:1;:11;;;:23;;;;:::i;:::-;13360:35;;13422:11;13414:1;:7;;;:19;;;;:::i;:::-;13406:27;-1:-1:-1;13406:27:0;13497:9;13486:10;13476:9;13463:12;13471:4;13463:7;:12;:::i;:::-;:22;;;;:::i;:::-;:33;;;;:::i;:::-;:43;;;;:::i;:::-;:49;;;;:::i;:::-;13444:68;;12842:765;;;;;;;;;;;;;:::o;19026:562::-;19176:16;;;19190:1;19176:16;;;;;;;;19152:21;;19176:16;;;;;;;;;;-1:-1:-1;19176:16:0;19152:40;;19221:4;19203;19208:1;19203:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19203:23:0;;;-1:-1:-1;;;;;19203:23:0;;;;;19247:6;;;;;;;;;-1:-1:-1;;;;;19247:6:0;-1:-1:-1;;;;;19247:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19237:4;19242:1;19237:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19237:23:0;;;:7;;;;;;;;;:23;19305:6;;19273:53;;19290:4;;19305:6;;;;19314:11;19273:8;:53::i;:::-;19365:6;;:215;;-1:-1:-1;;;19365:215:0;;:6;;;;-1:-1:-1;;;;;19365:6:0;;:57;;:215;;19437:11;;19463:1;;19507:4;;19534;;19554:15;;19365:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19081:507;19026:562;:::o;18519:499::-;18699:6;;18667:53;;18684:4;;18699:6;;;-1:-1:-1;;;;;18699:6:0;18708:11;18667:8;:53::i;:::-;18763:6;;18958:11;;18763:247;;-1:-1:-1;;;18763:247:0;;18826:4;18763:247;;;22394:34:1;22444:18;;;22437:34;;;18872:1:0;22487:18:1;;;22480:34;;;22530:18;;;22523:34;-1:-1:-1;;;;;18958:11:0;;;22573:19:1;;;22566:44;18984:15:0;22626:19:1;;;22619:35;18763:6:0;;;;;;:22;;18793:9;;22328:19:1;;18763:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18519:499;;:::o;10738:123::-;10816:4;10806:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10831:11:0;:22;;10849:4;;10831:11;:15;;:22;;10849:4;;10831:22;:::i;:::-;;;;-1:-1:-1;;;;10738:123:0:o;10869:247::-;10976:10;10952:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;11020:4:0;11000:26;;;;:11;:26;;;;;;;;10997:65;;;11044:4;11028:22;;;;:7;:22;;;;;:34;;11052:10;;11028:22;:34;;11052:10;;11028:34;:::i;:::-;;;;-1:-1:-1;;10997:65:0;11089:4;11073:22;;;;:7;:22;;;;;:35;;11098:10;;11073:22;:35;;11098:10;;11073:35;:::i;11124:246::-;11227:9;11204:11;:20;;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;11262:15:0;;-1:-1:-1;;;;;11262:15:0;11250:28;;;;:11;:28;;;;;;;;11247:68;;;11288:15;;-1:-1:-1;;;;;11288:15:0;11280:24;;;;:7;:24;;;;;:35;;11306:9;;11280:24;:35;;11306:9;;11280:35;:::i;:::-;;;;-1:-1:-1;;11247:68:0;11334:15;;-1:-1:-1;;;;;11334:15:0;11326:24;;;;:7;:24;;;;;:36;;11353:9;;11326:24;:36;;11353:9;;11326:36;:::i;11382:245::-;11484:9;11461:11;:20;;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;11519:15:0;;-1:-1:-1;;;;;11519:15:0;11507:28;;;;:11;:28;;;;;;;;11504:68;;;11545:15;;-1:-1:-1;;;;;11545:15:0;11537:24;;;;:7;:24;;;;;:35;;11563:9;;11537:24;:35;;11563:9;;11537:35;:::i;:::-;;;;-1:-1:-1;;11504:68:0;11591:15;;-1:-1:-1;;;;;11591:15:0;11583:24;;;;:7;:24;;;;;:36;;11610:9;;11583:24;:36;;11610:9;;11583:36;:::i;11635:204::-;11721:5;11702:11;:16;;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;11752:11:0;;-1:-1:-1;;;;;11752:11:0;11740:24;;;;:11;:24;;;;;;;;11737:55;;;11773:11;;-1:-1:-1;;;;;11773:11:0;11765:20;;;;:7;:20;;;;;:27;;11787:5;;11765:20;:27;;11787:5;;11765:27;:::i;:::-;;;;-1:-1:-1;;11737:55:0;11811:11;;-1:-1:-1;;;;;11811:11:0;11803:20;;;;:7;:20;;;;;:28;;11826:5;;11803:20;:28;;11826:5;;11803:28;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;824:131::-;-1:-1:-1;;;;;899:31:1;;889:42;;879:70;;945:1;942;935:12;960:315;1028:6;1036;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;960:315:1:o;1472:456::-;1549:6;1557;1565;1618:2;1606:9;1597:7;1593:23;1589:32;1586:52;;;1634:1;1631;1624:12;1586:52;1673:9;1660:23;1692:31;1717:5;1692:31;:::i;:::-;1742:5;-1:-1:-1;1799:2:1;1784:18;;1771:32;1812:33;1771:32;1812:33;:::i;:::-;1472:456;;1864:7;;-1:-1:-1;;;1918:2:1;1903:18;;;;1890:32;;1472:456::o;2115:247::-;2174:6;2227:2;2215:9;2206:7;2202:23;2198:32;2195:52;;;2243:1;2240;2233:12;2195:52;2282:9;2269:23;2301:31;2326:5;2301:31;:::i;2367:180::-;2426:6;2479:2;2467:9;2458:7;2454:23;2450:32;2447:52;;;2495:1;2492;2485:12;2447:52;-1:-1:-1;2518:23:1;;2367:180;-1:-1:-1;2367:180:1:o;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:118::-;3220:5;3213:13;3206:21;3199:5;3196:32;3186:60;;3242:1;3239;3232:12;3257:309;3322:6;3330;3383:2;3371:9;3362:7;3358:23;3354:32;3351:52;;;3399:1;3396;3389:12;3351:52;3435:9;3422:23;3412:33;;3495:2;3484:9;3480:18;3467:32;3508:28;3530:5;3508:28;:::i;3571:454::-;3666:6;3674;3682;3690;3698;3751:3;3739:9;3730:7;3726:23;3722:33;3719:53;;;3768:1;3765;3758:12;3719:53;-1:-1:-1;;3791:23:1;;;3861:2;3846:18;;3833:32;;-1:-1:-1;3912:2:1;3897:18;;3884:32;;3963:2;3948:18;;3935:32;;-1:-1:-1;4014:3:1;3999:19;3986:33;;-1:-1:-1;3571:454:1;-1:-1:-1;3571:454:1:o;4030:241::-;4086:6;4139:2;4127:9;4118:7;4114:23;4110:32;4107:52;;;4155:1;4152;4145:12;4107:52;4194:9;4181:23;4213:28;4235:5;4213:28;:::i;4276:127::-;4337:10;4332:3;4328:20;4325:1;4318:31;4368:4;4365:1;4358:15;4392:4;4389:1;4382:15;4408:275;4479:2;4473:9;4544:2;4525:13;;-1:-1:-1;;4521:27:1;4509:40;;4579:18;4564:34;;4600:22;;;4561:62;4558:88;;;4626:18;;:::i;:::-;4662:2;4655:22;4408:275;;-1:-1:-1;4408:275:1:o;4688:183::-;4748:4;4781:18;4773:6;4770:30;4767:56;;;4803:18;;:::i;:::-;-1:-1:-1;4848:1:1;4844:14;4860:4;4840:25;;4688:183::o;4876:737::-;4930:5;4983:3;4976:4;4968:6;4964:17;4960:27;4950:55;;5001:1;4998;4991:12;4950:55;5037:6;5024:20;5063:4;5087:60;5103:43;5143:2;5103:43;:::i;:::-;5087:60;:::i;:::-;5181:15;;;5267:1;5263:10;;;;5251:23;;5247:32;;;5212:12;;;;5291:15;;;5288:35;;;5319:1;5316;5309:12;5288:35;5355:2;5347:6;5343:15;5367:217;5383:6;5378:3;5375:15;5367:217;;;5463:3;5450:17;5480:31;5505:5;5480:31;:::i;:::-;5524:18;;5562:12;;;;5400;;5367:217;;;-1:-1:-1;5602:5:1;4876:737;-1:-1:-1;;;;;;4876:737:1:o;5618:1138::-;5736:6;5744;5797:2;5785:9;5776:7;5772:23;5768:32;5765:52;;;5813:1;5810;5803:12;5765:52;5853:9;5840:23;5882:18;5923:2;5915:6;5912:14;5909:34;;;5939:1;5936;5929:12;5909:34;5962:61;6015:7;6006:6;5995:9;5991:22;5962:61;:::i;:::-;5952:71;;6042:2;6032:12;;6097:2;6086:9;6082:18;6069:32;6126:2;6116:8;6113:16;6110:36;;;6142:1;6139;6132:12;6110:36;6165:24;;;-1:-1:-1;6220:4:1;6212:13;;6208:27;-1:-1:-1;6198:55:1;;6249:1;6246;6239:12;6198:55;6285:2;6272:16;6308:60;6324:43;6364:2;6324:43;:::i;6308:60::-;6402:15;;;6484:1;6480:10;;;;6472:19;;6468:28;;;6433:12;;;;6508:19;;;6505:39;;;6540:1;6537;6530:12;6505:39;6564:11;;;;6584:142;6600:6;6595:3;6592:15;6584:142;;;6666:17;;6654:30;;6617:12;;;;6704;;;;6584:142;;;6745:5;6735:15;;;;;;;5618:1138;;;;;:::o;7229:309::-;7294:6;7302;7355:2;7343:9;7334:7;7330:23;7326:32;7323:52;;;7371:1;7368;7361:12;7323:52;7410:9;7397:23;7429:28;7451:5;7429:28;:::i;7543:477::-;7633:6;7641;7694:2;7682:9;7673:7;7669:23;7665:32;7662:52;;;7710:1;7707;7700:12;7662:52;7750:9;7737:23;7783:18;7775:6;7772:30;7769:50;;;7815:1;7812;7805:12;7769:50;7838:61;7891:7;7882:6;7871:9;7867:22;7838:61;:::i;:::-;7828:71;;;7949:2;7938:9;7934:18;7921:32;7962:28;7984:5;7962:28;:::i;8298:382::-;8363:6;8371;8424:2;8412:9;8403:7;8399:23;8395:32;8392:52;;;8440:1;8437;8430:12;8392:52;8479:9;8466:23;8498:31;8523:5;8498:31;:::i;:::-;8548:5;-1:-1:-1;8605:2:1;8590:18;;8577:32;8618:30;8577:32;8618:30;:::i;8908:356::-;9110:2;9092:21;;;9129:18;;;9122:30;9188:34;9183:2;9168:18;;9161:62;9255:2;9240:18;;8908:356::o;9548:245::-;9615:6;9668:2;9656:9;9647:7;9643:23;9639:32;9636:52;;;9684:1;9681;9674:12;9636:52;9716:9;9710:16;9735:28;9757:5;9735:28;:::i;10207:127::-;10268:10;10263:3;10259:20;10256:1;10249:31;10299:4;10296:1;10289:15;10323:4;10320:1;10313:15;10339:125;10379:4;10407:1;10404;10401:8;10398:34;;;10412:18;;:::i;:::-;-1:-1:-1;10449:9:1;;10339:125::o;10469:342::-;10671:2;10653:21;;;10710:2;10690:18;;;10683:30;-1:-1:-1;;;10744:2:1;10729:18;;10722:48;10802:2;10787:18;;10469:342::o;11227:217::-;11267:1;11293;11283:132;;11337:10;11332:3;11328:20;11325:1;11318:31;11372:4;11369:1;11362:15;11400:4;11397:1;11390:15;11283:132;-1:-1:-1;11429:9:1;;11227:217::o;11449:422::-;11538:1;11581:5;11538:1;11595:270;11616:7;11606:8;11603:21;11595:270;;;11675:4;11671:1;11667:6;11663:17;11657:4;11654:27;11651:53;;;11684:18;;:::i;:::-;11734:7;11724:8;11720:22;11717:55;;;11754:16;;;;11717:55;11833:22;;;;11793:15;;;;11595:270;;;11599:3;11449:422;;;;;:::o;11876:806::-;11925:5;11955:8;11945:80;;-1:-1:-1;11996:1:1;12010:5;;11945:80;12044:4;12034:76;;-1:-1:-1;12081:1:1;12095:5;;12034:76;12126:4;12144:1;12139:59;;;;12212:1;12207:130;;;;12119:218;;12139:59;12169:1;12160:10;;12183:5;;;12207:130;12244:3;12234:8;12231:17;12228:43;;;12251:18;;:::i;:::-;-1:-1:-1;;12307:1:1;12293:16;;12322:5;;12119:218;;12421:2;12411:8;12408:16;12402:3;12396:4;12393:13;12389:36;12383:2;12373:8;12370:16;12365:2;12359:4;12356:12;12352:35;12349:77;12346:159;;;-1:-1:-1;12458:19:1;;;12490:5;;12346:159;12537:34;12562:8;12556:4;12537:34;:::i;:::-;12607:6;12603:1;12599:6;12595:19;12586:7;12583:32;12580:58;;;12618:18;;:::i;:::-;12656:20;;11876:806;-1:-1:-1;;;11876:806:1:o;12687:140::-;12745:5;12774:47;12815:4;12805:8;12801:19;12795:4;12774:47;:::i;12832:168::-;12872:7;12938:1;12934;12930:6;12926:14;12923:1;12920:21;12915:1;12908:9;12901:17;12897:45;12894:71;;;12945:18;;:::i;:::-;-1:-1:-1;12985:9:1;;12832:168::o;13357:428::-;13559:2;13541:21;;;13598:2;13578:18;;;13571:30;;;13637:34;13617:18;;;13610:62;13708:34;13703:2;13688:18;;13681:62;13775:3;13760:19;;13357:428::o;13790:127::-;13851:10;13846:3;13842:20;13839:1;13832:31;13882:4;13879:1;13872:15;13906:4;13903:1;13896:15;13922:127;13983:10;13978:3;13974:20;13971:1;13964:31;14014:4;14011:1;14004:15;14038:4;14035:1;14028:15;14054:135;14093:3;14114:17;;;14111:43;;14134:18;;:::i;:::-;-1:-1:-1;14181:1:1;14170:13;;14054:135::o;14194:128::-;14234:3;14265:1;14261:6;14258:1;14255:13;14252:39;;;14271:18;;:::i;:::-;-1:-1:-1;14307:9:1;;14194:128::o;20812:251::-;20882:6;20935:2;20923:9;20914:7;20910:23;20906:32;20903:52;;;20951:1;20948;20941:12;20903:52;20983:9;20977:16;21002:31;21027:5;21002:31;:::i;21068:980::-;21330:4;21378:3;21367:9;21363:19;21409:6;21398:9;21391:25;21435:2;21473:6;21468:2;21457:9;21453:18;21446:34;21516:3;21511:2;21500:9;21496:18;21489:31;21540:6;21575;21569:13;21606:6;21598;21591:22;21644:3;21633:9;21629:19;21622:26;;21683:2;21675:6;21671:15;21657:29;;21704:1;21714:195;21728:6;21725:1;21722:13;21714:195;;;21793:13;;-1:-1:-1;;;;;21789:39:1;21777:52;;21884:15;;;;21849:12;;;;21825:1;21743:9;21714:195;;;-1:-1:-1;;;;;;;21965:32:1;;;;21960:2;21945:18;;21938:60;-1:-1:-1;;;22029:3:1;22014:19;22007:35;21926:3;21068:980;-1:-1:-1;;;21068:980:1:o;22665:306::-;22753:6;22761;22769;22822:2;22810:9;22801:7;22797:23;22793:32;22790:52;;;22838:1;22835;22828:12;22790:52;22867:9;22861:16;22851:26;;22917:2;22906:9;22902:18;22896:25;22886:35;;22961:2;22950:9;22946:18;22940:25;22930:35;;22665:306;;;;;:::o

Swarm Source

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