


"""simple docstring"""


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


a_											=     {
    "configuration_esm": ["ESM_PRETRAINED_CONFIG_ARCHIVE_MAP", "EsmConfig"],
    "tokenization_esm": ["EsmTokenizer"],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		a_											=     [
		    "ESM_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "EsmForMaskedLM",
		    "EsmForSequenceClassification",
		    "EsmForTokenClassification",
		    "EsmModel",
		    "EsmPreTrainedModel",
		]
		a_											=     ["EsmForProteinFolding", "EsmFoldPreTrainedModel"]

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		a_											=     [
		    "TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "TFEsmForMaskedLM",
		    "TFEsmForSequenceClassification",
		    "TFEsmForTokenClassification",
		    "TFEsmModel",
		    "TFEsmPreTrainedModel",
		]

if TYPE_CHECKING:
		from .configuration_esm import ESM_PRETRAINED_CONFIG_ARCHIVE_MAP, EsmConfig
		from .tokenization_esm import EsmTokenizer

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_esm import (
				    ESM_PRETRAINED_MODEL_ARCHIVE_LIST,
				    EsmForMaskedLM,
				    EsmForSequenceClassification,
				    EsmForTokenClassification,
				    EsmModel,
				    EsmPreTrainedModel,
				)
				from .modeling_esmfold import EsmFoldPreTrainedModel, EsmForProteinFolding

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_esm import (
				    TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFEsmForMaskedLM,
				    TFEsmForSequenceClassification,
				    TFEsmForTokenClassification,
				    TFEsmModel,
				    TFEsmPreTrainedModel,
				)


else:
		import sys

		a_											=     _LazyModule(__name__, globals()["__file__"], _import_structure)



"""simple docstring"""


def   a__			(					__lowercase  ,      __lowercase )						->						Tuple:
				_A       	=      1
				while b > 0:
								if b & 1:
												res *= a

								a *= a
								b >>= 1

				return res






def   a__			(					__lowercase  ,      __lowercase  ,      __lowercase )						->						Optional[Any]:
				_A       	=      1
				while b > 0:
								if b & 1:
												_A       	=      ((res % c) * (a % c)) % c

								a *= a
								b >>= 1

				return res