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