



"""simple docstring"""






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


_lowercase					:					List[str] 		=		{'configuration_hubert': ['HUBERT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'HubertConfig']}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase					:					Dict 		=		[
		    'HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'HubertForCTC',
		    'HubertForSequenceClassification',
		    'HubertModel',
		    'HubertPreTrainedModel',
		]


try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase					:					Optional[int] 		=		[
		    'TF_HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'TFHubertForCTC',
		    'TFHubertModel',
		    'TFHubertPreTrainedModel',
		]

if TYPE_CHECKING:
		from .configuration_hubert import HUBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, HubertConfig

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_hubert import (
				    HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    HubertForCTC,
				    HubertForSequenceClassification,
				    HubertModel,
				    HubertPreTrainedModel,
				)

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_hubert import (
				    TF_HUBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFHubertForCTC,
				    TFHubertModel,
				    TFHubertPreTrainedModel,
				)


else:
		import sys

		_lowercase					:					Any 		=		_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)











"""simple docstring"""
from functools import lru_cache






@lru_cache
def    A__							(     UpperCamelCase			):
							if not isinstance(UpperCamelCase   ,    UpperCamelCase			):
														raise TypeError("k must be an integer."			)
							if k < 0:
														raise ValueError("k integer must be greater or equal to zero."			)
							if k == 0:
														return 0
							elif k == 1:
														return 1
							else:
														return fibonacci(k - 1			) + fibonacci(k - 2			)






def    A__							(     UpperCamelCase   ,    UpperCamelCase			):
							A						=    len(UpperCamelCase			)
							# Find m such that F_m >= n where F_i is the i_th fibonacci number.
							A						=    0
							while True:
														if fibonacci(UpperCamelCase			) >= len_list:
																					A						=    i
																					break
														i += 1
							A						=    0
							while fibb_k > 0:
														A						=    min(
														    offset + fibonacci(fibb_k - 1			)   ,    len_list - 1			)  # Prevent out of range
														A						=    arr[index_k]
														if item_k_1 == val:
																					return index_k
														elif val < item_k_1:
																					fibb_k -= 1
														elif val > item_k_1:
																					offset += fibonacci(fibb_k - 1			)
																					fibb_k -= 2
							else:
														return -1


if __name__ == "__main__":
		import doctest

		doctest.testmod()


