






from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


SCREAMING_SNAKE_CASE 							=						{
    'configuration_xlm_roberta': [
        'XLM_ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'XLMRobertaConfig',
        'XLMRobertaOnnxConfig',
    ],
}

try:
  if not is_sentencepiece_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE 							=						['XLMRobertaTokenizer']

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE 							=						['XLMRobertaTokenizerFast']

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE 							=						[
      'XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST',
      'XLMRobertaForCausalLM',
      'XLMRobertaForMaskedLM',
      'XLMRobertaForMultipleChoice',
      'XLMRobertaForQuestionAnswering',
      'XLMRobertaForSequenceClassification',
      'XLMRobertaForTokenClassification',
      'XLMRobertaModel',
      'XLMRobertaPreTrainedModel',
  ]

try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE 							=						[
      'TF_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST',
      'TFXLMRobertaForCausalLM',
      'TFXLMRobertaForMaskedLM',
      'TFXLMRobertaForMultipleChoice',
      'TFXLMRobertaForQuestionAnswering',
      'TFXLMRobertaForSequenceClassification',
      'TFXLMRobertaForTokenClassification',
      'TFXLMRobertaModel',
      'TFXLMRobertaPreTrainedModel',
  ]

try:
  if not is_flax_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE 							=						[
      'FLAX_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST',
      'FlaxXLMRobertaForMaskedLM',
      'FlaxXLMRobertaForCausalLM',
      'FlaxXLMRobertaForMultipleChoice',
      'FlaxXLMRobertaForQuestionAnswering',
      'FlaxXLMRobertaForSequenceClassification',
      'FlaxXLMRobertaForTokenClassification',
      'FlaxXLMRobertaModel',
      'FlaxXLMRobertaPreTrainedModel',
  ]

if TYPE_CHECKING:
  from .configuration_xlm_roberta import (
      XLM_ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP,
      XLMRobertaConfig,
      XLMRobertaOnnxConfig,
  )

  try:
    if not is_sentencepiece_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_xlm_roberta import XLMRobertaTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_xlm_roberta_fast import XLMRobertaTokenizerFast

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_xlm_roberta import (
        XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
        XLMRobertaForCausalLM,
        XLMRobertaForMaskedLM,
        XLMRobertaForMultipleChoice,
        XLMRobertaForQuestionAnswering,
        XLMRobertaForSequenceClassification,
        XLMRobertaForTokenClassification,
        XLMRobertaModel,
        XLMRobertaPreTrainedModel,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_xlm_roberta import (
        TF_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFXLMRobertaForCausalLM,
        TFXLMRobertaForMaskedLM,
        TFXLMRobertaForMultipleChoice,
        TFXLMRobertaForQuestionAnswering,
        TFXLMRobertaForSequenceClassification,
        TFXLMRobertaForTokenClassification,
        TFXLMRobertaModel,
        TFXLMRobertaPreTrainedModel,
    )

  try:
    if not is_flax_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_flax_xlm_roberta import (
        FLAX_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
        FlaxXLMRobertaForCausalLM,
        FlaxXLMRobertaForMaskedLM,
        FlaxXLMRobertaForMultipleChoice,
        FlaxXLMRobertaForQuestionAnswering,
        FlaxXLMRobertaForSequenceClassification,
        FlaxXLMRobertaForTokenClassification,
        FlaxXLMRobertaModel,
        FlaxXLMRobertaPreTrainedModel,
    )

else:
  import sys

  SCREAMING_SNAKE_CASE 							=						_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)












import math

def      _lowerCamelCase	(						__A    :							int )      ->					int:

    if not isinstance(__A		,		__A ):
        _UpperCAmelCase				:      List[Any]			  =				f'''Input value of [number={number}] must be an integer'''
        raise TypeError(__A )

    if number < 1:
        _UpperCAmelCase				:      Optional[Any]			  =				f'''Input value of [number={number}] must be > 0'''
        raise ValueError(__A )
    elif number == 1:
        return 3
    elif number == 2:
        return 5
    else:
        _UpperCAmelCase				:      Any			  =				int(math.log(number // 3		,		2 ) ) + 2

        _UpperCAmelCase				:      Dict			  =				[3, 5]
        _UpperCAmelCase				:      Tuple			  =				2
        _UpperCAmelCase				:      Dict			  =				3
        for block in range(1		,		__A ):
            for _ in range(__A ):
                proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1] )
                proth_index += 1
            increment *= 2

    return proth_list[number - 1]


if __name__ == "__main__":
  import doctest

  doctest.testmod()

  for number in range(11):
    SCREAMING_SNAKE_CASE 							=						0
    try:
      SCREAMING_SNAKE_CASE 							=						proth(number)
    except ValueError:
      print(F'ValueError: there is no {number}th Proth number')
      continue

    print(F'The {number}th Proth number: {value}')




