

from decimal import Decimal, getcontext
from math import ceil, factorial

def 						UpperCamelCase (lowercase_:			int )					->				str:

	if not isinstance(lowercase_   ,				lowercase_ ):
		raise TypeError("""Undefined for non-integers""" )
	elif precision < 1:
		raise ValueError("""Undefined for non-natural numbers""" )

	A__							:   Any					       =		precision
	A__							:   Tuple					       =		ceil(precision / 14 )
	A__							:   Optional[int]					       =		426880 * Decimal(10005 ).sqrt()
	A__							:   Dict					       =		1
	A__							:   Dict					       =		13591409
	A__							:   Optional[int]					       =		Decimal(lowercase_ )
	for k in range(1   ,				lowercase_ ):
		A__							:   List[str]					       =		factorial(6 * k ) // (factorial(3 * k ) * factorial(lowercase_ ) ** 3)
		linear_term += 545140134
		exponential_term *= -262537412640768000
		partial_sum += Decimal(multinomial_term * linear_term ) / exponential_term
	return str(constant_term / partial_sum )[:-1]


if __name__ == "__main__":
	A_	:			List[str]  	=      50
	print(f'''The first {n} digits of pi is: {pi(n)}''')






from typing import TYPE_CHECKING

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


A_	:			Optional[int]  	=      {'configuration_fnet': ['FNET_PRETRAINED_CONFIG_ARCHIVE_MAP', 'FNetConfig']}

try:
	if not is_sentencepiece_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A_	:			Optional[Any]  	=      ['FNetTokenizer']

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A_	:			Tuple  	=      ['FNetTokenizerFast']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A_	:			List[Any]  	=      [
	    'FNET_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'FNetForMaskedLM',
	    'FNetForMultipleChoice',
	    'FNetForNextSentencePrediction',
	    'FNetForPreTraining',
	    'FNetForQuestionAnswering',
	    'FNetForSequenceClassification',
	    'FNetForTokenClassification',
	    'FNetLayer',
	    'FNetModel',
	    'FNetPreTrainedModel',
	]


if TYPE_CHECKING:
	from .configuration_fnet import FNET_PRETRAINED_CONFIG_ARCHIVE_MAP, FNetConfig

	try:
		if not is_sentencepiece_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_fnet import FNetTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_fnet_fast import FNetTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_fnet import (
		    FNET_PRETRAINED_MODEL_ARCHIVE_LIST,
		    FNetForMaskedLM,
		    FNetForMultipleChoice,
		    FNetForNextSentencePrediction,
		    FNetForPreTraining,
		    FNetForQuestionAnswering,
		    FNetForSequenceClassification,
		    FNetForTokenClassification,
		    FNetLayer,
		    FNetModel,
		    FNetPreTrainedModel,
		)


else:
	import sys

	A_	:			Optional[Any]  	=      _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)



