'''simple docstring'''


from __future__ import annotations


def    _lowerCamelCase       ( lowerCamelCase_   :				int      ,	lowerCamelCase_   :				int      ,	lowerCamelCase_   :				int  ):



     """simple docstring"""





     assert (
         c % greatest_common_divisor(lowerCamelCase_      ,	lowerCamelCase_  ) == 0
     )  # greatest_common_divisor(a,b) function implemented below
     ((UpperCAmelCase_)  ,     (UpperCAmelCase_)  ,     (UpperCAmelCase_))				:  Union[str, Any]  = extended_gcd(lowerCamelCase_      ,	lowerCamelCase_  )  # extended_gcd(a,b) function implemented below
     UpperCAmelCase_				:  int  = c / d
     return (r * x, r * y)


def    _lowerCamelCase       ( lowerCamelCase_   :				int      ,	lowerCamelCase_   :				int      ,	lowerCamelCase_   :				int      ,	lowerCamelCase_   :				int = 2  ):



     """simple docstring"""





     ((UpperCAmelCase_)  ,     (UpperCAmelCase_))				:  Tuple  = diophantine(lowerCamelCase_      ,	lowerCamelCase_      ,	lowerCamelCase_  )  # Initial value
     UpperCAmelCase_				:  Union[str, Any]  = greatest_common_divisor(lowerCamelCase_      ,	lowerCamelCase_  )
     UpperCAmelCase_				:  Dict  = a // d
     UpperCAmelCase_				:  List[str]  = b // d

     for i in range(lowerCamelCase_  ):
          UpperCAmelCase_				:  Optional[Any]  = xa + i * q
          UpperCAmelCase_				:  int  = ya - i * p
          print(lowerCamelCase_      ,	lowerCamelCase_  )


def    _lowerCamelCase       ( lowerCamelCase_   :				int      ,	lowerCamelCase_   :				int  ):



     """simple docstring"""





     if a < b:
          UpperCAmelCase_  ,     UpperCAmelCase_				:  Optional[Any]  = b, a

     while a % b != 0:
          UpperCAmelCase_  ,     UpperCAmelCase_				:  Tuple  = b, a % b

     return b


def    _lowerCamelCase       ( lowerCamelCase_   :				int      ,	lowerCamelCase_   :				int  ):



     """simple docstring"""





     assert a >= 0 and b >= 0

     if b == 0:
          UpperCAmelCase_  ,     UpperCAmelCase_  ,     UpperCAmelCase_				:  Optional[int]  = a, 1, 0
     else:
          ((UpperCAmelCase_)  ,     (UpperCAmelCase_)  ,     (UpperCAmelCase_))				:  List[str]  = extended_gcd(lowerCamelCase_      ,	a % b  )
          UpperCAmelCase_				:  Optional[int]  = q
          UpperCAmelCase_				:  List[Any]  = p - q * (a // b)

     assert a % d == 0 and b % d == 0
     assert d == a * x + b * y

     return (d, x, y)


if __name__ == "__main__":
 from doctest import testmod

 testmod(name='''diophantine''', verbose=True)
 testmod(name='''diophantine_all_soln''', verbose=True)
 testmod(name='''extended_gcd''', verbose=True)
 testmod(name='''greatest_common_divisor''', verbose=True)











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


UpperCAmelCase__  =			logging.get_logger(__name__)

UpperCAmelCase__  =			{
    "dandelin/vilt-b32-mlm": "https://huggingface.co/dandelin/vilt-b32-mlm/blob/main/config.json"
}







class      __lowerCAmelCase       (     A		):
			UpperCamelCase     =	'''vilt'''



			def __init__(		self  :    List[Any]					,						A  :    Dict=3_05_22					,						A  :    Union[str, Any]=2					,						A  :    Tuple=2					,						A  :    List[Any]=40					,						A  :    Optional[int]=7_68					,						A  :    Any=12					,						A  :    Optional[int]=12					,						A  :    Optional[Any]=30_72					,						A  :    Optional[Any]="gelu"					,						A  :    str=0.0					,						A  :    Any=0.0					,						A  :    Union[str, Any]=0.0_2					,						A  :    Union[str, Any]=1E-12					,						A  :    Optional[Any]=3_84					,						A  :    Dict=32					,						A  :    int=3					,						A  :    int=True					,						A  :    Union[str, Any]=-1					,						A  :    int=False					,						A  :    int=-1					,						**A  :    Tuple					,						)  ->       Dict:



						"""simple docstring"""






						super().__init__(tie_word_embeddings=A					,						**A)

						_UpperCAmelCase									=  vocab_size
						_UpperCAmelCase									=  type_vocab_size
						_UpperCAmelCase									=  modality_type_vocab_size
						_UpperCAmelCase									=  max_position_embeddings

						_UpperCAmelCase									=  hidden_size
						_UpperCAmelCase									=  num_hidden_layers
						_UpperCAmelCase									=  num_attention_heads
						_UpperCAmelCase									=  intermediate_size
						_UpperCAmelCase									=  hidden_act
						_UpperCAmelCase									=  hidden_dropout_prob
						_UpperCAmelCase									=  attention_probs_dropout_prob
						_UpperCAmelCase									=  initializer_range
						_UpperCAmelCase									=  layer_norm_eps

						_UpperCAmelCase									=  image_size
						_UpperCAmelCase									=  patch_size
						_UpperCAmelCase									=  num_channels
						_UpperCAmelCase									=  qkv_bias
						_UpperCAmelCase									=  max_image_length
						_UpperCAmelCase									=  num_images
