def 							UpperCamelCase		(			__lowercase		:					int = 4_00_00_00      ):
		'''simple docstring'''




		A_						:							Dict      = [0, 1]
		A_						:							List[str]      = 0
		while fib[i] <= n:
				fib.append(fib[i] + fib[i + 1]      )
				if fib[i + 2] > n:
						break
				i += 1
		A_						:							Any      = 0
		for j in range(len(__lowercase      ) - 1      ):
				if fib[j] % 2 == 0:
						total += fib[j]

		return total


if __name__ == "__main__":
	print(F"""{solution() = }""")







from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


_UpperCAmelCase          =						logging.get_logger(__name__)

_UpperCAmelCase          =						{
    """shi-labs/dinat-mini-in1k-224""": """https://huggingface.co/shi-labs/dinat-mini-in1k-224/resolve/main/config.json""",
    # See all Dinat models at https://huggingface.co/models?filter=dinat
}





class UpperCAmelCase		(   __A   ,			__A    ):


				'''simple docstring'''






				lowerCamelCase_        =   '''dinat'''

				lowerCamelCase_        =   {
				    '''num_attention_heads''': '''num_heads''',
				    '''num_hidden_layers''': '''num_layers''',
				}
				def __init__(		self						,      lowercase=4						,      lowercase=3						,      lowercase=6_4						,      lowercase=[3, 4, 6, 5]						,      lowercase=[2, 4, 8, 1_6]						,      lowercase=7						,      lowercase=[[1, 8, 1], [1, 4, 1, 4], [1, 2, 1, 2, 1, 2], [1, 1, 1, 1, 1]]						,      lowercase=3.0						,      lowercase=True						,      lowercase=0.0						,      lowercase=0.0						,      lowercase=0.1						,      lowercase="gelu"						,      lowercase=0.02						,      lowercase=1E-5						,      lowercase=0.0						,      lowercase=None						,      lowercase=None						,      **lowercase						,      ):



						"""simple docstring"""





						super().__init__(**lowercase   )

						A_						:							List[Any]      = patch_size
						A_						:							List[str]      = num_channels
						A_						:							Any      = embed_dim
						A_						:							List[Any]      = depths
						A_						:							List[Any]      = len(lowercase   )
						A_						:							Optional[int]      = num_heads
						A_						:							Any      = kernel_size
						A_						:							Tuple      = dilations
						A_						:							Optional[int]      = mlp_ratio
						A_						:							Optional[Any]      = qkv_bias
						A_						:							Dict      = hidden_dropout_prob
						A_						:							str      = attention_probs_dropout_prob
						A_						:							Optional[Any]      = drop_path_rate
						A_						:							str      = hidden_act
						A_						:							Optional[Any]      = layer_norm_eps
						A_						:							Any      = initializer_range
						# we set the hidden_size attribute in order to make Dinat work with VisionEncoderDecoderModel
						# this indicates the channel dimension after the last stage of the model
						A_						:							Dict      = int(embed_dim * 2 ** (len(lowercase   ) - 1)   )
						A_						:							Optional[int]      = layer_scale_init_value
						A_						:							Optional[int]      = ['stem'] + [F'''stage{idx}''' for idx in range(1						,      len(lowercase   ) + 1   )]
						A_  ,     A_						:							Any      = get_aligned_output_features_output_indices(
						    out_features=lowercase						,      out_indices=lowercase						,      stage_names=self.stage_names   )






