

from __future__ import annotations

from string import ascii_letters



def    snake_case_(_UpperCamelCase				, _UpperCamelCase				, _UpperCamelCase = None  )							->			str:



  """simple docstring"""






  _snake_case		=							alphabet or ascii_letters

  # The final result string
  _snake_case		=							''''''

  for character in input_string:
    if character not in alpha:
      # Append without encryption if character is not in the alphabet
      result += character
    else:
      # Get the index of the new key and make sure it isn't too large
      _snake_case		=							(alpha.index(_UpperCamelCase  ) + key) % len(_UpperCamelCase  )

      # Append the encoded character to the alphabet
      result += alpha[new_key]

  return result



def    snake_case_(_UpperCamelCase				, _UpperCamelCase				, _UpperCamelCase = None  )							->			str:



  """simple docstring"""






  key *= -1

  return encrypt(_UpperCamelCase				, _UpperCamelCase				, _UpperCamelCase  )



def    snake_case_(_UpperCamelCase				, _UpperCamelCase = None  )							->			dict[int, str]:



  """simple docstring"""






  _snake_case		=							alphabet or ascii_letters

  # To store data on all the combinations
  _snake_case		=							{}

  # Cycle through each combination
  for key in range(1				, len(_UpperCamelCase  ) + 1  ):
    # Decrypt the message and store the result in the data
    _snake_case		=							decrypt(_UpperCamelCase				, _UpperCamelCase				, _UpperCamelCase  )

  return brute_force_data


if __name__ == "__main__":
 while True:
  print(f'''\n{"-" * 10}\n Menu\n{"-" * 10}''')
  print(*['''1.Encrypt''', '''2.Decrypt''', '''3.BruteForce''', '''4.Quit'''], sep='''\n''')

  # get user input
  __A    	=			input('''\nWhat would you like to do?: ''').strip() or '''4'''

  # run functions based on what the user chose
  if choice not in ("1", "2", "3", "4"):
   print('''Invalid choice, please enter a valid choice''')
  elif choice == "1":
   __A    	=			input('''Please enter the string to be encrypted: ''')
   __A    	=			int(input('''Please enter off-set: ''').strip())

   print(encrypt(input_string, key))
  elif choice == "2":
   __A    	=			input('''Please enter the string to be decrypted: ''')
   __A    	=			int(input('''Please enter off-set: ''').strip())

   print(decrypt(input_string, key))
  elif choice == "3":
   __A    	=			input('''Please enter the string to be decrypted: ''')
   __A    	=			brute_force(input_string)

   for key, value in brute_force_data.items():
    print(f'''Key: {key} | Message: {value}''')

  elif choice == "4":
   print('''Goodbye.''')
   break




from __future__ import annotations



def    snake_case_(_UpperCamelCase  )							->			int | float:



  """simple docstring"""






  if len(_UpperCamelCase  ) == 0:
    raise ValueError('''find_max() arg is an empty sequence'''  )
  _snake_case		=							nums[0]
  for x in nums:
    if x > max_num:
      _snake_case		=							x
  return max_num


if __name__ == "__main__":
 import doctest

 doctest.testmod(verbose=True)

