                     .....::::--==+*#%%@@@@@@@@@@@@@@%##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%
                      ....:::--===+**#%@@@@@@@@@@@@@%%####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%
  ....   .:.           ...:::--===++*#%@@@@@@@@@@@@@%#####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%
 .:=*=###@@#...         ...::--===++*##%@@@@@@@@@@@@%#####%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%
     =@@@@@%%@@%#=      ...::--===++**#%@@@@@@@@@@@@%##**#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%
    :%%%@@@@@@@@@@.     ...:::--==++**#%@@@@@@@@@@@@%##*##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%
       -@@@@@@@@@@*      ...::---==++*#%%@@@@@@@@@@@@%##%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
       *@@@@@@@@@@@-      ..:::---=++*#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
       -@@@@@@@@@@+        ..:::--==+*#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        *@@@@@@@@@@+-. .   ...:::--=+**#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        :@@@@@@@@@@@@%-      ..::--=++*##%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        .%@@@@@@@@@@@@@*-    ...::-==+**###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         +@@@@@@@@@@@@@@@%-   ...:--==++**##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         #@@@@@@@@@@@@@@@@+     ..:--==+++**##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        -@@@@@@@@@@@@@@@@%.      ..:--==+++***##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        *@@@@@@@@@@@@@@@@%.      ..::---===++**#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        #@@@@@@@@@@@@@@@@@=.     ..::::---==+**#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        =@@@@@@@@@@@@@@@@@=..    ...::::--==++*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        .@@@@@@@@@@@@@@@@@#..   ....:::--==+++*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         :@@@@@@@@@@@@@@@@@-.......:::--==++**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        :+@@@=*@@@@@@@@@@@@#......:::--===+**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
       +@@*++-@@@@@@@@@@@@@@= ....:--===+=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
       =%-  -@@@@@@@@@@@@@@@%....::-=++****#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
           +@@@@@@@@@@@@@@@@@+ ..::-=+*##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         .#@@@@@@@@@@@@@@@@@@@: .:-=+*#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        :@@@@@@@@@@@@@@@@@@@@@# .:-=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      .+@@@@@@@@@@@@@@@@@@@@@@@=.:-=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     :%@@@@@@@@@@@@@@@@@@@@@@@@%..-=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    :@@@@@@@@@@@@@@@@@@@@@@@@@@@= :-=+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   :@@@@@@@@@@@@@@@@@@@@@@@@@@@@+ :-=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   *@@@@@@@@@@@@@@@@@@@@@@@@@@@@+ .::=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   :.-+++*@@@@@@@@@@@@@@@@@@@@@@+  ..:-=+*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
          =###%@@@@@@@@@@@@@@#:.    .:--==*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               +@@@=*@@# ..::        .::--=*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               *@@= .@@+               .:--+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               @@%  -@@=               ..:-=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
