ETH Price: $2,541.79 (-3.90%)
Gas: 1 Gwei

Token

The TED Bear (TED)
 

Overview

Max Total Supply

1,000,000,000 TED

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
31,637,527.691403112 TED

Value
$0.00
0xbda71529002df60315c64473e4f7b788003d0462
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TedBear

Compiler Version
v0.8.19+commit.7dd6d404

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-17
*/

/**

    Website: https://www.tedbear.money

    Twitter: https://twitter.com/tedbearmoney

    TG:  https://t.me/tedbearmoney

*/

// SPDX-License-Identifier: NOLICENSE

pragma solidity ^0.8.7;

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

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

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

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

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

contract TedBear is Context, IERC20, Ownable {
    using Address for address payable;
    
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) public allowedTransfer;

    address[] private _excluded;

    bool public tradingEnabled;
    bool public swapEnabled;
    bool private swapping;
    
    modifier antiBot(address account){
        require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet");
        _;
    }

    modifier allowedBot(address account){
        require(isExcludedFromFee(account));
        _;
    }

    string private constant _name = "The TED Bear";
    string private constant _symbol = "TED";

    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 * 3 / 10000;
    uint256 public maxBuyLimit = _tTotal * 22 / 1000;
    uint256 public maxSellLimit = _tTotal * 22 / 1000;
    uint256 public maxWalletLimit = _tTotal * 22 / 1000;
    
    uint256 public genesis_block;
    
    address public marketingWallet = 0xA2077EAD4Aa15C2722AbD1B7ED653E1EeCA66A90;
    address public donationWallet = 0xF680eF7C2E3449b14bCcd33C22E011d81dd9315e;

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

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

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity; 
        uint256 donation;
    }
    
    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;
    }

    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 antiBot(msg.sender) returns(bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override antiBot(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  antiBot(msg.sender) returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public  antiBot(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 antiBot(msg.sender) returns (bool)
    { 
      _transfer(msg.sender, recipient, amount);
      return true;
    }

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

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true, false);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, false);
            return s.rTransferAmount;
        }
    }

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

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

        swapTokensForBNB(toSwap);
        bool success;

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

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

        uint256 marketingAmt = unitBalance * 2 * temp.marketing;
        uint256 mktBalance = balanceOf(marketingWallet);
        if (mktBalance > swapTokensAtAmount) {
            marketingAmt = marketingAmt / (success ? temp.marketing : 0);
        }
        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 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

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

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

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

    receive() external payable{
    }

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

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

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

}

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":"createPair","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":"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":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"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"}]

6080604052620000126009600a62000565565b6200002290633b9aca006200057d565b6200003090600019620005ad565b6200003e90600019620005c4565b600a556127106009600a62000054919062000565565b6200006490633b9aca006200057d565b620000719060036200057d565b6200007d9190620005da565b600b556103e8620000916009600a62000565565b620000a190633b9aca006200057d565b620000ae9060166200057d565b620000ba9190620005da565b600c556103e8620000ce6009600a62000565565b620000de90633b9aca006200057d565b620000eb9060166200057d565b620000f79190620005da565b600d556103e86200010b6009600a62000565565b6200011b90633b9aca006200057d565b620001289060166200057d565b620001349190620005da565b600e55601080546001600160a01b031990811673a2077ead4aa15c2722abd1b7ed653e1eeca66a90179091556011805490911673f680ef7c2e3449b14bccd33c22e011d81dd9315e179055604080516080808201835260008083526001602080850182905284860183905260609485018390526012839055601382905560148390556015839055855193840186528284528301819052938201819052910181905260168190556017919091556018819055601955348015620001f557600080fd5b50620002013362000400565b600880546301000000600160b81b031916767a250d5630b4cf539739df2c5dacb4c659f2488d000000179055600a54737a250d5630b4cf539739df2c5dacb4c659f2488d90600160006200025d6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620002ac6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560105482168152600484528281208054861660019081179091556011549092168152828120805486168317905530815260069384905291822080549094168117909355620003306000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556010548216815260069093528183208054851660019081179091556011549091168352912080549092161790556200039e6000546001600160a01b031690565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003d86009600a62000565565b620003e890633b9aca006200057d565b60405190815260200160405180910390a350620005f1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004a75781600019048211156200048b576200048b62000450565b808516156200049957918102915b93841c93908002906200046b565b509250929050565b600082620004c0575060016200055f565b81620004cf575060006200055f565b8160018114620004e85760028114620004f35762000513565b60019150506200055f565b60ff84111562000507576200050762000450565b50506001821b6200055f565b5060208310610133831016604e8410600b841016171562000538575081810a6200055f565b62000544838362000466565b80600019048211156200055b576200055b62000450565b0290505b92915050565b60006200057660ff841683620004af565b9392505050565b80820281158282048414176200055f576200055f62000450565b634e487b7160e01b600052601260045260246000fd5b600082620005bf57620005bf62000597565b500690565b818103818111156200055f576200055f62000450565b600082620005ec57620005ec62000597565b500490565b612d8780620006016000396000f3fe6080604052600436106102345760003560e01c80636ddd17131161012e5780639e78fb4f116100ab578063e2f456051161006f578063e2f4560514610700578063e7b94df414610716578063f2fde38b14610736578063f66895a314610756578063f887ea401461077957600080fd5b80639e78fb4f14610652578063a457c2d71461065a578063a8aa1b311461067a578063a9059cbb1461069a578063dd62ed3e146106ba57600080fd5b806375f0a874116100f257806375f0a8741461057457806388f82020146105ac5780638da5cb5b146105e557806395d89b41146106035780639ba5e4d51461062f57600080fd5b80636ddd1713146104c857806370a08231146104e7578063715018a614610507578063728f8eea1461051c578063751039fc1461055f57600080fd5b8063441b1d30116101bc5780635342acb4116101805780635342acb41461041d57806362695eae14610456578063652e2f041461048657806366a88d961461049c5780636aa5b37f146104b257600080fd5b8063441b1d30146103835780634549b039146103a3578063463fef62146103c357806347c23092146103e35780634ada218b1461040357600080fd5b8063274a533c11610203578063274a533c146102fa578063293230b8146103105780632d83811914610327578063313ce56714610347578063395093511461036357600080fd5b806306fdde0314610240578063095ea7b31461028757806318160ddd146102b757806323b872dd146102da57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600c81526b2a3432902a22a2102132b0b960a11b60208201525b60405161027e91906128c8565b60405180910390f35b34801561029357600080fd5b506102a76102a236600461292b565b6107a0565b604051901515815260200161027e565b3480156102c357600080fd5b506102cc610808565b60405190815260200161027e565b3480156102e657600080fd5b506102a76102f5366004612957565b610829565b34801561030657600080fd5b506102cc600f5481565b34801561031c57600080fd5b50610325610923565b005b34801561033357600080fd5b506102cc610342366004612998565b610962565b34801561035357600080fd5b506040516009815260200161027e565b34801561036f57600080fd5b506102a761037e36600461292b565b6109e6565b34801561038f57600080fd5b5061032561039e366004612998565b610a66565b3480156103af57600080fd5b506102cc6103be3660046129bf565b610b11565b3480156103cf57600080fd5b506103256103de36600461292b565b610bbc565b3480156103ef57600080fd5b506103256103fe366004612957565b610c61565b34801561040f57600080fd5b506008546102a79060ff1681565b34801561042957600080fd5b506102a76104383660046129ef565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561046257600080fd5b506102a76104713660046129ef565b60066020526000908152604090205460ff1681565b34801561049257600080fd5b506102cc600d5481565b3480156104a857600080fd5b506102cc600e5481565b3480156104be57600080fd5b506102cc600c5481565b3480156104d457600080fd5b506008546102a790610100900460ff1681565b3480156104f357600080fd5b506102cc6105023660046129ef565b610cc0565b34801561051357600080fd5b50610325610d1f565b34801561052857600080fd5b5060125460135460145460155461053f9392919084565b60408051948552602085019390935291830152606082015260800161027e565b34801561056b57600080fd5b50610325610d55565b34801561058057600080fd5b50601054610594906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b3480156105b857600080fd5b506102a76105c73660046129ef565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156105f157600080fd5b506000546001600160a01b0316610594565b34801561060f57600080fd5b5060408051808201909152600381526215115160ea1b6020820152610271565b34801561063b57600080fd5b50601a54601b54601c54601d5461053f9392919084565b610325610dd8565b34801561066657600080fd5b506102a761067536600461292b565b6110bc565b34801561068657600080fd5b50600954610594906001600160a01b031681565b3480156106a657600080fd5b506102a76106b536600461292b565b6111a2565b3480156106c657600080fd5b506102cc6106d5366004612a0c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561070c57600080fd5b506102cc600b5481565b34801561072257600080fd5b50601154610594906001600160a01b031681565b34801561074257600080fd5b506103256107513660046129ef565b6111f7565b34801561076257600080fd5b5060165460175460185460195461053f9392919084565b34801561078557600080fd5b5060085461059490630100000090046001600160a01b031681565b600854600090339060ff16806107ce57506001600160a01b03811660009081526006602052604090205460ff165b6107f35760405162461bcd60e51b81526004016107ea90612a3a565b60405180910390fd5b6107fe338585611292565b5060019392505050565b60006108166009600a612b6b565b61082490633b9aca00612b7a565b905090565b600854600090849060ff168061085757506001600160a01b03811660009081526006602052604090205460ff165b6108735760405162461bcd60e51b81526004016107ea90612a3a565b61087e8585856113b6565b6001600160a01b0385166000908152600360209081526040808320338452909152902054838110156109035760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ea565b61091786336109128785612b91565b611292565b50600195945050505050565b6000546001600160a01b0316331461094d5760405162461bcd60e51b81526004016107ea90612ba4565b6008805461ffff191661010117905543600f55565b6000600a548211156109c95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107ea565b60006109d3611aa1565b90506109df8184612bd9565b9392505050565b600854600090339060ff1680610a1457506001600160a01b03811660009081526006602052604090205460ff165b610a305760405162461bcd60e51b81526004016107ea90612a3a565b3360008181526003602090815260408083206001600160a01b03891684529091529020546107fe91908690610912908790612bfb565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016107ea90612ba4565b80471015610ae05760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016107ea565b604051339082156108fc029083906000818181858888f19350505050158015610b0d573d6000803e3d6000fd5b5050565b6000610b1f6009600a612b6b565b610b2d90633b9aca00612b7a565b831115610b7c5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107ea565b81610b9a576000610b908460016000611ac4565b519150610bb69050565b6000610ba98460016000611ac4565b602001519150610bb69050565b92915050565b3360008181526004602052604090205460ff16610bd857600080fd5b610be28383611b20565b6040516323b872dd60e01b81526001600160a01b0384166004820152306024820181905260448201849052906323b872dd906064015b6020604051808303816000875af1158015610c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5b9190612c0e565b50505050565b6000546001600160a01b03163314610c8b5760405162461bcd60e51b81526004016107ea90612ba4565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401610c18565b6001600160a01b03811660009081526005602052604081205460ff1615610cfd57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610bb690610962565b6000546001600160a01b03163314610d495760405162461bcd60e51b81526004016107ea90612ba4565b610d536000611b5a565b565b6000546001600160a01b03163314610d7f5760405162461bcd60e51b81526004016107ea90612ba4565b610d8b6009600a612b6b565b610d9990633b9aca00612b7a565b600c55610da86009600a612b6b565b610db690633b9aca00612b7a565b600d55610dc56009600a612b6b565b610dd390633b9aca00612b7a565b600e55565b6000546001600160a01b03163314610e025760405162461bcd60e51b81526004016107ea90612ba4565b600860039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e799190612c2b565b6001600160a01b031663c9c6539630600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190612c2b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612c2b565b600980546001600160a01b039283166001600160a01b0319918216811783556000908152600560209081526040808320805460ff1990811660019081179092558654600780548085019091557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805490971690891617909555945486168352600690915290208054909116909117905560085461101a9130916301000000900416600019611292565b600854630100000090046001600160a01b031663f305d719343061103d81610cc0565b6000806110526000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161107496959493929190612c48565b60606040518083038185885af1158015611092573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110b79190612c83565b505050565b600854600090339060ff16806110ea57506001600160a01b03811660009081526006602052604090205460ff165b6111065760405162461bcd60e51b81526004016107ea90612a3a565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156111885760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ea565b61119733866109128785612b91565b506001949350505050565b600854600090339060ff16806111d057506001600160a01b03811660009081526006602052604090205460ff165b6111ec5760405162461bcd60e51b81526004016107ea90612a3a565b6107fe3385856113b6565b6000546001600160a01b031633146112215760405162461bcd60e51b81526004016107ea90612ba4565b6001600160a01b0381166112865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ea565b61128f81611b5a565b50565b6001600160a01b0383166112f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ea565b6001600160a01b0382166113555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ea565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661141a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ea565b6001600160a01b03821661147c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ea565b600081116114de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ea565b6114e783610cc0565b8111156115505760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107ea565b6001600160a01b03831660009081526004602052604090205460ff1615801561159257506001600160a01b03821660009081526004602052604090205460ff16155b156115de5760085460ff166115de5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107ea565b6001600160a01b03831660009081526004602052604090205460ff1615801561162057506001600160a01b03821660009081526004602052604090205460ff16155b801561162e5750600f544311155b1561169b576009546001600160a01b039081169083160361169b5760405162461bcd60e51b815260206004820152602160248201527f53656c6c73206e6f7420616c6c6f77656420666f72206465616420626c6f636b6044820152607360f81b60648201526084016107ea565b6009546001600160a01b0384811691161480156116d157506001600160a01b03821660009081526004602052604090205460ff16155b80156116e6575060085462010000900460ff16155b156117a257600c5481111561173d5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016107ea565b600e548161174a84610cc0565b6117549190612bfb565b11156117a25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107ea565b6009546001600160a01b038481169116148015906117d957506001600160a01b03821660009081526004602052604090205460ff16155b80156117fe57506001600160a01b03831660009081526004602052604090205460ff16155b8015611813575060085462010000900460ff16155b156118e457600d5481111561186a5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016107ea565b6009546001600160a01b038381169116146118e457600e548161188c84610cc0565b6118969190612bfb565b11156118e45760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107ea565b6000600b546118f230610cc0565b600854911115915062010000900460ff161580156119175750600854610100900460ff165b80156119205750805b801561193a57506009546001600160a01b03858116911614155b801561195f57506001600160a01b03841660009081526004602052604090205460ff16155b801561198457506001600160a01b03831660009081526004602052604090205460ff16155b15611a10576009546001600160a01b03908116908416036119da57600b5460408051608081018252601654815260175460208201526018549181019190915260195460608201526119d59190611baa565b611a10565b600b546040805160808101825260125481526013546020820152601454918101919091526015546060820152611a109190611baa565b60085460019060009062010000900460ff1680611a4557506001600160a01b03861660009081526004602052604090205460ff165b80611a6857506001600160a01b03851660009081526004602052604090205460ff165b15611a7257600091505b6009546001600160a01b0390811690861603611a8c575060015b611a998686868585611d4b565b505050505050565b6000806000611aae612018565b9092509050611abd8183612bd9565b9250505090565b611acc61286e565b611ad7848484612204565b9050611aec818585611ae7611aa1565b612374565b60808601526060850152604084015260208301528152611b148184611b0f611aa1565b612423565b60a08201529392505050565b3060008181526003602090815260408083206001600160a01b03871684529091529020546000198114610c5b57610c5b8483858403611292565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805462ff000019166201000017905560608101516020820151604083015160009291611bd791612bfb565b611be19190612bfb565b611bec906002612b7a565b9050600081836040015185611c019190612b7a565b611c0b9190612bd9565b90506000611c198286612b91565b905047611c258261244b565b600080611c328347612b91565b90506000876040015187611c469190612b91565b611c509083612bd9565b90506000886040015182611c649190612b7a565b90508015611c7657611c7687826125c4565b6020890151600090611c89846002612b7a565b611c939190612b7a565b601054909150600090611cae906001600160a01b0316610cc0565b9050600b54811115611cd95785611cc6576000611ccc565b8a602001515b611cd69083612bd9565b91505b8115611cf557601054611cf5906001600160a01b031683612680565b60608b0151600090611d08866002612b7a565b611d129190612b7a565b90508015611d3057601154611d30906001600160a01b031682612680565b50506008805462ff0000191690555050505050505050505050565b6000611d58848484611ac4565b6001600160a01b03871660009081526005602052604090205490915060ff1615611dba576001600160a01b038616600090815260026020526040902054611da0908590612b91565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e1d5760c08101516001600160a01b038616600090815260026020526040902054611e039190612bfb565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611e429190612b91565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611e799190612bfb565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611eab575060008160e00151115b15611ec257611ec281604001518260e00151612799565b600081608001511180611eda57506000816101200151115b15611f5f57611ef281608001518261012001516127ce565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151611f439190612bfb565b611f4d9190612bfb565b60405190815260200160405180910390a35b600081606001511180611f7757506000816101000151115b15611f8f57611f8f8160600151826101000151612844565b60008160a001511180611fa757506000816101400151115b15611fbf57611fbf8160a00151826101400151612859565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161200891815260200190565b60405180910390a3505050505050565b6000806000600a54905060006009600a6120329190612b6b565b61204090633b9aca00612b7a565b905060005b6007548110156121a35782600160006007848154811061206757612067612cb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806120d257508160026000600784815481106120ab576120ab612cb1565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561210157600a546009600a6120e89190612b6b565b6120f690633b9aca00612b7a565b945094505050509091565b600160006007838154811061211857612118612cb1565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121479084612b91565b9250600260006007838154811061216057612160612cb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461218f9083612b91565b91508061219b81612cc7565b915050612045565b506121b06009600a612b6b565b6121be90633b9aca00612b7a565b600a546121cb9190612bd9565b8210156121fb57600a546009600a6121e39190612b6b565b6121f190633b9aca00612b7a565b9350935050509091565b90939092509050565b61220c61286e565b8261221d5760c081018490526109df565b6122486040518060800160405280600081526020016000815260200160008152602001600081525090565b821561227d575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122a8565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122b79087612b7a565b6122c19190612bd9565b60e083015260208101516064906122d89087612b7a565b6122e29190612bd9565b61010083015260408101516064906122fa9087612b7a565b6123049190612bd9565b610120830152606081015160649061231c9087612b7a565b6123269190612bd9565b610140830181905261012083015161010084015160e08501516123499089612b91565b6123539190612b91565b61235d9190612b91565b6123679190612b91565b60c0830152509392505050565b6000808080806123848689612b7a565b94508661239c57508392506000915081905080612418565b858960e001516123ac9190612b7a565b9250858961010001516123bf9190612b7a565b9150858961012001516123d29190612b7a565b90506000868a61014001516123e79190612b7a565b90508082846123f6878a612b91565b6124009190612b91565b61240a9190612b91565b6124149190612b91565b9450505b945094509450945094565b600082612432575060006109df565b818461014001516124439190612b7a565b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061248057612480612cb1565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125179190612c2b565b8160018151811061252a5761252a612cb1565b6001600160a01b039283166020918202929092010152600854612557913091630100000090041684611292565b60085460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790612596908590600090869030904290600401612ce0565b600060405180830381600087803b1580156125b057600080fd5b505af1158015611a99573d6000803e3d6000fd5b6008546125e3903090630100000090046001600160a01b031684611292565b6008546001600160a01b0363010000009091041663f305d7198230856000806126146000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161263696959493929190612c48565b60606040518083038185885af1158015612654573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126799190612c83565b5050505050565b804710156126d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ea565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461271d576040519150601f19603f3d011682016040523d82523d6000602084013e612722565b606091505b50509050806110b75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ea565b81600a60008282546127ab9190612b91565b9091555050601a80548291906000906127c5908490612bfb565b90915550505050565b80601a60020160008282546127e39190612bfb565b90915550503060009081526005602052604090205460ff161561282557306000908152600260205260408120805483929061281f908490612bfb565b90915550505b30600090815260016020526040812080548492906127c5908490612bfb565b80601a60010160008282546127e39190612bfb565b80601a60030160008282546127e39190612bfb565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156128f5578581018301518582016040015282016128d9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461128f57600080fd5b6000806040838503121561293e57600080fd5b823561294981612916565b946020939093013593505050565b60008060006060848603121561296c57600080fd5b833561297781612916565b9250602084013561298781612916565b929592945050506040919091013590565b6000602082840312156129aa57600080fd5b5035919050565b801515811461128f57600080fd5b600080604083850312156129d257600080fd5b8235915060208301356129e4816129b1565b809150509250929050565b600060208284031215612a0157600080fd5b81356109df81612916565b60008060408385031215612a1f57600080fd5b8235612a2a81612916565b915060208301356129e481612916565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612ac2578160001904821115612aa857612aa8612a71565b80851615612ab557918102915b93841c9390800290612a8c565b509250929050565b600082612ad957506001610bb6565b81612ae657506000610bb6565b8160018114612afc5760028114612b0657612b22565b6001915050610bb6565b60ff841115612b1757612b17612a71565b50506001821b610bb6565b5060208310610133831016604e8410600b8410161715612b45575081810a610bb6565b612b4f8383612a87565b8060001904821115612b6357612b63612a71565b029392505050565b60006109df60ff841683612aca565b8082028115828204841417610bb657610bb6612a71565b81810381811115610bb657610bb6612a71565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082612bf657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bb657610bb6612a71565b600060208284031215612c2057600080fd5b81516109df816129b1565b600060208284031215612c3d57600080fd5b81516109df81612916565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612c9857600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201612cd957612cd9612a71565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d305784516001600160a01b031683529383019391830191600101612d0b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a66f1bc03664971a7ffeb738c97923f8b090741fb3f8b78a17f1b24dcdc22cd464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80636ddd17131161012e5780639e78fb4f116100ab578063e2f456051161006f578063e2f4560514610700578063e7b94df414610716578063f2fde38b14610736578063f66895a314610756578063f887ea401461077957600080fd5b80639e78fb4f14610652578063a457c2d71461065a578063a8aa1b311461067a578063a9059cbb1461069a578063dd62ed3e146106ba57600080fd5b806375f0a874116100f257806375f0a8741461057457806388f82020146105ac5780638da5cb5b146105e557806395d89b41146106035780639ba5e4d51461062f57600080fd5b80636ddd1713146104c857806370a08231146104e7578063715018a614610507578063728f8eea1461051c578063751039fc1461055f57600080fd5b8063441b1d30116101bc5780635342acb4116101805780635342acb41461041d57806362695eae14610456578063652e2f041461048657806366a88d961461049c5780636aa5b37f146104b257600080fd5b8063441b1d30146103835780634549b039146103a3578063463fef62146103c357806347c23092146103e35780634ada218b1461040357600080fd5b8063274a533c11610203578063274a533c146102fa578063293230b8146103105780632d83811914610327578063313ce56714610347578063395093511461036357600080fd5b806306fdde0314610240578063095ea7b31461028757806318160ddd146102b757806323b872dd146102da57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600c81526b2a3432902a22a2102132b0b960a11b60208201525b60405161027e91906128c8565b60405180910390f35b34801561029357600080fd5b506102a76102a236600461292b565b6107a0565b604051901515815260200161027e565b3480156102c357600080fd5b506102cc610808565b60405190815260200161027e565b3480156102e657600080fd5b506102a76102f5366004612957565b610829565b34801561030657600080fd5b506102cc600f5481565b34801561031c57600080fd5b50610325610923565b005b34801561033357600080fd5b506102cc610342366004612998565b610962565b34801561035357600080fd5b506040516009815260200161027e565b34801561036f57600080fd5b506102a761037e36600461292b565b6109e6565b34801561038f57600080fd5b5061032561039e366004612998565b610a66565b3480156103af57600080fd5b506102cc6103be3660046129bf565b610b11565b3480156103cf57600080fd5b506103256103de36600461292b565b610bbc565b3480156103ef57600080fd5b506103256103fe366004612957565b610c61565b34801561040f57600080fd5b506008546102a79060ff1681565b34801561042957600080fd5b506102a76104383660046129ef565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561046257600080fd5b506102a76104713660046129ef565b60066020526000908152604090205460ff1681565b34801561049257600080fd5b506102cc600d5481565b3480156104a857600080fd5b506102cc600e5481565b3480156104be57600080fd5b506102cc600c5481565b3480156104d457600080fd5b506008546102a790610100900460ff1681565b3480156104f357600080fd5b506102cc6105023660046129ef565b610cc0565b34801561051357600080fd5b50610325610d1f565b34801561052857600080fd5b5060125460135460145460155461053f9392919084565b60408051948552602085019390935291830152606082015260800161027e565b34801561056b57600080fd5b50610325610d55565b34801561058057600080fd5b50601054610594906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b3480156105b857600080fd5b506102a76105c73660046129ef565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156105f157600080fd5b506000546001600160a01b0316610594565b34801561060f57600080fd5b5060408051808201909152600381526215115160ea1b6020820152610271565b34801561063b57600080fd5b50601a54601b54601c54601d5461053f9392919084565b610325610dd8565b34801561066657600080fd5b506102a761067536600461292b565b6110bc565b34801561068657600080fd5b50600954610594906001600160a01b031681565b3480156106a657600080fd5b506102a76106b536600461292b565b6111a2565b3480156106c657600080fd5b506102cc6106d5366004612a0c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561070c57600080fd5b506102cc600b5481565b34801561072257600080fd5b50601154610594906001600160a01b031681565b34801561074257600080fd5b506103256107513660046129ef565b6111f7565b34801561076257600080fd5b5060165460175460185460195461053f9392919084565b34801561078557600080fd5b5060085461059490630100000090046001600160a01b031681565b600854600090339060ff16806107ce57506001600160a01b03811660009081526006602052604090205460ff165b6107f35760405162461bcd60e51b81526004016107ea90612a3a565b60405180910390fd5b6107fe338585611292565b5060019392505050565b60006108166009600a612b6b565b61082490633b9aca00612b7a565b905090565b600854600090849060ff168061085757506001600160a01b03811660009081526006602052604090205460ff165b6108735760405162461bcd60e51b81526004016107ea90612a3a565b61087e8585856113b6565b6001600160a01b0385166000908152600360209081526040808320338452909152902054838110156109035760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ea565b61091786336109128785612b91565b611292565b50600195945050505050565b6000546001600160a01b0316331461094d5760405162461bcd60e51b81526004016107ea90612ba4565b6008805461ffff191661010117905543600f55565b6000600a548211156109c95760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107ea565b60006109d3611aa1565b90506109df8184612bd9565b9392505050565b600854600090339060ff1680610a1457506001600160a01b03811660009081526006602052604090205460ff165b610a305760405162461bcd60e51b81526004016107ea90612a3a565b3360008181526003602090815260408083206001600160a01b03891684529091529020546107fe91908690610912908790612bfb565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016107ea90612ba4565b80471015610ae05760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016107ea565b604051339082156108fc029083906000818181858888f19350505050158015610b0d573d6000803e3d6000fd5b5050565b6000610b1f6009600a612b6b565b610b2d90633b9aca00612b7a565b831115610b7c5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107ea565b81610b9a576000610b908460016000611ac4565b519150610bb69050565b6000610ba98460016000611ac4565b602001519150610bb69050565b92915050565b3360008181526004602052604090205460ff16610bd857600080fd5b610be28383611b20565b6040516323b872dd60e01b81526001600160a01b0384166004820152306024820181905260448201849052906323b872dd906064015b6020604051808303816000875af1158015610c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5b9190612c0e565b50505050565b6000546001600160a01b03163314610c8b5760405162461bcd60e51b81526004016107ea90612ba4565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401610c18565b6001600160a01b03811660009081526005602052604081205460ff1615610cfd57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610bb690610962565b6000546001600160a01b03163314610d495760405162461bcd60e51b81526004016107ea90612ba4565b610d536000611b5a565b565b6000546001600160a01b03163314610d7f5760405162461bcd60e51b81526004016107ea90612ba4565b610d8b6009600a612b6b565b610d9990633b9aca00612b7a565b600c55610da86009600a612b6b565b610db690633b9aca00612b7a565b600d55610dc56009600a612b6b565b610dd390633b9aca00612b7a565b600e55565b6000546001600160a01b03163314610e025760405162461bcd60e51b81526004016107ea90612ba4565b600860039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e799190612c2b565b6001600160a01b031663c9c6539630600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190612c2b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612c2b565b600980546001600160a01b039283166001600160a01b0319918216811783556000908152600560209081526040808320805460ff1990811660019081179092558654600780548085019091557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805490971690891617909555945486168352600690915290208054909116909117905560085461101a9130916301000000900416600019611292565b600854630100000090046001600160a01b031663f305d719343061103d81610cc0565b6000806110526000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161107496959493929190612c48565b60606040518083038185885af1158015611092573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110b79190612c83565b505050565b600854600090339060ff16806110ea57506001600160a01b03811660009081526006602052604090205460ff165b6111065760405162461bcd60e51b81526004016107ea90612a3a565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156111885760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ea565b61119733866109128785612b91565b506001949350505050565b600854600090339060ff16806111d057506001600160a01b03811660009081526006602052604090205460ff165b6111ec5760405162461bcd60e51b81526004016107ea90612a3a565b6107fe3385856113b6565b6000546001600160a01b031633146112215760405162461bcd60e51b81526004016107ea90612ba4565b6001600160a01b0381166112865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ea565b61128f81611b5a565b50565b6001600160a01b0383166112f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ea565b6001600160a01b0382166113555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ea565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661141a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ea565b6001600160a01b03821661147c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ea565b600081116114de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ea565b6114e783610cc0565b8111156115505760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107ea565b6001600160a01b03831660009081526004602052604090205460ff1615801561159257506001600160a01b03821660009081526004602052604090205460ff16155b156115de5760085460ff166115de5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016107ea565b6001600160a01b03831660009081526004602052604090205460ff1615801561162057506001600160a01b03821660009081526004602052604090205460ff16155b801561162e5750600f544311155b1561169b576009546001600160a01b039081169083160361169b5760405162461bcd60e51b815260206004820152602160248201527f53656c6c73206e6f7420616c6c6f77656420666f72206465616420626c6f636b6044820152607360f81b60648201526084016107ea565b6009546001600160a01b0384811691161480156116d157506001600160a01b03821660009081526004602052604090205460ff16155b80156116e6575060085462010000900460ff16155b156117a257600c5481111561173d5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016107ea565b600e548161174a84610cc0565b6117549190612bfb565b11156117a25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107ea565b6009546001600160a01b038481169116148015906117d957506001600160a01b03821660009081526004602052604090205460ff16155b80156117fe57506001600160a01b03831660009081526004602052604090205460ff16155b8015611813575060085462010000900460ff16155b156118e457600d5481111561186a5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016107ea565b6009546001600160a01b038381169116146118e457600e548161188c84610cc0565b6118969190612bfb565b11156118e45760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107ea565b6000600b546118f230610cc0565b600854911115915062010000900460ff161580156119175750600854610100900460ff165b80156119205750805b801561193a57506009546001600160a01b03858116911614155b801561195f57506001600160a01b03841660009081526004602052604090205460ff16155b801561198457506001600160a01b03831660009081526004602052604090205460ff16155b15611a10576009546001600160a01b03908116908416036119da57600b5460408051608081018252601654815260175460208201526018549181019190915260195460608201526119d59190611baa565b611a10565b600b546040805160808101825260125481526013546020820152601454918101919091526015546060820152611a109190611baa565b60085460019060009062010000900460ff1680611a4557506001600160a01b03861660009081526004602052604090205460ff165b80611a6857506001600160a01b03851660009081526004602052604090205460ff165b15611a7257600091505b6009546001600160a01b0390811690861603611a8c575060015b611a998686868585611d4b565b505050505050565b6000806000611aae612018565b9092509050611abd8183612bd9565b9250505090565b611acc61286e565b611ad7848484612204565b9050611aec818585611ae7611aa1565b612374565b60808601526060850152604084015260208301528152611b148184611b0f611aa1565b612423565b60a08201529392505050565b3060008181526003602090815260408083206001600160a01b03871684529091529020546000198114610c5b57610c5b8483858403611292565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805462ff000019166201000017905560608101516020820151604083015160009291611bd791612bfb565b611be19190612bfb565b611bec906002612b7a565b9050600081836040015185611c019190612b7a565b611c0b9190612bd9565b90506000611c198286612b91565b905047611c258261244b565b600080611c328347612b91565b90506000876040015187611c469190612b91565b611c509083612bd9565b90506000886040015182611c649190612b7a565b90508015611c7657611c7687826125c4565b6020890151600090611c89846002612b7a565b611c939190612b7a565b601054909150600090611cae906001600160a01b0316610cc0565b9050600b54811115611cd95785611cc6576000611ccc565b8a602001515b611cd69083612bd9565b91505b8115611cf557601054611cf5906001600160a01b031683612680565b60608b0151600090611d08866002612b7a565b611d129190612b7a565b90508015611d3057601154611d30906001600160a01b031682612680565b50506008805462ff0000191690555050505050505050505050565b6000611d58848484611ac4565b6001600160a01b03871660009081526005602052604090205490915060ff1615611dba576001600160a01b038616600090815260026020526040902054611da0908590612b91565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e1d5760c08101516001600160a01b038616600090815260026020526040902054611e039190612bfb565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611e429190612b91565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611e799190612bfb565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611eab575060008160e00151115b15611ec257611ec281604001518260e00151612799565b600081608001511180611eda57506000816101200151115b15611f5f57611ef281608001518261012001516127ce565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151611f439190612bfb565b611f4d9190612bfb565b60405190815260200160405180910390a35b600081606001511180611f7757506000816101000151115b15611f8f57611f8f8160600151826101000151612844565b60008160a001511180611fa757506000816101400151115b15611fbf57611fbf8160a00151826101400151612859565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161200891815260200190565b60405180910390a3505050505050565b6000806000600a54905060006009600a6120329190612b6b565b61204090633b9aca00612b7a565b905060005b6007548110156121a35782600160006007848154811061206757612067612cb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806120d257508160026000600784815481106120ab576120ab612cb1565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561210157600a546009600a6120e89190612b6b565b6120f690633b9aca00612b7a565b945094505050509091565b600160006007838154811061211857612118612cb1565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121479084612b91565b9250600260006007838154811061216057612160612cb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461218f9083612b91565b91508061219b81612cc7565b915050612045565b506121b06009600a612b6b565b6121be90633b9aca00612b7a565b600a546121cb9190612bd9565b8210156121fb57600a546009600a6121e39190612b6b565b6121f190633b9aca00612b7a565b9350935050509091565b90939092509050565b61220c61286e565b8261221d5760c081018490526109df565b6122486040518060800160405280600081526020016000815260200160008152602001600081525090565b821561227d575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122a8565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122b79087612b7a565b6122c19190612bd9565b60e083015260208101516064906122d89087612b7a565b6122e29190612bd9565b61010083015260408101516064906122fa9087612b7a565b6123049190612bd9565b610120830152606081015160649061231c9087612b7a565b6123269190612bd9565b610140830181905261012083015161010084015160e08501516123499089612b91565b6123539190612b91565b61235d9190612b91565b6123679190612b91565b60c0830152509392505050565b6000808080806123848689612b7a565b94508661239c57508392506000915081905080612418565b858960e001516123ac9190612b7a565b9250858961010001516123bf9190612b7a565b9150858961012001516123d29190612b7a565b90506000868a61014001516123e79190612b7a565b90508082846123f6878a612b91565b6124009190612b91565b61240a9190612b91565b6124149190612b91565b9450505b945094509450945094565b600082612432575060006109df565b818461014001516124439190612b7a565b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061248057612480612cb1565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125179190612c2b565b8160018151811061252a5761252a612cb1565b6001600160a01b039283166020918202929092010152600854612557913091630100000090041684611292565b60085460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790612596908590600090869030904290600401612ce0565b600060405180830381600087803b1580156125b057600080fd5b505af1158015611a99573d6000803e3d6000fd5b6008546125e3903090630100000090046001600160a01b031684611292565b6008546001600160a01b0363010000009091041663f305d7198230856000806126146000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161263696959493929190612c48565b60606040518083038185885af1158015612654573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126799190612c83565b5050505050565b804710156126d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ea565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461271d576040519150601f19603f3d011682016040523d82523d6000602084013e612722565b606091505b50509050806110b75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ea565b81600a60008282546127ab9190612b91565b9091555050601a80548291906000906127c5908490612bfb565b90915550505050565b80601a60020160008282546127e39190612bfb565b90915550503060009081526005602052604090205460ff161561282557306000908152600260205260408120805483929061281f908490612bfb565b90915550505b30600090815260016020526040812080548492906127c5908490612bfb565b80601a60010160008282546127e39190612bfb565b80601a60030160008282546127e39190612bfb565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156128f5578581018301518582016040015282016128d9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461128f57600080fd5b6000806040838503121561293e57600080fd5b823561294981612916565b946020939093013593505050565b60008060006060848603121561296c57600080fd5b833561297781612916565b9250602084013561298781612916565b929592945050506040919091013590565b6000602082840312156129aa57600080fd5b5035919050565b801515811461128f57600080fd5b600080604083850312156129d257600080fd5b8235915060208301356129e4816129b1565b809150509250929050565b600060208284031215612a0157600080fd5b81356109df81612916565b60008060408385031215612a1f57600080fd5b8235612a2a81612916565b915060208301356129e481612916565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612ac2578160001904821115612aa857612aa8612a71565b80851615612ab557918102915b93841c9390800290612a8c565b509250929050565b600082612ad957506001610bb6565b81612ae657506000610bb6565b8160018114612afc5760028114612b0657612b22565b6001915050610bb6565b60ff841115612b1757612b17612a71565b50506001821b610bb6565b5060208310610133831016604e8410600b8410161715612b45575081810a610bb6565b612b4f8383612a87565b8060001904821115612b6357612b63612a71565b029392505050565b60006109df60ff841683612aca565b8082028115828204841417610bb657610bb6612a71565b81810381811115610bb657610bb6612a71565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082612bf657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bb657610bb6612a71565b600060208284031215612c2057600080fd5b81516109df816129b1565b600060208284031215612c3d57600080fd5b81516109df81612916565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215612c9857600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201612cd957612cd9612a71565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d305784516001600160a01b031683529383019391830191600101612d0b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a66f1bc03664971a7ffeb738c97923f8b090741fb3f8b78a17f1b24dcdc22cd464736f6c63430008130033

Deployed Bytecode Sourcemap

3337:18109:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6508:83;;;;;;;;;;-1:-1:-1;6578:5:0;;;;;;;;;;;;-1:-1:-1;;;6578:5:0;;;;6508:83;;;;;;;:::i;:::-;;;;;;;;7268:181;;;;;;;;;;-1:-1:-1;7268:181:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7268:181:0;1023:187:1;6804:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6804:95:0;1215:177:1;7457:430:0;;;;;;;;;;-1:-1:-1;7457:430:0;;;;;:::i;:::-;;:::i;4791:28::-;;;;;;;;;;;;;;;;10269:150;;;;;;;;;;;;;:::i;:::-;;10427:248;;;;;;;;;;-1:-1:-1;10427:248:0;;;;;:::i;:::-;;:::i;6690:83::-;;;;;;;;;;-1:-1:-1;6690:83:0;;4366:1;2185:36:1;;2173:2;2158:18;6690:83:0;2043:184:1;8114:228:0;;;;;;;;;;-1:-1:-1;8114:228:0;;;;;:::i;:::-;;:::i;20471:196::-;;;;;;;;;;-1:-1:-1;20471:196:0;;;;;:::i;:::-;;:::i;9791:470::-;;;;;;;;;;-1:-1:-1;9791:470:0;;;;;:::i;:::-;;:::i;7895:211::-;;;;;;;;;;-1:-1:-1;7895:211:0;;;;;:::i;:::-;;:::i;20675:154::-;;;;;;;;;;-1:-1:-1;20675:154:0;;;;;:::i;:::-;;:::i;3817:26::-;;;;;;;;;;-1:-1:-1;3817:26:0;;;;;;;;10683:123;;;;;;;;;;-1:-1:-1;10683:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10771:27:0;10747:4;10771:27;;;:18;:27;;;;;;;;;10683:123;3724:48;;;;;;;;;;-1:-1:-1;3724:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4671:49;;;;;;;;;;;;;;;;4727:51;;;;;;;;;;;;;;;;4616:48;;;;;;;;;;;;;;;;3850:23;;;;;;;;;;-1:-1:-1;3850:23:0;;;;;;;;;;;6907:198;;;;;;;;;;-1:-1:-1;6907:198:0;;;;;:::i;:::-;;:::i;2855:94::-;;;;;;;;;;;;;:::i;5132:38::-;;;;;;;;;;-1:-1:-1;5132: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;5132:38:0;2921:391:1;20244:151:0;;;;;;;;;;;;;:::i;4832:75::-;;;;;;;;;;-1:-1:-1;4832:75:0;;;;-1:-1:-1;;;;;4832:75:0;;;;;;-1:-1:-1;;;;;3481:32:1;;;3463:51;;3451:2;3436:18;4832:75:0;3317:203:1;9663:120:0;;;;;;;;;;-1:-1:-1;9663:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9755:20:0;9731:4;9755:20;;;:11;:20;;;;;;;;;9663:120;2632:87;;;;;;;;;;-1:-1:-1;2678:7:0;2705:6;-1:-1:-1;;;;;2705:6:0;2632:87;;6597;;;;;;;;;;-1:-1:-1;6669:7:0;;;;;;;;;;;;-1:-1:-1;;;6669:7:0;;;;6597:87;;5378:36;;;;;;;;;;-1:-1:-1;5378:36:0;;;;;;;;;;;;;;;10945:532;;;:::i;8350:390::-;;;;;;;;;;-1:-1:-1;8350:390:0;;;;;:::i;:::-;;:::i;4303:19::-;;;;;;;;;;-1:-1:-1;4303:19:0;;;;-1:-1:-1;;;;;4303:19:0;;;9468:187;;;;;;;;;;-1:-1:-1;9468:187:0;;;;;:::i;:::-;;:::i;7117:143::-;;;;;;;;;;-1:-1:-1;7117:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7225:18:0;;;7198:7;7225:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7117:143;4554:55;;;;;;;;;;;;;;;;4914:74;;;;;;;;;;-1:-1:-1;4914:74:0;;;;-1:-1:-1;;;;;4914:74:0;;;2957:192;;;;;;;;;;-1:-1:-1;2957:192:0;;;;;:::i;:::-;;:::i;5177:42::-;;;;;;;;;;-1:-1:-1;5177:42:0;;;;;;;;;;;;;;;4275:21;;;;;;;;;;-1:-1:-1;4275:21:0;;;;;;;-1:-1:-1;;;;;4275:21:0;;;7268:181;3966:14;;7363:4;;7343:10;;3966:14;;;:42;;-1:-1:-1;;;;;;3984:24:0;;;;;;:15;:24;;;;;;;;3966:42;3958:78;;;;-1:-1:-1;;;3958:78:0;;;;;;;:::i;:::-;;;;;;;;;7380:39:::1;1048:10:::0;7403:7:::1;7412:6;7380:8;:39::i;:::-;-1:-1:-1::0;7437:4:0::1;::::0;7268:181;-1:-1:-1;;;7268:181:0:o;6804:95::-;6857:7;4476:13;4366:1;4476:2;:13;:::i;:::-;4460:29;;:13;:29;:::i;:::-;6877:14;;6804:95;:::o;7457:430::-;3966:14;;7571:4;;7554:6;;3966:14;;;:42;;-1:-1:-1;;;;;;3984:24:0;;;;;;:15;:24;;;;;;;;3966:42;3958:78;;;;-1:-1:-1;;;3958:78:0;;;;;;;:::i;:::-;7588:36:::1;7598:6;7606:9;7617:6;7588:9;:36::i;:::-;-1:-1:-1::0;;;;;7664:19:0;::::1;7637:24;7664:19:::0;;;:11:::1;:19;::::0;;;;;;;1048:10;7664:33;;;;;;;;7716:26;;::::1;;7708:79;;;::::0;-1:-1:-1;;;7708:79:0;;6383:2:1;7708:79:0::1;::::0;::::1;6365:21:1::0;6422:2;6402:18;;;6395:30;6461:34;6441:18;;;6434:62;-1:-1:-1;;;6512:18:1;;;6505:38;6560:19;;7708:79:0::1;6181:404:1::0;7708:79:0::1;7798:57;7807:6:::0;1048:10;7829:25:::1;7848:6:::0;7829:16;:25:::1;:::i;:::-;7798:8;:57::i;:::-;-1:-1:-1::0;7875:4:0::1;::::0;7457:430;-1:-1:-1;;;;;7457:430:0:o;10269:150::-;2678:7;2705:6;-1:-1:-1;;;;;2705:6:0;1048:10;2767:23;2759:68;;;;-1:-1:-1;;;2759:68:0;;;;;;;:::i;:::-;10322:14:::1;:21:::0;;-1:-1:-1;;10354:18:0;;;;;10399:12:::1;10383:13;:28:::0;10269:150::o;10427:248::-;10493:7;10532;;10521;:18;;10513:73;;;;-1:-1:-1;;;10513:73:0;;7286:2:1;10513:73:0;;;7268:21:1;7325:2;7305:18;;;7298:30;7364:34;7344:18;;;7337:62;-1:-1:-1;;;7415:18:1;;;7408:40;7465:19;;10513:73:0;7084:406:1;10513:73:0;10597:19;10620:10;:8;:10::i;:::-;10597:33;-1:-1:-1;10648:19:0;10597:33;10648:7;:19;:::i;:::-;10641:26;10427:248;-1:-1:-1;;;10427:248:0:o;8114:228::-;3966:14;;8215:4;;8194:10;;3966:14;;;:42;;-1:-1:-1;;;;;;3984:24:0;;;;;;:15;:24;;;;;;;;3966:42;3958:78;;;;-1:-1:-1;;;3958:78:0;;;;;;;:::i;:::-;1048:10;8264:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8264:34:0;::::1;::::0;;;;;;;;8232:80:::1;::::0;1048:10;8255:7;;8264:47:::1;::::0;8301:10;;8264:47:::1;:::i;20471:196::-:0;2678:7;2705:6;-1:-1:-1;;;;;2705:6:0;1048:10;2767:23;2759:68;;;;-1:-1:-1;;;2759:68:0;;;;;;;:::i;:::-;20571:9:::1;20546:21;:34;;20538:71;;;::::0;-1:-1:-1;;;20538:71:0;;8049:2:1;20538:71:0::1;::::0;::::1;8031:21:1::0;8088:2;8068:18;;;8061:30;8127:26;8107:18;;;8100:54;8171:18;;20538:71:0::1;7847:348:1::0;20538:71:0::1;20620:39;::::0;20628:10:::1;::::0;20620:39;::::1;;;::::0;20649:9;;20620:39:::1;::::0;;;20649:9;20628:10;20620:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20471:196:::0;:::o;9791:470::-;9881:7;4476:13;4366:1;4476:2;:13;:::i;:::-;4460:29;;:13;:29;:::i;:::-;9909:7;:18;;9901:62;;;;-1:-1:-1;;;9901:62:0;;8402:2:1;9901:62:0;;;8384:21:1;8441:2;8421:18;;;8414:30;8480:33;8460:18;;;8453:61;8531:18;;9901:62:0;8200:355:1;9901:62:0;9979:17;9974:280;;10013:28;10044:32;10055:7;10064:4;10070:5;10044:10;:32::i;:::-;10098:9;;-1:-1:-1;10091:16:0;;-1:-1:-1;10091:16:0;9974:280;10140:28;10171:32;10182:7;10191:4;10197:5;10171:10;:32::i;:::-;10225:17;;;;-1:-1:-1;10218:24:0;;-1:-1:-1;10218:24:0;9974:280;9791:470;;;;:::o;7895:211::-;7972:10;10747:4;10771:27;;;:18;:27;;;;;;;;4111:35;;;;;;7995:29:::1;8011:4;8017:6;7995:15;:29::i;:::-;8035:63;::::0;-1:-1:-1;;;8035:63:0;;-1:-1:-1;;;;;8818:15:1;;8035:63:0::1;::::0;::::1;8800:34:1::0;8050:4:0::1;8850:18:1::0;;;8843:43;;;8902:18;;;8895:34;;;8050:4:0;8035:34:::1;::::0;8735:18:1;;8035:63:0::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7895:211:::0;;;:::o;20675:154::-;2678:7;2705:6;-1:-1:-1;;;;;2705:6:0;1048:10;2767:23;2759:68;;;;-1:-1:-1;;;2759:68:0;;;;;;;:::i;:::-;20780:41:::1;::::0;-1:-1:-1;;;20780:41:0;;-1:-1:-1;;;;;9382:32:1;;;20780:41:0::1;::::0;::::1;9364:51:1::0;9431:18;;;9424:34;;;20780:27:0;::::1;::::0;::::1;::::0;9337:18:1;;20780:41:0::1;9190:274:1::0;6907:198:0;-1:-1:-1;;;;;6997:20:0;;6973:7;6997:20;;;:11;:20;;;;;;;;6993:49;;;-1:-1:-1;;;;;;7026:16:0;;;;;:7;:16;;;;;;;6907:198::o;6993:49::-;-1:-1:-1;;;;;7080:16:0;;;;;;:7;:16;;;;;;7060:37;;:19;:37::i;2855:94::-;2678:7;2705:6;-1:-1:-1;;;;;2705:6:0;1048:10;2767:23;2759:68;;;;-1:-1:-1;;;2759:68:0;;;;;;;:::i;:::-;2920:21:::1;2938:1;2920:9;:21::i;:::-;2855:94::o:0;20244:151::-;2678:7;2705:6;-1:-1:-1;;;;;2705:6:0;1048:10;2767:23;2759:68;;;;-1:-1:-1;;;2759:68:0;;;;;;;:::i;:::-;4476:13:::1;4366:1;4476:2;:13;:::i;:::-;4460:29;::::0;:13:::1;:29;:::i;:::-;20298:11;:21:::0;4476:13:::1;4366:1;4476:2;:13;:::i;:::-;4460:29;::::0;:13:::1;:29;:::i;:::-;20330:12;:22:::0;4476:13:::1;4366:1;4476:2;:13;:::i;:::-;4460:29;::::0;:13:::1;:29;:::i;:::-;20363:14;:24:::0;20244:151::o;10945:532::-;2678:7;2705:6;-1:-1:-1;;;;;2705:6:0;1048:10;2767:23;2759:68;;;;-1:-1:-1;;;2759:68:0;;;;;;;:::i;:::-;11021:6:::1;;;;;;;;;-1:-1:-1::0;;;;;11021:6:0::1;-1:-1:-1::0;;;;;11021:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11012:37:0::1;;11058:4;11065:6;;;;;;;;;-1:-1:-1::0;;;;;11065:6:0::1;-1:-1:-1::0;;;;;11065:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11012:67;::::0;-1:-1:-1;;;;;;11012:67:0::1;::::0;;;;;;-1:-1:-1;;;;;9955:15:1;;;11012:67:0::1;::::0;::::1;9937:34:1::0;10007:15;;9987:18;;;9980:43;9872:18;;11012:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11005:4;:74:::0;;-1:-1:-1;;;;;11005:74:0;;::::1;-1:-1:-1::0;;;;;;11005:74:0;;::::1;::::0;::::1;::::0;;:4:::1;11090:17:::0;;;:11:::1;:17;::::0;;;;;;;:24;;-1:-1:-1;;11090:24:0;;::::1;11005:74:::0;11090:24;;::::1;::::0;;;11140:4;;11125:9:::1;:20:::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;11140:4:::0;;::::1;11125:20;::::0;;;11172:4;;;::::1;11156:21:::0;;:15:::1;:21:::0;;;;;:28;;;;::::1;::::0;;::::1;::::0;;11227:6:::1;::::0;11195:59:::1;::::0;11212:4:::1;::::0;11227:6;;::::1;;-1:-1:-1::0;;11195:8:0::1;:59::i;:::-;11265:6;::::0;;;::::1;-1:-1:-1::0;;;;;11265:6:0::1;:22;11295:9;11328:4;11348:24;11328:4:::0;11348:9:::1;:24::i;:::-;11387:1;11404::::0;11421:7:::1;2678::::0;2705:6;-1:-1:-1;;;;;2705:6:0;;2632:87;11421:7:::1;11443:15;11265:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10945:532::o:0;8350:390::-;3966:14;;8456:4;;8435:10;;3966:14;;;:42;;-1:-1:-1;;;;;;3984:24:0;;;;;;:15;:24;;;;;;;;3966:42;3958:78;;;;-1:-1:-1;;;3958:78:0;;;;;;;:::i;:::-;1048:10;8473:24:::1;8500:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8500:34:0;::::1;::::0;;;;;;;;8553:35;;::::1;;8545:85;;;::::0;-1:-1:-1;;;8545:85:0;;11159:2:1;8545: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;;8545:85:0::1;10957:401:1::0;8545:85:0::1;8641:67;1048:10:::0;8664:7;8673:34:::1;8692:15:::0;8673:16;:34:::1;:::i;8641:67::-;-1:-1:-1::0;8728:4:0::1;::::0;8350:390;-1:-1:-1;;;;8350:390:0:o;9468:187::-;3966:14;;9566:4;;9545:10;;3966:14;;;:42;;-1:-1:-1;;;;;;3984:24:0;;;;;;:15;:24;;;;;;;;3966:42;3958:78;;;;-1:-1:-1;;;3958:78:0;;;;;;;:::i;:::-;9587:40:::1;9597:10;9609:9;9620:6;9587:9;:40::i;2957:192::-:0;2678:7;2705:6;-1:-1:-1;;;;;2705:6:0;1048:10;2767:23;2759:68;;;;-1:-1:-1;;;2759:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3046:22:0;::::1;3038:73;;;::::0;-1:-1:-1;;;3038:73:0;;11565:2:1;3038: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;;3038:73:0::1;11363:402:1::0;3038:73:0::1;3122:19;3132:8;3122:9;:19::i;:::-;2957:192:::0;:::o;8752:335::-;-1:-1:-1;;;;;8845:19:0;;8837:68;;;;-1:-1:-1;;;8837:68:0;;11972:2:1;8837: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;;8837:68:0;11770:400:1;8837:68:0;-1:-1:-1;;;;;8924:21:0;;8916:68;;;;-1:-1:-1;;;8916:68:0;;12377:2:1;8916: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;;8916:68:0;12175:398:1;8916:68:0;-1:-1:-1;;;;;8995:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9047:32;;1361:25:1;;;9047:32:0;;1334:18:1;9047:32:0;;;;;;;8752:335;;;:::o;15161:1961::-;-1:-1:-1;;;;;15249:18:0;;15241:68;;;;-1:-1:-1;;;15241:68:0;;12780:2:1;15241: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;;15241:68:0;12578:401:1;15241:68:0;-1:-1:-1;;;;;15328:16:0;;15320:64;;;;-1:-1:-1;;;15320:64:0;;13186:2:1;15320: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;;15320:64:0;12984:399:1;15320:64:0;15412:1;15403:6;:10;15395:64;;;;-1:-1:-1;;;15395:64:0;;13590:2:1;15395: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;;15395:64:0;13388:405:1;15395:64:0;15488:15;15498:4;15488:9;:15::i;:::-;15478:6;:25;;15470:86;;;;-1:-1:-1;;;15470:86:0;;14000:2:1;15470: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;;15470:86:0;13798:413:1;15470:86:0;-1:-1:-1;;;;;15581:24:0;;;;;;:18;:24;;;;;;;;15580:25;:52;;;;-1:-1:-1;;;;;;15610:22:0;;;;;;:18;:22;;;;;;;;15609:23;15580:52;15577:128;;;15656:14;;;;15648:45;;;;-1:-1:-1;;;15648:45:0;;14418:2:1;15648:45:0;;;14400:21:1;14457:2;14437:18;;;14430:30;-1:-1:-1;;;14476:18:1;;;14469:48;14534:18;;15648:45:0;14216:342:1;15648:45:0;-1:-1:-1;;;;;15729:24:0;;;;;;:18;:24;;;;;;;;15728:25;:52;;;;-1:-1:-1;;;;;;15758:22:0;;;;;;:18;:22;;;;;;;;15757:23;15728:52;:85;;;;;15800:13;;15784:12;:29;;15728:85;15725:173;;;15844:4;;-1:-1:-1;;;;;15844:4:0;;;15838:10;;;;15830:56;;;;-1:-1:-1;;;15830:56:0;;14765:2:1;15830: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;;15830:56:0;14563:397:1;15830:56:0;15929:4;;-1:-1:-1;;;;;15921:12:0;;;15929:4;;15921:12;:39;;;;-1:-1:-1;;;;;;15938:22:0;;;;;;:18;:22;;;;;;;;15937:23;15921:39;:52;;;;-1:-1:-1;15965:8:0;;;;;;;15964:9;15921:52;15918:246;;;16007:11;;15997:6;:21;;15989:63;;;;-1:-1:-1;;;15989:63:0;;15167:2:1;15989:63:0;;;15149:21:1;15206:2;15186:18;;;15179:30;15245:31;15225:18;;;15218:59;15294:18;;15989:63:0;14965:353:1;15989:63:0;16101:14;;16091:6;16075:13;16085:2;16075:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16067:85;;;;-1:-1:-1;;;16067:85:0;;15525:2:1;16067:85:0;;;15507:21:1;;;15544:18;;;15537:30;15603:34;15583:18;;;15576:62;15655:18;;16067:85:0;15323:356:1;16067:85:0;16195:4;;-1:-1:-1;;;;;16187:12:0;;;16195:4;;16187:12;;;;:39;;-1:-1:-1;;;;;;16204:22:0;;;;;;:18;:22;;;;;;;;16203:23;16187:39;:68;;;;-1:-1:-1;;;;;;16231:24:0;;;;;;:18;:24;;;;;;;;16230:25;16187:68;:81;;;;-1:-1:-1;16260:8:0;;;;;;;16259:9;16187:81;16184:325;;;16302:12;;16292:6;:22;;16284:65;;;;-1:-1:-1;;;16284:65:0;;15886:2:1;16284:65:0;;;15868:21:1;15925:2;15905:18;;;15898:30;15964:32;15944:18;;;15937:60;16014:18;;16284:65:0;15684:354:1;16284:65:0;16373:4;;-1:-1:-1;;;;;16367:10:0;;;16373:4;;16367:10;16364:134;;16431:14;;16421:6;16405:13;16415:2;16405:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16397:85;;;;-1:-1:-1;;;16397:85:0;;15525:2:1;16397:85:0;;;15507:21:1;;;15544:18;;;15537:30;15603:34;15583:18;;;15576:62;15655:18;;16397:85:0;15323:356:1;16397:85:0;16528:12;16571:18;;16543:24;16561:4;16543:9;:24::i;:::-;16604:8;;-1:-1:-1;;16543:46:0;;-1:-1:-1;16604:8:0;;;;;16603:9;:24;;;;-1:-1:-1;16616:11:0;;;;;;;16603:24;:35;;;;;16631:7;16603:35;:51;;;;-1:-1:-1;16650:4:0;;-1:-1:-1;;;;;16642:12:0;;;16650:4;;16642:12;;16603:51;:80;;;;-1:-1:-1;;;;;;16659:24:0;;;;;;:18;:24;;;;;;;;16658:25;16603:80;:107;;;;-1:-1:-1;;;;;;16688:22:0;;;;;;:18;:22;;;;;;;;16687:23;16603:107;16600:261;;;16735:4;;-1:-1:-1;;;;;16735:4:0;;;16729:10;;;;16726:123;;16757:18;;16742:45;;;;;;;;16777:9;16742:45;;;;;;;;;;;;;;;;;;;;;;;;;;16757:18;16742:14;:45::i;:::-;16726:123;;;16823:18;;16808:41;;;;;;;;16843:5;16808:41;;;;;;;;;;;;;;;;;;;;;;;;;;16823:18;16808:14;:41::i;:::-;16934:8;;16886:4;;16871:12;;16934:8;;;;;;:36;;-1:-1:-1;;;;;;16946:24:0;;;;;;:18;:24;;;;;;;;16934:36;:62;;;-1:-1:-1;;;;;;16974:22:0;;;;;;:18;:22;;;;;;;;16934:62;16931:82;;;17008:5;16998:15;;16931:82;17033:4;;-1:-1:-1;;;;;17033:4:0;;;17027:10;;;;17024:28;;-1:-1:-1;17048:4:0;17024:28;17065:49;17080:4;17086:2;17090:6;17098:7;17107:6;17065:14;:49::i;:::-;15230:1892;;;15161:1961;;;:::o;14995:158::-;15036:7;15057:15;15074;15093:19;:17;:19::i;:::-;15056:56;;-1:-1:-1;15056:56:0;-1:-1:-1;15130:15:0;15056:56;;15130:15;:::i;:::-;15123:22;;;;14995:158;:::o;12362:471::-;12448:36;;:::i;:::-;12509:37;12521:7;12530;12539:6;12509:11;:37::i;:::-;12497:49;;12666:53;12679:9;12690:7;12699;12708:10;:8;:10::i;:::-;12666:12;:53::i;:::-;12642:20;;;12557:162;12620:20;;;12557:162;12604:14;;;12557:162;12577:25;;;12557:162;;;12754:44;12558:9;12778:7;12787:10;:8;:10::i;:::-;12754:12;:44::i;:::-;12731:19;;;12730:68;12362:471;;;;;:::o;9099:361::-;9209:4;9185:13;7225:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;7225:27:0;;;;;;;;;;-1:-1:-1;;9292:37:0;;9288:165;;9375:51;9384:7;9393:5;9419:6;9400:16;:25;9375:8;:51::i;3157:173::-;3213:16;3232:6;;-1:-1:-1;;;;;3249:17:0;;;-1:-1:-1;;;;;;3249:17:0;;;;;;3282:40;;3232:6;;;;;;;3282:40;;3213:16;3282:40;3202:128;3157:173;:::o;18348:1385::-;5787:8;:15;;-1:-1:-1;;5787:15:0;;;;;18503:13:::1;::::0;::::1;::::0;18486:14:::1;::::0;::::1;::::0;18469::::1;::::0;::::1;::::0;5787:15;;18503:13;18469:31:::1;::::0;::::1;:::i;:::-;:47;;;;:::i;:::-;18468:53;::::0;18520:1:::1;18468:53;:::i;:::-;18446:75;;18532:32;18602:11;18585:4;:14;;;18567:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;18532:81:::0;-1:-1:-1;18624:14:0::1;18641:42;18532:81:::0;18641:15;:42:::1;:::i;:::-;18624:59:::0;-1:-1:-1;18721:21:0::1;18755:24;18624:59:::0;18755:16:::1;:24::i;:::-;18790:12;::::0;18838:38:::1;18862:14:::0;18838:21:::1;:38;:::i;:::-;18815:61;;18887:19;18938:4;:14;;;18924:11;:28;;;;:::i;:::-;18908:45;::::0;:12;:45:::1;:::i;:::-;18887:66;;18964:29;19010:4;:14;;;18996:11;:28;;;;:::i;:::-;18964:60:::0;-1:-1:-1;19040:25:0;;19037:158:::1;;19122:61;19135:24;19161:21;19122:12;:61::i;:::-;19248:14;::::0;::::1;::::0;19207:20:::1;::::0;19230:15:::1;:11:::0;19244:1:::1;19230:15;:::i;:::-;:32;;;;:::i;:::-;19304:15;::::0;19207:55;;-1:-1:-1;19273:18:0::1;::::0;19294:26:::1;::::0;-1:-1:-1;;;;;19304:15:0::1;19294:9;:26::i;:::-;19273:47;;19348:18;;19335:10;:31;19331:124;;;19414:7;:28;;19441:1;19414:28;;;19424:4;:14;;;19414:28;19398:45;::::0;:12;:45:::1;:::i;:::-;19383:60;;19331:124;19468:16:::0;;19465:95:::1;;19508:15;::::0;19500:48:::1;::::0;-1:-1:-1;;;;;19508:15:0::1;19535:12:::0;19500:34:::1;:48::i;:::-;19610:13;::::0;::::1;::::0;19570:19:::1;::::0;19592:15:::1;:11:::0;19606:1:::1;19592:15;:::i;:::-;:31;;;;:::i;:::-;19570:53:::0;-1:-1:-1;19637:15:0;;19634:92:::1;;19676:14;::::0;19668:46:::1;::::0;-1:-1:-1;;;;;19676:14:0::1;19702:11:::0;19668:33:::1;:46::i;:::-;-1:-1:-1::0;;5825:8:0;:16;;-1:-1:-1;;5825:16:0;;;-1:-1:-1;;;;;;;;;;;18348:1385:0:o;17205:1135::-;17329:28;17360:36;17371:7;17380;17389:6;17360:10;:36::i;:::-;-1:-1:-1;;;;;17413:19:0;;;;;;:11;:19;;;;;;17329:67;;-1:-1:-1;17413:19:0;;17409:115;;;-1:-1:-1;;;;;17489:15:0;;;;;;:7;:15;;;;;;:23;;17505:7;;17489:23;:::i;:::-;-1:-1:-1;;;;;17471:15:0;;;;;;:7;:15;;;;;:41;17409:115;-1:-1:-1;;;;;17538:22:0;;;;;;:11;:22;;;;;;;;17534:130;;;17635:17;;;;-1:-1:-1;;;;;17616:18:0;;;;;;:7;:18;;;;;;:36;;17635:17;17616:36;:::i;:::-;-1:-1:-1;;;;;17595:18:0;;;;;;:7;:18;;;;;:57;17534:130;17710:9;;-1:-1:-1;;;;;17694:15:0;;17710:9;17694:15;;;:7;:15;;;;;;:25;;17710:9;17694:25;:::i;:::-;-1:-1:-1;;;;;17676:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;17770:17;;;17751:18;;;;;;;;;;:36;;17770:17;17751:36;:::i;:::-;-1:-1:-1;;;;;17730:18:0;;;;;;:7;:18;;;;;;;:57;;;;17811:6;;;:10;;;:24;;;17834:1;17825;:6;;;:10;17811:24;17808:56;;;17837:27;17849:1;:6;;;17857:1;:6;;;17837:11;:27::i;:::-;17893:1;17878;:12;;;:16;:36;;;;17913:1;17898;:12;;;:16;17878:36;17875:203;;;17931:41;17946:1;:12;;;17959:1;:12;;;17931:14;:41::i;:::-;18017:4;-1:-1:-1;;;;;17992:74:0;18001:6;-1:-1:-1;;;;;17992:74:0;;18054:1;:11;;;18039:1;:12;;;18024:1;:12;;;:27;;;;:::i;:::-;:41;;;;:::i;:::-;17992:74;;1361:25:1;;;1349:2;1334:18;17992:74:0;;;;;;;17875:203;18106:1;18091;:12;;;:16;:36;;;;18126:1;18111;:12;;;:16;18091:36;18088:83;;;18129:42;18144:1;:12;;;18158:1;:12;;;18129:14;:42::i;:::-;18199:1;18185;:11;;;:15;:34;;;;18218:1;18204;:11;;;:15;18185:34;18182:78;;;18221:39;18235:1;:11;;;18248:1;:11;;;18221:13;:39::i;:::-;18293:9;-1:-1:-1;;;;;18276:46:0;18285:6;-1:-1:-1;;;;;18276:46:0;;18304:1;:17;;;18276:46;;;;1361:25:1;;1349:2;1334:18;;1215:177;18276:46:0;;;;;;;;17316:1024;17205:1135;;;;;:::o;14447:540::-;14497:7;14506;14526:15;14544:7;;14526:25;;14562:15;4366:1;4476:2;:13;;;;:::i;:::-;4460:29;;:13;:29;:::i;:::-;14562:25;;14603:9;14598:279;14622:9;:16;14618:20;;14598:279;;;14688:7;14664;:21;14672:9;14682:1;14672:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14672:12:0;14664:21;;;;;;;;;;;;;:31;;:66;;;14723:7;14699;:21;14707:9;14717:1;14707:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14707:12:0;14699:21;;;;;;;;;;;;;:31;14664:66;14660:97;;;14740:7;;4366:1;4476:2;:13;;;;:::i;:::-;4460:29;;:13;:29;:::i;:::-;14732:25;;;;;;;14447:540;;:::o;14660:97::-;14790:7;:21;14798:9;14808:1;14798:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14798:12:0;14790:21;;;;;;;;;;;;;14782:29;;:7;:29;:::i;:::-;14772:39;;14844:7;:21;14852:9;14862:1;14852:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14852:12:0;14844:21;;;;;;;;;;;;;14836:29;;:7;:29;:::i;:::-;14826:39;-1:-1:-1;14640:3:0;;;;:::i;:::-;;;;14598:279;;;-1:-1:-1;4476:13:0;4366:1;4476:2;:13;:::i;:::-;4460:29;;:13;:29;:::i;:::-;14901:7;;:15;;;;:::i;:::-;14891:7;:25;14887:56;;;14926:7;;4366:1;4476:2;:13;;;;:::i;:::-;4460:29;;:13;:29;:::i;:::-;14918:25;;;;;;14447:540;;:::o;14887:56::-;14962:7;;14971;;-1:-1:-1;14447:540:0;-1:-1:-1;14447:540:0:o;12841:623::-;12928:28;;:::i;:::-;12975:7;12971:86;;12997:17;;;:27;;;13037:8;;12971:86;13067:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13067:17:0;13098:6;13095:55;;;-1:-1:-1;13106:16:0;;;;;;;;13113:9;13106:16;;;;;;;;;;;;;;;;;;;;;;;;13095:55;;;-1:-1:-1;13138:12:0;;;;;;;;13145:5;13138:12;;;;;;;;;;;;;;;;;;;;;;;;13095:55;13188:8;;13197:3;;13180:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;13171:6;;;:29;13234:14;;;;13249:3;;13226:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13211:12;;;:41;13286:14;;;;13301:3;;13278:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13263:12;;;:41;13337:13;;;;13351:3;;13329:21;;:7;:21;:::i;:::-;:25;;;;:::i;:::-;13315:11;;;:39;;;13413:12;;;;13400;;;;13393:6;;;;13385:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:52;;;;:::i;:::-;13365:17;;;:72;-1:-1:-1;12841:623:0;;;;;:::o;13472:683::-;13598:15;;;;;13713:19;13721:11;13713:7;:19;:::i;:::-;13703:29;;13749:7;13745:69;;-1:-1:-1;13778:7:0;;-1:-1:-1;13796:1:0;;-1:-1:-1;13796:1:0;;-1:-1:-1;13796:1:0;13771:31;;13745:69;13840:11;13833:1;:6;;;:18;;;;:::i;:::-;13826:25;;13888:11;13875:1;:12;;;:24;;;;:::i;:::-;13862:37;;13936:11;13923:1;:12;;;:24;;;;:::i;:::-;13910:37;;13958:17;13990:11;13978:1;:11;;;:23;;;;:::i;:::-;13958:43;-1:-1:-1;13958:43:0;14055:10;14044;14031:12;14039:4;14031:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;:44;;;;:::i;:::-;14012:63;;14086:61;13472:683;;;;;;;;;;:::o;14167:272::-;14276:17;14312:7;14308:47;;-1:-1:-1;14341:1:0;14334:9;;14308:47;14391:11;14379:1;:11;;;:23;;;;:::i;:::-;14367:35;14167:272;-1:-1:-1;;;;14167:272:0:o;20879:562::-;21029:16;;;21043:1;21029:16;;;;;;;;21005:21;;21029:16;;;;;;;;;;-1:-1:-1;21029:16:0;21005:40;;21074:4;21056;21061:1;21056:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21056:23:0;;;-1:-1:-1;;;;;21056:23:0;;;;;21100:6;;;;;;;;;-1:-1:-1;;;;;21100:6:0;-1:-1:-1;;;;;21100:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21090:4;21095:1;21090:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21090:23:0;;;:7;;;;;;;;;:23;21158:6;;21126:53;;21143:4;;21158:6;;;;21167:11;21126:8;:53::i;:::-;21218:6;;:215;;-1:-1:-1;;;21218:215:0;;:6;;;;-1:-1:-1;;;;;21218:6:0;;:57;;:215;;21290:11;;21316:1;;21360:4;;21387;;21407:15;;21218:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19741:495;19921:6;;19889:53;;19906:4;;19921:6;;;-1:-1:-1;;;;;19921:6:0;19930:11;19889:8;:53::i;:::-;19985:6;;-1:-1:-1;;;;;19985:6:0;;;;;:22;20015:9;20048:4;20068:11;20094:1;;20180:7;2678;2705:6;-1:-1:-1;;;;;2705:6:0;;2632:87;20180:7;20202:15;19985:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19741:495;;:::o;1456:317::-;1571:6;1546:21;:31;;1538:73;;;;-1:-1:-1;;;1538:73:0;;17634:2:1;1538:73:0;;;17616:21:1;17673:2;17653:18;;;17646:30;17712:31;17692:18;;;17685:59;17761:18;;1538:73:0;17432:353:1;1538:73:0;1625:12;1643:9;-1:-1:-1;;;;;1643:14:0;1665:6;1643:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1624:52;;;1695:7;1687:78;;;;-1:-1:-1;;;1687:78:0;;18202:2:1;1687: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;;1687:78:0;18000:422:1;10814:123:0;10892:4;10882:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10907:11:0;:22;;10925:4;;10907:11;:15;;:22;;10925:4;;10907:22;:::i;:::-;;;;-1:-1:-1;;;;10814:123:0:o;11485:284::-;11592:10;11568:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;11638:4:0;11618:26;;;;:11;:26;;;;;;;;11615:101;;;11686:4;11670:22;;;;:7;:22;;;;;:34;;11694:10;;11670:22;:34;;11694:10;;11670:34;:::i;:::-;;;;-1:-1:-1;;11615:101:0;11742:4;11726:22;;;;:7;:22;;;;;:35;;11751:10;;11726:22;:35;;11751:10;;11726:35;:::i;11777:284::-;11884:10;11860:11;:21;;;:34;;;;;;;:::i;12073:277::-;12176:9;12153: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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;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:127::-;4554:10;4549:3;4545:20;4542:1;4535:31;4585:4;4582:1;4575:15;4609:4;4606:1;4599:15;4625:422;4714:1;4757:5;4714:1;4771:270;4792:7;4782:8;4779:21;4771:270;;;4851:4;4847:1;4843:6;4839:17;4833:4;4830:27;4827:53;;;4860:18;;:::i;:::-;4910:7;4900:8;4896:22;4893:55;;;4930:16;;;;4893:55;5009:22;;;;4969:15;;;;4771:270;;;4775:3;4625:422;;;;;:::o;5052:806::-;5101:5;5131:8;5121:80;;-1:-1:-1;5172:1:1;5186:5;;5121:80;5220:4;5210:76;;-1:-1:-1;5257:1:1;5271:5;;5210:76;5302:4;5320:1;5315:59;;;;5388:1;5383:130;;;;5295:218;;5315:59;5345:1;5336:10;;5359:5;;;5383:130;5420:3;5410:8;5407:17;5404:43;;;5427:18;;:::i;:::-;-1:-1:-1;;5483:1:1;5469:16;;5498:5;;5295:218;;5597:2;5587:8;5584:16;5578:3;5572:4;5569:13;5565:36;5559:2;5549:8;5546:16;5541:2;5535:4;5532:12;5528:35;5525:77;5522:159;;;-1:-1:-1;5634:19:1;;;5666:5;;5522:159;5713:34;5738:8;5732:4;5713:34;:::i;:::-;5783:6;5779:1;5775:6;5771:19;5762:7;5759:32;5756:58;;;5794:18;;:::i;:::-;5832:20;;5052:806;-1:-1:-1;;;5052:806:1:o;5863:140::-;5921:5;5950:47;5991:4;5981:8;5977:19;5971:4;5950:47;:::i;6008:168::-;6081:9;;;6112;;6129:15;;;6123:22;;6109:37;6099:71;;6150:18;;:::i;6590:128::-;6657:9;;;6678:11;;;6675:37;;;6692:18;;:::i;6723:356::-;6925:2;6907:21;;;6944:18;;;6937:30;7003:34;6998:2;6983:18;;6976:62;7070:2;7055:18;;6723:356::o;7495:217::-;7535:1;7561;7551:132;;7605:10;7600:3;7596:20;7593:1;7586:31;7640:4;7637:1;7630:15;7668:4;7665:1;7658:15;7551:132;-1:-1:-1;7697:9:1;;7495:217::o;7717:125::-;7782:9;;;7803:10;;;7800:36;;;7816:18;;:::i;8940:245::-;9007:6;9060:2;9048:9;9039:7;9035:23;9031:32;9028:52;;;9076:1;9073;9066:12;9028:52;9108:9;9102:16;9127:28;9149:5;9127:28;:::i;9469:251::-;9539:6;9592:2;9580:9;9571:7;9567:23;9563:32;9560:52;;;9608:1;9605;9598:12;9560:52;9640:9;9634:16;9659:31;9684:5;9659:31;:::i;10034:607::-;-1:-1:-1;;;;;10393:15:1;;;10375:34;;10440:2;10425:18;;10418:34;;;;10483:2;10468:18;;10461:34;;;;10526:2;10511:18;;10504:34;;;;10575:15;;;10569:3;10554:19;;10547:44;10355:3;10607:19;;10600:35;;;;10324:3;10309:19;;10034:607::o;10646:306::-;10734:6;10742;10750;10803:2;10791:9;10782:7;10778:23;10774:32;10771:52;;;10819:1;10816;10809:12;10771:52;10848:9;10842:16;10832:26;;10898:2;10887:9;10883:18;10877:25;10867:35;;10942:2;10931:9;10927:18;10921:25;10911:35;;10646: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://a66f1bc03664971a7ffeb738c97923f8b090741fb3f8b78a17f1b24dcdc22cd4
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.