
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowercase						:      Tuple							=							{"""configuration_qdqbert""": ["""QDQBERT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """QDQBertConfig"""]}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  lowercase						:      Optional[Any]							=							[
      """QDQBERT_PRETRAINED_MODEL_ARCHIVE_LIST""",
      """QDQBertForMaskedLM""",
      """QDQBertForMultipleChoice""",
      """QDQBertForNextSentencePrediction""",
      """QDQBertForQuestionAnswering""",
      """QDQBertForSequenceClassification""",
      """QDQBertForTokenClassification""",
      """QDQBertLayer""",
      """QDQBertLMHeadModel""",
      """QDQBertModel""",
      """QDQBertPreTrainedModel""",
      """load_tf_weights_in_qdqbert""",
  ]


if TYPE_CHECKING:
  from .configuration_qdqbert import QDQBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, QDQBertConfig

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_qdqbert import (
        QDQBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
        QDQBertForMaskedLM,
        QDQBertForMultipleChoice,
        QDQBertForNextSentencePrediction,
        QDQBertForQuestionAnswering,
        QDQBertForSequenceClassification,
        QDQBertForTokenClassification,
        QDQBertLayer,
        QDQBertLMHeadModel,
        QDQBertModel,
        QDQBertPreTrainedModel,
        load_tf_weights_in_qdqbert,
    )


else:
  import sys

  lowercase						:      Union[str, Any]							=							_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)


from __future__ import annotations







def 		_snake_case(						SCREAMING_SNAKE_CASE__       )				->					bool:
       lowercase							:  int
       lowercase							:  list[str] 			=   list(SCREAMING_SNAKE_CASE__       )
       lowercase			,    lowercase							:  Union[str, Any] 			=   _vector[:-1], int(_vector[-1]       )
       lowercase							:  list[int] 			=   [int(SCREAMING_SNAKE_CASE__       ) for digit in __vector]

       vector.reverse()
       for i, digit in enumerate(SCREAMING_SNAKE_CASE__       ):
              if i & 1 == 0:
                     lowercase							:  int 			=   digit * 2
                     if doubled > 9:
                            doubled -= 9
                     check_digit += doubled
              else:
                     check_digit += digit

       return check_digit % 10 == 0


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  assert is_luhn("""79927398713""")
  assert not is_luhn("""79927398714""")
