from typing import TYPE_CHECKING

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


lowerCamelCase_    :		List[str]							=	{
    'configuration_whisper': ['WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP', 'WhisperConfig', 'WhisperOnnxConfig'],
    'feature_extraction_whisper': ['WhisperFeatureExtractor'],
    'processing_whisper': ['WhisperProcessor'],
    'tokenization_whisper': ['WhisperTokenizer'],
}

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_    :		int							=	['WhisperTokenizerFast']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_    :		Optional[int]							=	[
	    'WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'WhisperForConditionalGeneration',
	    'WhisperModel',
	    'WhisperPreTrainedModel',
	    'WhisperForAudioClassification',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_    :		str							=	[
	    'TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'TFWhisperForConditionalGeneration',
	    'TFWhisperModel',
	    'TFWhisperPreTrainedModel',
	]

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_    :		Dict							=	[
	    'FlaxWhisperForConditionalGeneration',
	    'FlaxWhisperModel',
	    'FlaxWhisperPreTrainedModel',
	    'FlaxWhisperForAudioClassification',
	]


if TYPE_CHECKING:
	from .configuration_whisper import WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP, WhisperConfig, WhisperOnnxConfig
	from .feature_extraction_whisper import WhisperFeatureExtractor
	from .processing_whisper import WhisperProcessor
	from .tokenization_whisper import WhisperTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_whisper_fast import WhisperTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_whisper import (
		    WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
		    WhisperForAudioClassification,
		    WhisperForConditionalGeneration,
		    WhisperModel,
		    WhisperPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_whisper import (
		    TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFWhisperForConditionalGeneration,
		    TFWhisperModel,
		    TFWhisperPreTrainedModel,
		)

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_whisper import (
		    FlaxWhisperForAudioClassification,
		    FlaxWhisperForConditionalGeneration,
		    FlaxWhisperModel,
		    FlaxWhisperPreTrainedModel,
		)

else:
	import sys

	lowerCamelCase_    :		Tuple							=	_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)






from collections import defaultdict
def 							lowerCAmelCase(     __lowerCamelCase				,    __lowerCamelCase						):
					__a		 =       first_str.lower().strip()
					__a		 =       second_str.lower().strip()

					# Remove whitespace
					__a		 =       first_str.replace(' '				,    ''						)
					__a		 =       second_str.replace(' '				,    ''						)

					# Strings of different lengths are not anagrams
					if len(__lowerCamelCase						) != len(__lowerCamelCase						):
										return False

					# Default values for count should be 0
					__a		 =       defaultdict(__lowerCamelCase						)

					# For each character in input strings,
					# increment count in the corresponding
					for i in range(len(__lowerCamelCase						)						):
										count[first_str[i]] += 1
										count[second_str[i]] -= 1

					return all(_count == 0 for _count in count.values()						)


if __name__ == "__main__":
	from doctest import testmod

	testmod()
	lowerCamelCase_    :		List[str]							=	input("""Enter the first string """).strip()
	lowerCamelCase_    :		Optional[Any]							=	input("""Enter the second string """).strip()

	lowerCamelCase_    :		str							=	check_anagrams(input_a, input_b)
	print(F'''{input_a} and {input_b} are {'' if status else 'not '}anagrams.''')




