






'''simple docstring'''
import os
import random
import sys

from . import cryptomath_module as cryptoMath  # noqa: N812
from . import rabin_miller as rabinMiller  # noqa: N812





def        _a(     ):




      '''simple docstring'''






      print('''Making key files...'''							)
      make_key_files('''rsa''',		1_0_2_4							)
      print('''Key files generation successful.'''							)





def        _a(     UpperCamelCase__ :  int							):




      '''simple docstring'''






      print('''Generating prime p...'''							)
      SCREAMING_SNAKE_CASE__   : Any													=rabinMiller.generate_large_prime(__lowerCamelCase							)
      print('''Generating prime q...'''							)
      SCREAMING_SNAKE_CASE__   : Tuple													=rabinMiller.generate_large_prime(__lowerCamelCase							)
      SCREAMING_SNAKE_CASE__   : int													=p * q

      print('''Generating e that is relatively prime to (p - 1) * (q - 1)...'''							)
      while True:
            SCREAMING_SNAKE_CASE__   : Optional[Any]													=random.randrange(2 ** (key_size - 1),		2 ** (key_size)							)
            if cryptoMath.gcd(__lowerCamelCase,		(p - 1) * (q - 1)							) == 1:
                  break

      print('''Calculating d that is mod inverse of e...'''							)
      SCREAMING_SNAKE_CASE__   : Optional[int]													=cryptoMath.find_mod_inverse(__lowerCamelCase,		(p - 1) * (q - 1)							)

      SCREAMING_SNAKE_CASE__   : Optional[Any]													=(n, e)
      SCREAMING_SNAKE_CASE__   : Optional[int]													=(n, d)
      return (public_key, private_key)





def        _a(     UpperCamelCase__ :  str,		UpperCamelCase__ :  int							):




      '''simple docstring'''






      if os.path.exists(f"{name}_pubkey.txt"							) or os.path.exists(f"{name}_privkey.txt"							):
            print('''\nWARNING:'''							)
            print(
                f"\"{name}_pubkey.txt\" or \"{name}_privkey.txt\" already exists. \n"
                '''Use a different name or delete these files and re-run this program.'''							)
            sys.exit()

      SCREAMING_SNAKE_CASE__   : int													=generate_key(__lowerCamelCase							)
      print(f"\nWriting public key to file {name}_pubkey.txt..."							)
      with open(f"{name}_pubkey.txt",		'''w'''							) as out_file:
            out_file.write(f"{key_size},{public_key[0]},{public_key[1]}"							)

      print(f"Writing private key to file {name}_privkey.txt..."							)
      with open(f"{name}_privkey.txt",		'''w'''							) as out_file:
            out_file.write(f"{key_size},{private_key[0]},{private_key[1]}"							)


if __name__ == "__main__":
  main()






'''simple docstring'''


import sys
import webbrowser

import requests
from bsa import BeautifulSoup
from fake_useragent import UserAgent

if __name__ == "__main__":
 print('''Googling.....''')
 lowerCAmelCase					:     str												='''https://www.google.com/search?q=''' + ''' '''.join(sys.argv[1:])
 lowerCAmelCase					:     List[str]												=requests.get(url, headers={'''UserAgent''': UserAgent().random})
 # res.raise_for_status()
 with open('''project1a.html''', '''wb''') as out_file:  # only for knowing the class
  for data in res.iter_content(10_000):
   out_file.write(data)
 lowerCAmelCase					:     List[Any]												=BeautifulSoup(res.text, '''html.parser''')
 lowerCAmelCase					:     List[Any]												=list(soup.select('''.eZt8xd'''))[:5]

 print(len(links))
 for link in links:
  if link.text == "Maps":
   webbrowser.open(link.get('''href'''))
  else:
   webbrowser.open(F'''https://google.com{link.get('href')}''')


