



'''simple docstring'''






from typing import TYPE_CHECKING

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


UpperCamelCase__:   List[Any]								=			{
    "configuration_funnel": ["FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP", "FunnelConfig"],
    "convert_funnel_original_tf_checkpoint_to_pytorch": [],
    "tokenization_funnel": ["FunnelTokenizer"],
}

try:
						if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						UpperCamelCase__:   int								=			["FunnelTokenizerFast"]

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						UpperCamelCase__:   Dict								=			[
						    "FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "FunnelBaseModel",
						    "FunnelForMaskedLM",
						    "FunnelForMultipleChoice",
						    "FunnelForPreTraining",
						    "FunnelForQuestionAnswering",
						    "FunnelForSequenceClassification",
						    "FunnelForTokenClassification",
						    "FunnelModel",
						    "FunnelPreTrainedModel",
						    "load_tf_weights_in_funnel",
						]

try:
						if not is_tf_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						UpperCamelCase__:   Optional[int]								=			[
						    "TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "TFFunnelBaseModel",
						    "TFFunnelForMaskedLM",
						    "TFFunnelForMultipleChoice",
						    "TFFunnelForPreTraining",
						    "TFFunnelForQuestionAnswering",
						    "TFFunnelForSequenceClassification",
						    "TFFunnelForTokenClassification",
						    "TFFunnelModel",
						    "TFFunnelPreTrainedModel",
						]


if TYPE_CHECKING:
						from .configuration_funnel import FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP, FunnelConfig
						from .tokenization_funnel import FunnelTokenizer

						try:
												if not is_tokenizers_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_funnel_fast import FunnelTokenizerFast

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_funnel import (
												    FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
												    FunnelBaseModel,
												    FunnelForMaskedLM,
												    FunnelForMultipleChoice,
												    FunnelForPreTraining,
												    FunnelForQuestionAnswering,
												    FunnelForSequenceClassification,
												    FunnelForTokenClassification,
												    FunnelModel,
												    FunnelPreTrainedModel,
												    load_tf_weights_in_funnel,
												)

						try:
												if not is_tf_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_tf_funnel import (
												    TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
												    TFFunnelBaseModel,
												    TFFunnelForMaskedLM,
												    TFFunnelForMultipleChoice,
												    TFFunnelForPreTraining,
												    TFFunnelForQuestionAnswering,
												    TFFunnelForSequenceClassification,
												    TFFunnelForTokenClassification,
												    TFFunnelModel,
												    TFFunnelPreTrainedModel,
												)

else:
						import sys

						UpperCamelCase__:   int								=			_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)










'''simple docstring'''






import random

from .binary_exp_mod import bin_exp_mod


def  snake_case_     (					_lowerCAmelCase  :						Tuple   ,      _lowerCAmelCase  :						Optional[Any]=1000  )      ->   int:
							if n < 2:
														return False

							if n % 2 == 0:
														return n == 2

							# this means n is odd
							UpperCAmelCase :       str 							=		n - 1
							UpperCAmelCase :       List[Any] 							=		0
							while d % 2 == 0:
														d /= 2
														exp += 1

							# n - 1=d*(2**exp)
							UpperCAmelCase :       List[str] 							=		0
							while count < prec:
														UpperCAmelCase :       int 							=		random.randint(2   ,      n - 1  )
														UpperCAmelCase :       List[str] 							=		bin_exp_mod(_lowerCAmelCase   ,      _lowerCAmelCase   ,      _lowerCAmelCase  )
														if b != 1:
																					UpperCAmelCase :       int 							=		True
																					for _ in range(_lowerCAmelCase  ):
																												if b == n - 1:
																																			UpperCAmelCase :       Dict 							=		False
																																			break
																												UpperCAmelCase :       str 							=		b * b
																												b %= n
																					if flag:
																												return False
																					count += 1
							return True


if __name__ == "__main__":
						UpperCamelCase__:   Optional[int]								=			abs(int(input("Enter bound : ").strip()))
						print("Here's the list of primes:")
						print(", ".join(str(i) for i in range(n + 1) if is_prime_big(i)))





