






'''simple docstring'''
from ...configuration_utils import PretrainedConfig
from ...utils import logging


a_					=	logging.get_logger(__name__)

a_					=	{
    'uw-madison/mra-base-512-4': 'https://huggingface.co/uw-madison/mra-base-512-4/resolve/main/config.json',
}






class        __SCREAMING_SNAKE_CASE (     __lowerCamelCase			):
 snake_case_												=							"""mra"""




 def __init__( self		:							int   , __lowercase		:							Union[str, Any]=5_02_65   , __lowercase		:							Dict=7_68   , __lowercase		:							int=12   , __lowercase		:							Any=12   , __lowercase		:							Union[str, Any]=30_72   , __lowercase		:							Union[str, Any]="gelu"   , __lowercase		:							str=0.1   , __lowercase		:							Dict=0.1   , __lowercase		:							List[str]=5_12   , __lowercase		:							Optional[int]=1   , __lowercase		:							Optional[Any]=0.02   , __lowercase		:							int=1e-5   , __lowercase		:							int="absolute"   , __lowercase		:							Optional[Any]=4   , __lowercase		:							Tuple="full"   , __lowercase		:							Optional[Any]=0   , __lowercase		:							Optional[Any]=0   , __lowercase		:							Union[str, Any]=1   , __lowercase		:							List[str]=0   , __lowercase		:							List[str]=2   , **__lowercase		:							Any   , )		->  List[Any]:
       super().__init__(pad_token_id=__lowercase   , bos_token_id=__lowercase   , eos_token_id=__lowercase   , **__lowercase )

       SCREAMING_SNAKE_CASE__       :			List[Any]													=vocab_size
       SCREAMING_SNAKE_CASE__       :			int													=max_position_embeddings
       SCREAMING_SNAKE_CASE__       :			str													=hidden_size
       SCREAMING_SNAKE_CASE__       :			Dict													=num_hidden_layers
       SCREAMING_SNAKE_CASE__       :			Dict													=num_attention_heads
       SCREAMING_SNAKE_CASE__       :			Optional[int]													=intermediate_size
       SCREAMING_SNAKE_CASE__       :			Optional[Any]													=hidden_act
       SCREAMING_SNAKE_CASE__       :			List[str]													=hidden_dropout_prob
       SCREAMING_SNAKE_CASE__       :			Optional[Any]													=attention_probs_dropout_prob
       SCREAMING_SNAKE_CASE__       :			Any													=initializer_range
       SCREAMING_SNAKE_CASE__       :			Optional[int]													=type_vocab_size
       SCREAMING_SNAKE_CASE__       :			Union[str, Any]													=layer_norm_eps
       SCREAMING_SNAKE_CASE__       :			Tuple													=position_embedding_type
       SCREAMING_SNAKE_CASE__       :			List[str]													=block_per_row
       SCREAMING_SNAKE_CASE__       :			str													=approx_mode
       SCREAMING_SNAKE_CASE__       :			List[str]													=initial_prior_first_n_blocks
       SCREAMING_SNAKE_CASE__       :			List[Any]													=initial_prior_diagonal_n_blocks








'''simple docstring'''
from decimal import Decimal, getcontext
from math import ceil, factorial





def 	_a(					UpperCamelCase__			:  int							):




      '''simple docstring'''






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

      SCREAMING_SNAKE_CASE__       :			Optional[Any]													=precision
      SCREAMING_SNAKE_CASE__       :			int													=ceil(precision / 1_4							)
      SCREAMING_SNAKE_CASE__       :			int													=4_2_6_8_8_0 * Decimal(1_0_0_0_5							).sqrt()
      SCREAMING_SNAKE_CASE__       :			Tuple													=1
      SCREAMING_SNAKE_CASE__       :			Any													=1_3_5_9_1_4_0_9
      SCREAMING_SNAKE_CASE__       :			List[Any]													=Decimal(UpperCamelCase__							)
      for k in range(1,		UpperCamelCase__							):
            SCREAMING_SNAKE_CASE__       :			str													=factorial(6 * k							) // (factorial(3 * k							) * factorial(UpperCamelCase__							) ** 3)
            linear_term += 5_4_5_1_4_0_1_3_4
            exponential_term *= -2_6_2_5_3_7_4_1_2_6_4_0_7_6_8_0_0_0
            partial_sum += Decimal(multinomial_term * linear_term							) / exponential_term
      return str(constant_term / partial_sum							)[:-1]


if __name__ == "__main__":
  a_					=	5_0
  print(F'''The first {n} digits of pi is: {pi(n)}''')