






"""simple docstring"""



def 	SCREAMING_SNAKE_CASE__       (  snake_case       : int			,					snake_case       : int				)->		int:






     '''simple docstring'''



     while a != 0:
          UpperCAmelCase__							,				UpperCAmelCase__						:    Union[str, Any]							=							b % a, a
     return b



def 	SCREAMING_SNAKE_CASE__       (  snake_case       : int			,					snake_case       : int				)->		int:






     '''simple docstring'''



     if gcd(snake_case			,					snake_case				) != 1:
          UpperCAmelCase__						:    Dict							=							f'mod inverse of {a!r} and {m!r} does not exist'
          raise ValueError(snake_case				)
     UpperCAmelCase__							,				UpperCAmelCase__							,				UpperCAmelCase__						:    Optional[int]							=							1, 0, a
     UpperCAmelCase__							,				UpperCAmelCase__							,				UpperCAmelCase__						:    Tuple							=							0, 1, m
     while va != 0:
          UpperCAmelCase__						:    Any							=							ua // va
          UpperCAmelCase__							,				UpperCAmelCase__							,				UpperCAmelCase__							,				UpperCAmelCase__							,				UpperCAmelCase__							,				UpperCAmelCase__						:    List[Any]							=							(ua - q * va), (ua - q * va), (ua - q * va), va, va, va
     return ua % m










"""simple docstring"""



from ...configuration_utils import PretrainedConfig
from ...utils import logging


_lowerCAmelCase	:	Optional[int]				=      logging.get_logger(__name__)

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




class 			lowerCAmelCase__			(    __magic_name__   ):
   SCREAMING_SNAKE_CASE_    ='''mra'''
   def __init__(		self      :	Any							,			snake_case__      :	List[str]=5_0_2_6_5							,			snake_case__      :	Any=7_6_8							,			snake_case__      :	Union[str, Any]=1_2							,			snake_case__      :	Optional[Any]=1_2							,			snake_case__      :	Tuple=3_0_7_2							,			snake_case__      :	str="gelu"							,			snake_case__      :	Any=0.1							,			snake_case__      :	Tuple=0.1							,			snake_case__      :	Tuple=5_1_2							,			snake_case__      :	Union[str, Any]=1							,			snake_case__      :	List[Any]=0.02							,			snake_case__      :	str=1e-5							,			snake_case__      :	List[Any]="absolute"							,			snake_case__      :	str=4							,			snake_case__      :	List[str]="full"							,			snake_case__      :	Tuple=0							,			snake_case__      :	Any=0							,			snake_case__      :	Union[str, Any]=1							,			snake_case__      :	int=0							,			snake_case__      :	int=2							,			**snake_case__      :	List[Any]							,			):


        '''simple docstring'''
        super().__init__(pad_token_id=snake_case__							,			bos_token_id=snake_case__							,			eos_token_id=snake_case__							,			**snake_case__							)

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


