






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCamelCase			:							int       ={'''configuration_dinat''': ['''DINAT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''DinatConfig''']}


try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCamelCase			:							str       =[
     '''DINAT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''DinatForImageClassification''',
     '''DinatModel''',
     '''DinatPreTrainedModel''',
     '''DinatBackbone''',
 ]

if TYPE_CHECKING:
 from .configuration_dinat import DINAT_PRETRAINED_CONFIG_ARCHIVE_MAP, DinatConfig

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_dinat import (
      DINAT_PRETRAINED_MODEL_ARCHIVE_LIST,
      DinatBackbone,
      DinatForImageClassification,
      DinatModel,
      DinatPreTrainedModel,
  )

else:
 import sys

 lowerCamelCase			:							Any       =_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







from __future__ import annotations







def 	SCREAMING_SNAKE_CASE							(      __lowerCAmelCase    )				->			list[int]:
     assert (
         isinstance(__lowerCAmelCase      ,					__lowerCAmelCase    ) and mask > 0
     ), f'mask needs to be positive integer, your input {mask}'
     UpperCamelCase__    :     Any        =						[]
     UpperCamelCase__    :     int        =						mask

     while submask:
          all_submasks.append(__lowerCAmelCase    )
          UpperCamelCase__    :     List[str]        =						(submask - 1) & mask

     return all_submasks


if __name__ == "__main__":
 import doctest

 doctest.testmod()