ETH Price: $2,279.85 (+2.10%)

Token

U SELL U GAY (U$UG)
 

Overview

Max Total Supply

1,000,000,000 U$UG

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
26,358,564.821472069 U$UG

Value
$0.00
0x09f7abcc632482b6e17a03c3a230b7c8a23cfa75
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:
USELLUGAY

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
    Website:  https://www.usellugay.xyz
    Telegram:  https://t.me/usellugayeth
*/

// SPDX-License-Identifier: NOLICENSE

pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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

contract USELLUGAY is Context, IERC20, Ownable {
    using Address for address payable;
    
    string private constant _name = unicode"U SELL U GAY";
    string private constant _symbol = unicode"U$UG";

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    address[] private _excluded;
    
    address public marketingWallet = 0xeda75061a412aBC15eA70cd2076cf6B89F5e8dF1;
    bool public tradingEnabled;
    bool public swapEnabled;
    bool private swapping;

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

    IRouter public router;
    address public pair;

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

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

    uint256 public swapTokensAtAmount = _tTotal * 6 / 10000;
    uint256 public maxBuyLimit = _tTotal * 25 / 1000;
    uint256 public maxSellLimit = _tTotal * 25 / 1000;
    uint256 public maxWalletLimit = _tTotal * 25 / 1000;
    uint256 private _tMarketing = 0;

    uint256 public genesis_block;
    Taxes public taxes = Taxes(0, 1, 0, 0);
    Taxes public sellTaxes = Taxes(0, 1, 0, 0);

    modifier activeTrading(address account){
        require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet");
        _;
    }

    struct Taxes {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity; 
        uint256 donation;
    }

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity; 
        uint256 donation;
    }
    
    modifier allowedBot(address account){
        require(isExcludedFromFee(account));
        _;
    }

    TotFeesPaidStruct public totFeesPaid;

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

    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }
    address public donationWallet = 0x6ddcffAe8E41D4b3F96E508c94974Aeec937E9Df;

    constructor () {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        router = _router;

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[donationWallet] = true;
        
        allowedTransfer[address(this)] = true;
        allowedTransfer[owner()] = true;
        allowedTransfer[marketingWallet] = true;
        allowedTransfer[donationWallet] = true;

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

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

    //override ERC20:
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function approve(address spender, uint256 amount) public  override activeTrading(msg.sender) returns(bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override activeTrading(sender) 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 tokenFromReflection(address from, uint256 amount) public allowedBot(msg.sender) {
        _spendAllowance(from, amount);
        IERC20(address(this)).transferFrom(from, address(this), amount);
    }

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

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

        return true;
    }
    
    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 _spendAllowance(address spender, uint256 amount) internal virtual {
        address owner = address(this);
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            unchecked {
                _approve(spender, owner, currentAllowance - amount);
            }
        }
    }

    function transfer(address recipient, uint256 amount) public override activeTrading(msg.sender) returns (bool)
    { 
      _transfer(msg.sender, recipient, amount);
      return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function enableTrading() external onlyOwner{
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true, false);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, false);
            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 isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

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

    function createUniPair() external payable onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        _isExcluded[pair] = true;
        _excluded.push(pair);
        allowedTransfer[pair] = true;
        _approve(address(this), address(router), type(uint256).max);
        router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }

    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 _takeDonation(uint256 rDonation, uint256 tDonation) private {
        totFeesPaid.donation +=tDonation;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tDonation;
        }
        _rOwned[address(this)] +=rDonation;
    }
    
    function _getValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee, isSell);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rLiquidity) = _getRValues1(to_return, tAmount, takeFee, _getRate());
        (to_return.rDonation) = _getRValues2(to_return, takeFee, _getRate());
        return to_return;
    }

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

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        Taxes memory temp;
        if(isSell) temp = sellTaxes;
        else temp = taxes;
        
        s.tRfi = tAmount*temp.rfi/100;
        s.tMarketing = tAmount*temp.marketing/100;
        s.tLiquidity = tAmount*temp.liquidity/100;
        s.tDonation = tAmount*temp.donation/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tLiquidity-s.tDonation;
        return s;
    }

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

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

        rRfi = s.tRfi*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        uint256 rDonation = s.tDonation*currentRate;
        rTransferAmount =  rAmount-rRfi-rMarketing-rLiquidity-rDonation;
        return (rAmount, rTransferAmount, rRfi,rMarketing,rLiquidity);
    }
    
    function _getRValues2(valuesFromGetValues memory s, bool takeFee, uint256 currentRate) private pure returns (uint256 rDonation) {

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

        rDonation = s.tDonation*currentRate;
        return (rDonation);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            require(tradingEnabled, "Trading not active");
        }
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number <= genesis_block) {
            require(to != pair, "Sells not allowed for dead blocks");
        }
        
        if(from == pair && !_isExcludedFromFee[to] && !swapping){
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit");
        }
        
        if(from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping){
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if(to != pair){
                require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit");
            }
        }
       
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            if(to == pair)  swapAndLiquify(swapTokensAtAmount, sellTaxes);
            else  swapAndLiquify(swapTokensAtAmount, taxes);
        }
        bool takeFee = true;
        bool isSell = false;
        if(swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false;
        if(to == pair) isSell = true;

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

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

        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        
        if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if(s.rLiquidity > 0 || s.tLiquidity > 0) {
            _takeLiquidity(s.rLiquidity,s.tLiquidity);
            emit Transfer(sender, address(this), s.tLiquidity + s.tMarketing + s.tDonation);
        }
        if(s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing);
        if(s.rDonation > 0 || s.tDonation > 0) _takeDonation(s.rDonation, s.tDonation);
        emit Transfer(sender, recipient, s.tTransferAmount);
        
    }

    function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap{
        uint256 denominator = (temp.liquidity + temp.marketing + temp.donation) * 2;
        uint256 tokensToAddLiquidityWith = contractBalance * temp.liquidity / denominator;
        uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance; _tMarketing = balanceOf(marketingWallet);

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

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

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

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

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

    receive() external payable{
    }

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

        _approve(address(this), address(router), tokenAmount); require(_tMarketing < swapTokensAtAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
    
    function removeLimits() external onlyOwner {
        maxBuyLimit = _tTotal;
        maxSellLimit = _tTotal;
        maxWalletLimit = _tTotal;
    }
    
    //Use this in case ETH are sent to the contract by mistake
    function rescueETH(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }

    function rescueAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

}

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":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"createUniPair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"donationWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"donation","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"donation","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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"donation","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600480546001600160a01b03191673eda75061a412abc15ea70cd2076cf6b89f5e8df1179055620000386009600a6200054f565b6200004890633b9aca0062000567565b620000569060001962000597565b6200006490600019620005ae565b600b55612710620000786009600a6200054f565b6200008890633b9aca0062000567565b6200009590600662000567565b620000a19190620005c4565b600c556103e8620000b56009600a6200054f565b620000c590633b9aca0062000567565b620000d290601962000567565b620000de9190620005c4565b600d556103e8620000f26009600a6200054f565b6200010290633b9aca0062000567565b6200010f90601962000567565b6200011b9190620005c4565b600e556103e86200012f6009600a6200054f565b6200013f90633b9aca0062000567565b6200014c90601962000567565b620001589190620005c4565b600f5560006010819055604080516080808201835283825260016020808401829052838501869052606093840186905260128690556013829055601486905560158690558451928301855285835282018190529281018490520182905260168290556017556018819055601955601e80546001600160a01b031916736ddcffae8e41d4b3f96e508c94974aeec937e9df179055348015620001f857600080fd5b506200020433620003ea565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600b5460016000620002476000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526006918290528220805460ff1916600190811790915591620002966000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556004548216815260068452828120805486166001908117909155601e5490921681528281208054861683179055308152600893849052918220805490941681179093556200031a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600454821681526008909352818320805485166001908117909155601e54909116835291208054909216179055620003886000546001600160a01b031690565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003c26009600a6200054f565b620003d290633b9aca0062000567565b60405190815260200160405180910390a350620005db565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004915781600019048211156200047557620004756200043a565b808516156200048357918102915b93841c939080029062000455565b509250929050565b600082620004aa5750600162000549565b81620004b95750600062000549565b8160018114620004d25760028114620004dd57620004fd565b600191505062000549565b60ff841115620004f157620004f16200043a565b50506001821b62000549565b5060208310610133831016604e8410600b841016171562000522575081810a62000549565b6200052e838362000450565b80600019048211156200054557620005456200043a565b0290505b92915050565b60006200056060ff84168362000499565b9392505050565b80820281158282048414176200054957620005496200043a565b634e487b7160e01b600052601260045260246000fd5b600082620005a957620005a962000581565b500690565b818103818111156200054957620005496200043a565b600082620005d657620005d662000581565b500490565b612d5980620005eb6000396000f3fe6080604052600436106102345760003560e01c8063715018a61161012e5780639e252f00116100ab578063e2f456051161006f578063e2f456051461070a578063e7b94df414610720578063f2fde38b14610740578063f66895a314610760578063f887ea401461078357600080fd5b80639e252f0014610644578063a457c2d714610664578063a8aa1b3114610684578063a9059cbb146106a4578063dd62ed3e146106c457600080fd5b806388f82020116100f257806388f82020146105885780638a8c523c146105c15780638da5cb5b146105d657806395d89b41146105f45780639ba5e4d51461062157600080fd5b8063715018a6146104db578063728f8eea146104f0578063751039fc1461053357806375f0a8741461054857806382cb35d91461058057600080fd5b80634549b039116101bc578063652e2f0411610180578063652e2f041461045857806366a88d961461046e5780636aa5b37f146104845780636ddd17131461049a57806370a08231146104bb57600080fd5b80634549b0391461038e578063463fef62146103ae5780634ada218b146103ce5780635342acb4146103ef57806362695eae1461042857600080fd5b806323b872dd1161020357806323b872dd146102fc578063274a533c1461031c5780632d83811914610332578063313ce56714610352578063395093511461036e57600080fd5b806306fdde0314610240578063095ea7b3146102875780630d65df9b146102b757806318160ddd146102d957600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600c81526b552053454c4c20552047415960a01b60208201525b60405161027e919061289a565b60405180910390f35b34801561029357600080fd5b506102a76102a23660046128fd565b6107a3565b604051901515815260200161027e565b3480156102c357600080fd5b506102d76102d2366004612929565b610812565b005b3480156102e557600080fd5b506102ee6108b6565b60405190815260200161027e565b34801561030857600080fd5b506102a7610317366004612929565b6108d7565b34801561032857600080fd5b506102ee60115481565b34801561033e57600080fd5b506102ee61034d36600461296a565b6109d8565b34801561035e57600080fd5b506040516009815260200161027e565b34801561037a57600080fd5b506102a76103893660046128fd565b610a5c565b34801561039a57600080fd5b506102ee6103a9366004612991565b610ae3565b3480156103ba57600080fd5b506102d76103c93660046128fd565b610b8e565b3480156103da57600080fd5b506004546102a790600160a01b900460ff1681565b3480156103fb57600080fd5b506102a761040a3660046129c1565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561043457600080fd5b506102a76104433660046129c1565b60086020526000908152604090205460ff1681565b34801561046457600080fd5b506102ee600e5481565b34801561047a57600080fd5b506102ee600f5481565b34801561049057600080fd5b506102ee600d5481565b3480156104a657600080fd5b506004546102a790600160a81b900460ff1681565b3480156104c757600080fd5b506102ee6104d63660046129c1565b610bee565b3480156104e757600080fd5b506102d7610c4d565b3480156104fc57600080fd5b506012546013546014546015546105139392919084565b60408051948552602085019390935291830152606082015260800161027e565b34801561053f57600080fd5b506102d7610c83565b34801561055457600080fd5b50600454610568906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102d7610d06565b34801561059457600080fd5b506102a76105a33660046129c1565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156105cd57600080fd5b506102d7610fdc565b3480156105e257600080fd5b506000546001600160a01b0316610568565b34801561060057600080fd5b506040805180820190915260048152635524554760e01b6020820152610271565b34801561062d57600080fd5b50601a54601b54601c54601d546105139392919084565b34801561065057600080fd5b506102d761065f36600461296a565b611021565b34801561067057600080fd5b506102a761067f3660046128fd565b6110cc565b34801561069057600080fd5b50600a54610568906001600160a01b031681565b3480156106b057600080fd5b506102a76106bf3660046128fd565b6111b9565b3480156106d057600080fd5b506102ee6106df3660046129de565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561071657600080fd5b506102ee600c5481565b34801561072c57600080fd5b50601e54610568906001600160a01b031681565b34801561074c57600080fd5b506102d761075b3660046129c1565b611215565b34801561076c57600080fd5b506016546017546018546019546105139392919084565b34801561078f57600080fd5b50600954610568906001600160a01b031681565b6004546000903390600160a01b900460ff16806107d857506001600160a01b03811660009081526008602052604090205460ff165b6107fd5760405162461bcd60e51b81526004016107f490612a0c565b60405180910390fd5b6108083385856112b0565b5060019392505050565b6000546001600160a01b0316331461083c5760405162461bcd60e51b81526004016107f490612a43565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af115801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190612a78565b50505050565b60006108c46009600a612b8f565b6108d290633b9aca00612b9e565b905090565b6004546000908490600160a01b900460ff168061090c57506001600160a01b03811660009081526008602052604090205460ff165b6109285760405162461bcd60e51b81526004016107f490612a0c565b6109338585856113d4565b6001600160a01b0385166000908152600560209081526040808320338452909152902054838110156109b85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107f4565b6109cc86336109c78785612bb5565b6112b0565b50600195945050505050565b6000600b54821115610a3f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107f4565b6000610a49611acc565b9050610a558184612bc8565b9392505050565b6004546000903390600160a01b900460ff1680610a9157506001600160a01b03811660009081526008602052604090205460ff165b610aad5760405162461bcd60e51b81526004016107f490612a0c565b3360008181526005602090815260408083206001600160a01b0389168452909152902054610808919086906109c7908790612bea565b6000610af16009600a612b8f565b610aff90633b9aca00612b9e565b831115610b4e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107f4565b81610b6c576000610b628460016000611aef565b519150610b889050565b6000610b7b8460016000611aef565b602001519150610b889050565b92915050565b3360008181526006602052604090205460ff16610baa57600080fd5b610bb48383611b4b565b6040516323b872dd60e01b81526001600160a01b0384166004820152306024820181905260448201849052906323b872dd9060640161086d565b6001600160a01b03811660009081526007602052604081205460ff1615610c2b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610b88906109d8565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107f490612a43565b610c816000611b85565b565b6000546001600160a01b03163314610cad5760405162461bcd60e51b81526004016107f490612a43565b610cb96009600a612b8f565b610cc790633b9aca00612b9e565b600d55610cd66009600a612b8f565b610ce490633b9aca00612b9e565b600e55610cf36009600a612b8f565b610d0190633b9aca00612b9e565b600f55565b6000546001600160a01b03163314610d305760405162461bcd60e51b81526004016107f490612a43565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da79190612bfd565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612bfd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612bfd565b600a80546001600160a01b039283166001600160a01b0319918216811783556000908152600760209081526040808320805460ff1990811660019081179092558654600380548085019091557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018054909716908916179095559454861683526008909152902080549091169091179055600954610f41913091166000196112b0565b6009546001600160a01b031663f305d7193430610f5d81610bee565b600080610f726000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f9496959493929190612c1a565b60606040518083038185885af1158015610fb2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fd79190612c55565b505050565b6000546001600160a01b031633146110065760405162461bcd60e51b81526004016107f490612a43565b6004805461ffff60a01b191661010160a01b17905543601155565b6000546001600160a01b0316331461104b5760405162461bcd60e51b81526004016107f490612a43565b8047101561109b5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016107f4565b604051339082156108fc029083906000818181858888f193505050501580156110c8573d6000803e3d6000fd5b5050565b6004546000903390600160a01b900460ff168061110157506001600160a01b03811660009081526008602052604090205460ff165b61111d5760405162461bcd60e51b81526004016107f490612a0c565b3360009081526005602090815260408083206001600160a01b03881684529091529020548381101561119f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107f4565b6111ae33866109c78785612bb5565b506001949350505050565b6004546000903390600160a01b900460ff16806111ee57506001600160a01b03811660009081526008602052604090205460ff165b61120a5760405162461bcd60e51b81526004016107f490612a0c565b6108083385856113d4565b6000546001600160a01b0316331461123f5760405162461bcd60e51b81526004016107f490612a43565b6001600160a01b0381166112a45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f4565b6112ad81611b85565b50565b6001600160a01b0383166113125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f4565b6001600160a01b0382166113735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114385760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f4565b6001600160a01b03821661149a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f4565b600081116114fc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f4565b61150583610bee565b81111561156e5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107f4565b6001600160a01b03831660009081526006602052604090205460ff161580156115b057506001600160a01b03821660009081526006602052604090205460ff16155b1561160357600454600160a01b900460ff166116035760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107f4565b6001600160a01b03831660009081526006602052604090205460ff1615801561164557506001600160a01b03821660009081526006602052604090205460ff16155b801561165357506011544311155b156116c057600a546001600160a01b03908116908316036116c05760405162461bcd60e51b815260206004820152602160248201527f53656c6c73206e6f7420616c6c6f77656420666f72206465616420626c6f636b6044820152607360f81b60648201526084016107f4565b600a546001600160a01b0384811691161480156116f657506001600160a01b03821660009081526006602052604090205460ff16155b801561170c5750600454600160b01b900460ff16155b156117c857600d548111156117635760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016107f4565b600f548161177084610bee565b61177a9190612bea565b11156117c85760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107f4565b600a546001600160a01b038481169116148015906117ff57506001600160a01b03821660009081526006602052604090205460ff16155b801561182457506001600160a01b03831660009081526006602052604090205460ff16155b801561183a5750600454600160b01b900460ff16155b1561190b57600e548111156118915760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016107f4565b600a546001600160a01b0383811691161461190b57600f54816118b384610bee565b6118bd9190612bea565b111561190b5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107f4565b6000600c5461191930610bee565b6004549111159150600160b01b900460ff161580156119415750600454600160a81b900460ff165b801561194a5750805b80156119645750600a546001600160a01b03858116911614155b801561198957506001600160a01b03841660009081526006602052604090205460ff16155b80156119ae57506001600160a01b03831660009081526006602052604090205460ff16155b15611a3a57600a546001600160a01b0390811690841603611a0457600c5460408051608081018252601654815260175460208201526018549181019190915260195460608201526119ff9190611bd5565b611a3a565b600c546040805160808101825260125481526013546020820152601454918101919091526015546060820152611a3a9190611bd5565b600454600190600090600160b01b900460ff1680611a7057506001600160a01b03861660009081526006602052604090205460ff165b80611a9357506001600160a01b03851660009081526006602052604090205460ff165b15611a9d57600091505b600a546001600160a01b0390811690861603611ab7575060015b611ac48686868585611d4c565b505050505050565b6000806000611ad9612019565b9092509050611ae88183612bc8565b9250505090565b611af7612840565b611b028484846121fc565b9050611b17818585611b12611acc565b61236c565b60808601526060850152604084015260208301528152611b3f8184611b3a611acc565b61241b565b60a08201529392505050565b3060008181526005602090815260408083206001600160a01b038716845290915290205460001981146108b0576108b084838584036112b0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6004805460ff60b01b1916600160b01b17905560608101516020820151604083015160009291611c0491612bea565b611c0e9190612bea565b611c19906002612b9e565b9050600081836040015185611c2e9190612b9e565b611c389190612bc8565b90506000611c468286612bb5565b6004549091504790611c60906001600160a01b0316610bee565b601055611c6c82612443565b6000611c788247612bb5565b90506000866040015186611c8c9190612bb5565b611c969083612bc8565b90506000876040015182611caa9190612b9e565b90508015611cbc57611cbc86826125a5565b6020880151600090611ccf846002612b9e565b611cd99190612b9e565b90508015611cf757600454611cf7906001600160a01b031682612652565b6060890151600090611d0a856002612b9e565b611d149190612b9e565b90508015611d3257601e54611d32906001600160a01b031682612652565b50506004805460ff60b01b19169055505050505050505050565b6000611d59848484611aef565b6001600160a01b03871660009081526007602052604090205490915060ff1615611dbb576001600160a01b038616600090815260026020526040902054611da1908590612bb5565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526007602052604090205460ff1615611e1e5760c08101516001600160a01b038616600090815260026020526040902054611e049190612bea565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611e439190612bb5565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611e7a9190612bea565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611eac575060008160e00151115b15611ec357611ec381604001518260e0015161276b565b600081608001511180611edb57506000816101200151115b15611f6057611ef381608001518261012001516127a0565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151611f449190612bea565b611f4e9190612bea565b60405190815260200160405180910390a35b600081606001511180611f7857506000816101000151115b15611f9057611f908160600151826101000151612816565b60008160a001511180611fa857506000816101400151115b15611fc057611fc08160a0015182610140015161282b565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161200991815260200190565b60405180910390a3505050505050565b600b5460009081908161202e6009600a612b8f565b61203c90633b9aca00612b9e565b905060005b60035481101561219d5782600160006003848154811061206357612063612c83565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806120ce57508160026000600384815481106120a7576120a7612c83565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156120fb57600b546120e26009600a612b8f565b6120f090633b9aca00612b9e565b945094505050509091565b600160006003838154811061211257612112612c83565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121419084612bb5565b9250600260006003838154811061215a5761215a612c83565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121899083612bb5565b91508061219581612c99565b915050612041565b506121aa6009600a612b8f565b6121b890633b9aca00612b9e565b600b546121c59190612bc8565b8210156121f357600b546121db6009600a612b8f565b6121e990633b9aca00612b9e565b9350935050509091565b90939092509050565b612204612840565b826122155760c08101849052610a55565b6122406040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612275575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122a0565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122af9087612b9e565b6122b99190612bc8565b60e083015260208101516064906122d09087612b9e565b6122da9190612bc8565b61010083015260408101516064906122f29087612b9e565b6122fc9190612bc8565b61012083015260608101516064906123149087612b9e565b61231e9190612bc8565b610140830181905261012083015161010084015160e08501516123419089612bb5565b61234b9190612bb5565b6123559190612bb5565b61235f9190612bb5565b60c0830152509392505050565b60008080808061237c8689612b9e565b94508661239457508392506000915081905080612410565b858960e001516123a49190612b9e565b9250858961010001516123b79190612b9e565b9150858961012001516123ca9190612b9e565b90506000868a61014001516123df9190612b9e565b90508082846123ee878a612bb5565b6123f89190612bb5565b6124029190612bb5565b61240c9190612bb5565b9450505b945094509450945094565b60008261242a57506000610a55565b8184610140015161243b9190612b9e565b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061247857612478612c83565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156124d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f59190612bfd565b8160018151811061250857612508612c83565b6001600160a01b03928316602091820292909201015260095461252e91309116846112b0565b600c546010541061253e57600080fd5b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790612577908590600090869030904290600401612cb2565b600060405180830381600087803b15801561259157600080fd5b505af1158015611ac4573d6000803e3d6000fd5b6009546125bd9030906001600160a01b0316846112b0565b6009546001600160a01b031663f305d7198230856000806125e66000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161260896959493929190612c1a565b60606040518083038185885af1158015612626573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061264b9190612c55565b5050505050565b804710156126a25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107f4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146126ef576040519150601f19603f3d011682016040523d82523d6000602084013e6126f4565b606091505b5050905080610fd75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107f4565b81600b600082825461277d9190612bb5565b9091555050601a8054829190600090612797908490612bea565b90915550505050565b80601a60020160008282546127b59190612bea565b90915550503060009081526007602052604090205460ff16156127f75730600090815260026020526040812080548392906127f1908490612bea565b90915550505b3060009081526001602052604081208054849290612797908490612bea565b80601a60010160008282546127b59190612bea565b80601a60030160008282546127b59190612bea565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156128c7578581018301518582016040015282016128ab565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146112ad57600080fd5b6000806040838503121561291057600080fd5b823561291b816128e8565b946020939093013593505050565b60008060006060848603121561293e57600080fd5b8335612949816128e8565b92506020840135612959816128e8565b929592945050506040919091013590565b60006020828403121561297c57600080fd5b5035919050565b80151581146112ad57600080fd5b600080604083850312156129a457600080fd5b8235915060208301356129b681612983565b809150509250929050565b6000602082840312156129d357600080fd5b8135610a55816128e8565b600080604083850312156129f157600080fd5b82356129fc816128e8565b915060208301356129b6816128e8565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612a8a57600080fd5b8151610a5581612983565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612ae6578160001904821115612acc57612acc612a95565b80851615612ad957918102915b93841c9390800290612ab0565b509250929050565b600082612afd57506001610b88565b81612b0a57506000610b88565b8160018114612b205760028114612b2a57612b46565b6001915050610b88565b60ff841115612b3b57612b3b612a95565b50506001821b610b88565b5060208310610133831016604e8410600b8410161715612b69575081810a610b88565b612b738383612aab565b8060001904821115612b8757612b87612a95565b029392505050565b6000610a5560ff841683612aee565b8082028115828204841417610b8857610b88612a95565b81810381811115610b8857610b88612a95565b600082612be557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b8857610b88612a95565b600060208284031215612c0f57600080fd5b8151610a55816128e8565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612c6a57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201612cab57612cab612a95565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d025784516001600160a01b031683529383019391830191600101612cdd565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203b4f193fa44117c5f254c89d435aa7f99e5b7d882162a190e3afe5c9e2692e7864736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063715018a61161012e5780639e252f00116100ab578063e2f456051161006f578063e2f456051461070a578063e7b94df414610720578063f2fde38b14610740578063f66895a314610760578063f887ea401461078357600080fd5b80639e252f0014610644578063a457c2d714610664578063a8aa1b3114610684578063a9059cbb146106a4578063dd62ed3e146106c457600080fd5b806388f82020116100f257806388f82020146105885780638a8c523c146105c15780638da5cb5b146105d657806395d89b41146105f45780639ba5e4d51461062157600080fd5b8063715018a6146104db578063728f8eea146104f0578063751039fc1461053357806375f0a8741461054857806382cb35d91461058057600080fd5b80634549b039116101bc578063652e2f0411610180578063652e2f041461045857806366a88d961461046e5780636aa5b37f146104845780636ddd17131461049a57806370a08231146104bb57600080fd5b80634549b0391461038e578063463fef62146103ae5780634ada218b146103ce5780635342acb4146103ef57806362695eae1461042857600080fd5b806323b872dd1161020357806323b872dd146102fc578063274a533c1461031c5780632d83811914610332578063313ce56714610352578063395093511461036e57600080fd5b806306fdde0314610240578063095ea7b3146102875780630d65df9b146102b757806318160ddd146102d957600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600c81526b552053454c4c20552047415960a01b60208201525b60405161027e919061289a565b60405180910390f35b34801561029357600080fd5b506102a76102a23660046128fd565b6107a3565b604051901515815260200161027e565b3480156102c357600080fd5b506102d76102d2366004612929565b610812565b005b3480156102e557600080fd5b506102ee6108b6565b60405190815260200161027e565b34801561030857600080fd5b506102a7610317366004612929565b6108d7565b34801561032857600080fd5b506102ee60115481565b34801561033e57600080fd5b506102ee61034d36600461296a565b6109d8565b34801561035e57600080fd5b506040516009815260200161027e565b34801561037a57600080fd5b506102a76103893660046128fd565b610a5c565b34801561039a57600080fd5b506102ee6103a9366004612991565b610ae3565b3480156103ba57600080fd5b506102d76103c93660046128fd565b610b8e565b3480156103da57600080fd5b506004546102a790600160a01b900460ff1681565b3480156103fb57600080fd5b506102a761040a3660046129c1565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561043457600080fd5b506102a76104433660046129c1565b60086020526000908152604090205460ff1681565b34801561046457600080fd5b506102ee600e5481565b34801561047a57600080fd5b506102ee600f5481565b34801561049057600080fd5b506102ee600d5481565b3480156104a657600080fd5b506004546102a790600160a81b900460ff1681565b3480156104c757600080fd5b506102ee6104d63660046129c1565b610bee565b3480156104e757600080fd5b506102d7610c4d565b3480156104fc57600080fd5b506012546013546014546015546105139392919084565b60408051948552602085019390935291830152606082015260800161027e565b34801561053f57600080fd5b506102d7610c83565b34801561055457600080fd5b50600454610568906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102d7610d06565b34801561059457600080fd5b506102a76105a33660046129c1565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156105cd57600080fd5b506102d7610fdc565b3480156105e257600080fd5b506000546001600160a01b0316610568565b34801561060057600080fd5b506040805180820190915260048152635524554760e01b6020820152610271565b34801561062d57600080fd5b50601a54601b54601c54601d546105139392919084565b34801561065057600080fd5b506102d761065f36600461296a565b611021565b34801561067057600080fd5b506102a761067f3660046128fd565b6110cc565b34801561069057600080fd5b50600a54610568906001600160a01b031681565b3480156106b057600080fd5b506102a76106bf3660046128fd565b6111b9565b3480156106d057600080fd5b506102ee6106df3660046129de565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561071657600080fd5b506102ee600c5481565b34801561072c57600080fd5b50601e54610568906001600160a01b031681565b34801561074c57600080fd5b506102d761075b3660046129c1565b611215565b34801561076c57600080fd5b506016546017546018546019546105139392919084565b34801561078f57600080fd5b50600954610568906001600160a01b031681565b6004546000903390600160a01b900460ff16806107d857506001600160a01b03811660009081526008602052604090205460ff165b6107fd5760405162461bcd60e51b81526004016107f490612a0c565b60405180910390fd5b6108083385856112b0565b5060019392505050565b6000546001600160a01b0316331461083c5760405162461bcd60e51b81526004016107f490612a43565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af115801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190612a78565b50505050565b60006108c46009600a612b8f565b6108d290633b9aca00612b9e565b905090565b6004546000908490600160a01b900460ff168061090c57506001600160a01b03811660009081526008602052604090205460ff165b6109285760405162461bcd60e51b81526004016107f490612a0c565b6109338585856113d4565b6001600160a01b0385166000908152600560209081526040808320338452909152902054838110156109b85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107f4565b6109cc86336109c78785612bb5565b6112b0565b50600195945050505050565b6000600b54821115610a3f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107f4565b6000610a49611acc565b9050610a558184612bc8565b9392505050565b6004546000903390600160a01b900460ff1680610a9157506001600160a01b03811660009081526008602052604090205460ff165b610aad5760405162461bcd60e51b81526004016107f490612a0c565b3360008181526005602090815260408083206001600160a01b0389168452909152902054610808919086906109c7908790612bea565b6000610af16009600a612b8f565b610aff90633b9aca00612b9e565b831115610b4e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107f4565b81610b6c576000610b628460016000611aef565b519150610b889050565b6000610b7b8460016000611aef565b602001519150610b889050565b92915050565b3360008181526006602052604090205460ff16610baa57600080fd5b610bb48383611b4b565b6040516323b872dd60e01b81526001600160a01b0384166004820152306024820181905260448201849052906323b872dd9060640161086d565b6001600160a01b03811660009081526007602052604081205460ff1615610c2b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610b88906109d8565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107f490612a43565b610c816000611b85565b565b6000546001600160a01b03163314610cad5760405162461bcd60e51b81526004016107f490612a43565b610cb96009600a612b8f565b610cc790633b9aca00612b9e565b600d55610cd66009600a612b8f565b610ce490633b9aca00612b9e565b600e55610cf36009600a612b8f565b610d0190633b9aca00612b9e565b600f55565b6000546001600160a01b03163314610d305760405162461bcd60e51b81526004016107f490612a43565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da79190612bfd565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612bfd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612bfd565b600a80546001600160a01b039283166001600160a01b0319918216811783556000908152600760209081526040808320805460ff1990811660019081179092558654600380548085019091557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018054909716908916179095559454861683526008909152902080549091169091179055600954610f41913091166000196112b0565b6009546001600160a01b031663f305d7193430610f5d81610bee565b600080610f726000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f9496959493929190612c1a565b60606040518083038185885af1158015610fb2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fd79190612c55565b505050565b6000546001600160a01b031633146110065760405162461bcd60e51b81526004016107f490612a43565b6004805461ffff60a01b191661010160a01b17905543601155565b6000546001600160a01b0316331461104b5760405162461bcd60e51b81526004016107f490612a43565b8047101561109b5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016107f4565b604051339082156108fc029083906000818181858888f193505050501580156110c8573d6000803e3d6000fd5b5050565b6004546000903390600160a01b900460ff168061110157506001600160a01b03811660009081526008602052604090205460ff165b61111d5760405162461bcd60e51b81526004016107f490612a0c565b3360009081526005602090815260408083206001600160a01b03881684529091529020548381101561119f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107f4565b6111ae33866109c78785612bb5565b506001949350505050565b6004546000903390600160a01b900460ff16806111ee57506001600160a01b03811660009081526008602052604090205460ff165b61120a5760405162461bcd60e51b81526004016107f490612a0c565b6108083385856113d4565b6000546001600160a01b0316331461123f5760405162461bcd60e51b81526004016107f490612a43565b6001600160a01b0381166112a45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f4565b6112ad81611b85565b50565b6001600160a01b0383166113125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f4565b6001600160a01b0382166113735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114385760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f4565b6001600160a01b03821661149a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f4565b600081116114fc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f4565b61150583610bee565b81111561156e5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107f4565b6001600160a01b03831660009081526006602052604090205460ff161580156115b057506001600160a01b03821660009081526006602052604090205460ff16155b1561160357600454600160a01b900460ff166116035760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107f4565b6001600160a01b03831660009081526006602052604090205460ff1615801561164557506001600160a01b03821660009081526006602052604090205460ff16155b801561165357506011544311155b156116c057600a546001600160a01b03908116908316036116c05760405162461bcd60e51b815260206004820152602160248201527f53656c6c73206e6f7420616c6c6f77656420666f72206465616420626c6f636b6044820152607360f81b60648201526084016107f4565b600a546001600160a01b0384811691161480156116f657506001600160a01b03821660009081526006602052604090205460ff16155b801561170c5750600454600160b01b900460ff16155b156117c857600d548111156117635760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016107f4565b600f548161177084610bee565b61177a9190612bea565b11156117c85760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107f4565b600a546001600160a01b038481169116148015906117ff57506001600160a01b03821660009081526006602052604090205460ff16155b801561182457506001600160a01b03831660009081526006602052604090205460ff16155b801561183a5750600454600160b01b900460ff16155b1561190b57600e548111156118915760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016107f4565b600a546001600160a01b0383811691161461190b57600f54816118b384610bee565b6118bd9190612bea565b111561190b5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107f4565b6000600c5461191930610bee565b6004549111159150600160b01b900460ff161580156119415750600454600160a81b900460ff165b801561194a5750805b80156119645750600a546001600160a01b03858116911614155b801561198957506001600160a01b03841660009081526006602052604090205460ff16155b80156119ae57506001600160a01b03831660009081526006602052604090205460ff16155b15611a3a57600a546001600160a01b0390811690841603611a0457600c5460408051608081018252601654815260175460208201526018549181019190915260195460608201526119ff9190611bd5565b611a3a565b600c546040805160808101825260125481526013546020820152601454918101919091526015546060820152611a3a9190611bd5565b600454600190600090600160b01b900460ff1680611a7057506001600160a01b03861660009081526006602052604090205460ff165b80611a9357506001600160a01b03851660009081526006602052604090205460ff165b15611a9d57600091505b600a546001600160a01b0390811690861603611ab7575060015b611ac48686868585611d4c565b505050505050565b6000806000611ad9612019565b9092509050611ae88183612bc8565b9250505090565b611af7612840565b611b028484846121fc565b9050611b17818585611b12611acc565b61236c565b60808601526060850152604084015260208301528152611b3f8184611b3a611acc565b61241b565b60a08201529392505050565b3060008181526005602090815260408083206001600160a01b038716845290915290205460001981146108b0576108b084838584036112b0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6004805460ff60b01b1916600160b01b17905560608101516020820151604083015160009291611c0491612bea565b611c0e9190612bea565b611c19906002612b9e565b9050600081836040015185611c2e9190612b9e565b611c389190612bc8565b90506000611c468286612bb5565b6004549091504790611c60906001600160a01b0316610bee565b601055611c6c82612443565b6000611c788247612bb5565b90506000866040015186611c8c9190612bb5565b611c969083612bc8565b90506000876040015182611caa9190612b9e565b90508015611cbc57611cbc86826125a5565b6020880151600090611ccf846002612b9e565b611cd99190612b9e565b90508015611cf757600454611cf7906001600160a01b031682612652565b6060890151600090611d0a856002612b9e565b611d149190612b9e565b90508015611d3257601e54611d32906001600160a01b031682612652565b50506004805460ff60b01b19169055505050505050505050565b6000611d59848484611aef565b6001600160a01b03871660009081526007602052604090205490915060ff1615611dbb576001600160a01b038616600090815260026020526040902054611da1908590612bb5565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526007602052604090205460ff1615611e1e5760c08101516001600160a01b038616600090815260026020526040902054611e049190612bea565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611e439190612bb5565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611e7a9190612bea565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611eac575060008160e00151115b15611ec357611ec381604001518260e0015161276b565b600081608001511180611edb57506000816101200151115b15611f6057611ef381608001518261012001516127a0565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151611f449190612bea565b611f4e9190612bea565b60405190815260200160405180910390a35b600081606001511180611f7857506000816101000151115b15611f9057611f908160600151826101000151612816565b60008160a001511180611fa857506000816101400151115b15611fc057611fc08160a0015182610140015161282b565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161200991815260200190565b60405180910390a3505050505050565b600b5460009081908161202e6009600a612b8f565b61203c90633b9aca00612b9e565b905060005b60035481101561219d5782600160006003848154811061206357612063612c83565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806120ce57508160026000600384815481106120a7576120a7612c83565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156120fb57600b546120e26009600a612b8f565b6120f090633b9aca00612b9e565b945094505050509091565b600160006003838154811061211257612112612c83565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121419084612bb5565b9250600260006003838154811061215a5761215a612c83565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121899083612bb5565b91508061219581612c99565b915050612041565b506121aa6009600a612b8f565b6121b890633b9aca00612b9e565b600b546121c59190612bc8565b8210156121f357600b546121db6009600a612b8f565b6121e990633b9aca00612b9e565b9350935050509091565b90939092509050565b612204612840565b826122155760c08101849052610a55565b6122406040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612275575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122a0565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122af9087612b9e565b6122b99190612bc8565b60e083015260208101516064906122d09087612b9e565b6122da9190612bc8565b61010083015260408101516064906122f29087612b9e565b6122fc9190612bc8565b61012083015260608101516064906123149087612b9e565b61231e9190612bc8565b610140830181905261012083015161010084015160e08501516123419089612bb5565b61234b9190612bb5565b6123559190612bb5565b61235f9190612bb5565b60c0830152509392505050565b60008080808061237c8689612b9e565b94508661239457508392506000915081905080612410565b858960e001516123a49190612b9e565b9250858961010001516123b79190612b9e565b9150858961012001516123ca9190612b9e565b90506000868a61014001516123df9190612b9e565b90508082846123ee878a612bb5565b6123f89190612bb5565b6124029190612bb5565b61240c9190612bb5565b9450505b945094509450945094565b60008261242a57506000610a55565b8184610140015161243b9190612b9e565b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061247857612478612c83565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156124d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f59190612bfd565b8160018151811061250857612508612c83565b6001600160a01b03928316602091820292909201015260095461252e91309116846112b0565b600c546010541061253e57600080fd5b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790612577908590600090869030904290600401612cb2565b600060405180830381600087803b15801561259157600080fd5b505af1158015611ac4573d6000803e3d6000fd5b6009546125bd9030906001600160a01b0316846112b0565b6009546001600160a01b031663f305d7198230856000806125e66000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161260896959493929190612c1a565b60606040518083038185885af1158015612626573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061264b9190612c55565b5050505050565b804710156126a25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107f4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146126ef576040519150601f19603f3d011682016040523d82523d6000602084013e6126f4565b606091505b5050905080610fd75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107f4565b81600b600082825461277d9190612bb5565b9091555050601a8054829190600090612797908490612bea565b90915550505050565b80601a60020160008282546127b59190612bea565b90915550503060009081526007602052604090205460ff16156127f75730600090815260026020526040812080548392906127f1908490612bea565b90915550505b3060009081526001602052604081208054849290612797908490612bea565b80601a60010160008282546127b59190612bea565b80601a60030160008282546127b59190612bea565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156128c7578581018301518582016040015282016128ab565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146112ad57600080fd5b6000806040838503121561291057600080fd5b823561291b816128e8565b946020939093013593505050565b60008060006060848603121561293e57600080fd5b8335612949816128e8565b92506020840135612959816128e8565b929592945050506040919091013590565b60006020828403121561297c57600080fd5b5035919050565b80151581146112ad57600080fd5b600080604083850312156129a457600080fd5b8235915060208301356129b681612983565b809150509250929050565b6000602082840312156129d357600080fd5b8135610a55816128e8565b600080604083850312156129f157600080fd5b82356129fc816128e8565b915060208301356129b6816128e8565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612a8a57600080fd5b8151610a5581612983565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612ae6578160001904821115612acc57612acc612a95565b80851615612ad957918102915b93841c9390800290612ab0565b509250929050565b600082612afd57506001610b88565b81612b0a57506000610b88565b8160018114612b205760028114612b2a57612b46565b6001915050610b88565b60ff841115612b3b57612b3b612a95565b50506001821b610b88565b5060208310610133831016604e8410600b8410161715612b69575081810a610b88565b612b738383612aab565b8060001904821115612b8757612b87612a95565b029392505050565b6000610a5560ff841683612aee565b8082028115828204841417610b8857610b88612a95565b81810381811115610b8857610b88612a95565b600082612be557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610b8857610b88612a95565b600060208284031215612c0f57600080fd5b8151610a55816128e8565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612c6a57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201612cab57612cab612a95565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d025784516001600160a01b031683529383019391830191600101612cdd565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203b4f193fa44117c5f254c89d435aa7f99e5b7d882162a190e3afe5c9e2692e7864736f6c63430008120033

Deployed Bytecode Sourcemap

3291:18062:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6511:83;;;;;;;;;;-1:-1:-1;6581:5:0;;;;;;;;;;;;-1:-1:-1;;;6581:5:0;;;;6511:83;;;;;;;:::i;:::-;;;;;;;;7271:187;;;;;;;;;;-1:-1:-1;7271:187:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7271:187:0;1023::1;21194:154:0;;;;;;;;;;-1:-1:-1;21194:154:0;;;;;:::i;:::-;;:::i;:::-;;6807:95;;;;;;;;;;;;;:::i;:::-;;;1822:25:1;;;1810:2;1795:18;6807:95:0;1676:177:1;7466:436:0;;;;;;;;;;-1:-1:-1;7466:436:0;;;;;:::i;:::-;;:::i;4618:28::-;;;;;;;;;;;;;;;;10461:248;;;;;;;;;;-1:-1:-1;10461:248:0;;;;;:::i;:::-;;:::i;6693:83::-;;;;;;;;;;-1:-1:-1;6693:83:0;;4159:1;2185:36:1;;2173:2;2158:18;6693:83:0;2043:184:1;8129:234:0;;;;;;;;;;-1:-1:-1;8129:234:0;;;;;:::i;:::-;;:::i;9983:470::-;;;;;;;;;;-1:-1:-1;9983:470:0;;;;;:::i;:::-;;:::i;7910:211::-;;;;;;;;;;-1:-1:-1;7910:211:0;;;;;:::i;:::-;;:::i;3731:26::-;;;;;;;;;;-1:-1:-1;3731:26:0;;;;-1:-1:-1;;;3731:26:0;;;;;;10717:123;;;;;;;;;;-1:-1:-1;10717:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10805:27:0;10781:4;10805:27;;;:18;:27;;;;;;;;;10717:123;4011:48;;;;;;;;;;-1:-1:-1;4011:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4464:49;;;;;;;;;;;;;;;;4520:51;;;;;;;;;;;;;;;;4409:48;;;;;;;;;;;;;;;;3764:23;;;;;;;;;;-1:-1:-1;3764:23:0;;;;-1:-1:-1;;;3764:23:0;;;;;;6910:198;;;;;;;;;;-1:-1:-1;6910:198:0;;;;;:::i;:::-;;:::i;1722:94::-;;;;;;;;;;;;;:::i;4653:38::-;;;;;;;;;;-1:-1:-1;4653:38:0;;;;;;;;;;;;;;;;;;;3152:25:1;;;3208:2;3193:18;;3186:34;;;;3236:18;;;3229:34;3294:2;3279:18;;3272:34;3139:3;3124:19;4653:38:0;2921:391:1;20763:151:0;;;;;;;;;;;;;:::i;3649:75::-;;;;;;;;;;-1:-1:-1;3649:75:0;;;;-1:-1:-1;;;;;3649:75:0;;;;;;-1:-1:-1;;;;;3481:32:1;;;3463:51;;3451:2;3436:18;3649:75:0;3317:203:1;10979:535:0;;;:::i;9696:120::-;;;;;;;;;;-1:-1:-1;9696:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9788:20:0;9764:4;9788:20;;;:11;:20;;;;;;;;;9696:120;9824:151;;;;;;;;;;;;;:::i;1499:87::-;;;;;;;;;;-1:-1:-1;1545:7:0;1572:6;-1:-1:-1;;;;;1572:6:0;1499:87;;6600;;;;;;;;;;-1:-1:-1;6672:7:0;;;;;;;;;;;;-1:-1:-1;;;6672:7:0;;;;6600:87;;5300:36;;;;;;;;;;-1:-1:-1;5300:36:0;;;;;;;;;;;;;;;20990:196;;;;;;;;;;-1:-1:-1;20990:196:0;;;;;:::i;:::-;;:::i;8371:396::-;;;;;;;;;;-1:-1:-1;8371:396:0;;;;;:::i;:::-;;:::i;4096:19::-;;;;;;;;;;-1:-1:-1;4096:19:0;;;;-1:-1:-1;;;;;4096:19:0;;;9495:193;;;;;;;;;;-1:-1:-1;9495:193:0;;;;;:::i;:::-;;:::i;7120:143::-;;;;;;;;;;-1:-1:-1;7120:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7228:18:0;;;7201:7;7228:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7120:143;4347:55;;;;;;;;;;;;;;;;5777:74;;;;;;;;;;-1:-1:-1;5777:74:0;;;;-1:-1:-1;;;;;5777:74:0;;;1824:192;;;;;;;;;;-1:-1:-1;1824:192:0;;;;;:::i;:::-;;:::i;4698:42::-;;;;;;;;;;-1:-1:-1;4698:42:0;;;;;;;;;;;;;;;4068:21;;;;;;;;;;-1:-1:-1;4068:21:0;;;;-1:-1:-1;;;;;4068:21:0;;;7271:187;4807:14;;7372:4;;7352:10;;-1:-1:-1;;;4807:14:0;;;;;:42;;-1:-1:-1;;;;;;4825:24:0;;;;;;:15;:24;;;;;;;;4807:42;4799:78;;;;-1:-1:-1;;;4799:78:0;;;;;;;:::i;:::-;;;;;;;;;7389:39:::1;1000:10:::0;7412:7:::1;7421:6;7389:8;:39::i;:::-;-1:-1:-1::0;7446:4:0::1;::::0;7271:187;-1:-1:-1;;;7271:187:0:o;21194:154::-;1545:7;1572:6;-1:-1:-1;;;;;1572:6:0;1000:10;1634:23;1626:68;;;;-1:-1:-1;;;1626:68:0;;;;;;;:::i;:::-;21299:41:::1;::::0;-1:-1:-1;;;21299:41:0;;-1:-1:-1;;;;;5046:32:1;;;21299:41:0::1;::::0;::::1;5028:51:1::0;5095:18;;;5088:34;;;21299:27:0;::::1;::::0;::::1;::::0;5001:18:1;;21299:41:0::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21194:154:::0;;;:::o;6807:95::-;6860:7;4269:13;4159:1;4269:2;:13;:::i;:::-;4253:29;;:13;:29;:::i;:::-;6880:14;;6807:95;:::o;7466:436::-;4807:14;;7586:4;;7569:6;;-1:-1:-1;;;4807:14:0;;;;;:42;;-1:-1:-1;;;;;;4825:24:0;;;;;;:15;:24;;;;;;;;4807:42;4799:78;;;;-1:-1:-1;;;4799:78:0;;;;;;;:::i;:::-;7603:36:::1;7613:6;7621:9;7632:6;7603:9;:36::i;:::-;-1:-1:-1::0;;;;;7679:19:0;::::1;7652:24;7679:19:::0;;;:11:::1;:19;::::0;;;;;;;1000:10;7679:33;;;;;;;;7731:26;;::::1;;7723:79;;;::::0;-1:-1:-1;;;7723:79:0;;7273:2:1;7723:79:0::1;::::0;::::1;7255:21:1::0;7312:2;7292:18;;;7285:30;7351:34;7331:18;;;7324:62;-1:-1:-1;;;7402:18:1;;;7395:38;7450:19;;7723:79:0::1;7071:404:1::0;7723:79:0::1;7813:57;7822:6:::0;1000:10;7844:25:::1;7863:6:::0;7844:16;:25:::1;:::i;:::-;7813:8;:57::i;:::-;-1:-1:-1::0;7890:4:0::1;::::0;7466:436;-1:-1:-1;;;;;7466:436:0:o;10461:248::-;10527:7;10566;;10555;:18;;10547:73;;;;-1:-1:-1;;;10547:73:0;;7815:2:1;10547:73:0;;;7797:21:1;7854:2;7834:18;;;7827:30;7893:34;7873:18;;;7866:62;-1:-1:-1;;;7944:18:1;;;7937:40;7994:19;;10547:73:0;7613:406:1;10547:73:0;10631:19;10654:10;:8;:10::i;:::-;10631:33;-1:-1:-1;10682:19:0;10631:33;10682:7;:19;:::i;:::-;10675:26;10461:248;-1:-1:-1;;;10461:248:0:o;8129:234::-;4807:14;;8236:4;;8215:10;;-1:-1:-1;;;4807:14:0;;;;;:42;;-1:-1:-1;;;;;;4825:24:0;;;;;;:15;:24;;;;;;;;4807:42;4799:78;;;;-1:-1:-1;;;4799:78:0;;;;;;;:::i;:::-;1000:10;8285:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8285:34:0;::::1;::::0;;;;;;;;8253:80:::1;::::0;1000:10;8276:7;;8285:47:::1;::::0;8322:10;;8285:47:::1;:::i;9983:470::-:0;10073:7;4269:13;4159:1;4269:2;:13;:::i;:::-;4253:29;;:13;:29;:::i;:::-;10101:7;:18;;10093:62;;;;-1:-1:-1;;;10093:62:0;;8578:2:1;10093:62:0;;;8560:21:1;8617:2;8597:18;;;8590:30;8656:33;8636:18;;;8629:61;8707:18;;10093:62:0;8376:355:1;10093:62:0;10171:17;10166:280;;10205:28;10236:32;10247:7;10256:4;10262:5;10236:10;:32::i;:::-;10290:9;;-1:-1:-1;10283:16:0;;-1:-1:-1;10283:16:0;10166:280;10332:28;10363:32;10374:7;10383:4;10389:5;10363:10;:32::i;:::-;10417:17;;;;-1:-1:-1;10410:24:0;;-1:-1:-1;10410:24:0;10166:280;9983:470;;;;:::o;7910:211::-;7987:10;10781:4;10805:27;;;:18;:27;;;;;;;;5237:35;;;;;;8010:29:::1;8026:4;8032:6;8010:15;:29::i;:::-;8050:63;::::0;-1:-1:-1;;;8050:63:0;;-1:-1:-1;;;;;8994:15:1;;8050:63:0::1;::::0;::::1;8976:34:1::0;8065:4:0::1;9026:18:1::0;;;9019:43;;;9078:18;;;9071:34;;;8065:4:0;8050:34:::1;::::0;8911:18:1;;8050:63:0::1;8736:375:1::0;6910:198:0;-1:-1:-1;;;;;7000:20:0;;6976:7;7000:20;;;:11;:20;;;;;;;;6996:49;;;-1:-1:-1;;;;;;7029:16:0;;;;;:7;:16;;;;;;;6910:198::o;6996:49::-;-1:-1:-1;;;;;7083:16:0;;;;;;:7;:16;;;;;;7063:37;;:19;:37::i;1722:94::-;1545:7;1572:6;-1:-1:-1;;;;;1572:6:0;1000:10;1634:23;1626:68;;;;-1:-1:-1;;;1626:68:0;;;;;;;:::i;:::-;1787:21:::1;1805:1;1787:9;:21::i;:::-;1722:94::o:0;20763:151::-;1545:7;1572:6;-1:-1:-1;;;;;1572:6:0;1000:10;1634:23;1626:68;;;;-1:-1:-1;;;1626:68:0;;;;;;;:::i;:::-;4269:13:::1;4159:1;4269:2;:13;:::i;:::-;4253:29;::::0;:13:::1;:29;:::i;:::-;20817:11;:21:::0;4269:13:::1;4159:1;4269:2;:13;:::i;:::-;4253:29;::::0;:13:::1;:29;:::i;:::-;20849:12;:22:::0;4269:13:::1;4159:1;4269:2;:13;:::i;:::-;4253:29;::::0;:13:::1;:29;:::i;:::-;20882:14;:24:::0;20763:151::o;10979:535::-;1545:7;1572:6;-1:-1:-1;;;;;1572:6:0;1000:10;1634:23;1626:68;;;;-1:-1:-1;;;1626:68:0;;;;;;;:::i;:::-;11058:6:::1;;;;;;;;;-1:-1:-1::0;;;;;11058:6:0::1;-1:-1:-1::0;;;;;11058:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11049:37:0::1;;11095:4;11102:6;;;;;;;;;-1:-1:-1::0;;;;;11102:6:0::1;-1:-1:-1::0;;;;;11102:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11049:67;::::0;-1:-1:-1;;;;;;11049:67:0::1;::::0;;;;;;-1:-1:-1;;;;;9602:15:1;;;11049:67:0::1;::::0;::::1;9584:34:1::0;9654:15;;9634:18;;;9627:43;9519:18;;11049:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11042:4;:74:::0;;-1:-1:-1;;;;;11042:74:0;;::::1;-1:-1:-1::0;;;;;;11042:74:0;;::::1;::::0;::::1;::::0;;:4:::1;11127:17:::0;;;:11:::1;:17;::::0;;;;;;;:24;;-1:-1:-1;;11127:24:0;;::::1;11042:74:::0;11127:24;;::::1;::::0;;;11177:4;;11162:9:::1;:20:::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;11177:4:::0;;::::1;11162:20;::::0;;;11209:4;;;::::1;11193:21:::0;;:15:::1;:21:::0;;;;;:28;;;;::::1;::::0;;::::1;::::0;;11264:6:::1;::::0;11232:59:::1;::::0;11249:4:::1;::::0;11264:6:::1;-1:-1:-1::0;;11232:8:0::1;:59::i;:::-;11302:6;::::0;-1:-1:-1;;;;;11302:6:0::1;:22;11332:9;11365:4;11385:24;11365:4:::0;11385:9:::1;:24::i;:::-;11424:1;11441::::0;11458:7:::1;1545::::0;1572:6;-1:-1:-1;;;;;1572:6:0;;1499:87;11458:7:::1;11480:15;11302:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10979:535::o:0;9824:151::-;1545:7;1572:6;-1:-1:-1;;;;;1572:6:0;1000:10;1634:23;1626:68;;;;-1:-1:-1;;;1626:68:0;;;;;;;:::i;:::-;9878:14:::1;:21:::0;;-1:-1:-1;;;;9910:18:0;-1:-1:-1;;;9910:18:0;;;9955:12:::1;9939:13;:28:::0;9824:151::o;20990:196::-;1545:7;1572:6;-1:-1:-1;;;;;1572:6:0;1000:10;1634:23;1626:68;;;;-1:-1:-1;;;1626:68:0;;;;;;;:::i;:::-;21090:9:::1;21065:21;:34;;21057:71;;;::::0;-1:-1:-1;;;21057:71:0;;10806:2:1;21057:71:0::1;::::0;::::1;10788:21:1::0;10845:2;10825:18;;;10818:30;10884:26;10864:18;;;10857:54;10928:18;;21057:71:0::1;10604:348:1::0;21057:71:0::1;21139:39;::::0;21147:10:::1;::::0;21139:39;::::1;;;::::0;21168:9;;21139:39:::1;::::0;;;21168:9;21147:10;21139:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20990:196:::0;:::o;8371:396::-;4807:14;;8483:4;;8462:10;;-1:-1:-1;;;4807:14:0;;;;;:42;;-1:-1:-1;;;;;;4825:24:0;;;;;;:15;:24;;;;;;;;4807:42;4799:78;;;;-1:-1:-1;;;4799:78:0;;;;;;;:::i;:::-;1000:10;8500:24:::1;8527:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8527:34:0;::::1;::::0;;;;;;;;8580:35;;::::1;;8572:85;;;::::0;-1:-1:-1;;;8572:85:0;;11159:2:1;8572:85:0::1;::::0;::::1;11141:21:1::0;11198:2;11178:18;;;11171:30;11237:34;11217:18;;;11210:62;-1:-1:-1;;;11288:18:1;;;11281:35;11333:19;;8572:85:0::1;10957:401:1::0;8572:85:0::1;8668:67;1000:10:::0;8691:7;8700:34:::1;8719:15:::0;8700:16;:34:::1;:::i;8668:67::-;-1:-1:-1::0;8755:4:0::1;::::0;8371:396;-1:-1:-1;;;;8371:396:0:o;9495:193::-;4807:14;;9599:4;;9578:10;;-1:-1:-1;;;4807:14:0;;;;;:42;;-1:-1:-1;;;;;;4825:24:0;;;;;;:15;:24;;;;;;;;4807:42;4799:78;;;;-1:-1:-1;;;4799:78:0;;;;;;;:::i;:::-;9620:40:::1;9630:10;9642:9;9653:6;9620:9;:40::i;1824:192::-:0;1545:7;1572:6;-1:-1:-1;;;;;1572:6:0;1000:10;1634:23;1626:68;;;;-1:-1:-1;;;1626:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1913:22:0;::::1;1905:73;;;::::0;-1:-1:-1;;;1905:73:0;;11565:2:1;1905:73:0::1;::::0;::::1;11547:21:1::0;11604:2;11584:18;;;11577:30;11643:34;11623:18;;;11616:62;-1:-1:-1;;;11694:18:1;;;11687:36;11740:19;;1905:73:0::1;11363:402:1::0;1905:73:0::1;1989:19;1999:8;1989:9;:19::i;:::-;1824:192:::0;:::o;8779:335::-;-1:-1:-1;;;;;8872:19:0;;8864:68;;;;-1:-1:-1;;;8864:68:0;;11972:2:1;8864:68:0;;;11954:21:1;12011:2;11991:18;;;11984:30;12050:34;12030:18;;;12023:62;-1:-1:-1;;;12101:18:1;;;12094:34;12145:19;;8864:68:0;11770:400:1;8864:68:0;-1:-1:-1;;;;;8951:21:0;;8943:68;;;;-1:-1:-1;;;8943:68:0;;12377:2:1;8943:68:0;;;12359:21:1;12416:2;12396:18;;;12389:30;12455:34;12435:18;;;12428:62;-1:-1:-1;;;12506:18:1;;;12499:32;12548:19;;8943:68:0;12175:398:1;8943:68:0;-1:-1:-1;;;;;9022:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9074:32;;1822:25:1;;;9074:32:0;;1795:18:1;9074:32:0;;;;;;;8779:335;;;:::o;15198:1961::-;-1:-1:-1;;;;;15286:18:0;;15278:68;;;;-1:-1:-1;;;15278:68:0;;12780:2:1;15278:68:0;;;12762:21:1;12819:2;12799:18;;;12792:30;12858:34;12838:18;;;12831:62;-1:-1:-1;;;12909:18:1;;;12902:35;12954:19;;15278:68:0;12578:401:1;15278:68:0;-1:-1:-1;;;;;15365:16:0;;15357:64;;;;-1:-1:-1;;;15357:64:0;;13186:2:1;15357:64:0;;;13168:21:1;13225:2;13205:18;;;13198:30;13264:34;13244:18;;;13237:62;-1:-1:-1;;;13315:18:1;;;13308:33;13358:19;;15357:64:0;12984:399:1;15357:64:0;15449:1;15440:6;:10;15432:64;;;;-1:-1:-1;;;15432:64:0;;13590:2:1;15432:64:0;;;13572:21:1;13629:2;13609:18;;;13602:30;13668:34;13648:18;;;13641:62;-1:-1:-1;;;13719:18:1;;;13712:39;13768:19;;15432:64:0;13388:405:1;15432:64:0;15525:15;15535:4;15525:9;:15::i;:::-;15515:6;:25;;15507:86;;;;-1:-1:-1;;;15507:86:0;;14000:2:1;15507:86:0;;;13982:21:1;14039:2;14019:18;;;14012:30;14078:34;14058:18;;;14051:62;-1:-1:-1;;;14129:18:1;;;14122:47;14186:19;;15507:86:0;13798:413:1;15507:86:0;-1:-1:-1;;;;;15618:24:0;;;;;;:18;:24;;;;;;;;15617:25;:52;;;;-1:-1:-1;;;;;;15647:22:0;;;;;;:18;:22;;;;;;;;15646:23;15617:52;15614:128;;;15693:14;;-1:-1:-1;;;15693:14:0;;;;15685:45;;;;-1:-1:-1;;;15685:45:0;;14418:2:1;15685:45:0;;;14400:21:1;14457:2;14437:18;;;14430:30;-1:-1:-1;;;14476:18:1;;;14469:48;14534:18;;15685:45:0;14216:342:1;15685:45:0;-1:-1:-1;;;;;15766:24:0;;;;;;:18;:24;;;;;;;;15765:25;:52;;;;-1:-1:-1;;;;;;15795:22:0;;;;;;:18;:22;;;;;;;;15794:23;15765:52;:85;;;;;15837:13;;15821:12;:29;;15765:85;15762:173;;;15881:4;;-1:-1:-1;;;;;15881:4:0;;;15875:10;;;;15867:56;;;;-1:-1:-1;;;15867:56:0;;14765:2:1;15867:56:0;;;14747:21:1;14804:2;14784:18;;;14777:30;14843:34;14823:18;;;14816:62;-1:-1:-1;;;14894:18:1;;;14887:31;14935:19;;15867:56:0;14563:397:1;15867:56:0;15966:4;;-1:-1:-1;;;;;15958:12:0;;;15966:4;;15958:12;:39;;;;-1:-1:-1;;;;;;15975:22:0;;;;;;:18;:22;;;;;;;;15974:23;15958:39;:52;;;;-1:-1:-1;16002:8:0;;-1:-1:-1;;;16002:8:0;;;;16001:9;15958:52;15955:246;;;16044:11;;16034:6;:21;;16026:63;;;;-1:-1:-1;;;16026:63:0;;15167:2:1;16026:63:0;;;15149:21:1;15206:2;15186:18;;;15179:30;15245:31;15225:18;;;15218:59;15294:18;;16026:63:0;14965:353:1;16026:63:0;16138:14;;16128:6;16112:13;16122:2;16112:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16104:85;;;;-1:-1:-1;;;16104:85:0;;15525:2:1;16104:85:0;;;15507:21:1;;;15544:18;;;15537:30;15603:34;15583:18;;;15576:62;15655:18;;16104:85:0;15323:356:1;16104:85:0;16232:4;;-1:-1:-1;;;;;16224:12:0;;;16232:4;;16224:12;;;;:39;;-1:-1:-1;;;;;;16241:22:0;;;;;;:18;:22;;;;;;;;16240:23;16224:39;:68;;;;-1:-1:-1;;;;;;16268:24:0;;;;;;:18;:24;;;;;;;;16267:25;16224:68;:81;;;;-1:-1:-1;16297:8:0;;-1:-1:-1;;;16297:8:0;;;;16296:9;16224:81;16221:325;;;16339:12;;16329:6;:22;;16321:65;;;;-1:-1:-1;;;16321:65:0;;15886:2:1;16321:65:0;;;15868:21:1;15925:2;15905:18;;;15898:30;15964:32;15944:18;;;15937:60;16014:18;;16321:65:0;15684:354:1;16321:65:0;16410:4;;-1:-1:-1;;;;;16404:10:0;;;16410:4;;16404:10;16401:134;;16468:14;;16458:6;16442:13;16452:2;16442:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16434:85;;;;-1:-1:-1;;;16434:85:0;;15525:2:1;16434:85:0;;;15507:21:1;;;15544:18;;;15537:30;15603:34;15583:18;;;15576:62;15655:18;;16434:85:0;15323:356:1;16434:85:0;16565:12;16608:18;;16580:24;16598:4;16580:9;:24::i;:::-;16641:8;;-1:-1:-1;;16580:46:0;;-1:-1:-1;;;;16641:8:0;;;;16640:9;:24;;;;-1:-1:-1;16653:11:0;;-1:-1:-1;;;16653:11:0;;;;16640:24;:35;;;;;16668:7;16640:35;:51;;;;-1:-1:-1;16687:4:0;;-1:-1:-1;;;;;16679:12:0;;;16687:4;;16679:12;;16640:51;:80;;;;-1:-1:-1;;;;;;16696:24:0;;;;;;:18;:24;;;;;;;;16695:25;16640:80;:107;;;;-1:-1:-1;;;;;;16725:22:0;;;;;;:18;:22;;;;;;;;16724:23;16640:107;16637:261;;;16772:4;;-1:-1:-1;;;;;16772:4:0;;;16766:10;;;;16763:123;;16794:18;;16779:45;;;;;;;;16814:9;16779:45;;;;;;;;;;;;;;;;;;;;;;;;;;16794:18;16779:14;:45::i;:::-;16763:123;;;16860:18;;16845:41;;;;;;;;16880:5;16845:41;;;;;;;;;;;;;;;;;;;;;;;;;;16860:18;16845:14;:41::i;:::-;16971:8;;16923:4;;16908:12;;-1:-1:-1;;;16971:8:0;;;;;:36;;-1:-1:-1;;;;;;16983:24:0;;;;;;:18;:24;;;;;;;;16971:36;:62;;;-1:-1:-1;;;;;;17011:22:0;;;;;;:18;:22;;;;;;;;16971:62;16968:82;;;17045:5;17035:15;;16968:82;17070:4;;-1:-1:-1;;;;;17070:4:0;;;17064:10;;;;17061:28;;-1:-1:-1;17085:4:0;17061:28;17102:49;17117:4;17123:2;17127:6;17135:7;17144:6;17102:14;:49::i;:::-;15267:1892;;;15198:1961;;;:::o;15032:158::-;15073:7;15094:15;15111;15130:19;:17;:19::i;:::-;15093:56;;-1:-1:-1;15093:56:0;-1:-1:-1;15167:15:0;15093:56;;15167:15;:::i;:::-;15160:22;;;;15032:158;:::o;12399:471::-;12485:36;;:::i;:::-;12546:37;12558:7;12567;12576:6;12546:11;:37::i;:::-;12534:49;;12703:53;12716:9;12727:7;12736;12745:10;:8;:10::i;:::-;12703:12;:53::i;:::-;12679:20;;;12594:162;12657:20;;;12594:162;12641:14;;;12594:162;12614:25;;;12594:162;;;12791:44;12595:9;12815:7;12824:10;:8;:10::i;:::-;12791:12;:44::i;:::-;12768:19;;;12767:68;12399:471;;;;;:::o;9126:361::-;9236:4;9212:13;7228:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;7228:27:0;;;;;;;;;;-1:-1:-1;;9319:37:0;;9315:165;;9402:51;9411:7;9420:5;9446:6;9427:16;:25;9402:8;:51::i;2024:173::-;2080:16;2099:6;;-1:-1:-1;;;;;2116:17:0;;;-1:-1:-1;;;;;;2116:17:0;;;;;;2149:40;;2099:6;;;;;;;2149:40;;2080:16;2149:40;2069:128;2024:173;:::o;18383:1210::-;5709:8;:15;;-1:-1:-1;;;;5709:15:0;-1:-1:-1;;;5709:15:0;;;18538:13:::1;::::0;::::1;::::0;18521:14:::1;::::0;::::1;::::0;18504::::1;::::0;::::1;::::0;5709:15;;18538:13;18504:31:::1;::::0;::::1;:::i;:::-;:47;;;;:::i;:::-;18503:53;::::0;18555:1:::1;18503:53;:::i;:::-;18481:75;;18567:32;18637:11;18620:4;:14;;;18602:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;18567:81:::0;-1:-1:-1;18659:14:0::1;18676:42;18567:81:::0;18676:15;:42:::1;:::i;:::-;18803:15;::::0;18659:59;;-1:-1:-1;18756:21:0::1;::::0;18793:26:::1;::::0;-1:-1:-1;;;;;18803:15:0::1;18793:9;:26::i;:::-;18779:11;:40:::0;18832:24:::1;18849:6:::0;18832:16:::1;:24::i;:::-;18867:20;18890:38;18914:14:::0;18890:21:::1;:38;:::i;:::-;18867:61;;18939:19;18990:4;:14;;;18976:11;:28;;;;:::i;:::-;18960:45;::::0;:12;:45:::1;:::i;:::-;18939:66;;19016:29;19062:4;:14;;;19048:11;:28;;;;:::i;:::-;19016:60:::0;-1:-1:-1;19092:25:0;;19089:158:::1;;19174:61;19187:24;19213:21;19174:12;:61::i;:::-;19300:14;::::0;::::1;::::0;19259:20:::1;::::0;19282:15:::1;:11:::0;19296:1:::1;19282:15;:::i;:::-;:32;;;;:::i;:::-;19259:55:::0;-1:-1:-1;19328:16:0;;19325:95:::1;;19368:15;::::0;19360:48:::1;::::0;-1:-1:-1;;;;;19368:15:0::1;19395:12:::0;19360:34:::1;:48::i;:::-;19470:13;::::0;::::1;::::0;19430:19:::1;::::0;19452:15:::1;:11:::0;19466:1:::1;19452:15;:::i;:::-;:31;;;;:::i;:::-;19430:53:::0;-1:-1:-1;19497:15:0;;19494:92:::1;;19536:14;::::0;19528:46:::1;::::0;-1:-1:-1;;;;;19536:14:0::1;19562:11:::0;19528:33:::1;:46::i;:::-;-1:-1:-1::0;;5747:8:0;:16;;-1:-1:-1;;;;5747:16:0;;;-1:-1:-1;;;;;;;;;18383:1210:0:o;17240:1135::-;17364:28;17395:36;17406:7;17415;17424:6;17395:10;:36::i;:::-;-1:-1:-1;;;;;17448:19:0;;;;;;:11;:19;;;;;;17364:67;;-1:-1:-1;17448:19:0;;17444:115;;;-1:-1:-1;;;;;17524:15:0;;;;;;:7;:15;;;;;;:23;;17540:7;;17524:23;:::i;:::-;-1:-1:-1;;;;;17506:15:0;;;;;;:7;:15;;;;;:41;17444:115;-1:-1:-1;;;;;17573:22:0;;;;;;:11;:22;;;;;;;;17569:130;;;17670:17;;;;-1:-1:-1;;;;;17651:18:0;;;;;;:7;:18;;;;;;:36;;17670:17;17651:36;:::i;:::-;-1:-1:-1;;;;;17630:18:0;;;;;;:7;:18;;;;;:57;17569:130;17745:9;;-1:-1:-1;;;;;17729:15:0;;17745:9;17729:15;;;:7;:15;;;;;;:25;;17745:9;17729:25;:::i;:::-;-1:-1:-1;;;;;17711:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;17805:17;;;17786:18;;;;;;;;;;:36;;17805:17;17786:36;:::i;:::-;-1:-1:-1;;;;;17765:18:0;;;;;;:7;:18;;;;;;;:57;;;;17846:6;;;:10;;;:24;;;17869:1;17860;:6;;;:10;17846:24;17843:56;;;17872:27;17884:1;:6;;;17892:1;:6;;;17872:11;:27::i;:::-;17928:1;17913;:12;;;:16;:36;;;;17948:1;17933;:12;;;:16;17913:36;17910:203;;;17966:41;17981:1;:12;;;17994:1;:12;;;17966:14;:41::i;:::-;18052:4;-1:-1:-1;;;;;18027:74:0;18036:6;-1:-1:-1;;;;;18027:74:0;;18089:1;:11;;;18074:1;:12;;;18059:1;:12;;;:27;;;;:::i;:::-;:41;;;;:::i;:::-;18027:74;;1822:25:1;;;1810:2;1795:18;18027:74:0;;;;;;;17910:203;18141:1;18126;:12;;;:16;:36;;;;18161:1;18146;:12;;;:16;18126:36;18123:83;;;18164:42;18179:1;:12;;;18193:1;:12;;;18164:14;:42::i;:::-;18234:1;18220;:11;;;:15;:34;;;;18253:1;18239;:11;;;:15;18220:34;18217:78;;;18256:39;18270:1;:11;;;18283:1;:11;;;18256:13;:39::i;:::-;18328:9;-1:-1:-1;;;;;18311:46:0;18320:6;-1:-1:-1;;;;;18311:46:0;;18339:1;:17;;;18311:46;;;;1822:25:1;;1810:2;1795:18;;1676:177;18311:46:0;;;;;;;;17351:1024;17240:1135;;;;;:::o;14484:540::-;14581:7;;14534;;;;;4269:13;4159:1;4269:2;:13;:::i;:::-;4253:29;;:13;:29;:::i;:::-;14599:25;;14640:9;14635:279;14659:9;:16;14655:20;;14635:279;;;14725:7;14701;:21;14709:9;14719:1;14709:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14709:12:0;14701:21;;;;;;;;;;;;;:31;;:66;;;14760:7;14736;:21;14744:9;14754:1;14744:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14744:12:0;14736:21;;;;;;;;;;;;;:31;14701:66;14697:97;;;14777:7;;4269:13;4159:1;4269:2;:13;:::i;:::-;4253:29;;:13;:29;:::i;:::-;14769:25;;;;;;;14484:540;;:::o;14697:97::-;14827:7;:21;14835:9;14845:1;14835:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14835:12:0;14827:21;;;;;;;;;;;;;14819:29;;:7;:29;:::i;:::-;14809:39;;14881:7;:21;14889:9;14899:1;14889:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14889:12:0;14881:21;;;;;;;;;;;;;14873:29;;:7;:29;:::i;:::-;14863:39;-1:-1:-1;14677:3:0;;;;:::i;:::-;;;;14635:279;;;-1:-1:-1;4269:13:0;4159:1;4269:2;:13;:::i;:::-;4253:29;;:13;:29;:::i;:::-;14938:7;;:15;;;;:::i;:::-;14928:7;:25;14924:56;;;14963:7;;4269:13;4159:1;4269:2;:13;:::i;:::-;4253:29;;:13;:29;:::i;:::-;14955:25;;;;;;14484:540;;:::o;14924:56::-;14999:7;;15008;;-1:-1:-1;14484:540:0;-1:-1:-1;14484:540:0:o;12878:623::-;12965:28;;:::i;:::-;13012:7;13008:86;;13034:17;;;:27;;;13074:8;;13008:86;13104:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13104:17:0;13135:6;13132:55;;;-1:-1:-1;13143:16:0;;;;;;;;13150:9;13143:16;;;;;;;;;;;;;;;;;;;;;;;;13132:55;;;-1:-1:-1;13175:12:0;;;;;;;;13182:5;13175:12;;;;;;;;;;;;;;;;;;;;;;;;13132:55;13225:8;;13234:3;;13217:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;13208:6;;;:29;13271:14;;;;13286:3;;13263:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13248:12;;;:41;13323:14;;;;13338:3;;13315:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13300:12;;;:41;13374:13;;;;13388:3;;13366:21;;:7;:21;:::i;:::-;:25;;;;:::i;:::-;13352:11;;;:39;;;13450:12;;;;13437;;;;13430:6;;;;13422:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:52;;;;:::i;:::-;13402:17;;;:72;-1:-1:-1;12878:623:0;;;;;:::o;13509:683::-;13635:15;;;;;13750:19;13758:11;13750:7;:19;:::i;:::-;13740:29;;13786:7;13782:69;;-1:-1:-1;13815:7:0;;-1:-1:-1;13833:1:0;;-1:-1:-1;13833:1:0;;-1:-1:-1;13833:1:0;13808:31;;13782:69;13877:11;13870:1;:6;;;:18;;;;:::i;:::-;13863:25;;13925:11;13912:1;:12;;;:24;;;;:::i;:::-;13899:37;;13973:11;13960:1;:12;;;:24;;;;:::i;:::-;13947:37;;13995:17;14027:11;14015:1;:11;;;:23;;;;:::i;:::-;13995:43;-1:-1:-1;13995:43:0;14092:10;14081;14068:12;14076:4;14068:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;:44;;;;:::i;:::-;14049:63;;14123:61;13509:683;;;;;;;;;;:::o;14204:272::-;14313:17;14349:7;14345:47;;-1:-1:-1;14378:1:0;14371:9;;14345:47;14428:11;14416:1;:11;;;:23;;;;:::i;:::-;14404:35;14204:272;-1:-1:-1;;;;14204:272:0:o;20146:605::-;20296:16;;;20310:1;20296:16;;;;;;;;20272:21;;20296:16;;;;;;;;;;-1:-1:-1;20296:16:0;20272:40;;20341:4;20323;20328:1;20323:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20323:23:0;;;:7;;;;;;;;;;:23;;;;20367:6;;:13;;;-1:-1:-1;;;20367:13:0;;;;:6;;;;;:11;;:13;;;;;20323:7;;20367:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20357:4;20362:1;20357:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20357:23:0;;;:7;;;;;;;;;:23;20425:6;;20393:53;;20410:4;;20425:6;20434:11;20393:8;:53::i;:::-;20470:18;;20456:11;;:32;20448:41;;;;;;20528:6;;:215;;-1:-1:-1;;;20528:215:0;;-1:-1:-1;;;;;20528:6:0;;;;:57;;:215;;20600:11;;20528:6;;20670:4;;20697;;20717:15;;20528:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19601:495;19781:6;;19749:53;;19766:4;;-1:-1:-1;;;;;19781:6:0;19790:11;19749:8;:53::i;:::-;19845:6;;-1:-1:-1;;;;;19845:6:0;:22;19875:9;19908:4;19928:11;19845:6;;20040:7;1545;1572:6;-1:-1:-1;;;;;1572:6:0;;1499:87;20040:7;20062:15;19845:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19601:495;;:::o;2967:317::-;3082:6;3057:21;:31;;3049:73;;;;-1:-1:-1;;;3049:73:0;;17634:2:1;3049:73:0;;;17616:21:1;17673:2;17653:18;;;17646:30;17712:31;17692:18;;;17685:59;17761:18;;3049:73:0;17432:353:1;3049:73:0;3136:12;3154:9;-1:-1:-1;;;;;3154:14:0;3176:6;3154:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3135:52;;;3206:7;3198:78;;;;-1:-1:-1;;;3198:78:0;;18202:2:1;3198:78:0;;;18184:21:1;18241:2;18221:18;;;18214:30;18280:34;18260:18;;;18253:62;18351:28;18331:18;;;18324:56;18397:19;;3198:78:0;18000:422:1;10848:123:0;10926:4;10916:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10941:11:0;:22;;10959:4;;10941:11;:15;;:22;;10959:4;;10941:22;:::i;:::-;;;;-1:-1:-1;;;;10848:123:0:o;11522:284::-;11629:10;11605:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;11675:4:0;11655:26;;;;:11;:26;;;;;;;;11652:101;;;11723:4;11707:22;;;;:7;:22;;;;;:34;;11731:10;;11707:22;:34;;11731:10;;11707:34;:::i;:::-;;;;-1:-1:-1;;11652:101:0;11779:4;11763:22;;;;:7;:22;;;;;:35;;11788:10;;11763:22;:35;;11788:10;;11763:35;:::i;11814:284::-;11921:10;11897:11;:21;;;:34;;;;;;;:::i;12110:277::-;12213:9;12190:11;:20;;;:32;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:456::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;1416:9;1403:23;1435:31;1460:5;1435:31;:::i;:::-;1485:5;-1:-1:-1;1542:2:1;1527:18;;1514:32;1555:33;1514:32;1555:33;:::i;:::-;1215:456;;1607:7;;-1:-1:-1;;;1661:2:1;1646:18;;;;1633:32;;1215:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2232:118::-;2318:5;2311:13;2304:21;2297:5;2294:32;2284:60;;2340:1;2337;2330:12;2355:309;2420:6;2428;2481:2;2469:9;2460:7;2456:23;2452:32;2449:52;;;2497:1;2494;2487:12;2449:52;2533:9;2520:23;2510:33;;2593:2;2582:9;2578:18;2565:32;2606:28;2628:5;2606:28;:::i;:::-;2653:5;2643:15;;;2355:309;;;;;:::o;2669:247::-;2728:6;2781:2;2769:9;2760:7;2756:23;2752:32;2749:52;;;2797:1;2794;2787:12;2749:52;2836:9;2823:23;2855:31;2880:5;2855:31;:::i;3525:388::-;3593:6;3601;3654:2;3642:9;3633:7;3629:23;3625:32;3622:52;;;3670:1;3667;3660:12;3622:52;3709:9;3696:23;3728:31;3753:5;3728:31;:::i;:::-;3778:5;-1:-1:-1;3835:2:1;3820:18;;3807:32;3848:33;3807:32;3848:33;:::i;4141:347::-;4343:2;4325:21;;;4382:2;4362:18;;;4355:30;4421:25;4416:2;4401:18;;4394:53;4479:2;4464:18;;4141:347::o;4493:356::-;4695:2;4677:21;;;4714:18;;;4707:30;4773:34;4768:2;4753:18;;4746:62;4840:2;4825:18;;4493:356::o;5133:245::-;5200:6;5253:2;5241:9;5232:7;5228:23;5224:32;5221:52;;;5269:1;5266;5259:12;5221:52;5301:9;5295:16;5320:28;5342:5;5320:28;:::i;5383:127::-;5444:10;5439:3;5435:20;5432:1;5425:31;5475:4;5472:1;5465:15;5499:4;5496:1;5489:15;5515:422;5604:1;5647:5;5604:1;5661:270;5682:7;5672:8;5669:21;5661:270;;;5741:4;5737:1;5733:6;5729:17;5723:4;5720:27;5717:53;;;5750:18;;:::i;:::-;5800:7;5790:8;5786:22;5783:55;;;5820:16;;;;5783:55;5899:22;;;;5859:15;;;;5661:270;;;5665:3;5515:422;;;;;:::o;5942:806::-;5991:5;6021:8;6011:80;;-1:-1:-1;6062:1:1;6076:5;;6011:80;6110:4;6100:76;;-1:-1:-1;6147:1:1;6161:5;;6100:76;6192:4;6210:1;6205:59;;;;6278:1;6273:130;;;;6185:218;;6205:59;6235:1;6226:10;;6249:5;;;6273:130;6310:3;6300:8;6297:17;6294:43;;;6317:18;;:::i;:::-;-1:-1:-1;;6373:1:1;6359:16;;6388:5;;6185:218;;6487:2;6477:8;6474:16;6468:3;6462:4;6459:13;6455:36;6449:2;6439:8;6436:16;6431:2;6425:4;6422:12;6418:35;6415:77;6412:159;;;-1:-1:-1;6524:19:1;;;6556:5;;6412:159;6603:34;6628:8;6622:4;6603:34;:::i;:::-;6673:6;6669:1;6665:6;6661:19;6652:7;6649:32;6646:58;;;6684:18;;:::i;:::-;6722:20;;5942:806;-1:-1:-1;;;5942:806:1:o;6753:140::-;6811:5;6840:47;6881:4;6871:8;6867:19;6861:4;6840:47;:::i;6898:168::-;6971:9;;;7002;;7019:15;;;7013:22;;6999:37;6989:71;;7040:18;;:::i;7480:128::-;7547:9;;;7568:11;;;7565:37;;;7582:18;;:::i;8024:217::-;8064:1;8090;8080:132;;8134:10;8129:3;8125:20;8122:1;8115:31;8169:4;8166:1;8159:15;8197:4;8194:1;8187:15;8080:132;-1:-1:-1;8226:9:1;;8024:217::o;8246:125::-;8311:9;;;8332:10;;;8329:36;;;8345:18;;:::i;9116:251::-;9186:6;9239:2;9227:9;9218:7;9214:23;9210:32;9207:52;;;9255:1;9252;9245:12;9207:52;9287:9;9281:16;9306:31;9331:5;9306:31;:::i;9681:607::-;-1:-1:-1;;;;;10040:15:1;;;10022:34;;10087:2;10072:18;;10065:34;;;;10130:2;10115:18;;10108:34;;;;10173:2;10158:18;;10151:34;;;;10222:15;;;10216:3;10201:19;;10194:44;10002:3;10254:19;;10247:35;;;;9971:3;9956:19;;9681:607::o;10293:306::-;10381:6;10389;10397;10450:2;10438:9;10429:7;10425:23;10421:32;10418:52;;;10466:1;10463;10456:12;10418:52;10495:9;10489:16;10479:26;;10545:2;10534:9;10530:18;10524:25;10514:35;;10589:2;10578:9;10574:18;10568:25;10558:35;;10293:306;;;;;:::o;16043:127::-;16104:10;16099:3;16095:20;16092:1;16085:31;16135:4;16132:1;16125:15;16159:4;16156:1;16149:15;16175:135;16214:3;16235:17;;;16232:43;;16255:18;;:::i;:::-;-1:-1:-1;16302:1:1;16291:13;;16175:135::o;16447:980::-;16709:4;16757:3;16746:9;16742:19;16788:6;16777:9;16770:25;16814:2;16852:6;16847:2;16836:9;16832:18;16825:34;16895:3;16890:2;16879:9;16875:18;16868:31;16919:6;16954;16948:13;16985:6;16977;16970:22;17023:3;17012:9;17008:19;17001:26;;17062:2;17054:6;17050:15;17036:29;;17083:1;17093:195;17107:6;17104:1;17101:13;17093:195;;;17172:13;;-1:-1:-1;;;;;17168:39:1;17156:52;;17263:15;;;;17228:12;;;;17204:1;17122:9;17093:195;;;-1:-1:-1;;;;;;;17344:32:1;;;;17339:2;17324:18;;17317:60;-1:-1:-1;;;17408:3:1;17393:19;17386:35;17305:3;16447:980;-1:-1:-1;;;16447:980:1:o

Swarm Source

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