
'''simple docstring'''

from collections import OrderedDict
from typing import TYPE_CHECKING, Any, Mapping, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig, OnnxSeqaSeqConfigWithPast
from ...utils import logging


if TYPE_CHECKING:
    from ...feature_extraction_utils import FeatureExtractionMixin
    from ...tokenization_utils_base import PreTrainedTokenizerBase
    from ...utils import TensorType

__snake_case:  List[Any]								=			logging.get_logger(__name__)

__snake_case:  Optional[int]								=			{
    "openai/whisper-base": "https://huggingface.co/openai/whisper-base/resolve/main/config.json",
}

# fmt: off
__snake_case:  List[str]								=			[
    1, 2, 7, 8, 9, 10, 14, 25,
    26, 27, 28, 29, 31, 58, 59, 60, 61, 62,
    63, 90, 91, 92, 93, 3_57, 3_66, 4_38, 5_32, 6_85,
    7_05, 7_96, 9_30, 10_58, 12_20, 12_67, 12_79, 13_03, 13_43, 13_77,
    13_91, 16_35, 17_82, 18_75, 21_62, 23_61, 24_88, 34_67, 40_08, 42_11,
    46_00, 48_08, 52_99, 58_55, 63_29, 72_03, 96_09, 99_59, 1_05_63, 1_07_86,
    1_14_20, 1_17_09, 1_19_07, 1_31_63, 1_36_97, 1_37_00, 1_48_08, 1_53_06, 1_64_10, 1_67_91,
    1_79_92, 1_92_03, 1_95_10, 2_07_24, 2_23_05, 2_29_35, 2_70_07, 3_01_09, 3_04_20, 3_34_09,
    3_49_49, 4_02_83, 4_04_93, 4_05_49, 4_72_82, 4_91_46, 5_02_57, 5_03_59, 5_03_60, 5_03_61
]
__snake_case:  Union[str, Any]								=			[
    1, 2, 7, 8, 9, 10, 14, 25,
    26, 27, 28, 29, 31, 58, 59, 60, 61, 62,
    63, 90, 91, 92, 93, 3_59, 5_03, 5_22, 5_42, 8_73,
    8_93, 9_02, 9_18, 9_22, 9_31, 13_50, 18_53, 19_82, 24_60, 26_27,
    32_46, 32_53, 32_68, 35_36, 38_46, 39_61, 41_83, 46_67, 65_85, 66_47,
    72_73, 90_61, 93_83, 1_04_28, 1_09_29, 1_19_38, 1_20_33, 1_23_31, 1_25_62, 1_37_93,
    1_41_57, 1_46_35, 1_52_65, 1_56_18, 1_65_53, 1_66_04, 1_83_62, 1_89_56, 2_00_75, 2_16_75,
    2_25_20, 2_61_30, 2_61_61, 2_64_35, 2_82_79, 2_94_64, 3_16_50, 3_23_02, 3_24_70, 3_68_65,
    4_28_63, 4_74_25, 4_98_70, 5_02_54, 5_02_58, 5_03_60, 5_03_61, 5_03_62
]


class  _UpperCAmelCase ( lowerCAmelCase__    ):

     """simple docstring"""

     a_    	=					"whisper"
     a_    	=					["past_key_values"]
     a_    	=					{"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}


     def __init__(      self							,		lowerCAmelCase_=5_18_65							,		lowerCAmelCase_=80							,		lowerCAmelCase_=6							,		lowerCAmelCase_=4							,		lowerCAmelCase_=6							,		lowerCAmelCase_=4							,		lowerCAmelCase_=15_36							,		lowerCAmelCase_=15_36							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_=5_02_57							,		lowerCAmelCase_=True							,		lowerCAmelCase_=True							,		lowerCAmelCase_="gelu"							,		lowerCAmelCase_=2_56							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_=0.02							,		lowerCAmelCase_=False							,		lowerCAmelCase_=15_00							,		lowerCAmelCase_=4_48							,		lowerCAmelCase_=5_02_56							,		lowerCAmelCase_=5_02_56							,		lowerCAmelCase_=5_02_56							,		lowerCAmelCase_=None							,		lowerCAmelCase_=[2_20, 5_02_56]							,		lowerCAmelCase_=False							,		lowerCAmelCase_=2_56							,		lowerCAmelCase_=False							,		lowerCAmelCase_=0.05							,		lowerCAmelCase_=10							,		lowerCAmelCase_=2							,		lowerCAmelCase_=0.0							,		lowerCAmelCase_=10							,		lowerCAmelCase_=0							,		lowerCAmelCase_=7							,		**lowerCAmelCase_							,		):

       '''simple docstring'''

       a_      :	List[Any]      =							vocab_size
       a_      :	List[str]      =							num_mel_bins
       a_      :	str      =							d_model
       a_      :	Any      =							encoder_layers
       a_      :	List[str]      =							encoder_attention_heads
       a_      :	Any      =							decoder_layers
       a_      :	Dict      =							decoder_attention_heads
       a_      :	Any      =							decoder_ffn_dim
       a_      :	Optional[int]      =							encoder_ffn_dim
       a_      :	int      =							dropout
       a_      :	Optional[Any]      =							attention_dropout
       a_      :	Tuple      =							activation_dropout
       a_      :	Any      =							activation_function
       a_      :	Any      =							init_std
       a_      :	Optional[Any]      =							encoder_layerdrop
       a_      :	List[Any]      =							decoder_layerdrop
       a_      :	Tuple      =							use_cache
       a_      :	Optional[Any]      =							encoder_layers
       a_      :	Tuple      =							scale_embedding  # scale factor will be sqrt(d_model) if True
       a_      :	int      =							max_source_positions
       a_      :	Optional[int]      =							max_target_positions

       # Audio Classification-specific parameters. Feel free to ignore for other classes.
       a_      :	Optional[Any]      =							classifier_proj_size
       a_      :	str      =							use_weighted_layer_sum

       # fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
       a_      :	Tuple      =							apply_spec_augment
       a_      :	Optional[int]      =							mask_time_prob
       a_      :	Optional[int]      =							mask_time_length
       a_      :	List[Any]      =							mask_time_min_masks
       a_      :	Any      =							mask_feature_prob
       a_      :	Any      =							mask_feature_length
       a_      :	str      =							mask_feature_min_masks

       a_      :	Union[str, Any]      =							median_filter_width

       super().__init__(
           pad_token_id=lowerCAmelCase_							,		bos_token_id=lowerCAmelCase_							,		eos_token_id=lowerCAmelCase_							,		is_encoder_decoder=lowerCAmelCase_							,		decoder_start_token_id=lowerCAmelCase_							,		suppress_tokens=lowerCAmelCase_							,		begin_suppress_tokens=lowerCAmelCase_							,		**lowerCAmelCase_							,		)







class  _UpperCAmelCase ( lowerCAmelCase__    ):

     """simple docstring"""

     @property
     def 							_lowerCAmelCase  (      self ):

       '''simple docstring'''

       a_      :	Optional[int]      =							OrderedDict(
           [
               ("""input_features""", {0: """batch""", 1: """feature_size""", 2: """encoder_sequence"""}),
           ] )
       if self.use_past:
         a_      :	Dict      =							{0: """batch"""}
       else:
         a_      :	Tuple      =							{0: """batch""", 1: """decoder_sequence"""}

       if self.use_past:
         self.fill_with_past_key_values_(lowerCAmelCase_							,		direction="""inputs""" )

       return common_inputs


     def 							_lowerCAmelCase  (      self							,		lowerCAmelCase_							,		lowerCAmelCase_ = -1							,		lowerCAmelCase_ = -1							,		lowerCAmelCase_ = False							,		lowerCAmelCase_ = None							,		lowerCAmelCase_ = 2_20_50							,		lowerCAmelCase_ = 5.0							,		lowerCAmelCase_ = 2_20							,		):

       '''simple docstring'''

       a_      :	Dict      =							OrderedDict()
       a_      :	Tuple      =							OnnxConfig.generate_dummy_inputs(
           self							,		preprocessor=preprocessor.feature_extractor							,		batch_size=lowerCAmelCase_							,		framework=lowerCAmelCase_							,		sampling_rate=lowerCAmelCase_							,		time_duration=lowerCAmelCase_							,		frequency=lowerCAmelCase_							,		)
       a_      :	List[Any]      =							encoder_inputs["""input_features"""].shape[2]
       a_      :	Optional[Any]      =							encoder_sequence_length // 2 if self.use_past else seq_length

       a_      :	Tuple      =							super().generate_dummy_inputs(
           preprocessor.tokenizer							,		lowerCAmelCase_							,		lowerCAmelCase_							,		lowerCAmelCase_							,		lowerCAmelCase_ )

       a_      :	Any      =							encoder_inputs.pop("""input_features""" )
       a_      :	Optional[Any]      =							decoder_inputs.pop("""decoder_input_ids""" )

       if "past_key_values" in decoder_inputs:
         a_      :	Any      =							decoder_inputs.pop("""past_key_values""" )

       return dummy_inputs






     @property
     def 							_lowerCAmelCase  (      self ):

       '''simple docstring'''

       return 1E-3




'''simple docstring'''

def 	_snake_case						(      A_       :    list   ):
  """simple docstring"""







  if len(A_   ) <= 1:
    return [tuple(A_   )]

  a_      :	List[Any]      =							[]

  def generate(A_       :    int     ,		A_       :    list   ):
    a_      :	List[Any]      =							[0] * n
    res.append(tuple(A_   )   )

    a_      :	List[str]      =							0
    while i < n:
      if c[i] < i:
        if i % 2 == 0:
          a_      , a_      :	Union[str, Any]      =							arr[i], arr[0]
        else:
          a_      , a_      :	List[str]      =							arr[i], arr[c[i]]
        res.append(tuple(A_   )   )
        c[i] += 1
        a_      :	Optional[Any]      =							0
      else:
        a_      :	Union[str, Any]      =							0
        i += 1

  generate(len(A_   )     ,		A_   )
  return res


if __name__ == "__main__":
    __snake_case:  Dict								=			input("Enter numbers separated by a comma:\n").strip()
    __snake_case:  Optional[Any]								=			[int(item) for item in user_input.split(",")]
    print(heaps(arr))


