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