ETH Price: $3,093.46 (-6.08%)
 

Overview

Max Total Supply

1,000,000,000 REVO

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,800,000 REVO

Value
$0.00
0xaf78fc12335e4c91e3032c7cbc5a662196ba469a
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:
Revolver

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-17
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

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

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

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

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

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

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

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

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

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

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 Revolver is Context, IERC20, Ownable {
    using Address for address payable;

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

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

    IRouter public router;
    address public pair;

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

    uint256 private _tTotal = 1_000_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    
    uint256 public swapTokensAtAmount = 500_000 * 10**_decimals;
    uint256 public maxTxAmount = 10_000_000 * 10**_decimals;
    uint256 public maxWalletBalance= 20_000_000 * 10**_decimals;
    
    address public marketingWallet = 0xd1Dd2E3046BC3Ad98256Db21dc10f98754a46A0c ;
    address public lpRecipient = 0xd1Dd2E3046BC3Ad98256Db21dc10f98754a46A0c;

    string private constant _name = "Revolver";
    string private constant _symbol = "REVO";

    struct Taxes {
      uint256 rfi;
      uint256 marketing;
      uint256 liquidity;
    }
    Taxes public taxes = Taxes(0,10,2);

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rMarketing;
      uint256 rLiquidity;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tMarketing;
      uint256 tLiquidity;
    }

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

    constructor() {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        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[marketingWallet]=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, false);
            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");
        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 _marketing, uint256 _liquidity) public onlyOwner {
        taxes = Taxes(_rfi, _marketing, _liquidity);
    }

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

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

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

    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing +=tMarketing;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tMarketing;
        }
        _rOwned[address(this)] +=rMarketing;
    }
    
    function _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.rMarketing, 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/100;
        s.tMarketing = tAmount*taxes.marketing/100;
        s.tLiquidity = tAmount*taxes.liquidity/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tLiquidity;
        return s;
    }

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

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

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

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

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

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


    function _transfer(address from, address to, uint256 amount) private returns(bool){
        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 blacklisted");

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            require(amount <= maxTxAmount ,"Amount is exceeding maxTxAmount");
            if(to != pair) require(balanceOf(to) + amount <= maxWalletBalance, "Recipient is eceeding maxWalletBalance");
        }

        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]));
        return true;
    }


    //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);
        if(s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing);
        
        emit Transfer(sender, recipient, s.tTransferAmount);
        if(s.tLiquidity + s.tMarketing > 0) emit Transfer(sender, address(this), s.tLiquidity + s.tMarketing);
        
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
       // Split the contract balance into halves
        uint256 denominator = (taxes.liquidity + taxes.marketing ) * 2;
        uint256 tokensToAddLiquidityWith = tokens * taxes.liquidity / denominator;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForBNB(toSwap);

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

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

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

    }

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

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

    function swapTokensForBNB(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 startTrading() external onlyOwner{
        require(!tradingActive, "Trading already active");
        tradingActive = true;
        swapEnabled = true;
    }

    function updateMaxWalletBalance(uint256 amount) external onlyOwner{
        maxWalletBalance = amount * 10**_decimals;
    }

    function updateMarketingWallet(address _marketingWallet) external onlyOwner{
        marketingWallet = _marketingWallet;
    }

    function updateLpRecipient(address newAddress) external onlyOwner{
        lpRecipient = newAddress;
    }

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

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

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        
        router = IRouter(newRouter);
        pair = newPair;
    }

    function setIsBot(address user, bool state) external onlyOwner{
        isBot[user] = state;
    }

    //Use this in case BNB are sent to the contract by mistake
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake)
    function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"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":"","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":"marketingWallet","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":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateLpRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletBalance","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200093f565b6200002290633b9aca0062000950565b600a819055620000359060001962000988565b62000043906000196200099f565b600b55620000546009600a6200093f565b62000063906207a12062000950565b600c55620000746009600a6200093f565b62000083906298968062000950565b600d55620000946009600a6200093f565b620000a4906301312d0062000950565b600e55600f805473d1dd2e3046bc3ad98256db21dc10f98754a46a0c6001600160a01b03199182168117909255601080549091169091179055604080516060810182526000808252600a602083018190526002929093018290526011556012919091556013553480156200011757600080fd5b506200012333620003f1565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a39190620009b9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002179190620009b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b9190620009b9565b600880546001600160a01b038086166301000000026301000000600160b81b031990921691909117909155600980549183166001600160a01b031990921682179055909150620002db9062000441565b600b5460016000620002f56000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600460006200032f620005cf60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155600f54909116835291208054909216179055620003996000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003e191815260200190565b60405180910390a3505062000a2d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156200050c5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000498565b6001600160a01b0381166000908152600160205260409020541562000569576001600160a01b0381166000908152600160205260409020546200054f90620005de565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b54821115620006475760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000498565b60006200065362000668565b9050620006618184620009e4565b9392505050565b60008080620006766200068e565b9092509050620006878183620009e4565b9250505090565b600b54600a546000918291825b600754811015620007f657826001600060078481548110620006c157620006c1620009fb565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620007305750816002600060078481548110620007095762000709620009fb565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200074757600b54600a54945094505050509091565b6001600060078381548110620007615762000761620009fb565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200079290846200099f565b92506002600060078381548110620007ae57620007ae620009fb565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007df90836200099f565b915080620007ed8162000a11565b9150506200069b565b50600a54600b54620008099190620009e4565b8210156200082157600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008815781600019048211156200086557620008656200082a565b808516156200087357918102915b93841c939080029062000845565b509250929050565b6000826200089a5750600162000939565b81620008a95750600062000939565b8160018114620008c25760028114620008cd57620008ed565b600191505062000939565b60ff841115620008e157620008e16200082a565b50506001821b62000939565b5060208310610133831016604e8410600b841016171562000912575081810a62000939565b6200091e838362000840565b80600019048211156200093557620009356200082a565b0290505b92915050565b60006200066160ff84168362000889565b60008160001904831182151516156200096d576200096d6200082a565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200099a576200099a62000972565b500690565b600082821015620009b457620009b46200082a565b500390565b600060208284031215620009cc57600080fd5b81516001600160a01b03811681146200066157600080fd5b600082620009f657620009f662000972565b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820162000a265762000a266200082a565b5060010190565b612adb8062000a3d6000396000f3fe6080604052600436106102815760003560e01c8063715018a61161014f578063a9059cbb116100c1578063dd62ed3e1161007a578063dd62ed3e1461080a578063e2f4560514610850578063e9dae5ed14610866578063ea2f0b3714610886578063f2fde38b146108a6578063f887ea40146108c657600080fd5b8063a9059cbb14610755578063aacebbe314610775578063bbc0c74214610795578063bbde77c1146107b4578063cdb3858f146107ca578063d257b34f146107ea57600080fd5b80638da5cb5b116101135780638da5cb5b1461068b578063924de9b7146106a957806395d89b41146106c95780639ba5e4d5146106f6578063a457c2d714610715578063a8aa1b311461073557600080fd5b8063715018a6146105cd578063728f8eea146105e257806375f0a8741461061c57806388f820201461063c5780638c0b5e221461067557600080fd5b80633bbac579116101f357806347c23092116101ac57806347c23092146104fa57806352390c021461051a5780635342acb41461053a5780636256d181146105735780636ddd17131461059357806370a08231146105ad57600080fd5b80633bbac5791461041257806340b28c2f14610442578063437823ec14610462578063441b1d3014610482578063452e68dd146104a25780634549b039146104da57600080fd5b806323b872dd1161024557806323b872dd14610361578063293230b8146103815780632d83811914610396578063313ce567146103b65780633685d419146103d257806339509351146103f257600080fd5b806303c0f5d41461028d57806306fdde03146102af578063095ea7b3146102f257806318160ddd14610322578063188b1bf11461034157600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a836600461260c565b6108ed565b005b3480156102bb57600080fd5b506040805180820190915260088152672932bb37b63b32b960c11b60208201525b6040516102e99190612645565b60405180910390f35b3480156102fe57600080fd5b5061031261030d36600461269a565b61094b565b60405190151581526020016102e9565b34801561032e57600080fd5b50600a545b6040519081526020016102e9565b34801561034d57600080fd5b506102ad61035c3660046126c6565b610962565b34801561036d57600080fd5b5061031261037c3660046126df565b6109a8565b34801561038d57600080fd5b506102ad610a5a565b3480156103a257600080fd5b506103336103b13660046126c6565b610ae6565b3480156103c257600080fd5b50604051600981526020016102e9565b3480156103de57600080fd5b506102ad6103ed366004612720565b610b6a565b3480156103fe57600080fd5b5061031261040d36600461269a565b610d20565b34801561041e57600080fd5b5061031261042d366004612720565b60066020526000908152604090205460ff1681565b34801561044e57600080fd5b506102ad61045d36600461273d565b610d57565b34801561046e57600080fd5b506102ad61047d366004612720565b610dbd565b34801561048e57600080fd5b506102ad61049d3660046126c6565b610e0b565b3480156104ae57600080fd5b506010546104c2906001600160a01b031681565b6040516001600160a01b0390911681526020016102e9565b3480156104e657600080fd5b506103336104f536600461276b565b610eb2565b34801561050657600080fd5b506102ad6105153660046126df565b610f3c565b34801561052657600080fd5b506102ad610535366004612720565b610fdf565b34801561054657600080fd5b50610312610555366004612720565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561057f57600080fd5b506102ad61058e3660046126c6565b611132565b34801561059f57600080fd5b506008546103129060ff1681565b3480156105b957600080fd5b506103336105c8366004612720565b611178565b3480156105d957600080fd5b506102ad6111d7565b3480156105ee57600080fd5b5060115460125460135461060192919083565b604080519384526020840192909252908201526060016102e9565b34801561062857600080fd5b50600f546104c2906001600160a01b031681565b34801561064857600080fd5b50610312610657366004612720565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068157600080fd5b50610333600d5481565b34801561069757600080fd5b506000546001600160a01b03166104c2565b3480156106b557600080fd5b506102ad6106c4366004612790565b61120d565b3480156106d557600080fd5b506040805180820190915260048152635245564f60e01b60208201526102dc565b34801561070257600080fd5b5060145460155460165461060192919083565b34801561072157600080fd5b5061031261073036600461269a565b61124a565b34801561074157600080fd5b506009546104c2906001600160a01b031681565b34801561076157600080fd5b5061031261077036600461269a565b6112e5565b34801561078157600080fd5b506102ad610790366004612720565b6112f2565b3480156107a157600080fd5b5060085461031290610100900460ff1681565b3480156107c057600080fd5b50610333600e5481565b3480156107d657600080fd5b506102ad6107e5366004612720565b61133e565b3480156107f657600080fd5b506102ad6108053660046126c6565b61138a565b34801561081657600080fd5b5061033361082536600461273d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561085c57600080fd5b50610333600c5481565b34801561087257600080fd5b506102ad6108813660046127ad565b6113d0565b34801561089257600080fd5b506102ad6108a1366004612720565b611420565b3480156108b257600080fd5b506102ad6108c1366004612720565b61146b565b3480156108d257600080fd5b506008546104c290630100000090046001600160a01b031681565b6000546001600160a01b031633146109205760405162461bcd60e51b8152600401610917906127d9565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000610958338484611506565b5060015b92915050565b6000546001600160a01b0316331461098c5760405162461bcd60e51b8152600401610917906127d9565b6109986009600a612908565b6109a29082612917565b600e5550565b60006109b584848461162a565b506001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a3b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610917565b610a4f8533610a4a8685612936565b611506565b506001949350505050565b6000546001600160a01b03163314610a845760405162461bcd60e51b8152600401610917906127d9565b600854610100900460ff1615610ad55760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610917565b6008805461ffff1916610101179055565b6000600b54821115610b4d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610917565b6000610b57611a66565b9050610b63818461294d565b9392505050565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03811660009081526005602052604090205460ff16610bfc5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610917565b60005b600754811015610d1c57816001600160a01b031660078281548110610c2657610c2661296f565b6000918252602090912001546001600160a01b031603610d0a5760078054610c5090600190612936565b81548110610c6057610c6061296f565b600091825260209091200154600780546001600160a01b039092169183908110610c8c57610c8c61296f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610ce457610ce4612985565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d148161299b565b915050610bff565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610958918590610a4a9086906129b4565b6000546001600160a01b03163314610d815760405162461bcd60e51b8152600401610917906127d9565b600880546301000000600160b81b03191663010000006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610de75760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e355760405162461bcd60e51b8152600401610917906127d9565b80471015610e855760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610917565b604051339082156108fc029083906000818181858888f19350505050158015610d1c573d6000803e3d6000fd5b6000600a54831115610f065760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610917565b81610f22576000610f18846000611a89565b51915061095c9050565b6000610f2f846001611a89565b60200151915061095c9050565b6000546001600160a01b03163314610f665760405162461bcd60e51b8152600401610917906127d9565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd991906129cc565b50505050565b6000546001600160a01b031633146110095760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03811660009081526005602052604090205460ff16156110725760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610917565b6001600160a01b038116600090815260016020526040902054156110cc576001600160a01b0381166000908152600160205260409020546110b290610ae6565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b0316331461115c5760405162461bcd60e51b8152600401610917906127d9565b6111686009600a612908565b6111729082612917565b600d5550565b6001600160a01b03811660009081526005602052604081205460ff16156111b557506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461095c90610ae6565b6000546001600160a01b031633146112015760405162461bcd60e51b8152600401610917906127d9565b61120b6000611acc565b565b6000546001600160a01b031633146112375760405162461bcd60e51b8152600401610917906127d9565b6008805460ff1916911515919091179055565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156112cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610917565b6112db3385610a4a8685612936565b5060019392505050565b60006112db33848461162a565b6000546001600160a01b0316331461131c5760405162461bcd60e51b8152600401610917906127d9565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113685760405162461bcd60e51b8152600401610917906127d9565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113b45760405162461bcd60e51b8152600401610917906127d9565b6113c06009600a612908565b6113ca9082612917565b600c5550565b6000546001600160a01b031633146113fa5760405162461bcd60e51b8152600401610917906127d9565b604080516060810182528481526020810184905201819052601192909255601255601355565b6000546001600160a01b0316331461144a5760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146114955760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b0381166114fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610917565b61150381611acc565b50565b6001600160a01b0383166115685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610917565b6001600160a01b0382166115c95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610917565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610917565b6001600160a01b0383166116f25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610917565b600082116117545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610917565b61175d84611178565b8211156117c65760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610917565b6001600160a01b03841660009081526006602052604090205460ff1615801561180857506001600160a01b03831660009081526006602052604090205460ff16155b61184a5760405162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b6044820152606401610917565b6001600160a01b03841660009081526004602052604090205460ff1615801561188c57506001600160a01b03831660009081526004602052604090205460ff16155b1561196c57600d548211156118e35760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e74006044820152606401610917565b6009546001600160a01b0384811691161461196c57600e548261190585611178565b61190f91906129b4565b111561196c5760405162461bcd60e51b815260206004820152602660248201527f526563697069656e74206973206563656564696e67206d617857616c6c657442604482015265616c616e636560d01b6064820152608401610917565b6000600c5461197a30611178565b600854911115915062010000900460ff1615801561199a575060085460ff165b80156119a35750805b80156119bd57506009546001600160a01b03868116911614155b80156119e257506001600160a01b03851660009081526004602052604090205460ff16155b8015611a0757506001600160a01b03841660009081526004602052604090205460ff16155b15611a1757611a17600c54611b1c565b6001600160a01b038516600090815260046020526040902054610a4f9086908690869060ff1680611a6057506001600160a01b03881660009081526004602052604090205460ff165b15611c22565b6000806000611a73611ec7565b9092509050611a82818361294d565b9250505090565b611a9161259d565b611a9b838361204a565b9050611ab0818484611aab611a66565b6120f6565b6080860152606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805462ff0000191662010000179055601254601354600091611b3f916129b4565b611b4a906002612917565b905060008160116002015484611b609190612917565b611b6a919061294d565b90506000611b788285612936565b905047611b8482612183565b6000611b908247612936565b601354909150600090611ba39087612936565b611bad908361294d565b601354909150600090611bc09083612917565b90508015611bd257611bd28682612304565b601254600090611be3846002612917565b611bed9190612917565b90508015611c0b57600f54611c0b906001600160a01b0316826123bf565b50506008805462ff00001916905550505050505050565b6000611c2e8383611a89565b6001600160a01b03861660009081526005602052604090205490915060ff1615611c90576001600160a01b038516600090815260026020526040902054611c76908490612936565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615611cf35760a08101516001600160a01b038516600090815260026020526040902054611cd991906129b4565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611d189190612936565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611d4f91906129b4565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611d81575060008160c00151115b15611d9857611d9881604001518260c001516124dd565b600081608001511180611db057506000816101000151115b15611dc857611dc88160800151826101000151612512565b600081606001511180611ddf575060008160e00151115b15611df657611df681606001518260e00151612588565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611e3f91815260200190565b60405180910390a360008160e00151826101000151611e5e91906129b4565b1115611ec057306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151846101000151611eae91906129b4565b60405190815260200160405180910390a35b5050505050565b600b54600a546000918291825b60075481101561201957826001600060078481548110611ef657611ef661296f565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f615750816002600060078481548110611f3a57611f3a61296f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f7757600b54600a54945094505050509091565b6001600060078381548110611f8e57611f8e61296f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611fbd9084612936565b92506002600060078381548110611fd657611fd661296f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546120059083612936565b9150806120118161299b565b915050611ed4565b50600a54600b5461202a919061294d565b82101561204157600b54600a549350935050509091565b90939092509050565b61205261259d565b816120635760a0810183905261095c565b6011546064906120739085612917565b61207d919061294d565b60c08201526012546064906120929085612917565b61209c919061294d565b60e08201526013546064906120b19085612917565b6120bb919061294d565b610100820181905260e082015160c08301516120d79086612936565b6120e19190612936565b6120eb9190612936565b60a082015292915050565b6000808080806121068689612917565b94508661211e57508392506000915081905080612178565b858960c0015161212e9190612917565b9250858960e001516121409190612917565b9150858961010001516121539190612917565b905080826121618588612936565b61216b9190612936565b6121759190612936565b93505b945094509450945094565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121b8576121b861296f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f91906129e9565b816001815181106122625761226261296f565b6001600160a01b03928316602091820292909201015260085461228f913091630100000090041684611506565b60085460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906122ce908590600090869030904290600401612a06565b600060405180830381600087803b1580156122e857600080fd5b505af11580156122fc573d6000803e3d6000fd5b505050505050565b600854612323903090630100000090046001600160a01b031684611506565b60085460105460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af115801561239a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ec09190612a77565b8047101561240f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610917565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461245c576040519150601f19603f3d011682016040523d82523d6000602084013e612461565b606091505b50509050806124d85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610917565b505050565b81600b60008282546124ef9190612936565b9091555050601480548291906000906125099084906129b4565b90915550505050565b806014600201600082825461252791906129b4565b90915550503060009081526005602052604090205460ff16156125695730600090815260026020526040812080548392906125639084906129b4565b90915550505b30600090815260016020526040812080548492906125099084906129b4565b806014600101600082825461252791906129b4565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461150357600080fd5b801515811461150357600080fd5b6000806040838503121561261f57600080fd5b823561262a816125e9565b9150602083013561263a816125fe565b809150509250929050565b600060208083528351808285015260005b8181101561267257858101830151858201604001528201612656565b81811115612684576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156126ad57600080fd5b82356126b8816125e9565b946020939093013593505050565b6000602082840312156126d857600080fd5b5035919050565b6000806000606084860312156126f457600080fd5b83356126ff816125e9565b9250602084013561270f816125e9565b929592945050506040919091013590565b60006020828403121561273257600080fd5b8135610b63816125e9565b6000806040838503121561275057600080fd5b823561275b816125e9565b9150602083013561263a816125e9565b6000806040838503121561277e57600080fd5b82359150602083013561263a816125fe565b6000602082840312156127a257600080fd5b8135610b63816125fe565b6000806000606084860312156127c257600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561285f5781600019048211156128455761284561280e565b8085161561285257918102915b93841c9390800290612829565b509250929050565b6000826128765750600161095c565b816128835750600061095c565b816001811461289957600281146128a3576128bf565b600191505061095c565b60ff8411156128b4576128b461280e565b50506001821b61095c565b5060208310610133831016604e8410600b84101617156128e2575081810a61095c565b6128ec8383612824565b80600019048211156129005761290061280e565b029392505050565b6000610b6360ff841683612867565b60008160001904831182151516156129315761293161280e565b500290565b6000828210156129485761294861280e565b500390565b60008261296a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016129ad576129ad61280e565b5060010190565b600082198211156129c7576129c761280e565b500190565b6000602082840312156129de57600080fd5b8151610b63816125fe565b6000602082840312156129fb57600080fd5b8151610b63816125e9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a565784516001600160a01b031683529383019391830191600101612a31565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612a8c57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200eab3bee6e84283278097702ec04188353799de8eed587ce613b28b0d396956064736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c8063715018a61161014f578063a9059cbb116100c1578063dd62ed3e1161007a578063dd62ed3e1461080a578063e2f4560514610850578063e9dae5ed14610866578063ea2f0b3714610886578063f2fde38b146108a6578063f887ea40146108c657600080fd5b8063a9059cbb14610755578063aacebbe314610775578063bbc0c74214610795578063bbde77c1146107b4578063cdb3858f146107ca578063d257b34f146107ea57600080fd5b80638da5cb5b116101135780638da5cb5b1461068b578063924de9b7146106a957806395d89b41146106c95780639ba5e4d5146106f6578063a457c2d714610715578063a8aa1b311461073557600080fd5b8063715018a6146105cd578063728f8eea146105e257806375f0a8741461061c57806388f820201461063c5780638c0b5e221461067557600080fd5b80633bbac579116101f357806347c23092116101ac57806347c23092146104fa57806352390c021461051a5780635342acb41461053a5780636256d181146105735780636ddd17131461059357806370a08231146105ad57600080fd5b80633bbac5791461041257806340b28c2f14610442578063437823ec14610462578063441b1d3014610482578063452e68dd146104a25780634549b039146104da57600080fd5b806323b872dd1161024557806323b872dd14610361578063293230b8146103815780632d83811914610396578063313ce567146103b65780633685d419146103d257806339509351146103f257600080fd5b806303c0f5d41461028d57806306fdde03146102af578063095ea7b3146102f257806318160ddd14610322578063188b1bf11461034157600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a836600461260c565b6108ed565b005b3480156102bb57600080fd5b506040805180820190915260088152672932bb37b63b32b960c11b60208201525b6040516102e99190612645565b60405180910390f35b3480156102fe57600080fd5b5061031261030d36600461269a565b61094b565b60405190151581526020016102e9565b34801561032e57600080fd5b50600a545b6040519081526020016102e9565b34801561034d57600080fd5b506102ad61035c3660046126c6565b610962565b34801561036d57600080fd5b5061031261037c3660046126df565b6109a8565b34801561038d57600080fd5b506102ad610a5a565b3480156103a257600080fd5b506103336103b13660046126c6565b610ae6565b3480156103c257600080fd5b50604051600981526020016102e9565b3480156103de57600080fd5b506102ad6103ed366004612720565b610b6a565b3480156103fe57600080fd5b5061031261040d36600461269a565b610d20565b34801561041e57600080fd5b5061031261042d366004612720565b60066020526000908152604090205460ff1681565b34801561044e57600080fd5b506102ad61045d36600461273d565b610d57565b34801561046e57600080fd5b506102ad61047d366004612720565b610dbd565b34801561048e57600080fd5b506102ad61049d3660046126c6565b610e0b565b3480156104ae57600080fd5b506010546104c2906001600160a01b031681565b6040516001600160a01b0390911681526020016102e9565b3480156104e657600080fd5b506103336104f536600461276b565b610eb2565b34801561050657600080fd5b506102ad6105153660046126df565b610f3c565b34801561052657600080fd5b506102ad610535366004612720565b610fdf565b34801561054657600080fd5b50610312610555366004612720565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561057f57600080fd5b506102ad61058e3660046126c6565b611132565b34801561059f57600080fd5b506008546103129060ff1681565b3480156105b957600080fd5b506103336105c8366004612720565b611178565b3480156105d957600080fd5b506102ad6111d7565b3480156105ee57600080fd5b5060115460125460135461060192919083565b604080519384526020840192909252908201526060016102e9565b34801561062857600080fd5b50600f546104c2906001600160a01b031681565b34801561064857600080fd5b50610312610657366004612720565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068157600080fd5b50610333600d5481565b34801561069757600080fd5b506000546001600160a01b03166104c2565b3480156106b557600080fd5b506102ad6106c4366004612790565b61120d565b3480156106d557600080fd5b506040805180820190915260048152635245564f60e01b60208201526102dc565b34801561070257600080fd5b5060145460155460165461060192919083565b34801561072157600080fd5b5061031261073036600461269a565b61124a565b34801561074157600080fd5b506009546104c2906001600160a01b031681565b34801561076157600080fd5b5061031261077036600461269a565b6112e5565b34801561078157600080fd5b506102ad610790366004612720565b6112f2565b3480156107a157600080fd5b5060085461031290610100900460ff1681565b3480156107c057600080fd5b50610333600e5481565b3480156107d657600080fd5b506102ad6107e5366004612720565b61133e565b3480156107f657600080fd5b506102ad6108053660046126c6565b61138a565b34801561081657600080fd5b5061033361082536600461273d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561085c57600080fd5b50610333600c5481565b34801561087257600080fd5b506102ad6108813660046127ad565b6113d0565b34801561089257600080fd5b506102ad6108a1366004612720565b611420565b3480156108b257600080fd5b506102ad6108c1366004612720565b61146b565b3480156108d257600080fd5b506008546104c290630100000090046001600160a01b031681565b6000546001600160a01b031633146109205760405162461bcd60e51b8152600401610917906127d9565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000610958338484611506565b5060015b92915050565b6000546001600160a01b0316331461098c5760405162461bcd60e51b8152600401610917906127d9565b6109986009600a612908565b6109a29082612917565b600e5550565b60006109b584848461162a565b506001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a3b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610917565b610a4f8533610a4a8685612936565b611506565b506001949350505050565b6000546001600160a01b03163314610a845760405162461bcd60e51b8152600401610917906127d9565b600854610100900460ff1615610ad55760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610917565b6008805461ffff1916610101179055565b6000600b54821115610b4d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610917565b6000610b57611a66565b9050610b63818461294d565b9392505050565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03811660009081526005602052604090205460ff16610bfc5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610917565b60005b600754811015610d1c57816001600160a01b031660078281548110610c2657610c2661296f565b6000918252602090912001546001600160a01b031603610d0a5760078054610c5090600190612936565b81548110610c6057610c6061296f565b600091825260209091200154600780546001600160a01b039092169183908110610c8c57610c8c61296f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610ce457610ce4612985565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d148161299b565b915050610bff565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610958918590610a4a9086906129b4565b6000546001600160a01b03163314610d815760405162461bcd60e51b8152600401610917906127d9565b600880546301000000600160b81b03191663010000006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610de75760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e355760405162461bcd60e51b8152600401610917906127d9565b80471015610e855760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610917565b604051339082156108fc029083906000818181858888f19350505050158015610d1c573d6000803e3d6000fd5b6000600a54831115610f065760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610917565b81610f22576000610f18846000611a89565b51915061095c9050565b6000610f2f846001611a89565b60200151915061095c9050565b6000546001600160a01b03163314610f665760405162461bcd60e51b8152600401610917906127d9565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd991906129cc565b50505050565b6000546001600160a01b031633146110095760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03811660009081526005602052604090205460ff16156110725760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610917565b6001600160a01b038116600090815260016020526040902054156110cc576001600160a01b0381166000908152600160205260409020546110b290610ae6565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b0316331461115c5760405162461bcd60e51b8152600401610917906127d9565b6111686009600a612908565b6111729082612917565b600d5550565b6001600160a01b03811660009081526005602052604081205460ff16156111b557506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461095c90610ae6565b6000546001600160a01b031633146112015760405162461bcd60e51b8152600401610917906127d9565b61120b6000611acc565b565b6000546001600160a01b031633146112375760405162461bcd60e51b8152600401610917906127d9565b6008805460ff1916911515919091179055565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156112cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610917565b6112db3385610a4a8685612936565b5060019392505050565b60006112db33848461162a565b6000546001600160a01b0316331461131c5760405162461bcd60e51b8152600401610917906127d9565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113685760405162461bcd60e51b8152600401610917906127d9565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113b45760405162461bcd60e51b8152600401610917906127d9565b6113c06009600a612908565b6113ca9082612917565b600c5550565b6000546001600160a01b031633146113fa5760405162461bcd60e51b8152600401610917906127d9565b604080516060810182528481526020810184905201819052601192909255601255601355565b6000546001600160a01b0316331461144a5760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146114955760405162461bcd60e51b8152600401610917906127d9565b6001600160a01b0381166114fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610917565b61150381611acc565b50565b6001600160a01b0383166115685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610917565b6001600160a01b0382166115c95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610917565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610917565b6001600160a01b0383166116f25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610917565b600082116117545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610917565b61175d84611178565b8211156117c65760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610917565b6001600160a01b03841660009081526006602052604090205460ff1615801561180857506001600160a01b03831660009081526006602052604090205460ff16155b61184a5760405162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b6044820152606401610917565b6001600160a01b03841660009081526004602052604090205460ff1615801561188c57506001600160a01b03831660009081526004602052604090205460ff16155b1561196c57600d548211156118e35760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e74006044820152606401610917565b6009546001600160a01b0384811691161461196c57600e548261190585611178565b61190f91906129b4565b111561196c5760405162461bcd60e51b815260206004820152602660248201527f526563697069656e74206973206563656564696e67206d617857616c6c657442604482015265616c616e636560d01b6064820152608401610917565b6000600c5461197a30611178565b600854911115915062010000900460ff1615801561199a575060085460ff165b80156119a35750805b80156119bd57506009546001600160a01b03868116911614155b80156119e257506001600160a01b03851660009081526004602052604090205460ff16155b8015611a0757506001600160a01b03841660009081526004602052604090205460ff16155b15611a1757611a17600c54611b1c565b6001600160a01b038516600090815260046020526040902054610a4f9086908690869060ff1680611a6057506001600160a01b03881660009081526004602052604090205460ff165b15611c22565b6000806000611a73611ec7565b9092509050611a82818361294d565b9250505090565b611a9161259d565b611a9b838361204a565b9050611ab0818484611aab611a66565b6120f6565b6080860152606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805462ff0000191662010000179055601254601354600091611b3f916129b4565b611b4a906002612917565b905060008160116002015484611b609190612917565b611b6a919061294d565b90506000611b788285612936565b905047611b8482612183565b6000611b908247612936565b601354909150600090611ba39087612936565b611bad908361294d565b601354909150600090611bc09083612917565b90508015611bd257611bd28682612304565b601254600090611be3846002612917565b611bed9190612917565b90508015611c0b57600f54611c0b906001600160a01b0316826123bf565b50506008805462ff00001916905550505050505050565b6000611c2e8383611a89565b6001600160a01b03861660009081526005602052604090205490915060ff1615611c90576001600160a01b038516600090815260026020526040902054611c76908490612936565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615611cf35760a08101516001600160a01b038516600090815260026020526040902054611cd991906129b4565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611d189190612936565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611d4f91906129b4565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611d81575060008160c00151115b15611d9857611d9881604001518260c001516124dd565b600081608001511180611db057506000816101000151115b15611dc857611dc88160800151826101000151612512565b600081606001511180611ddf575060008160e00151115b15611df657611df681606001518260e00151612588565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611e3f91815260200190565b60405180910390a360008160e00151826101000151611e5e91906129b4565b1115611ec057306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151846101000151611eae91906129b4565b60405190815260200160405180910390a35b5050505050565b600b54600a546000918291825b60075481101561201957826001600060078481548110611ef657611ef661296f565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f615750816002600060078481548110611f3a57611f3a61296f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f7757600b54600a54945094505050509091565b6001600060078381548110611f8e57611f8e61296f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611fbd9084612936565b92506002600060078381548110611fd657611fd661296f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546120059083612936565b9150806120118161299b565b915050611ed4565b50600a54600b5461202a919061294d565b82101561204157600b54600a549350935050509091565b90939092509050565b61205261259d565b816120635760a0810183905261095c565b6011546064906120739085612917565b61207d919061294d565b60c08201526012546064906120929085612917565b61209c919061294d565b60e08201526013546064906120b19085612917565b6120bb919061294d565b610100820181905260e082015160c08301516120d79086612936565b6120e19190612936565b6120eb9190612936565b60a082015292915050565b6000808080806121068689612917565b94508661211e57508392506000915081905080612178565b858960c0015161212e9190612917565b9250858960e001516121409190612917565b9150858961010001516121539190612917565b905080826121618588612936565b61216b9190612936565b6121759190612936565b93505b945094509450945094565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121b8576121b861296f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f91906129e9565b816001815181106122625761226261296f565b6001600160a01b03928316602091820292909201015260085461228f913091630100000090041684611506565b60085460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906122ce908590600090869030904290600401612a06565b600060405180830381600087803b1580156122e857600080fd5b505af11580156122fc573d6000803e3d6000fd5b505050505050565b600854612323903090630100000090046001600160a01b031684611506565b60085460105460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af115801561239a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ec09190612a77565b8047101561240f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610917565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461245c576040519150601f19603f3d011682016040523d82523d6000602084013e612461565b606091505b50509050806124d85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610917565b505050565b81600b60008282546124ef9190612936565b9091555050601480548291906000906125099084906129b4565b90915550505050565b806014600201600082825461252791906129b4565b90915550503060009081526005602052604090205460ff16156125695730600090815260026020526040812080548392906125639084906129b4565b90915550505b30600090815260016020526040812080548492906125099084906129b4565b806014600101600082825461252791906129b4565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461150357600080fd5b801515811461150357600080fd5b6000806040838503121561261f57600080fd5b823561262a816125e9565b9150602083013561263a816125fe565b809150509250929050565b600060208083528351808285015260005b8181101561267257858101830151858201604001528201612656565b81811115612684576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156126ad57600080fd5b82356126b8816125e9565b946020939093013593505050565b6000602082840312156126d857600080fd5b5035919050565b6000806000606084860312156126f457600080fd5b83356126ff816125e9565b9250602084013561270f816125e9565b929592945050506040919091013590565b60006020828403121561273257600080fd5b8135610b63816125e9565b6000806040838503121561275057600080fd5b823561275b816125e9565b9150602083013561263a816125e9565b6000806040838503121561277e57600080fd5b82359150602083013561263a816125fe565b6000602082840312156127a257600080fd5b8135610b63816125fe565b6000806000606084860312156127c257600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561285f5781600019048211156128455761284561280e565b8085161561285257918102915b93841c9390800290612829565b509250929050565b6000826128765750600161095c565b816128835750600061095c565b816001811461289957600281146128a3576128bf565b600191505061095c565b60ff8411156128b4576128b461280e565b50506001821b61095c565b5060208310610133831016604e8410600b84101617156128e2575081810a61095c565b6128ec8383612824565b80600019048211156129005761290061280e565b029392505050565b6000610b6360ff841683612867565b60008160001904831182151516156129315761293161280e565b500290565b6000828210156129485761294861280e565b500390565b60008261296a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016129ad576129ad61280e565b5060010190565b600082198211156129c7576129c761280e565b500190565b6000602082840312156129de57600080fd5b8151610b63816125fe565b6000602082840312156129fb57600080fd5b8151610b63816125e9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a565784516001600160a01b031683529383019391830191600101612a31565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612a8c57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200eab3bee6e84283278097702ec04188353799de8eed587ce613b28b0d396956064736f6c634300080d0033

Deployed Bytecode Sourcemap

3190:16236:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18750:100;;;;;;;;;;-1:-1:-1;18750:100:0;;;;;:::i;:::-;;:::i;:::-;;5731:83;;;;;;;;;;-1:-1:-1;5801:5:0;;;;;;;;;;;;-1:-1:-1;;;5801:5:0;;;;5731:83;;;;;;;:::i;:::-;;;;;;;;6639:161;;;;;;;;;;-1:-1:-1;6639:161:0;;;;;:::i;:::-;;:::i;:::-;;;1747:14:1;;1740:22;1722:41;;1710:2;1695:18;6639:161:0;1582:187:1;6004:95:0;;;;;;;;;;-1:-1:-1;6084:7:0;;6004:95;;;1920:25:1;;;1908:2;1893:18;6004:95:0;1774:177:1;17817:126:0;;;;;;;;;;-1:-1:-1;17817:126:0;;;;;:::i;:::-;;:::i;6808:422::-;;;;;;;;;;-1:-1:-1;6808:422:0;;;;;:::i;:::-;;:::i;17639:170::-;;;;;;;;;;;;;:::i;8439:248::-;;;;;;;;;;-1:-1:-1;8439:248:0;;;;;:::i;:::-;;:::i;5913:83::-;;;;;;;;;;-1:-1:-1;5913:83:0;;3844:1;2744:36:1;;2732:2;2717:18;5913:83:0;2602:184:1;9036:475:0;;;;;;;;;;-1:-1:-1;9036:475:0;;;;;:::i;:::-;;:::i;7238:215::-;;;;;;;;;;-1:-1:-1;7238:215:0;;;;;:::i;:::-;;:::i;3574:38::-;;;;;;;;;;-1:-1:-1;3574:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18578:164;;;;;;;;;;-1:-1:-1;18578:164:0;;;;;:::i;:::-;;:::i;9521:111::-;;;;;;;;;;-1:-1:-1;9521:111:0;;;;;:::i;:::-;;:::i;18922:196::-;;;;;;;;;;-1:-1:-1;18922:196:0;;;;;:::i;:::-;;:::i;4310:71::-;;;;;;;;;;-1:-1:-1;4310:71:0;;;;-1:-1:-1;;;;;4310:71:0;;;;;;-1:-1:-1;;;;;3600:32:1;;;3582:51;;3570:2;3555:18;4310:71:0;3436:203:1;7974:457:0;;;;;;;;;;-1:-1:-1;7974:457:0;;;;;:::i;:::-;;:::i;19227:154::-;;;;;;;;;;-1:-1:-1;19227:154:0;;;;;:::i;:::-;;:::i;8695:333::-;;;;;;;;;;-1:-1:-1;8695:333:0;;;;;:::i;:::-;;:::i;9760:123::-;;;;;;;;;;-1:-1:-1;9760:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9848:27:0;9824:4;9848:27;;;:18;:27;;;;;;;;;9760:123;18203:116;;;;;;;;;;-1:-1:-1;18203:116:0;;;;;:::i;:::-;;:::i;3661:23::-;;;;;;;;;;-1:-1:-1;3661:23:0;;;;;;;;6107:198;;;;;;;;;;-1:-1:-1;6107:198:0;;;;;:::i;:::-;;:::i;1967:94::-;;;;;;;;;;;;;:::i;4587:34::-;;;;;;;;;;-1:-1:-1;4587:34:0;;;;;;;;;;;;;;;;4160:25:1;;;4216:2;4201:18;;4194:34;;;;4244:18;;;4237:34;4148:2;4133:18;4587:34:0;3958:319:1;4227:75:0;;;;;;;;;;-1:-1:-1;4227:75:0;;;;-1:-1:-1;;;;;4227:75:0;;;7846:120;;;;;;;;;;-1:-1:-1;7846:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7938:20:0;7914:4;7938:20;;;:11;:20;;;;;;;;;7846:120;4093:55;;;;;;;;;;;;;;;;1744:87;;;;;;;;;;-1:-1:-1;1790:7:0;1817:6;-1:-1:-1;;;;;1817:6:0;1744:87;;18465:101;;;;;;;;;;-1:-1:-1;18465:101:0;;;;;:::i;:::-;;:::i;5820:87::-;;;;;;;;;;-1:-1:-1;5892:7:0;;;;;;;;;;;;-1:-1:-1;;;5892:7:0;;;;5820:87;;4746:36;;;;;;;;;;-1:-1:-1;4746:36:0;;;;;;;;;;;;7461:377;;;;;;;;;;-1:-1:-1;7461:377:0;;;;;:::i;:::-;;:::i;3781:19::-;;;;;;;;;;-1:-1:-1;3781:19:0;;;;-1:-1:-1;;;;;3781:19:0;;;6313:167;;;;;;;;;;-1:-1:-1;6313:167:0;;;;;:::i;:::-;;:::i;17951:128::-;;;;;;;;;;-1:-1:-1;17951:128:0;;;;;:::i;:::-;;:::i;3691:25::-;;;;;;;;;;-1:-1:-1;3691:25:0;;;;;;;;;;;4155:59;;;;;;;;;;;;;;;;18087:108;;;;;;;;;;-1:-1:-1;18087:108:0;;;;;:::i;:::-;;:::i;18327:130::-;;;;;;;;;;-1:-1:-1;18327:130:0;;;;;:::i;:::-;;:::i;6488:143::-;;;;;;;;;;-1:-1:-1;6488:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6596:18:0;;;6569:7;6596:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6488:143;4027:59;;;;;;;;;;;;;;;;9891:151;;;;;;;;;;-1:-1:-1;9891:151:0;;;;;:::i;:::-;;:::i;9640:110::-;;;;;;;;;;-1:-1:-1;9640:110:0;;;;;:::i;:::-;;:::i;2069:192::-;;;;;;;;;;-1:-1:-1;2069:192:0;;;;;:::i;:::-;;:::i;3753:21::-;;;;;;;;;;-1:-1:-1;3753:21:0;;;;;;;-1:-1:-1;;;;;3753:21:0;;;18750:100;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;18823:11:0;;;::::1;;::::0;;;:5:::1;:11;::::0;;;;:19;;-1:-1:-1;;18823:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18750:100::o;6639:161::-;6714:4;6731:39;1245:10;6754:7;6763:6;6731:8;:39::i;:::-;-1:-1:-1;6788:4:0;6639:161;;;;;:::o;17817:126::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;17922:13:::1;3844:1;17922:2;:13;:::i;:::-;17913:22;::::0;:6;:22:::1;:::i;:::-;17894:16;:41:::0;-1:-1:-1;17817:126:0:o;6808:422::-;6914:4;6931:36;6941:6;6949:9;6960:6;6931:9;:36::i;:::-;-1:-1:-1;;;;;;7007:19:0;;6980:24;7007:19;;;:11;:19;;;;;;;;1245:10;7007:33;;;;;;;;7059:26;;;;7051:79;;;;-1:-1:-1;;;7051:79:0;;7323:2:1;7051:79:0;;;7305:21:1;7362:2;7342:18;;;7335:30;7401:34;7381:18;;;7374:62;-1:-1:-1;;;7452:18:1;;;7445:38;7500:19;;7051:79:0;7121:404:1;7051:79:0;7141:57;7150:6;1245:10;7172:25;7191:6;7172:16;:25;:::i;:::-;7141:8;:57::i;:::-;-1:-1:-1;7218:4:0;;6808:422;-1:-1:-1;;;;6808:422:0:o;17639:170::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;17701:13:::1;::::0;::::1;::::0;::::1;;;17700:14;17692:49;;;::::0;-1:-1:-1;;;17692:49:0;;7862:2:1;17692:49:0::1;::::0;::::1;7844:21:1::0;7901:2;7881:18;;;7874:30;-1:-1:-1;;;7920:18:1;;;7913:52;7982:18;;17692:49:0::1;7660:346:1::0;17692:49:0::1;17752:13;:20:::0;;-1:-1:-1;;17783:18:0;;;;;17639:170::o;8439:248::-;8505:7;8544;;8533;:18;;8525:73;;;;-1:-1:-1;;;8525:73:0;;8213:2:1;8525:73:0;;;8195:21:1;8252:2;8232:18;;;8225:30;8291:34;8271:18;;;8264:62;-1:-1:-1;;;8342:18:1;;;8335:40;8392:19;;8525:73:0;8011:406:1;8525:73:0;8609:19;8632:10;:8;:10::i;:::-;8609:33;-1:-1:-1;8660:19:0;8609:33;8660:7;:19;:::i;:::-;8653:26;8439:248;-1:-1:-1;;;8439:248:0:o;9036:475::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9118:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9110:56;;;::::0;-1:-1:-1;;;9110:56:0;;8846:2:1;9110:56:0::1;::::0;::::1;8828:21:1::0;8885:2;8865:18;;;8858:30;8924:25;8904:18;;;8897:53;8967:18;;9110:56:0::1;8644:347:1::0;9110:56:0::1;9182:9;9177:327;9201:9;:16:::0;9197:20;::::1;9177:327;;;9259:7;-1:-1:-1::0;;;;;9243:23:0::1;:9;9253:1;9243:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9243:12:0::1;:23:::0;9239:254:::1;;9302:9;9312:16:::0;;:20:::1;::::0;9331:1:::1;::::0;9312:20:::1;:::i;:::-;9302:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9287:9:::1;:12:::0;;-1:-1:-1;;;;;9302:31:0;;::::1;::::0;9297:1;;9287:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9287:46:0::1;-1:-1:-1::0;;;;;9287:46:0;;::::1;;::::0;;9352:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9391:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9391:28:0::1;::::0;;9438:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9438:15:0;;;;;-1:-1:-1;;;;;;9438:15:0::1;::::0;;;;;9177:327:::1;9036:475:::0;:::o;9239:254::-:1;9219:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9177:327;;;;9036:475:::0;:::o;7238:215::-;1245:10;7326:4;7375:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7375:34:0;;;;;;;;;;7326:4;;7343:80;;7366:7;;7375:47;;7412:10;;7375:47;:::i;18578:164::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18682:6:::1;:27:::0;;-1:-1:-1;;;;;;18682:27:0::1;::::0;-1:-1:-1;;;;;18682:27:0;;::::1;;;::::0;;18720:4:::1;:14:::0;;-1:-1:-1;;;;;;18720:14:0::1;::::0;;;::::1;;::::0;;18578:164::o;9521:111::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9590:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9590:34:0::1;9620:4;9590:34;::::0;;9521:111::o;18922:196::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;19022:9:::1;18997:21;:34;;18989:71;;;::::0;-1:-1:-1;;;18989:71:0;;9735:2:1;18989:71:0::1;::::0;::::1;9717:21:1::0;9774:2;9754:18;;;9747:30;9813:26;9793:18;;;9786:54;9857:18;;18989:71:0::1;9533:348:1::0;18989:71:0::1;19071:39;::::0;19079:10:::1;::::0;19071:39;::::1;;;::::0;19100:9;;19071:39:::1;::::0;;;19100:9;19079:10;19071:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;7974:457:::0;8064:7;8103;;8092;:18;;8084:62;;;;-1:-1:-1;;;8084:62:0;;10088:2:1;8084:62:0;;;10070:21:1;10127:2;10107:18;;;10100:30;10166:33;10146:18;;;10139:61;10217:18;;8084:62:0;9886:355:1;8084:62:0;8162:17;8157:267;;8196:28;8227:26;8238:7;8247:5;8227:10;:26::i;:::-;8275:9;;-1:-1:-1;8268:16:0;;-1:-1:-1;8268:16:0;8157:267;8317:28;8348:25;8359:7;8368:4;8348:10;:25::i;:::-;8395:17;;;;-1:-1:-1;8388:24:0;;-1:-1:-1;8388:24:0;19227:154;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;19332:41:::1;::::0;-1:-1:-1;;;19332:41:0;;-1:-1:-1;;;;;10438:32:1;;;19332:41:0::1;::::0;::::1;10420:51:1::0;10487:18;;;10480:34;;;19332:27:0;::::1;::::0;::::1;::::0;10393:18:1;;19332:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19227:154:::0;;;:::o;8695:333::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8778:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8777:21;8769:61;;;::::0;-1:-1:-1;;;8769:61:0;;10977:2:1;8769:61:0::1;::::0;::::1;10959:21:1::0;11016:2;10996:18;;;10989:30;11055:29;11035:18;;;11028:57;11102:18;;8769:61:0::1;10775:351:1::0;8769:61:0::1;-1:-1:-1::0;;;;;8844:16:0;::::1;8863:1;8844:16:::0;;;:7:::1;:16;::::0;;;;;:20;8841:108:::1;;-1:-1:-1::0;;;;;8920:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8900:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8881:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8841:108:::1;-1:-1:-1::0;;;;;8959:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;8959:27:0::1;8982:4;8959:27:::0;;::::1;::::0;;;8997:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8997:23:0::1;::::0;;::::1;::::0;;8695:333::o;18203:116::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18298:13:::1;3844:1;18298:2;:13;:::i;:::-;18289:22;::::0;:6;:22:::1;:::i;:::-;18275:11;:36:::0;-1:-1:-1;18203:116:0:o;6107:198::-;-1:-1:-1;;;;;6197:20:0;;6173:7;6197:20;;;:11;:20;;;;;;;;6193:49;;;-1:-1:-1;;;;;;6226:16:0;;;;;:7;:16;;;;;;;6107:198::o;6193:49::-;-1:-1:-1;;;;;6280:16:0;;;;;;:7;:16;;;;;;6260:37;;:19;:37::i;1967:94::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;2032:21:::1;2050:1;2032:9;:21::i;:::-;1967:94::o:0;18465:101::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18536:11:::1;:22:::0;;-1:-1:-1;;18536:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18465:101::o;7461:377::-;1245:10;7554:4;7598:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7598:34:0;;;;;;;;;;7651:35;;;;7643:85;;;;-1:-1:-1;;;7643:85:0;;11333:2:1;7643:85:0;;;11315:21:1;11372:2;11352:18;;;11345:30;11411:34;11391:18;;;11384:62;-1:-1:-1;;;11462:18:1;;;11455:35;11507:19;;7643:85:0;11131:401:1;7643:85:0;7739:67;1245:10;7762:7;7771:34;7790:15;7771:16;:34;:::i;7739:67::-;-1:-1:-1;7826:4:0;;7461:377;-1:-1:-1;;;7461:377:0:o;6313:167::-;6391:4;6408:42;1245:10;6432:9;6443:6;6408:9;:42::i;17951:128::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18037:15:::1;:34:::0;;-1:-1:-1;;;;;;18037:34:0::1;-1:-1:-1::0;;;;;18037:34:0;;;::::1;::::0;;;::::1;::::0;;17951:128::o;18087:108::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18163:11:::1;:24:::0;;-1:-1:-1;;;;;;18163:24:0::1;-1:-1:-1::0;;;;;18163:24:0;;;::::1;::::0;;;::::1;::::0;;18087:108::o;18327:130::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18436:13:::1;3844:1;18436:2;:13;:::i;:::-;18427:22;::::0;:6;:22:::1;:::i;:::-;18406:18;:43:::0;-1:-1:-1;18327:130:0:o;9891:151::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;9999:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;9991:5:::1;:43:::0;;;;;;;;9891:151::o;9640:110::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9707:27:0::1;9737:5;9707:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9707:35:0::1;::::0;;9640:110::o;2069:192::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2158:22:0;::::1;2150:73;;;::::0;-1:-1:-1;;;2150:73:0;;11739:2:1;2150:73:0::1;::::0;::::1;11721:21:1::0;11778:2;11758:18;;;11751:30;11817:34;11797:18;;;11790:62;-1:-1:-1;;;11868:18:1;;;11861:36;11914:19;;2150:73:0::1;11537:402:1::0;2150:73:0::1;2234:19;2244:8;2234:9;:19::i;:::-;2069:192:::0;:::o;12946:335::-;-1:-1:-1;;;;;13039:19:0;;13031:68;;;;-1:-1:-1;;;13031:68:0;;12146:2:1;13031:68:0;;;12128:21:1;12185:2;12165:18;;;12158:30;12224:34;12204:18;;;12197:62;-1:-1:-1;;;12275:18:1;;;12268:34;12319:19;;13031:68:0;11944:400:1;13031:68:0;-1:-1:-1;;;;;13118:21:0;;13110:68;;;;-1:-1:-1;;;13110:68:0;;12551:2:1;13110:68:0;;;12533:21:1;12590:2;12570:18;;;12563:30;12629:34;12609:18;;;12602:62;-1:-1:-1;;;12680:18:1;;;12673:32;12722:19;;13110:68:0;12349:398:1;13110:68:0;-1:-1:-1;;;;;13189:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13241:32;;1920:25:1;;;13241:32:0;;1893:18:1;13241:32:0;;;;;;;12946:335;;;:::o;13291:1146::-;13368:4;-1:-1:-1;;;;;13392:18:0;;13384:68;;;;-1:-1:-1;;;13384:68:0;;12954:2:1;13384:68:0;;;12936:21:1;12993:2;12973:18;;;12966:30;13032:34;13012:18;;;13005:62;-1:-1:-1;;;13083:18:1;;;13076:35;13128:19;;13384:68:0;12752:401:1;13384:68:0;-1:-1:-1;;;;;13471:16:0;;13463:64;;;;-1:-1:-1;;;13463:64:0;;13360:2:1;13463:64:0;;;13342:21:1;13399:2;13379:18;;;13372:30;13438:34;13418:18;;;13411:62;-1:-1:-1;;;13489:18:1;;;13482:33;13532:19;;13463:64:0;13158:399:1;13463:64:0;13555:1;13546:6;:10;13538:64;;;;-1:-1:-1;;;13538:64:0;;13764:2:1;13538:64:0;;;13746:21:1;13803:2;13783:18;;;13776:30;13842:34;13822:18;;;13815:62;-1:-1:-1;;;13893:18:1;;;13886:39;13942:19;;13538:64:0;13562:405:1;13538:64:0;13631:15;13641:4;13631:9;:15::i;:::-;13621:6;:25;;13613:86;;;;-1:-1:-1;;;13613:86:0;;14174:2:1;13613:86:0;;;14156:21:1;14213:2;14193:18;;;14186:30;14252:34;14232:18;;;14225:62;-1:-1:-1;;;14303:18:1;;;14296:47;14360:19;;13613:86:0;13972:413:1;13613:86:0;-1:-1:-1;;;;;13719:11:0;;;;;;:5;:11;;;;;;;;13718:12;:26;;;;-1:-1:-1;;;;;;13735:9:0;;;;;;:5;:9;;;;;;;;13734:10;13718:26;13710:58;;;;-1:-1:-1;;;13710:58:0;;14592:2:1;13710:58:0;;;14574:21:1;14631:2;14611:18;;;14604:30;-1:-1:-1;;;14650:18:1;;;14643:49;14709:18;;13710:58:0;14390:343:1;13710:58:0;-1:-1:-1;;;;;13785:24:0;;;;;;:18;:24;;;;;;;;13784:25;:52;;;;-1:-1:-1;;;;;;13814:22:0;;;;;;:18;:22;;;;;;;;13813:23;13784:52;13781:271;;;13870:11;;13860:6;:21;;13852:65;;;;-1:-1:-1;;;13852:65:0;;14940:2:1;13852:65:0;;;14922:21:1;14979:2;14959:18;;;14952:30;15018:33;14998:18;;;14991:61;15069:18;;13852:65:0;14738:355:1;13852:65:0;13941:4;;-1:-1:-1;;;;;13935:10:0;;;13941:4;;13935:10;13932:108;;13981:16;;13971:6;13955:13;13965:2;13955:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;13947:93;;;;-1:-1:-1;;;13947:93:0;;15300:2:1;13947:93:0;;;15282:21:1;15339:2;15319:18;;;15312:30;15378:34;15358:18;;;15351:62;-1:-1:-1;;;15429:18:1;;;15422:36;15475:19;;13947:93:0;15098:402:1;13947:93:0;14064:12;14107:18;;14079:24;14097:4;14079:9;:24::i;:::-;14140:8;;-1:-1:-1;;14079:46:0;;-1:-1:-1;14140:8:0;;;;;14139:9;:24;;;;-1:-1:-1;14152:11:0;;;;14139:24;:35;;;;;14167:7;14139:35;:51;;;;-1:-1:-1;14186:4:0;;-1:-1:-1;;;;;14178:12:0;;;14186:4;;14178:12;;14139:51;:80;;;;-1:-1:-1;;;;;;14195:24:0;;;;;;:18;:24;;;;;;;;14194:25;14139:80;:107;;;;-1:-1:-1;;;;;;14224:22:0;;;;;;:18;:22;;;;;;;;14223:23;14139:107;14136:172;;;14262:34;14277:18;;14262:14;:34::i;:::-;-1:-1:-1;;;;;14355:24:0;;;;;;:18;:24;;;;;;14320:87;;14335:4;;14341:2;;14345:6;;14355:24;;;:50;;-1:-1:-1;;;;;;14383:22:0;;;;;;:18;:22;;;;;;;;14355:50;14353:53;14320:14;:87::i;12232:158::-;12273:7;12294:15;12311;12330:19;:17;:19::i;:::-;12293:56;;-1:-1:-1;12293:56:0;-1:-1:-1;12367:15:0;12293:56;;12367:15;:::i;:::-;12360:22;;;;12232:158;:::o;10769:370::-;10842:36;;:::i;:::-;10903:29;10915:7;10924;10903:11;:29::i;:::-;10891:41;;11052:52;11064:9;11075:7;11084;11093:10;:8;:10::i;:::-;11052:11;:52::i;:::-;11028:20;;;10943:161;11006:20;;;10943:161;10990:14;;;10943:161;10963:25;;;10943:161;;;10769:370;;;;:::o;2269:173::-;2325:16;2344:6;;-1:-1:-1;;;;;2361:17:0;;;-1:-1:-1;;;;;;2361:17:0;;;;;;2394:40;;2344:6;;;;;;;2394:40;;2325:16;2394:40;2314:128;2269:173;:::o;15553:1001::-;5103:8;:15;;-1:-1:-1;;5103:15:0;;;;;15714;;15696;;5103;;15696:33:::1;::::0;::::1;:::i;:::-;15695:40;::::0;15734:1:::1;15695:40;:::i;:::-;15673:62;;15746:32;15808:11;15790:5;:15;;;15781:6;:24;;;;:::i;:::-;:38;;;;:::i;:::-;15746:73:::0;-1:-1:-1;15830:14:0::1;15847:33;15746:73:::0;15847:6;:33:::1;:::i;:::-;15830:50:::0;-1:-1:-1;15918:21:0::1;15952:24;15830:50:::0;15952:16:::1;:24::i;:::-;15989:20;16012:38;16036:14:::0;16012:21:::1;:38;:::i;:::-;16112:15:::0;;15989:61;;-1:-1:-1;16061:19:0::1;::::0;16098:29:::1;::::0;:11;:29:::1;:::i;:::-;16082:46;::::0;:12;:46:::1;:::i;:::-;16185:15:::0;;16061:67;;-1:-1:-1;16139:29:0::1;::::0;16171::::1;::::0;16061:67;16171:29:::1;:::i;:::-;16139:61:::0;-1:-1:-1;16216:25:0;;16213:158:::1;;16298:61;16311:24;16337:21;16298:12;:61::i;:::-;16424:15:::0;;16383:20:::1;::::0;16406:15:::1;:11:::0;16420:1:::1;16406:15;:::i;:::-;:33;;;;:::i;:::-;16383:56:::0;-1:-1:-1;16453:16:0;;16450:95:::1;;16493:15;::::0;16485:48:::1;::::0;-1:-1:-1;;;;;16493:15:0::1;16520:12:::0;16485:34:::1;:48::i;:::-;-1:-1:-1::0;;5141:8:0;:16;;-1:-1:-1;;5141:16:0;;;-1:-1:-1;;;;;;;15553:1001:0:o;14520:1025::-;14629:28;14660;14671:7;14680;14660:10;:28::i;:::-;-1:-1:-1;;;;;14705:19:0;;;;;;:11;:19;;;;;;14629:59;;-1:-1:-1;14705:19:0;;14701:115;;;-1:-1:-1;;;;;14781:15:0;;;;;;:7;:15;;;;;;:23;;14797:7;;14781:23;:::i;:::-;-1:-1:-1;;;;;14763:15:0;;;;;;:7;:15;;;;;:41;14701:115;-1:-1:-1;;;;;14830:22:0;;;;;;:11;:22;;;;;;;;14826:130;;;14927:17;;;;-1:-1:-1;;;;;14908:18:0;;;;;;:7;:18;;;;;;:36;;14927:17;14908:36;:::i;:::-;-1:-1:-1;;;;;14887:18:0;;;;;;:7;:18;;;;;:57;14826:130;15002:9;;-1:-1:-1;;;;;14986:15:0;;15002:9;14986:15;;;:7;:15;;;;;;:25;;15002:9;14986:25;:::i;:::-;-1:-1:-1;;;;;14968:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;15062:17;;;15043:18;;;;;;;;;;:36;;15062:17;15043:36;:::i;:::-;-1:-1:-1;;;;;15022:18:0;;;;;;:7;:18;;;;;;;:57;;;;15103:6;;;:10;;;:24;;;15126:1;15117;:6;;;:10;15103:24;15100:56;;;15129:27;15141:1;:6;;;15149:1;:6;;;15129:11;:27::i;:::-;15185:1;15170;:12;;;:16;:36;;;;15205:1;15190;:12;;;:16;15170:36;15167:82;;;15208:41;15223:1;:12;;;15236:1;:12;;;15208:14;:41::i;:::-;15278:1;15263;:12;;;:16;:36;;;;15298:1;15283;:12;;;:16;15263:36;15260:83;;;15301:42;15316:1;:12;;;15330:1;:12;;;15301:14;:42::i;:::-;15386:9;-1:-1:-1;;;;;15369:46:0;15378:6;-1:-1:-1;;;;;15369:46:0;;15397:1;:17;;;15369:46;;;;1920:25:1;;1908:2;1893:18;;1774:177;15369:46:0;;;;;;;;15459:1;15444;:12;;;15429:1;:12;;;:27;;;;:::i;:::-;:31;15426:101;;;15492:4;-1:-1:-1;;;;;15467:60:0;15476:6;-1:-1:-1;;;;;15467:60:0;;15514:1;:12;;;15499:1;:12;;;:27;;;;:::i;:::-;15467:60;;1920:25:1;;;1908:2;1893:18;15467:60:0;;;;;;;15426:101;14618:927;14520:1025;;;;:::o;12398:540::-;12495:7;;12531;;12448;;;;;12549:279;12573:9;:16;12569:20;;12549:279;;;12639:7;12615;:21;12623:9;12633:1;12623:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12623:12:0;12615:21;;;;;;;;;;;;;:31;;:66;;;12674:7;12650;:21;12658:9;12668:1;12658:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12658:12:0;12650:21;;;;;;;;;;;;;:31;12615:66;12611:97;;;12691:7;;12700;;12683:25;;;;;;;12398:540;;:::o;12611:97::-;12741:7;:21;12749:9;12759:1;12749:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12749:12:0;12741:21;;;;;;;;;;;;;12733:29;;:7;:29;:::i;:::-;12723:39;;12795:7;:21;12803:9;12813:1;12803:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12803:12:0;12795:21;;;;;;;;;;;;;12787:29;;:7;:29;:::i;:::-;12777:39;-1:-1:-1;12591:3:0;;;;:::i;:::-;;;;12549:279;;;;12860:7;;12852;;:15;;;;:::i;:::-;12842:7;:25;12838:56;;;12877:7;;12886;;12869:25;;;;;;12398:540;;:::o;12838:56::-;12913:7;;12922;;-1:-1:-1;12398:540:0;-1:-1:-1;12398:540:0:o;11147:449::-;11221:28;;:::i;:::-;11268:7;11264:86;;11290:17;;;:27;;;11330:8;;11264:86;11379:5;:9;11389:3;;11371:17;;:7;:17;:::i;:::-;:21;;;;:::i;:::-;11362:6;;;:30;11426:15;;11442:3;;11418:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;11403:12;;;:42;11479:15;;11495:3;;11471:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;11456:12;;;:42;;;11544:12;;;;11537:6;;;;11529:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;11509:17;;;:60;11147:449;;;;:::o;11604:620::-;11729:15;;;;;11846:19;11854:11;11846:7;:19;:::i;:::-;11836:29;;11882:7;11878:69;;-1:-1:-1;11911:7:0;;-1:-1:-1;11929:1:0;;-1:-1:-1;11929:1:0;;-1:-1:-1;11929:1:0;11904:31;;11878:69;11973:11;11966:1;:6;;;:18;;;;:::i;:::-;11959:25;;12021:11;12008:1;:12;;;:24;;;;:::i;:::-;11995:37;;12069:11;12056:1;:12;;;:24;;;;:::i;:::-;12043:37;-1:-1:-1;12043:37:0;12123:10;12110:12;12118:4;12110:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;12091:53;;11604:620;;;;;;;;;;:::o;17069:562::-;17219:16;;;17233:1;17219:16;;;;;;;;17195:21;;17219:16;;;;;;;;;;-1:-1:-1;17219:16:0;17195:40;;17264:4;17246;17251:1;17246:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17246:23:0;;;-1:-1:-1;;;;;17246:23:0;;;;;17290:6;;;;;;;;;-1:-1:-1;;;;;17290:6:0;-1:-1:-1;;;;;17290:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17280:4;17285:1;17280:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17280:23:0;;;:7;;;;;;;;;:23;17348:6;;17316:53;;17333:4;;17348:6;;;;17357:11;17316:8;:53::i;:::-;17408:6;;:215;;-1:-1:-1;;;17408:215:0;;:6;;;;-1:-1:-1;;;;;17408:6:0;;:57;;:215;;17480:11;;17506:1;;17550:4;;17577;;17597:15;;17408:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17124:507;17069:562;:::o;16562:499::-;16742:6;;16710:53;;16727:4;;16742:6;;;-1:-1:-1;;;;;16742:6:0;16751:11;16710:8;:53::i;:::-;16806:6;;17001:11;;16806:247;;-1:-1:-1;;;16806:247:0;;16869:4;16806:247;;;17219:34:1;17269:18;;;17262:34;;;16915:1:0;17312:18:1;;;17305:34;;;17355:18;;;17348:34;-1:-1:-1;;;;;17001:11:0;;;17398:19:1;;;17391:44;17027:15:0;17451:19:1;;;17444:35;16806:6:0;;;;;;:22;;16836:9;;17153:19:1;;16806:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;808:317::-;923:6;898:21;:31;;890:73;;;;-1:-1:-1;;;890:73:0;;18003:2:1;890:73:0;;;17985:21:1;18042:2;18022:18;;;18015:30;18081:31;18061:18;;;18054:59;18130:18;;890:73:0;17801:353:1;890:73:0;977:12;995:9;-1:-1:-1;;;;;995:14:0;1017:6;995:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;976:52;;;1047:7;1039:78;;;;-1:-1:-1;;;1039:78:0;;18571:2:1;1039:78:0;;;18553:21:1;18610:2;18590:18;;;18583:30;18649:34;18629:18;;;18622:62;18720:28;18700:18;;;18693:56;18766:19;;1039:78:0;18369:422:1;1039:78:0;879:246;808:317;;:::o;10050:123::-;10128:4;10118:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10143:11:0;:22;;10161:4;;10143:11;:15;;:22;;10161:4;;10143:22;:::i;:::-;;;;-1:-1:-1;;;;10050:123:0:o;10181:284::-;10288:10;10264:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10334:4:0;10314:26;;;;:11;:26;;;;;;;;10311:101;;;10382:4;10366:22;;;;:7;:22;;;;;:34;;10390:10;;10366:22;:34;;10390:10;;10366:34;:::i;:::-;;;;-1:-1:-1;;10311:101:0;10438:4;10422:22;;;;:7;:22;;;;;:35;;10447:10;;10422:22;:35;;10447:10;;10422:35;:::i;10473:284::-;10580:10;10556:11;:21;;;:34;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:118;236:5;229:13;222:21;215:5;212:32;202:60;;258:1;255;248:12;273:382;338:6;346;399:2;387:9;378:7;374:23;370:32;367:52;;;415:1;412;405:12;367:52;454:9;441:23;473:31;498:5;473:31;:::i;:::-;523:5;-1:-1:-1;580:2:1;565:18;;552:32;593:30;552:32;593:30;:::i;:::-;642:7;632:17;;;273:382;;;;;:::o;660:597::-;772:4;801:2;830;819:9;812:21;862:6;856:13;905:6;900:2;889:9;885:18;878:34;930:1;940:140;954:6;951:1;948:13;940:140;;;1049:14;;;1045:23;;1039:30;1015:17;;;1034:2;1011:26;1004:66;969:10;;940:140;;;1098:6;1095:1;1092:13;1089:91;;;1168:1;1163:2;1154:6;1143:9;1139:22;1135:31;1128:42;1089:91;-1:-1:-1;1241:2:1;1220:15;-1:-1:-1;;1216:29:1;1201:45;;;;1248:2;1197:54;;660:597;-1:-1:-1;;;660:597:1:o;1262:315::-;1330:6;1338;1391:2;1379:9;1370:7;1366:23;1362:32;1359:52;;;1407:1;1404;1397:12;1359:52;1446:9;1433:23;1465:31;1490:5;1465:31;:::i;:::-;1515:5;1567:2;1552:18;;;;1539:32;;-1:-1:-1;;;1262:315:1:o;1956:180::-;2015:6;2068:2;2056:9;2047:7;2043:23;2039:32;2036:52;;;2084:1;2081;2074:12;2036:52;-1:-1:-1;2107:23:1;;1956:180;-1:-1:-1;1956:180:1:o;2141:456::-;2218:6;2226;2234;2287:2;2275:9;2266:7;2262:23;2258:32;2255:52;;;2303:1;2300;2293:12;2255:52;2342:9;2329:23;2361:31;2386:5;2361:31;:::i;:::-;2411:5;-1:-1:-1;2468:2:1;2453:18;;2440:32;2481:33;2440:32;2481:33;:::i;:::-;2141:456;;2533:7;;-1:-1:-1;;;2587:2:1;2572:18;;;;2559:32;;2141:456::o;2791:247::-;2850:6;2903:2;2891:9;2882:7;2878:23;2874:32;2871:52;;;2919:1;2916;2909:12;2871:52;2958:9;2945:23;2977:31;3002:5;2977:31;:::i;3043:388::-;3111:6;3119;3172:2;3160:9;3151:7;3147:23;3143:32;3140:52;;;3188:1;3185;3178:12;3140:52;3227:9;3214:23;3246:31;3271:5;3246:31;:::i;:::-;3296:5;-1:-1:-1;3353:2:1;3338:18;;3325:32;3366:33;3325:32;3366:33;:::i;3644:309::-;3709:6;3717;3770:2;3758:9;3749:7;3745:23;3741:32;3738:52;;;3786:1;3783;3776:12;3738:52;3822:9;3809:23;3799:33;;3882:2;3871:9;3867:18;3854:32;3895:28;3917:5;3895:28;:::i;4282:241::-;4338:6;4391:2;4379:9;4370:7;4366:23;4362:32;4359:52;;;4407:1;4404;4397:12;4359:52;4446:9;4433:23;4465:28;4487:5;4465:28;:::i;4528:316::-;4605:6;4613;4621;4674:2;4662:9;4653:7;4649:23;4645:32;4642:52;;;4690:1;4687;4680:12;4642:52;-1:-1:-1;;4713:23:1;;;4783:2;4768:18;;4755:32;;-1:-1:-1;4834:2:1;4819:18;;;4806:32;;4528:316;-1:-1:-1;4528:316:1:o;5072:356::-;5274:2;5256:21;;;5293:18;;;5286:30;5352:34;5347:2;5332:18;;5325:62;5419:2;5404:18;;5072:356::o;5433:127::-;5494:10;5489:3;5485:20;5482:1;5475:31;5525:4;5522:1;5515:15;5549:4;5546:1;5539:15;5565:422;5654:1;5697:5;5654:1;5711:270;5732:7;5722:8;5719:21;5711:270;;;5791:4;5787:1;5783:6;5779:17;5773:4;5770:27;5767:53;;;5800:18;;:::i;:::-;5850:7;5840:8;5836:22;5833:55;;;5870:16;;;;5833:55;5949:22;;;;5909:15;;;;5711:270;;;5715:3;5565:422;;;;;:::o;5992:806::-;6041:5;6071:8;6061:80;;-1:-1:-1;6112:1:1;6126:5;;6061:80;6160:4;6150:76;;-1:-1:-1;6197:1:1;6211:5;;6150:76;6242:4;6260:1;6255:59;;;;6328:1;6323:130;;;;6235:218;;6255:59;6285:1;6276:10;;6299:5;;;6323:130;6360:3;6350:8;6347:17;6344:43;;;6367:18;;:::i;:::-;-1:-1:-1;;6423:1:1;6409:16;;6438:5;;6235:218;;6537:2;6527:8;6524:16;6518:3;6512:4;6509:13;6505:36;6499:2;6489:8;6486:16;6481:2;6475:4;6472:12;6468:35;6465:77;6462:159;;;-1:-1:-1;6574:19:1;;;6606:5;;6462:159;6653:34;6678:8;6672:4;6653:34;:::i;:::-;6723:6;6719:1;6715:6;6711:19;6702:7;6699:32;6696:58;;;6734:18;;:::i;:::-;6772:20;;5992:806;-1:-1:-1;;;5992:806:1:o;6803:140::-;6861:5;6890:47;6931:4;6921:8;6917:19;6911:4;6890:47;:::i;6948:168::-;6988:7;7054:1;7050;7046:6;7042:14;7039:1;7036:21;7031:1;7024:9;7017:17;7013:45;7010:71;;;7061:18;;:::i;:::-;-1:-1:-1;7101:9:1;;6948:168::o;7530:125::-;7570:4;7598:1;7595;7592:8;7589:34;;;7603:18;;:::i;:::-;-1:-1:-1;7640:9:1;;7530:125::o;8422:217::-;8462:1;8488;8478:132;;8532:10;8527:3;8523:20;8520:1;8513:31;8567:4;8564:1;8557:15;8595:4;8592:1;8585:15;8478:132;-1:-1:-1;8624:9:1;;8422:217::o;8996:127::-;9057:10;9052:3;9048:20;9045:1;9038:31;9088:4;9085:1;9078:15;9112:4;9109:1;9102:15;9128:127;9189:10;9184:3;9180:20;9177:1;9170:31;9220:4;9217:1;9210:15;9244:4;9241:1;9234:15;9260:135;9299:3;9320:17;;;9317:43;;9340:18;;:::i;:::-;-1:-1:-1;9387:1:1;9376:13;;9260:135::o;9400:128::-;9440:3;9471:1;9467:6;9464:1;9461:13;9458:39;;;9477:18;;:::i;:::-;-1:-1:-1;9513:9:1;;9400:128::o;10525:245::-;10592:6;10645:2;10633:9;10624:7;10620:23;10616:32;10613:52;;;10661:1;10658;10651:12;10613:52;10693:9;10687:16;10712:28;10734:5;10712:28;:::i;15637:251::-;15707:6;15760:2;15748:9;15739:7;15735:23;15731:32;15728:52;;;15776:1;15773;15766:12;15728:52;15808:9;15802:16;15827:31;15852:5;15827:31;:::i;15893:980::-;16155:4;16203:3;16192:9;16188:19;16234:6;16223:9;16216:25;16260:2;16298:6;16293:2;16282:9;16278:18;16271:34;16341:3;16336:2;16325:9;16321:18;16314:31;16365:6;16400;16394:13;16431:6;16423;16416:22;16469:3;16458:9;16454:19;16447:26;;16508:2;16500:6;16496:15;16482:29;;16529:1;16539:195;16553:6;16550:1;16547:13;16539:195;;;16618:13;;-1:-1:-1;;;;;16614:39:1;16602:52;;16709:15;;;;16674:12;;;;16650:1;16568:9;16539:195;;;-1:-1:-1;;;;;;;16790:32:1;;;;16785:2;16770:18;;16763:60;-1:-1:-1;;;16854:3:1;16839:19;16832:35;16751:3;15893:980;-1:-1:-1;;;15893:980:1:o;17490:306::-;17578:6;17586;17594;17647:2;17635:9;17626:7;17622:23;17618:32;17615:52;;;17663:1;17660;17653:12;17615:52;17692:9;17686:16;17676:26;;17742:2;17731:9;17727:18;17721:25;17711:35;;17786:2;17775:9;17771:18;17765:25;17755:35;;17490:306;;;;;:::o

Swarm Source

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