




"""simple docstring"""




import math

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


lowerCAmelCase							:    List[str]  							=							logging.get_logger(__name__)

lowerCAmelCase							:    Dict  							=							{
    """facebook/data2vec-base-960h""": """https://huggingface.co/facebook/data2vec-audio-base-960h/resolve/main/config.json""",
    # See all Data2VecAudio models at https://huggingface.co/models?filter=data2vec-audio
}






class 					__magic_name__							( __lowerCamelCase       ):






				'''simple docstring'''
				__UpperCamelCase    						=		'''data2vec-audio'''





				def __init__( self	,				_a=32	,				_a=768	,				_a=12	,				_a=12	,				_a=3_072	,				_a="gelu"	,				_a=0.1	,				_a=0.1	,				_a=0.1	,				_a=0.0	,				_a=0.1	,				_a=0.1	,				_a=0.02	,				_a=1e-5	,				_a="gelu"	,				_a=(512, 512, 512, 512, 512, 512, 512)	,				_a=(5, 2, 2, 2, 2, 2, 2)	,				_a=(10, 3, 3, 3, 3, 2, 2)	,				_a=False	,				_a=16	,				_a=19	,				_a=5	,				_a=0.05	,				_a=10	,				_a=2	,				_a=0.0	,				_a=10	,				_a=0	,				_a="sum"	,				_a=False	,				_a=False	,				_a=256	,				_a=(512, 512, 512, 512, 1_500)	,				_a=(5, 3, 3, 1, 1)	,				_a=(1, 2, 3, 1, 1)	,				_a=512	,				_a=0	,				_a=1	,				_a=2	,				_a=False	,				_a=3	,				_a=2	,				_a=3	,				_a=None	,				**_a	,				):





							"""simple docstring"""
							super().__init__(**a_	,				pad_token_id=a_	,				bos_token_id=a_	,				eos_token_id=a_				)
							lowerCamelCase       =      hidden_size
							lowerCamelCase       =      feat_extract_activation
							lowerCamelCase       =      list(a_				)
							lowerCamelCase       =      list(a_				)
							lowerCamelCase       =      list(a_				)
							lowerCamelCase       =      conv_bias
							lowerCamelCase       =      num_conv_pos_embeddings
							lowerCamelCase       =      num_conv_pos_embedding_groups
							lowerCamelCase       =      conv_pos_kernel_size
							lowerCamelCase       =      len(self.conv_dim				)
							lowerCamelCase       =      num_hidden_layers
							lowerCamelCase       =      intermediate_size
							lowerCamelCase       =      hidden_act
							lowerCamelCase       =      num_attention_heads
							lowerCamelCase       =      hidden_dropout
							lowerCamelCase       =      attention_dropout
							lowerCamelCase       =      activation_dropout
							lowerCamelCase       =      feat_proj_dropout
							lowerCamelCase       =      final_dropout
							lowerCamelCase       =      layerdrop
							lowerCamelCase       =      layer_norm_eps
							lowerCamelCase       =      initializer_range
							lowerCamelCase       =      vocab_size
							lowerCamelCase       =      use_weighted_layer_sum

							if (
							    (len(self.conv_stride				) != self.num_feat_extract_layers)
							    or (len(self.conv_kernel				) != self.num_feat_extract_layers)
							    or (len(self.conv_dim				) != self.num_feat_extract_layers)
							):
										raise ValueError(
										    """Configuration for convolutional layers is incorrect. It is required that `len(config.conv_dim)` =="""
										    """ `len(config.conv_stride)` == `len(config.conv_kernel)`, but is `len(config.conv_dim) ="""
										    f' {len(self.conv_dim				)}`, `len(config.conv_stride) = {len(self.conv_stride				)}`,'
										    f' `len(config.conv_kernel) = {len(self.conv_kernel				)}`.'				)

							# fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
							lowerCamelCase       =      mask_time_prob
							lowerCamelCase       =      mask_time_length
							lowerCamelCase       =      mask_time_min_masks
							lowerCamelCase       =      mask_feature_prob
							lowerCamelCase       =      mask_feature_length
							lowerCamelCase       =      mask_feature_min_masks

							# ctc loss
							lowerCamelCase       =      ctc_loss_reduction
							lowerCamelCase       =      ctc_zero_infinity

							# adapter
							lowerCamelCase       =      add_adapter
							lowerCamelCase       =      adapter_kernel_size
							lowerCamelCase       =      adapter_stride
							lowerCamelCase       =      num_adapter_layers
							lowerCamelCase       =      output_hidden_size or hidden_size

							# SequenceClassification-specific parameter. Feel free to ignore for other classes.
							lowerCamelCase       =      classifier_proj_size

							# XVector-specific parameters. Feel free to ignore for other classes.
							lowerCamelCase       =      list(a_				)
							lowerCamelCase       =      list(a_				)
							lowerCamelCase       =      list(a_				)
							lowerCamelCase       =      xvector_output_dim





				@property
				def      _lowerCAmelCase       ( self				):





							"""simple docstring"""
							return math.prod(self.conv_stride				)









"""simple docstring"""




from functools import lru_cache



def 					a__				(       snake_case__       )		->      set:
			lowerCamelCase       =      2
			lowerCamelCase       =      set()
			while i * i <= n:
						if n % i:
									i += 1
						else:
									n //= i
									factors.add(snake_case__       )
			if n > 1:
						factors.add(snake_case__       )
			return factors



@lru_cache
def 					a__				(       snake_case__       )		->      int:
			return len(unique_prime_factors(snake_case__       )       )



def 					a__				(       snake_case__       )		->      bool:
			return len(set(snake_case__       )       ) in (0, 1)



def 					a__				(       snake_case__       )		->      list:
			lowerCamelCase       =      2

			while True:
						# Increment each value of a generated range
						lowerCamelCase       =      [base + i for i in range(snake_case__       )]

						# Run elements through out unique_prime_factors function
						# Append our target number to the end.
						lowerCamelCase       =      [upf_len(snake_case__       ) for x in group]
						checker.append(snake_case__       )

						# If all numbers in the list are equal, return the group variable.
						if equality(snake_case__       ):
									return group

						# Increment our base variable by 1
						base += 1



def 					a__				(       snake_case__ = 4       )		->      int:
			lowerCamelCase       =      run(snake_case__       )
			return results[0] if len(snake_case__       ) else None


if __name__ == "__main__":
					print(solution())



