




class   UpperCAmelCase    :

   class   UpperCAmelCase    :
      __SCREAMING_SNAKE_CASE		:				int      					=       "_prev", "_data", "_next"






      def __init__(						self :							Tuple    ,       UpperCamelCase_ :							Union[str, Any]    ,       UpperCamelCase_ :							Union[str, Any]    ,       UpperCamelCase_ :							Optional[Any]  )->      List[str]:
        _lowercase:			int      =     link_p
        _lowercase:			Optional[Any]      =     element
        _lowercase:			Dict      =     link_n






      def 			_a    (						self :							Union[str, Any]  )->      Union[str, Any]:
        return (
            f' Prev -> {self._prev is not None}, Next -> {self._next is not None}'
        )






   def __init__(						self :							Any  )->      str:
     _lowercase:			Dict      =     self._Node(UpperCAmelCase_    ,       UpperCAmelCase_    ,       UpperCAmelCase_  )
     _lowercase:			int      =     self._Node(UpperCAmelCase_    ,       UpperCAmelCase_    ,       UpperCAmelCase_  )
     _lowercase:			List[str]      =     self._trailer
     _lowercase:			int      =     self._header
     _lowercase:			Union[str, Any]      =     0






   def __len__(						self :							Union[str, Any]  )->      Optional[Any]:
     return self._size






   def 			_a    (						self :							List[Any]  )->      Optional[int]:
     return self.__len__() == 0






   def 			_a    (						self :							Any    ,       UpperCamelCase_ :							int    ,       UpperCamelCase_ :							Optional[Any]    ,       UpperCamelCase_ :							str  )->      Tuple:
     _lowercase:			List[Any]      =     self._Node(UpperCAmelCase_    ,       UpperCAmelCase_    ,       UpperCAmelCase_  )
     _lowercase:			Union[str, Any]      =     new_node
     _lowercase:			List[str]      =     new_node
     self._size += 1
     return self






   def 			_a    (						self :							Optional[int]    ,       UpperCamelCase_ :							List[str]  )->      Optional[int]:
     _lowercase:			Tuple      =     node._prev
     _lowercase:			Union[str, Any]      =     node._next

     _lowercase:			Optional[Any]      =     successor
     _lowercase:			Optional[int]      =     predecessor
     self._size -= 1
     _lowercase:			int      =     node._data
     _lowercase:			List[Any]      =     None
     del node
     return temp

class   UpperCAmelCase    (      _DoublyLinkedBase ):






   def 			_a    (						self :							Dict  )->      Optional[int]:







     if self.is_empty():
       raise Exception('List is empty'  )
     return self._header._next._data






   def 			_a    (						self :							Optional[Any]  )->      str:







     if self.is_empty():
       raise Exception('List is empty'  )
     return self._trailer._prev._data






   def 			_a    (						self :							str    ,       UpperCamelCase_ :							List[str]  )->      int:
     return self._insert(self._header    ,       UpperCAmelCase_    ,       self._header._next  )






   def 			_a    (						self :							int    ,       UpperCamelCase_ :							Any  )->      str:
     return self._insert(self._trailer._prev    ,       UpperCAmelCase_    ,       self._trailer  )






   def 			_a    (						self :							int  )->      Dict:







     if self.is_empty():
       raise IndexError('remove_first from empty list'  )
     return self._delete(self._header._next  )






   def 			_a    (						self :							List[Any]  )->      Tuple:







     if self.is_empty():
       raise IndexError('remove_first from empty list'  )
     return self._delete(self._trailer._prev  )

'''simple docstring'''





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


UpperCamelCase       :     Optional[Any]			=    logging.get_logger(__name__)

UpperCamelCase       :     Union[str, Any]			=    {
    """ZinengTang/tvlt-base""": """https://huggingface.co/ZinengTang/tvlt-base/blob/main/config.json""",
}



class   UpperCamelCase					(       a_       ):







    """simple docstring"""





    A     :    int				=			"tvlt"





    def __init__(					self     :						List[str]							,							UpperCAmelCase_     :						Any=2_2_4							,							UpperCAmelCase_     :						Optional[Any]=2_0_4_8							,							UpperCAmelCase_     :						Dict=1_2_8							,							UpperCAmelCase_     :						str=[1_6, 1_6]							,							UpperCAmelCase_     :						int=[1_6, 1_6]							,							UpperCAmelCase_     :						int=3							,							UpperCAmelCase_     :						Optional[int]=1							,							UpperCAmelCase_     :						List[str]=8							,							UpperCAmelCase_     :						List[Any]=7_6_8							,							UpperCAmelCase_     :						int=1_2							,							UpperCAmelCase_     :						List[Any]=1_2							,							UpperCAmelCase_     :						Optional[Any]=3_0_7_2							,							UpperCAmelCase_     :						List[str]="gelu"							,							UpperCAmelCase_     :						Tuple=0.0							,							UpperCAmelCase_     :						Optional[Any]=0.0							,							UpperCAmelCase_     :						Tuple=0.02							,							UpperCAmelCase_     :						Any=1e-6							,							UpperCAmelCase_     :						Dict=True							,							UpperCAmelCase_     :						Union[str, Any]=False							,							UpperCAmelCase_     :						Tuple=1_6							,							UpperCAmelCase_     :						str=5_1_2							,							UpperCAmelCase_     :						List[str]=8							,							UpperCAmelCase_     :						Union[str, Any]=2_0_4_8							,							UpperCAmelCase_     :						Tuple=0.75							,							UpperCAmelCase_     :						Optional[Any]=0.15							,							UpperCAmelCase_     :						Union[str, Any]="frame-level"							,							UpperCAmelCase_     :						List[str]=True							,							UpperCAmelCase_     :						Any=True							,							UpperCAmelCase_     :						Optional[int]="classification"							,							**UpperCAmelCase_     :						Any							,							):


         """simple docstring"""







         super().__init__(**UpperCAmelCase_)

         if audio_mask_type not in ("frame-level", "patch_level"):
              raise ValueError(
                  'audio_mask_type must be one of two acceptable strategies - {\'frame_level\', \'patch-level\') '
                  f"""got {audio_mask_type}""")

         a					:							str							= image_size
         a					:							List[Any]							= spectrogram_length
         a					:							Union[str, Any]							= frequency_length
         a					:							str							= image_patch_size
         a					:							Dict							= audio_patch_size
         a					:							Dict							= num_image_channels
         a					:							Tuple							= num_audio_channels
         a					:							Optional[int]							= num_frames

         a					:							str							= hidden_size
         a					:							List[Any]							= num_hidden_layers
         a					:							Optional[Any]							= num_attention_heads
         a					:							Any							= intermediate_size
         a					:							List[Any]							= hidden_act
         a					:							int							= hidden_dropout_prob
         a					:							Optional[Any]							= attention_probs_dropout_prob
         a					:							Optional[Any]							= initializer_range
         a					:							List[str]							= layer_norm_eps
         a					:							List[Any]							= qkv_bias
         a					:							Dict							= use_mean_pooling

         a					:							List[Any]							= decoder_num_attention_heads
         a					:							Any							= decoder_hidden_size
         a					:							int							= decoder_num_hidden_layers
         a					:							Tuple							= decoder_intermediate_size
         a					:							Tuple							= pixel_mask_ratio
         a					:							List[Any]							= audio_mask_ratio
         a					:							Optional[Any]							= audio_mask_type

         a					:							Any							= task_matching
         a					:							Optional[Any]							= task_mae
         a					:							List[str]							= loss_type

