"""simple docstring"""




import copy

from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ..auto import CONFIG_MAPPING


__lowerCAmelCase     :				Any    				=    logging.get_logger(__name__)

__lowerCAmelCase     :				str    				=    {
    "SenseTime/deformable-detr": "https://huggingface.co/sensetime/deformable-detr/resolve/main/config.json",
    # See all Deformable DETR models at https://huggingface.co/models?filter=deformable-detr
}

class    a_   (  __UpperCamelCase      ):
					UpperCamelCase_			:						int      =     "deformable_detr"
					UpperCamelCase_			:						Any      =     {
					    "hidden_size": "d_model",
					    "num_attention_heads": "encoder_attention_heads",
					}




					def __init__(						self    :  Any	,    snake_case__    :  Any=True	,    snake_case__    :  Dict=None	,    snake_case__    :  int=3	,    snake_case__    :  Union[str, Any]=300	,    snake_case__    :  Union[str, Any]=1024	,    snake_case__    :  Dict=6	,    snake_case__    :  Any=1024	,    snake_case__    :  Any=8	,    snake_case__    :  Tuple=6	,    snake_case__    :  str=1024	,    snake_case__    :  Union[str, Any]=8	,    snake_case__    :  int=0.0	,    snake_case__    :  Any=True	,    snake_case__    :  str="relu"	,    snake_case__    :  Any=256	,    snake_case__    :  Any=0.1	,    snake_case__    :  Optional[int]=0.0	,    snake_case__    :  List[str]=0.0	,    snake_case__    :  Dict=0.02	,    snake_case__    :  Union[str, Any]=1.0	,    snake_case__    :  int=True	,    snake_case__    :  Dict=False	,    snake_case__    :  Dict="sine"	,    snake_case__    :  Any="resnet50"	,    snake_case__    :  int=True	,    snake_case__    :  List[str]=False	,    snake_case__    :  Any=4	,    snake_case__    :  List[str]=4	,    snake_case__    :  int=4	,    snake_case__    :  List[str]=False	,    snake_case__    :  List[Any]=300	,    snake_case__    :  Dict=False	,    snake_case__    :  Optional[int]=1	,    snake_case__    :  List[Any]=5	,    snake_case__    :  str=2	,    snake_case__    :  Optional[int]=1	,    snake_case__    :  List[Any]=1	,    snake_case__    :  Optional[Any]=5	,    snake_case__    :  Optional[Any]=2	,    snake_case__    :  List[Any]=0.1	,    snake_case__    :  str=0.25	,    snake_case__    :  Tuple=False	,    **snake_case__    :  str	,    ):
							if backbone_config is not None and use_timm_backbone:
									raise ValueError("""You can't specify both `backbone_config` and `use_timm_backbone`."""  )

							if not use_timm_backbone:
									if backbone_config is None:
											logger.info("""`backbone_config` is `None`. Initializing the config with the default `ResNet` backbone."""  )
											lowerCAmelCase__   = CONFIG_MAPPING["""resnet"""](out_features=["""stage4"""]  )
									elif isinstance(snake_case__	,    snake_case__  ):
											lowerCAmelCase__   = backbone_config.get("""model_type"""  )
											lowerCAmelCase__   = CONFIG_MAPPING[backbone_model_type]
											lowerCAmelCase__   = config_class.from_dict(snake_case__  )
							lowerCAmelCase__   = use_timm_backbone
							lowerCAmelCase__   = backbone_config
							lowerCAmelCase__   = num_channels
							lowerCAmelCase__   = num_queries
							lowerCAmelCase__   = max_position_embeddings
							lowerCAmelCase__   = d_model
							lowerCAmelCase__   = encoder_ffn_dim
							lowerCAmelCase__   = encoder_layers
							lowerCAmelCase__   = encoder_attention_heads
							lowerCAmelCase__   = decoder_ffn_dim
							lowerCAmelCase__   = decoder_layers
							lowerCAmelCase__   = decoder_attention_heads
							lowerCAmelCase__   = dropout
							lowerCAmelCase__   = attention_dropout
							lowerCAmelCase__   = activation_dropout
							lowerCAmelCase__   = activation_function
							lowerCAmelCase__   = init_std
							lowerCAmelCase__   = init_xavier_std
							lowerCAmelCase__   = encoder_layerdrop
							lowerCAmelCase__   = auxiliary_loss
							lowerCAmelCase__   = position_embedding_type
							lowerCAmelCase__   = backbone
							lowerCAmelCase__   = use_pretrained_backbone
							lowerCAmelCase__   = dilation
							# deformable attributes
							lowerCAmelCase__   = num_feature_levels
							lowerCAmelCase__   = encoder_n_points
							lowerCAmelCase__   = decoder_n_points
							lowerCAmelCase__   = two_stage
							lowerCAmelCase__   = two_stage_num_proposals
							lowerCAmelCase__   = with_box_refine
							if two_stage is True and with_box_refine is False:
									raise ValueError("""If two_stage is True, with_box_refine must be True."""  )
							# Hungarian matcher
							lowerCAmelCase__   = class_cost
							lowerCAmelCase__   = bbox_cost
							lowerCAmelCase__   = giou_cost
							# Loss coefficients
							lowerCAmelCase__   = mask_loss_coefficient
							lowerCAmelCase__   = dice_loss_coefficient
							lowerCAmelCase__   = bbox_loss_coefficient
							lowerCAmelCase__   = giou_loss_coefficient
							lowerCAmelCase__   = eos_coefficient
							lowerCAmelCase__   = focal_alpha
							lowerCAmelCase__   = disable_custom_kernels
							super().__init__(is_encoder_decoder=snake_case__	,    **snake_case__  )




					@property
					def     _SCREAMING_SNAKE_CASE    (						self    :  List[str]  ):
							return self.encoder_attention_heads




					@property
					def     _SCREAMING_SNAKE_CASE    (						self    :  Any  ):
							return self.d_model




					def     _SCREAMING_SNAKE_CASE    (						self    :  Any  ):
							lowerCAmelCase__   = copy.deepcopy(self.__dict__  )
							if self.backbone_config is not None:
									lowerCAmelCase__   = self.backbone_config.to_dict()
							lowerCAmelCase__   = self.__class__.model_type
							return output





"""simple docstring"""




import math
from datetime import datetime, timedelta







def 				_UpperCAmelCase		(							lowerCamelCase__  ):





		"""simple docstring"""




		lowerCAmelCase__   = year % 19
		lowerCAmelCase__   = year % 4
		lowerCAmelCase__   = year % 7
		lowerCAmelCase__   = math.floor(year / 100  )
		lowerCAmelCase__   = math.floor((13 + 8 * leap_day_inhibits) / 25  )
		lowerCAmelCase__   = leap_day_inhibits / 4
		lowerCAmelCase__   = (
		    15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
		) % 30
		lowerCAmelCase__   = (4 + leap_day_inhibits - leap_day_reinstall_number) % 7

		# days to be added to March 21
		lowerCAmelCase__   = (19 * metonic_cycle + secular_moon_shift) % 30

		# PHM -> Paschal Full Moon
		lowerCAmelCase__   = (
		    2 * julian_leap_year
		    + 4 * non_leap_year
		    + 6 * days_to_add
		    + century_starting_point
		) % 7

		if days_to_add == 29 and days_from_phm_to_sunday == 6:
				return datetime(lowerCamelCase__      ,	4      ,	19  )
		elif days_to_add == 28 and days_from_phm_to_sunday == 6:
				return datetime(lowerCamelCase__      ,	4      ,	18  )
		else:
				return datetime(lowerCamelCase__      ,	3      ,	22  ) + timedelta(
				    days=int(days_to_add + days_from_phm_to_sunday  )  )


if __name__ == "__main__":
			for year in (19_94, 20_00, 20_10, 20_21, 20_23):
						__lowerCAmelCase     :				List[str]    				=    "will be" if year > datetime.now().year else "was"
						print(F"Easter in {year} {tense} {gauss_easter(year)}")




