






"""simple docstring"""
from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


A:     int										=	logging.get_logger(__name__)

A:     List[Any]										=	{
    "facebook/convnextv2-tiny-1k-224": "https://huggingface.co/facebook/convnextv2-tiny-1k-224/resolve/main/config.json",
}



class    SCREAMING_SNAKE_CASE__						(      UpperCAmelCase__   ,    UpperCAmelCase__				):
   __lowerCAmelCase						:     Optional[Any]		=		'convnextv2'

   def __init__(     self   ,  _SCREAMING_SNAKE_CASE=3   ,  _SCREAMING_SNAKE_CASE=4   ,  _SCREAMING_SNAKE_CASE=4   ,  _SCREAMING_SNAKE_CASE=None   ,  _SCREAMING_SNAKE_CASE=None   ,  _SCREAMING_SNAKE_CASE="gelu"   ,  _SCREAMING_SNAKE_CASE=0.02   ,  _SCREAMING_SNAKE_CASE=1E-12   ,  _SCREAMING_SNAKE_CASE=0.0   ,  _SCREAMING_SNAKE_CASE=224   ,  _SCREAMING_SNAKE_CASE=None   ,  _SCREAMING_SNAKE_CASE=None   ,  **_SCREAMING_SNAKE_CASE   ,  )						->   List[Any]:





    '''simple docstring'''




    super().__init__(**_SCREAMING_SNAKE_CASE		)

    UpperCAmelCase			:      List[str]			=			num_channels
    UpperCAmelCase			:      Union[str, Any]			=			patch_size
    UpperCAmelCase			:      Union[str, Any]			=			num_stages
    UpperCAmelCase			:      int			=			[96, 192, 384, 768] if hidden_sizes is None else hidden_sizes
    UpperCAmelCase			:      Optional[int]			=			[3, 3, 9, 3] if depths is None else depths
    UpperCAmelCase			:      Any			=			hidden_act
    UpperCAmelCase			:      List[str]			=			initializer_range
    UpperCAmelCase			:      str			=			layer_norm_eps
    UpperCAmelCase			:      int			=			drop_path_rate
    UpperCAmelCase			:      Dict			=			image_size
    UpperCAmelCase			:      str			=			["""stem"""] + [F"stage{idx}" for idx in range(1   ,  len(self.depths		) + 1		)]
    UpperCAmelCase			:      Tuple			=			get_aligned_output_features_output_indices(
        out_features=_SCREAMING_SNAKE_CASE   ,  out_indices=_SCREAMING_SNAKE_CASE   ,  stage_names=self.stage_names		)





"""simple docstring"""
from __future__ import annotations

from collections.abc import Generator

def    _snake_case		(		):
 UpperCAmelCase			:      dict[int, int]			=			{}
 UpperCAmelCase			:      str			=			2
 while True:
  UpperCAmelCase			:      List[str]			=			factor_map.pop(UpperCamelCase    ,	UpperCamelCase		)
  if factor:
   UpperCAmelCase			:      Dict			=			factor + prime
   while x in factor_map:
    x += factor
   UpperCAmelCase			:      Tuple			=			factor
  else:
   UpperCAmelCase			:      Optional[int]			=			prime
   yield prime
  prime += 1

def    _snake_case		(		UpperCamelCase		:	float = 1e1_0		):
 UpperCAmelCase			:      Tuple			=			sieve()

 UpperCAmelCase			:      Optional[Any]			=			1
 while True:
  UpperCAmelCase			:      List[str]			=			next(UpperCamelCase		)
  if (2 * prime * n) > limit:
   return n
  # Ignore the next prime as the reminder will be 2.
  next(UpperCamelCase		)
  n += 2


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