

import numpy as np

lowerCamelCase 	=   [
    ['''a''', '''b''', '''c''', '''d''', '''e'''],
    ['''f''', '''g''', '''h''', '''i''', '''k'''],
    ['''l''', '''m''', '''n''', '''o''', '''p'''],
    ['''q''', '''r''', '''s''', '''t''', '''u'''],
    ['''v''', '''w''', '''x''', '''y''', '''z'''],
]







class 		__magic_name__     :

   '''simple docstring'''




   def __init__(							self			)				->       None:






     """simple docstring"""






     a__    =np.array(lowerCAmelCase__			)



   def 					_UpperCAmelCase					(							self,       lowercase_			)				->       np.ndarray:






     """simple docstring"""






     a__, a__    =np.where(letter == self.SQUARE			)
     a__    =np.concatenate([indexa + 1, indexa + 1]			)
     return indexes



   def 					_UpperCAmelCase					(							self,       lowercase_,       lowercase_			)				->       str:






     """simple docstring"""






     return self.SQUARE[indexa - 1, indexa - 1]



   def 					_UpperCAmelCase					(							self,       lowercase_			)				->       str:






     """simple docstring"""






     a__    =message.lower()
     a__    =message.replace('''j''',       '''i'''			)

     a__    =''''''
     for letter_index in range(len(lowerCAmelCase__			)			):
       if message[letter_index] != " ":
         a__    =self.letter_to_numbers(message[letter_index]			)
         a__    =encoded_message + str(numbers[0]			) + str(numbers[1]			)
       elif message[letter_index] == " ":
         a__    =encoded_message + ''' '''

     return encoded_message



   def 					_UpperCAmelCase					(							self,       lowercase_			)				->       str:






     """simple docstring"""






     a__    =message.replace(''' ''',       '''  '''			)
     a__    =''''''
     for numbers_index in range(int(len(lowerCAmelCase__			) / 2			)			):
       if message[numbers_index * 2] != " ":
         a__    =message[numbers_index * 2]
         a__    =message[numbers_index * 2 + 1]

         a__    =self.numbers_to_letter(int(lowerCAmelCase__			),       int(lowerCAmelCase__			)			)
         a__    =decoded_message + letter
       elif message[numbers_index * 2] == " ":
         a__    =decoded_message + ''' '''

     return decoded_message

"""simple docstring"""


import random
import sys

__UpperCamelCase										=     '''ABCDEFGHIJKLMNOPQRSTUVWXYZ'''







def    UpperCAmelCase       (						)							-> None:
     snake_case_   			=   input('Enter message: '   )
     snake_case_   			=   'LFWOAYUISVKMNXPBDCRJTQEGHZ'
     snake_case_   			=   input('Encrypt/Decrypt [e/d]: '   )

     check_valid_key(UpperCAmelCase   )

     if resp.lower().startswith('e'   ):
          snake_case_   			=   'encrypt'
          snake_case_   			=   encrypt_message(UpperCAmelCase		,   UpperCAmelCase   )
     elif resp.lower().startswith('d'   ):
          snake_case_   			=   'decrypt'
          snake_case_   			=   decrypt_message(UpperCAmelCase		,   UpperCAmelCase   )

     print(f'\n{mode.title()}ion: \n{translated}'   )







def    UpperCAmelCase       (						UpperCAmelCase   )							-> None:
     snake_case_   			=   list(UpperCAmelCase   )
     snake_case_   			=   list(UpperCAmelCase   )
     key_list.sort()
     letters_list.sort()

     if key_list != letters_list:
          sys.exit('Error in the key or symbol set.'   )







def    UpperCAmelCase       (						UpperCAmelCase		,   UpperCAmelCase   )							-> str:
     return translate_message(UpperCAmelCase		,   UpperCAmelCase		,   'encrypt'   )







def    UpperCAmelCase       (						UpperCAmelCase		,   UpperCAmelCase   )							-> str:
     return translate_message(UpperCAmelCase		,   UpperCAmelCase		,   'decrypt'   )







def    UpperCAmelCase       (						UpperCAmelCase		,   UpperCAmelCase		,   UpperCAmelCase   )							-> str:
     snake_case_   			=   ''
     snake_case_   			=   LETTERS
     snake_case_   			=   key

     if mode == "decrypt":
          snake_case_			,      snake_case_   			=   chars_b, chars_a

     for symbol in message:
          if symbol.upper() in chars_a:
               snake_case_   			=   chars_a.find(symbol.upper()   )
               if symbol.isupper():
                    translated += chars_b[sym_index].upper()
               else:
                    translated += chars_b[sym_index].lower()
          else:
               translated += symbol

     return translated







def    UpperCAmelCase       (						)							-> str:
     snake_case_   			=   list(UpperCAmelCase   )
     random.shuffle(UpperCAmelCase   )
     return "".join(UpperCAmelCase   )


if __name__ == "__main__":
    main()

