



'''simple docstring'''




def        lowerCAmelCase_     (			_lowerCamelCase:     str      ):
		return credit_card_number.startswith(("""34""", """35""", """37""", """4""", """5""", """6""")      )


def        lowerCAmelCase_     (			_lowerCamelCase:     str      ):
		__SCREAMING_SNAKE_CASE :	str					 =	credit_card_number
		__SCREAMING_SNAKE_CASE :	Dict					 =	0
		__SCREAMING_SNAKE_CASE :	Any					 =	len(_lowerCamelCase      ) - 2
		for i in range(_lowerCamelCase ,   -1 ,   -2      ):
				#  double the value of every second digit
				__SCREAMING_SNAKE_CASE :	Optional[Any]					 =	int(cc_number[i]      )
				digit *= 2
				# If doubling of a number results in a two digit number
				# i.e greater than 9(e.g., 6 × 2 = 12),
				# then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
				# to get a single digit number.
				if digit > 9:
						digit %= 10
						digit += 1
				__SCREAMING_SNAKE_CASE :	List[str]					 =	cc_number[:i] + str(_lowerCamelCase      ) + cc_number[i + 1 :]
				total += digit

		# Sum up the remaining digits
		for i in range(len(_lowerCamelCase      ) - 1 ,   -1 ,   -2      ):
				total += int(cc_number[i]      )

		return total % 10 == 0


def        lowerCAmelCase_     (			_lowerCamelCase:     str      ):
		__SCREAMING_SNAKE_CASE :	List[Any]					 =	F"{credit_card_number} is an invalid credit card number because"
		if not credit_card_number.isdigit():
				print(F"{error_message} it has nonnumerical characters."      )
				return False

		if not 13 <= len(_lowerCamelCase      ) <= 16:
				print(F"{error_message} of its length."      )
				return False

		if not validate_initial_digits(_lowerCamelCase      ):
				print(F"{error_message} of its first two digits."      )
				return False

		if not luhn_validation(_lowerCamelCase      ):
				print(F"{error_message} it fails the Luhn check."      )
				return False

		print(F"{credit_card_number} is a valid credit card number."      )
		return True


if __name__ == "__main__":
						import doctest

						doctest.testmod()
						validate_credit_card_number('''4111111111111111''')
						validate_credit_card_number('''32323''')










'''simple docstring'''




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


UpperCamelCase__ :			Optional[int]												=				{'''configuration_wavlm''': ['''WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''WavLMConfig''']}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						UpperCamelCase__ :			Tuple												=				[
						    '''WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST''',
						    '''WavLMForAudioFrameClassification''',
						    '''WavLMForCTC''',
						    '''WavLMForSequenceClassification''',
						    '''WavLMForXVector''',
						    '''WavLMModel''',
						    '''WavLMPreTrainedModel''',
						]

if TYPE_CHECKING:
						from .configuration_wavlm import WAVLM_PRETRAINED_CONFIG_ARCHIVE_MAP, WavLMConfig

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_wavlm import (
												    WAVLM_PRETRAINED_MODEL_ARCHIVE_LIST,
												    WavLMForAudioFrameClassification,
												    WavLMForCTC,
												    WavLMForSequenceClassification,
												    WavLMForXVector,
												    WavLMModel,
												    WavLMPreTrainedModel,
												)

else:
						import sys

						UpperCamelCase__ :			List[str]												=				_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)