



def    lowerCamelCase_(lowerCamelCase_    ) ->       list:

						'''simple docstring'''





						if bit_count < 0:
												raise ValueError("The given input must be positive"    )

						# get the generated string sequence
						UpperCAmelCase         =     gray_code_sequence_string(_SCREAMING_SNAKE_CASE    )
						#
						# convert them to integers
						for i in range(len(_SCREAMING_SNAKE_CASE    )    ):
												UpperCAmelCase         =     int(sequence[i]    ,   2    )

						return sequence

def    lowerCamelCase_(lowerCamelCase_    ) ->       list:

						'''simple docstring'''





						if bit_count == 0:
												return ["0"]

						if bit_count == 1:
												return ["0", "1"]

						UpperCAmelCase         =     1 << bit_count  # defines the length of the sequence
						# 1<< n is equivalent to 2^n

						# recursive answer will generate answer for n-1 bits
						UpperCAmelCase         =     gray_code_sequence_string(bit_count - 1    )

						UpperCAmelCase         =     []

						# append 0 to first half of the smaller sequence generated
						for i in range(seq_len // 2    ):
												UpperCAmelCase         =     "0" + smaller_sequence[i]
												sequence.append(_SCREAMING_SNAKE_CASE    )

						# append 1 to second half ... start from the end of the list
						for i in reversed(range(seq_len // 2    )    ):
												UpperCAmelCase         =     "1" + smaller_sequence[i]
												sequence.append(_SCREAMING_SNAKE_CASE    )

						return sequence


if __name__ == "__main__":
		import doctest

		doctest.testmod()








from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
)


__lowerCamelCase     :							Any  							=				{
    "configuration_mega": ["MEGA_PRETRAINED_CONFIG_ARCHIVE_MAP", "MegaConfig", "MegaOnnxConfig"],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__lowerCamelCase     :							Optional[int]  							=				[
		    "MEGA_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "MegaForCausalLM",
		    "MegaForMaskedLM",
		    "MegaForMultipleChoice",
		    "MegaForQuestionAnswering",
		    "MegaForSequenceClassification",
		    "MegaForTokenClassification",
		    "MegaModel",
		    "MegaPreTrainedModel",
		]

if TYPE_CHECKING:
		from .configuration_mega import MEGA_PRETRAINED_CONFIG_ARCHIVE_MAP, MegaConfig, MegaOnnxConfig

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_mega import (
				    MEGA_PRETRAINED_MODEL_ARCHIVE_LIST,
				    MegaForCausalLM,
				    MegaForMaskedLM,
				    MegaForMultipleChoice,
				    MegaForQuestionAnswering,
				    MegaForSequenceClassification,
				    MegaForTokenClassification,
				    MegaModel,
				    MegaPreTrainedModel,
				)

else:
		import sys

		__lowerCamelCase     :							int  							=				_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)



