"""simple docstring"""





from __future__ import annotations

import string
from itertools import cycle, product
from pathlib import Path

__A  =				(
    string.ascii_letters + string.digits + string.punctuation + string.whitespace
)
__A  =				[ord(letter) for letter in string.ascii_lowercase]
__A  =				{ord(char) for char in VALID_CHARS}

__A  =				['''the''', '''be''', '''to''', '''of''', '''and''', '''in''', '''that''', '''have''']


def    lowercase_   (   _lowerCamelCase:	list[int]						,   _lowerCamelCase:	tuple[int, ...]      ) ->      str | None:



							'''simple docstring'''

							__lowerCamelCase					:		str		   =     ""
							__lowerCamelCase					:		int
							__lowerCamelCase					:		int
							__lowerCamelCase					:		int

							for keychar, cipherchar in zip(cycle(_lowerCamelCase      )						,   _lowerCamelCase      ):
														__lowerCamelCase					:		List[Any]		   =     cipherchar ^ keychar
														if decodedchar not in VALID_INTS:
																					return None
														decoded += chr(_lowerCamelCase      )

							return decoded


def    lowercase_   (   _lowerCamelCase:	list[int]      ) ->      list[str]:



							'''simple docstring'''

							__lowerCamelCase					:		list[str]		   =     []
							for key in product(_lowerCamelCase						,   repeat=3      ):
														__lowerCamelCase					:		str		   =     try_key(_lowerCamelCase						,   _lowerCamelCase      )
														if encoded is not None:
																					possibles.append(_lowerCamelCase      )
							return possibles


def    lowercase_   (   _lowerCamelCase:	list[str]						,   _lowerCamelCase:	str      ) ->      list[str]:



							'''simple docstring'''

							return [possible for possible in possibles if common_word in possible.lower()]


def    lowercase_   (   _lowerCamelCase:	str = "p059_cipher.txt"      ) ->      int:



							'''simple docstring'''

							__lowerCamelCase					:		list[int]
							__lowerCamelCase					:		list[str]
							__lowerCamelCase					:		str
							__lowerCamelCase					:		str
							__lowerCamelCase					:		str		   =     Path(_lowerCamelCase      ).parent.joinpath(_lowerCamelCase      ).read_text(encoding="utf-8"      )

							__lowerCamelCase					:		Union[str, Any]		   =     [int(_lowerCamelCase      ) for number in data.strip().split(","      )]

							__lowerCamelCase					:		Tuple		   =     filter_valid_chars(_lowerCamelCase      )
							for common_word in COMMON_WORDS:
														__lowerCamelCase					:		Optional[int]		   =     filter_common_word(_lowerCamelCase						,   _lowerCamelCase      )
														if len(_lowerCamelCase      ) == 1:
																					break

							__lowerCamelCase					:		Dict		   =     possibles[0]
							return sum(ord(_lowerCamelCase      ) for char in decoded_text      )


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





import math
from datetime import datetime, timedelta


def    lowercase_   (   _lowerCamelCase:	int      ) ->      datetime:



							'''simple docstring'''

							__lowerCamelCase					:		List[Any]		   =     year % 19
							__lowerCamelCase					:		List[str]		   =     year % 4
							__lowerCamelCase					:		Dict		   =     year % 7
							__lowerCamelCase					:		Optional[Any]		   =     math.floor(year / 100      )
							__lowerCamelCase					:		Tuple		   =     math.floor((13 + 8 * leap_day_inhibits) / 25      )
							__lowerCamelCase					:		List[str]		   =     leap_day_inhibits / 4
							__lowerCamelCase					:		Optional[Any]		   =     (
							    15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
							) % 30
							__lowerCamelCase					:		Union[str, Any]		   =     (4 + leap_day_inhibits - leap_day_reinstall_number) % 7

							# days to be added to March 21
							__lowerCamelCase					:		Union[str, Any]		   =     (19 * metonic_cycle + secular_moon_shift) % 30

							# PHM -> Paschal Full Moon
							__lowerCamelCase					:		List[Any]		   =     (
							    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 (1994, 2000, 2010, 2021, 2023):
								__A  =				'''will be''' if year > datetime.now().year else '''was'''
								print(F"""Easter in {year} {tense} {gauss_easter(year)}""")