





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


_lowercase		:     Union[str, Any] 					={"""configuration_qdqbert""": ["""QDQBERT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """QDQBertConfig"""]}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase		:     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		:     Dict 					=_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)







from __future__ import annotations


def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__	):
		lowerCamelCase_  :    int
		lowerCamelCase_  :    list[str]   	=			list(lowerCAmelCase__	)
		lowerCamelCase_	,			lowerCamelCase_  :    List[str]   	=			_vector[:-1], int(_vector[-1]	)
		lowerCamelCase_  :    list[int]   	=			[int(lowerCAmelCase__	) for digit in __vector]

		vector.reverse()
		for i, digit in enumerate(lowerCAmelCase__	):
				if i & 1 == 0:
						lowerCamelCase_  :    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""")
