


'''simple docstring'''







from __future__ import annotations


class  lowerCAmelCase_						:





		"""simple docstring"""



		def __init__(					self     :							Dict				,							SCREAMING_SNAKE_CASE__     :							List[Any] = 0						):





							'''simple docstring'''

							__a       =   key

		def __a						(					self     :							Optional[int]				,							SCREAMING_SNAKE_CASE__     :							Union[str, Any]				,							SCREAMING_SNAKE_CASE__     :							str						):





							'''simple docstring'''

							assert isinstance(lowerCamelCase_				,							lowerCamelCase_						) and isinstance(lowerCamelCase_				,							lowerCamelCase_						)

							__a       =   key or self.__key or 1

							# make sure key is an appropriate size
							key %= 2_5_5

							return [chr(ord(lowerCamelCase_						) ^ key						) for ch in content]

		def __a						(					self     :							Any				,							SCREAMING_SNAKE_CASE__     :							str				,							SCREAMING_SNAKE_CASE__     :							Union[str, Any]						):





							'''simple docstring'''

							assert isinstance(lowerCamelCase_				,							lowerCamelCase_						) and isinstance(lowerCamelCase_				,							lowerCamelCase_						)

							__a       =   key or self.__key or 1

							# make sure key is an appropriate size
							key %= 2_5_5

							return [chr(ord(lowerCamelCase_						) ^ key						) for ch in content]

		def __a						(					self     :							List[str]				,							SCREAMING_SNAKE_CASE__     :							str				,							SCREAMING_SNAKE_CASE__     :							List[Any] = 0						):





							'''simple docstring'''

							assert isinstance(lowerCamelCase_				,							lowerCamelCase_						) and isinstance(lowerCamelCase_				,							lowerCamelCase_						)

							__a       =   key or self.__key or 1

							# make sure key can be any size
							while key > 2_5_5:
												key -= 2_5_5

							# This will be returned
							__a       =   """"""

							for ch in content:
												ans += chr(ord(lowerCamelCase_						) ^ key						)

							return ans

		def __a						(					self     :							Dict				,							SCREAMING_SNAKE_CASE__     :							List[Any]				,							SCREAMING_SNAKE_CASE__     :							Optional[int] = 0						):





							'''simple docstring'''

							assert isinstance(lowerCamelCase_				,							lowerCamelCase_						) and isinstance(lowerCamelCase_				,							lowerCamelCase_						)

							__a       =   key or self.__key or 1

							# make sure key can be any size
							while key > 2_5_5:
												key -= 2_5_5

							# This will be returned
							__a       =   """"""

							for ch in content:
												ans += chr(ord(lowerCamelCase_						) ^ key						)

							return ans

		def __a						(					self     :							str				,							SCREAMING_SNAKE_CASE__     :							Optional[int]				,							SCREAMING_SNAKE_CASE__     :							Any = 0						):





							'''simple docstring'''

							assert isinstance(lowerCamelCase_				,							lowerCamelCase_						) and isinstance(lowerCamelCase_				,							lowerCamelCase_						)

							try:
												with open(lowerCamelCase_						) as fin, open("""encrypt.out"""				,							"""w+"""						) as fout:
																	# actual encrypt-process
																	for line in fin:
																						fout.write(self.encrypt_string(lowerCamelCase_				,							lowerCamelCase_						)						)

							except OSError:
												return False

							return True


		def __a						(					self     :							Optional[Any]				,							SCREAMING_SNAKE_CASE__     :							int				,							SCREAMING_SNAKE_CASE__     :							Dict						):





							'''simple docstring'''

							assert isinstance(lowerCamelCase_				,							lowerCamelCase_						) and isinstance(lowerCamelCase_				,							lowerCamelCase_						)

							try:
												with open(lowerCamelCase_						) as fin, open("""decrypt.out"""				,							"""w+"""						) as fout:
																	# actual encrypt-process
																	for line in fin:
																						fout.write(self.decrypt_string(lowerCamelCase_				,							lowerCamelCase_						)						)

							except OSError:
												return False

							return True


# Tests
# crypt = XORCipher()
# key = 67

# # test encrypt
# print(crypt.encrypt("hallo welt",key))
# # test decrypt
# print(crypt.decrypt(crypt.encrypt("hallo welt",key), key))

# # test encrypt_string
# print(crypt.encrypt_string("hallo welt",key))

# # test decrypt_string
# print(crypt.decrypt_string(crypt.encrypt_string("hallo welt",key),key))

# if (crypt.encrypt_file("test.txt",key)):
#       print("encrypt successful")
# else:
#       print("encrypt unsuccessful")

# if (crypt.decrypt_file("encrypt.out",key)):
#       print("decrypt successful")
# else:
#       print("decrypt unsuccessful")










'''simple docstring'''







def        __lowercase						(      __SCREAMING_SNAKE_CASE		)				->					str:
     """simple docstring"""




     return " ".join(input_str.split()[::-1]		)


if __name__ == "__main__":
 import doctest

 doctest.testmod()






