@X@@                     @XXX@XXX@@@@@@@@                                                                                                                                                                     
X@@                    @XXSXXXXXXXXXX@@@@@@@  @                                                                                                                                                               
@@                   @XXSXXSSXXSXXXSXXXXX@@X@                                                                                                                                                                 
@@              @ @ @XSSSSSSSXXXXXXXXXXXXX@@XX@                                                                                                                                                               
@@           @@    @XXXXXXX@@@@@@@@@XXX@XX@@@XX@                                                                                                                                                              
            @   @@XXXXX@@@@@@@@@@@@XXXX@X@X@@@@X@@      @                                                                                                                                                     
               @XXXXX@@@@@@@@@XX@@@@X@XXXXXXX@@X@@@@@  @@                                                                                                                                                     
             XXXX@@XXX@@@XXXX@@XX@@@@@@XXXXXXXX@XX@@   @@   @                                                                                                                                                 
          @@@XX@@@XXXXXXXX@XXX@@XXX@@@@XXXXXX@X@@@X@@@@@@  @@ @           @                                                                                                                                   
         @@@@@@@@XXXXS8SXX@@@@@XXXXXXXX@XSXSSXXXXSX@ @@@X@XX@@@    @ @   @@@@@                                                                                                                                
         @@@@@@@@@XS88SX@@@@@@X@XSSXXXX@XXXSXXXSS8X@@@@XSXX@@@@@@@@@@@@@@@@@@                                                                                                                                 
       @@@@@@@@@XXSSSSX@@@@@@@XX@XXXXXXXXSXSXSS888@@@@XO8SX@@@@@@@@@@XXX@@@                                                                                                                                   
        @@@@@@@@XS8SSX@@@@@@@XSX@XXXXXSXXSXSSS8OOS@@XS8O8X@@@@@@@@@@@@@@@@                                                                                                                                    
       @@@@@@@@XSSSXXX@@@@@@XXSXXXSXXSSSXSSSSS8OOX@SS88SX@@X@@@@@@@@@    @@@                                                                                                                                  
      @@@@@@@@XSSSXX@X@@@@@XXS8SXXSSXS88SSS8SSO&8XS88SXX@XSX@@@@@@@@@@@@                                                                                                                                      
     @@@@@@@@XSSSX@X@@XX@X@XXS8SXSSSXS888S888O&&8S8O8SSSXSXXX@@@@@@@@@@@@@                                                                                                                                    
    @@@@@@@@@XXSXX@XXXSSSXXXXS88SSX8SSOO8S8&O&&&O8O&O88S88SXS88SSSXX@@@@@@@@                                  @                               @@                                                              
    @@@@@@@@XXXXX@XXSSSXXXXXXXS8SXX8SS8OO8O&&&*&O&&&OOO&OOOO&&OO8SSXX@@@ @  @                              @                  @ @             @@@   @@                                                        
    @@@@ @@XSSXXXXSSXXXXXXSXXXX8SXXO88OOOOO&***&***&&&&&&&**&&O888SSXXX@@@@ @@                           @                      @@@ @@@@@   @@  @@@  @@@                                                      
   @ @@ @@XXSSXXXXXX@@XS88O8S8SXXX8OOO&OOO&;*;**;;******;***&&&OOOOO88SX@@@@@                        @ @                          @   @@@@@@@@@@@@@@  @X@@@@                                                  
   @    @@X@@XX@XX@@X@XX88OO8O8XXSO&&O&&&*;;;;;;;;;;;;;;;;**;*&&&OOOO888SX@@ @                     @@                   @            @@@@@@@X@@@@@@@@  @XXX@@@                                                
    @  @@@@@XXXXXXXXXXXX888OOO8SXO&&&&*&;;;;:::::::;:;:;;;;;;**&&&OOO88SSSXX@@@                    @@@ @  @  @  @ @@@@@@@@@@@ @@@   @@@@@@@@XXXXXXX@@@@ @XSX@@                                                
   @   @@@@@@XS88SSXXXXXSOO&&O8S8&&&****:::::::::::::::::::;;;;*****&&OO8SSXX@@@                  @@@ @ @  @  @ @@@@@@@@@@XX@@@@@@@@@@@@@@@@XXXXSSXXXXXX @S8XX@                                               
@ @   @@@@@@@XS888XXXXXXXS8&&OS8O&**;**:::::::---::-::::::::;;;;*;****&OO8SSXX@@@                @      @ @@@ @@ @@@@@@@@@@@X@@@XX@@@@@@X@XXX@@XXSSSSXXXX @SSSX@                                              
      @@@@@@XSS8SXXXXXS8S8SO&O8O&**;;;::::::--:-----::::::::::;;;;;;;**&&O8SXXXX@@             @@@ @  @@ @@  @@@@@@@@@@@@@@@XXXXXXXXXXXXXSSSXXXXXXS8SSXXX@ @XSSX@                                             
@ @  @@@@@@@XSSSXXXXSS8OOOOO&&O&*;;:;;:--:-------------::::::::;:;;;;*;***&OSXXX@@@@         @@@@@ @  @@@ @@@@@@@@@@@XS8SSXXXXXXSSXXSSSSS88888888SS8SSXSXX@ @@XXX@                                            
    @ @ @@@XXSSXXXXXS88OO&&&&*&*;;;:::----------------::::::::::;;:;;;;;**&O8SX@@@@@         @@@@ @ @ @ @@@@ @@@@XXXS8O&&&O88SXSSS88888OSS88O88OO888SXXXXXX@ @@@@@                                            
 @   @@@ @@XXXXXXSSS8OOO&&*&***;:;:::------------------:::::::::::;;;;;;;*&OO8XX@@@@         @@@   @ @@ @@@@@@@XXSOOOO&&&****&O888888OOO8SXXSSSXSSXXXX@@@@@@ @                                                
  @ @ @ @@@XXXXXXS8OO&&&&*;**;;::::-----------------------::::::::;;;;;;;**&O8XX@@@@@@      @ @ @  @  @@ @@@@@@X8O&&&&&&&*;*;;;**&O8888SSSXX@@@@@X@@@@@@@@@@     @                                            
 @@@@@ @@@@XXXSSS8O&&&&**;;;;;;:::------------------------::::::::::;;;;;**&&O8SX@@@@  @    @ @  @  @@@@@@@@@@X8O&*&&*****;;**;;::;*&OO88SXXX@@@@@@@@@@@@@@@@   @                                             
 @@ @@@@@@XXXXS8O8O&&&**;;:;;;::----------------------------:::::::::;;;;;**&O88XX@@@      @ @@@@ @@ @@ @@@@@XSO&**&*;;;;;*;:;;;;::::;**;*&&O8SXXXXXX@@@ @ @    @@                                            
 @  @ @@@XXXXX88OO&&**;;;::;:::------------------------------:::::::::;;;;;*&O8SSX@@@@    @@@@@ @@ @@@@@@@@@XSOO**;*;;;;:;;;:::::;::::-:::::::;&OOOOOO88SSSX@@@@                                              
@  @ @@@@XXS888&&&*;**;;;:::::-------------·-·--·------------::::::::::;;;**&OOSXXX@@@@  @ @ @@@@ @ @@@@@@@XS8O&*;;;;;;:::;:::::::::::----:-:-::::;*&&&&&&&&OO8SX@@@@                                         
    @ @@@XS8O&&&&***;;;;;::::-----------··-···-·····---------::::::::::::;;*&OOSX@@@@@ @@  @@@@@  @@@@@@@@XS8O&*;;;;;:::::::::::--:::::-----:::::-:::;;*&&&&&**&&S@@S8X@                                      
  @@ @@@@XSOO&&***;*;:::::::-----------·············---------::::::::::::;;;*&&O8X@@@@@@@  @@@@@@@@@@@@@@XS8O&*;;;;:;::::::::::------:::::----::--::-:::::*&&&&&&&X@S&&8X                                     
   @ @@@@X8O&&***;;;;;::::::----------················-----------:::::::::;;;*&O8SX@@@@@@ @@@@@@@@@@@@@@@XS8&**;;:::::::::::----------:::::--:--------:::::::;**&O8X@XOOS@                                    
@   @@@@@X8&&***;*;;;;::::::::--------········,·,·······---------:::::::::;;;;*&&O8SX@@@@ @ @@@@@@@@@@@@XS8&**;;;:;;;::::::-------------:::::::::--:--::-::::::::;;&X@XS8X                                    
     @@@XSO&****;;;;;;::::::::------·····,,·,·,,,,,,····----------:::::::::;;;;**&&O8X@@@@@@@@@@@@@@@@@XS8&&**;;:::;::::::-----------------::::::::-:---::::::::::::&XXO&OX                                   
   @ @@@XSO&***;*;;;;;:::::-:------·····,·,,,,,,,,,,·····---------::::::::::;;;;;**&&O8X@@@@@@@@@@@@@XXS8O&**;;:::;:::-:-----------------------::::::::--:::::::::::;&XS&*OX                                  
    @ @@XSO&***;;;;;;:::::::------·······,,···,,,,,,,···---------::::::::::::;;;;;*;*&&OS@@@@@@@@@@@@XXSO&**;;;:::;:::::----------------------::::::::::::::::::::::;;OX8&*8@                                 
  @@ @@@X8O&***;;;;;::::::::--------·······,··,·,,·,·····--------:::--::::::::;;;;;***&&OS@@@@@@@@@@@XSO&&**;;;::::::::-:-----------------:-:::-::::::::::::::::::::::;OSO*&S@@                               
   @ @@@S8O&***;;;;;;::::::::------······,·····,,········-------------:-:::::::;;;;;***&&OX@@@@@@@XXXX8O&&*;;;:::::::::------------------:::---:::::::::::::::::::;:;;:*OS&*OX@                               
     @@@S8O&****;;;;::::::::::------····················-·-----------:-:::::::::;;;;;**&&&OX@@@@@@@XXSO&***;;:::::::--:------------------------::::;;**&***;***;*;;:::;:*8S&&8@@@                             
    @@@XX8O&&**;;;;;::::::::---------·········,··········------------::-:::::::::;;;;;**&&&8X@@@@@@@X8&***;;::::::::-------------------------:::::;*&&&&O&&&&&&&&*;;;;;;;&S8&OX@                              
  @  @@XX8O&&***;;;;;:::::::----------·······-············--------------::::::::::;;;;;**&&OSX@@@@@@XO&***;;::::::::------------------------:::::;&&&&&&**;;;;;;**;;;;;;;;&SO&O@ @           @                
    @@@XXSOO&&*;;;;;:::::::-----------·-········,,········--------------::::::::::;;;;;***&&OX@@@@@XSO&&*;;;:::::::-::-----------------------:::;&O&&**;::--:::::;:;;:;;;;;OSO&S@@                    @       
     @@@XS8O&&*;;;;;:::::::::----------·-······,,,·······-·------------::::::;:::;:;;;;;***&&8X@@@@X8&&**;;:::::::--:-------------------------:*&&&*;::---------:::;;;;;;;;;8S&&X@@           @               
    @@@@XS8O&&**;;;;;:::::::-----------·-·····,,,,··,·····---------------:::::;::;;:;;;;;***&OS@@@@SO&&**;;:::::::---------------------------:*&O&*:------------::::::::::;:;8S&8@ @                          
     @@XXS8OO&&**;;;;::::::::----------·-·······,,·········-------------::::::;;;;;;::;;;;***&OX@@@SO&&**;;:::::::::------------------------:*&O&;---·····----------:::::::::*88&S@@@         @@        @     
     @@XXSS8O&&**;;;:::::::::-::-------·····················-----------::::;;;*&&&&*;;;;;;;;*&&8@@X8O&**;::::::::::------------------------:;&O*:··········-----------::::::::&S8OX@                     @    
      @XXXS8OO&**;;;;:::::::::---------························-------::;;;;**&&OOOO&&*;;;;;**&&X@X8&&**;;:::::::::----------------------::*&O&-········,·····----------:-:::::&S8S@@@         @              
     @@XXXSSOO&***;;;;::::::::----------························----::;*****&OOOO&&&&*;:::;;***&8@X8O&*;;:::::::::--------------------·-::*O8&-·······,·······---------:-::::::;OSS@@@          @@            
      @@XXSS8O&&**;;;;::::::::-----------···············,······----:::;*&*&&&O&&*****;;:::;;;;**OXXO&**;;:::::::------------------------:&88&-·············--------------:-:--:;;OXX@@@         @@@           
      @@XXSS8OO&&**;;;;:::::::::-:------·--············,·,·······--:;*&&&&&&*;;;;;*;;;;::::;;;;*&8XO&*;;:::::::-::-------------------·-:&8O&:····-·······---------------::----:::*8@@@@ @     @ @@@           
      @@XXSS88O&&***;;;:::::::::-:--------······················-::;*&&&&*;;::::;;;;;;:::::;;;;**&SO&**;:::::::-:-----------------··---*O8&;-····-····--·--------------::-----::::*X@@@@    @  @ @@@          
       @@XSSS8O&&&**;;;:;:::::::-:------·--···-··-··-··········--;&&&&&*;::::::;;;;;;;:::::::;;***88&*;;:::::::::---------------···-:::&&&*-·---·-----·--------:::::::::::--:::::::&@@@          @            
        @XSS88OO&&***;;;:::::::::----------·-··-----·········--:*&&OO*:::;;;;;;;;*;;;;::::::::;;**O8**;;:::::::--:--------------···-:::**&;---------·-------:::;;;;;;;;;:;:::::::::*S@@@      @  @@@@    @    
        @XSSS8OO&&****;;::::::::----------------------·-··---:;*OOOO&;;;**&&&&&*&*;;*;:::::::::;**O8&*;;:::::::::---------------····:;:*;;:--------·-·-··:::;;;;**&&&&*;;;:::::::::;OX@@@      @ @@@          
        @@SS888OO&&***;;;:::::::---------------------------:;&OO8OO*;*&&O88SSOOO&****;:--::::::;;*&8&*;;:::::::::---------------··---:;;::-·-------·----::;;**&OOO8OOO*;::::::::::::&X@@@@  @ @   @@@   @     
         @XSS8OOO&&&**;;;::::::::-------------------------:;&88OOO*&OOSSSXXXS888O&&&*;::--:::::;;**8&*;;::::::::----------------···-::;;:-·-----------::;;*O8SSSSXS88&;;:::::::::::;&S@@@     @@@ @@@   @     
         @XSS88OO&&&**;;:;:;::::-:----------------------:;&O8OO&&&O8XXXXXS8OO8SSS8O&*::----::::;;;*O&*;;:::::::::--------------···,-::;;--·----------:;*&OSXXX8&OS8O&*;::--:::::::::*S@@@@  @  @ @ @@@@  @  @ 
          XSS888O&&&***;;:;::::::-:::-----------------:::&O8OO&&&8XS8XS8XSO*:;*OS8O*;:::---:::::;;*O&;;;;::::::::------------·-······:;:-·----------:;*OSXXXXSO&8O&&*:::::--::::::::*8@@@@    @@@ @@@@@       
          @XS88OO&&&***;;;;::::::::::----:---------::::;*&O&&&&O8S&&OX8:SSO*::*OOO&;::-----::::::;*OO**;;::::::::-------------···,···--:-·---:-----:;*8XXX;&XS88O&*;::::::::----::::;OX@@@@ @ @@@  @ @@@ @    
          @XS88OOO&&**;;;;;::::::::-::::::--------::::;**&&**&O8S*:&OSS8XSO*-:&O&&*;:------:::::;;;&O*;;;;:::::::--------------··,·,··-·-·---::---:;*OXXXX*OX88O&;;::---:::::---:--::&X@@@@  @ @@@ @@@ @  @   
           XSS8OOO&&&**;;;;::::::::::::::::::--:-:::;;;*****&&O8O--;&OSXSO&:-*O&&*;::---::-:::::;;;&O**;;;;:::::::---------··············---::::-:;*&O&8SSXS88&*;;:---::::---------::*X@@@@@@ @@@@  @@@@@ @  @
           @XS8OOO&&***;;;;::::::::::::::::::---::::;;******&&OO*--:*&OOOO;-;OO&**;::----::::::::;;*O***;;;::::::---------·-·-···········---:::::;**O::&O8SS&&*;::---::::----------::*S@@@@    @@@@ @@@@@ @   
           @XS88OO&&&***;;;:::::::::::::::-::::::::;;;******&&OO;::-:;***::*&&&&*;:::----:::::::;;;*O&*;;;;:::::::---------·-·-·······-···---::::;&O*-·-*O8O*;::----:::::----------::;S@@@@@ @ @@@@  @@@@@@@  
            @XS8OO&&&***;;;:;;:;;;;;;;:::::::::::::;;;;;**&&&&&&;::-----::*&&**;;;::------:::::::;;*O&**;;;;:::::-------·----·--··········---::::*&O:·-:&O&*;:-----:::::------------:;S@@@@ @ @ @ @@ @@ @  @ @
            @XXS8OOO&**;;;;;;;;;;;;;;;;;:::::::--:::;;;;****&&&*::::--:;*&&***;;;::-------::::::;;;;&&*;;;;::::::-------------··········----::::;*&&;;&O**;::-----:::::-----·-·-·---::8@@@@     @ @@@@  @@    
            @@XSOOO&&&**;**&OOOO&&&**;;;;::::::-:-::::;;******&***&*&&&&&&**;;;;::---------:-::::;:;&&**;;;;:::::-------------·········-------::;*&O&&&*;;::---::::::::-------··--·--:8X@@@@ @@  @@@@ @ @@ @ @
             @XSS8OO&OO&OOO888SS8OO&&***;;;;:::----:::;;;*;;:;&*OOO&&&&*&*:;;;;:::-----------:::::;:*&**;;;;::::-----------------···--·-------:::*&&***;;:::::-:::::::---------------:OX@@@@ @ @ @ @@@ @ @ @@ 
             @@XSS88SSSSSSSS88SSS8OO&&&&**;;:::----::::;;;:--:*&&&&&***;;;;;;;:::-----------:-::::;:*&**;;;;::::-------------------·-·------·--:;*;;;;;;::::::::::::::---------------:OX@@@ @ @  @@@@@@  @@@  
              @XXXXXXXXXSSSSSSSS888OOOOO&&&*;::-----:::;;;:--::;******;;;;;::::-----------:--:::::;:;&&**;;;::::--:-::-------------·-----:::::::::;;;:::::-::::::::::------------·--::&@@@@ @  @@  @@@@ @ @ @@
              @XXXXXXXXS888888S888SSS8OO8OO&*;:-----::::;;;:--::;****;;;;;:;:::-------------:::::::;;&&**;;;::::--::::::::::-::---------:::::::::::;::::::::::::::::-----------------:&X@@@ @ @ @ @@  @@  @@ @
              @@@@@XS8OOOOOO8SXXX@SSSOO&OOOO&;::--·--::::;;;:::;*****;;;;;::::------··-----:::::::::;&&**;;;:::::;;;:;;:::::::::--------:::::;:::::::::::::::::::::-------------·-··-:&X@@@@ @ @  @ @ @@@ @@@ 
              @@@@XSO&&&OOSXXSX@XXXO&;&&&*&OO&;:--·---::::;;;::;*****;;;;;::::-----···-------:::::::;*&***;;:::;*&&&&***;;;::;::::------:::::::::::::::::::::::::::-----------···-··-:&X@@@@ @ @ @ @@ @@ @@@@ 
             @@@@XSOOOOO8X@X88X@&*X8&:-;&*;*OO*;:-----::::;;;;:::;;;**;;;:::------····--------:::::;;*&**;;;;:;&OOOOOO&&*;;**;;;;:::::::::::::::::::::::::::::::::--------···········:&X@@@@@ @ @   @@ @@ @@@ 
              @ @X8OOOSS@@S&&8XXSSXO&-·:OO*;*O&;:----::::::;;;;:::::;;:;:::::::--·····-------::::;;;;;&&**;;;*OSS8OOO&&*;;;*****;;:::::::::::::::::::::-----::----------·············:&@@@@@@@ @ @  @@@@@@@@@@
                @XS88SX@@S&*O88XXX8O;--*O&*;;OO*::---::::::::;::::::::-:::-:-:---······------:::::;:;;&&**;;*OSS8OO&&;:::::;**&&*;;::::::::::::::::--------------------·-···········-:O@@@@@@@@@@  @ @@@@@@@@@
               @@@XSSSX@X8&**OO888O&::&&*;:;*OO&;:----:::::::::;:::::-----------···,,··------::::;;;;;&&&**&8SS8O&;::-------:*&&**;:::::::::::::::--------:----------···············-:8@@@@@@@@@ @   @@@@@@@X@
                @XXXSSX@XS8&*&&&&&*;;&&*::::*OO&;::---:::::::::;::::-----------··,,,,···-----::::;:;;;*&&&&8SX8&*:--------·---*O&*;;::::::::::::-------------------···········,·····-;S@@@@@ @@@@@ @ @@@@@@@X@
                @XXXXXXXX88O&;;;;;*&O&***;;;*OO&*::---::::::::::::::---··-··-·····,,,··------::::;;;;;*O&O8SX8*;:--------·-·--:&O*;;:::::::::::--------------------·········,·,·····-;S@@@@@@@@@@ @@ @@@@@ @@@
                 @XXXXXX@S8O&**;*O8O&&&**;;;*O8O*;:---::::::::::::::---··········,,,,··------::::;;;;;*&O8SSO*:::-:---:-----:;;&O&;;;::::::::::--------·-------·········,··,,·······-*X@@@ @@@@@      @@@@@ @X
                 @XS88SXX@S8O8O8S88OO&&**;;;*OOO*;::--::::::::::::::--····-··········--------::::;;;;;*O888&;:::-:--------:;*&&&OO*;;::::::::::::----·······----·······,·,,,,,,,····-&X@@@@@@X@@@ @@  @@@@@ @X
                  XSOOO8SXXXSSSX888O&&*****;*O8O*;;:--:::::::::::::----·-------·-····-------:::;;;;;;;*OS8&;:::::::-----::;&8O*;OO*;;:::::::;;:;:::--······--·-·-····,·,,,·,,,,,····:O@@@@@@XX@@@      @@@ @@X
                  @X8OOO8XXXXXS8OOO&*******;&OOO&;;:--::::::::::::::---·--------·--·--------:::;;;;;;;*O8O*;;:::::::-:::;*8XX8*&OO&;::::::::;;;;::::----···-------····,·,,,,,,,····-;8@@@@@@SS@@@ @ @   @@@@ X
                @ @X8OO&OSXXSS8OO&&*******;*&OOO&*::---:::::::::::::----------------------::::;;;;;;;;;OSO*;;;:::::::::*8X;*@SO*&OO*::--:::::;::;;::::::--··--------········,,,,···-*X@@@@@XOSX@@ @@   @@@@@ @
                   @SOO&&OSSS8OOO&&*******;*&OOO&*;::--:::::::::;::::----:---:------------::::;;;;;;;;;&SO&*;;;:::::;;*S@@&&S&*;*OO*;:--::::::::;;;;;;;;;:--··--------······,,,,··-:O@@@@@@S&SX@ @@     @@@@@@
                   @X8O&&&O8888O&&*******;**&&OO&*::---::::;::;;;:;:::::::::::::----------:::;;;;;;;;;;&88&**;;::;:;;&XXXX@S**::*OO&;::::::::::;;;:;;:;;;;:-····-------······,·,··-:8@@@@@@OOSS@@ @      @X@ @
                    @SOO&&&OOOO&&&&******;**&OO8&*;::---:::::;;;;;;;;:::::::::::-------:::::;;;;;;;;;;;*OS8&**;;;:;*&XSOSXSO*;::*OO&;:::::::::::;;:::;::::;:-·····--------········-;S@@@@@X&O8S@@  @  @  @@@@@
    @               @X8O&&&&&&&&&&*****;;****&OOO*;::---::::;;;;;;;;;;:::::;::::::::::-:::::;;;;;;;;;;;*&XXO&***;;*&SX&:OSO*;::;&&OO*;::-:::::-::::::;:---::-·-····--------·······-&X@@@@@S&OOS@@ @@@    @@@@@
                     @S8&&&&*********;;;;;***&OOO*;::----::::;;*;;;**;:;:::;;;;:::::::::::;;;;;;;;;;;;;*&S@X&*****&8@8;*8O&*;:;*&&OO*;:--------------:-·--:::-······------·-······:O@@@@XX&*&OS@@@  @    @XX@@
                     @X8O&&****;**;;;;;;*;***&OOO&;::--·--::::;**;;;**;;::::;;;;;;::::;;;;;;;;;;;::;;;;*&S@@8&&&*&OXXO88O&*;;;**&&OO*;:----··---·---·--·---::-······----·--······-*S@@@XX8:*&&S@@@ @@  @ @XX@@
                      @SO&&**;;;;;;;;;;;;;;;**&OO&;::--·---:::;;*;:;;*;::::::;;;;;;;;;;;;;;;;;::;::;;;;*&S@ @8&&&OS@XSSO&*;;;;****&O*;::--··,·---·-···----::---······--·-····-··-:OX@@@XS*:**OS@@@   @    XSX@
                      @S8O&**;;;;;;;;;;;;;;;;*&OO&;::---·--::::;*;:::*;:-::::;;;*********;;;:;:;:::;;;*&OX@@@XOO&OS@X8O&&*;;;*;***&O*:----,,,·-----:;;;;-:::-----·-···--···-··--:&S@@@XXO::**O8@@ @@  @   XSX@
                       X8O&&**;;;;;;;;;;;;;;;;*O8&;;:---·--::::;;;;::;;:--:::::;;;**;;****;;:::;:;;;;;*&OX@@@@SO&OXX8O&&*;;;;;***;&O*:----·.,·---:*O8O*::::-·-·----···--······--;8X@@@XX*-:*&&O@@ @   @  @@SX@
                       @X8O&***;;;;;;;;:;;;:;;;&8&*;::------:::::;;::;;:---:::::;;:;;;;;;;;::::;:::;;**&8X@@@@@8O8SSO&**;;;;**;***&O*::--··,,·---;&&**-·-:--··---------······--:&XX@@XXS:-:*&*O@@@ @@     @XX 
     @                  XSOO&***;;;;;;;:::;;;;;*8&*:::-------::::;;;;;:---::::::::;;;**;;;;::::;:;;;;*&OS@X@@@@X8888O&***;;;****;;&8*;:-·······-:::---·--:-····-·-----·····----;8X@@@XX*·-*&&*8 @@ @@ @  @@X@@
@                       @X8O&***;;;;:;::;::;;:;*8O*:::-:--··-::::;***:-----:::::;;;*&*;;;;:::::;;;;;**&OX@@@@@@@SOOO&&**;;;;;;;;;:;O&;:---····--:---····--·····---·--·····----:&X@@@SXO··:&;**X@@@        XX@@
@     @@             @   XSOO&***;;;::;::::::;;*8O*;::::-·,·--:::*&*;:----:::::::;***;;;;::::::;;;;;*&&8X@@@@@@@X8&&&&**;;;;;;;;;::&O&;:-------::---············--·······-----;8XX@S8S:·-;*;*O@@@@@ @ @  @@SX@
@@   @@@             @   @X8O&&**;;;;;:::::::;;;OO&;:::--·,·--::***;:----::::::;;;**::;:::::::;;;;**&&OS@@@@@@@@@8&&***;;;;;;;;;:::*O&&;:----:-:----·······················--:OXX@X8X&-·:*:;&8@ @@@ @  @ @XSX@
@     @@             @@   @SOO&&**;;;;;:::::::;;O8&*;:::--·---:;*;;::-:::::::::;;*;::::::::::;;;;****&8X@@@@@@@@ XO&***;;;;*;;;;::-:&&&&;;::::::::--················-·····---*SXXX8S8:--;*:&*8@@@@       @@SX@
 @   @@@@           @@    @XSOO&&**;;:;;:;;::;;;&O&*;:::-----:;*;:::::::::::::;;**;::::;::::;;;;****&OS@@@@@@@@@@@8&***;;;;;;;;:::-:&&**&*;;;::;;::-········--·--·····------*SXXXSSS;--:***&*S@@@@@@ @ @ @XSXX
@@   @@@@       @  @ @     @S8O&&***;;;;;;;;;;;;&O&&;;::::::::;*;::::::::::;;;;*&*;:::::;::;;;;****&&OX @@@@@@@@@ S&****;;;;;;;::---;&*;;::;**;;;::-----····--·-···-··---::&SXXXS8X&--:;*;*&O@ @@@   @  @@X8XS
@  @  @XX          @ @@     @SOO&&***;;;;;;;;:;;*88&*;;::::::;**;:::::::::::;;*O*;;::::::;;;;;;****&&8@@@@X@@@@@@@XO&****;;;;;:::----;&;:--;**;::----------------------:;;&8XXXSO8O:-::**:*&8@@@@ @@  @ @@XSXO
@@@@ @@XX         @  @@@     @SO&&&***;;;;;;::;;;&88O*;;;;;;*&*;;;::::::::::;&O&*;::::::;;;;;;****&&OX@@@@@@@@@@ @@8&****;;;;:::---··:**;;;*&&;::-·----------···-----::**&8XXXSO88:---:;;;*OX@@@@@@ @ @@@@XXX&
@@@@@ @XX@        @@@  @@@@   XSOO&*****;;;;;;;;;;*O88O&***&&*;::;::::::::;*&&&**;:::::;;;;;;;****&&S@@@@@@@@@@@@  S&****;;;:;::----·-:;;*****;::-···---::--···----::;*&&8SXXSO88*---:;:-:*8@@@@@@@ @  @X@XX8*
@@@@@ @XX@         @@@@  @@   @XSO&&&***;*;;;;;;;**;*OO8OO&&*;::::::::::;;&&O&&*;;:::::;;;;;;;***&&OX@@@@@@@@@@@@ @XO&&**;;:::::--····-::;;;*;;:--··---:::-·----:::;*&&&8SSX8OO8*----;:::;&X@@@@@@@@ @@@S@XXO*
@@@@@@@XX@           @@        @XSOO&&*****;;;*;***;;;**&**;;;::::;:::;;*&O&&&&**;:::;;;;;;;;;***&O8@@@@@@@@@@@@@  @8O&**;;;::::--····-::;;*;;;;:-·---::-------::;*&&&&O8XX8&OO;:---:;-:;&O@@@@@@  @ @ XS@XS&*
@@@@@@@XX@            @ @ @      XS8OO&&&&********;**;*;;***;;:::::;;;*&OOO&&&&*;;::::;;;;;;;;***O8SX@@@@@XX@@@@@@  XO&&**;;::::---··--::;***;;;:----:::-::-:::;*&&&**&8XS&*&O*::--:;::;*OS@@@@@@@@ @ @SX@X8**
 @ @@@@XXX        @   @          @XS8OO&&&&&&&************;;*;;;:;:;;*&OO&*&&&&;;;::::;;;;;;;;**&O8S@@@X@@@@@@@@@@  @8O&***;;:::----··-::;***;;;:--:::-::::::;;*&&&*&O8XS&;&&*:--::::-:;*OX@@@@@@@ @ @XS@@@8**
     @@XXX@        @ @             XS88OO&&&&&&&&&&&***&**&*;**;;;;*&&O&::*&&&*;;;:::;::;;;;;*&&O88S@@@@@@@X@@X@@@@@ XO&&**;;:::----··--:;***;;;;:-::::;::::;;;&&**O8SSO*;*&*:----::·-;*&O@@@@@@@@@@@@SS@@@8*;
     @@XXX@      @                  XS88OOOOO&OOOOOOO&&&&&&*&*&*&&&&OO&:·;&&&*;;;;:::;;;;;;;;*&&8O8X@@@@@@@XX@X@XX@  @SO&**;;:::-----·--:;;**;;;;::::;;;:;;*&****&O88&*;;*;;----·-:--*&:&X@@@@@@  @ @XS@@@@O;;
     @@XXX@                          @XS8OOOOOOOOOO8O8OOOOOOOOO8O8OOO&*:*&O&***;;:::::;;;;;;**&88O8X@@@X@ @XXXXXXX@@  @8O&*;;;::--------::;**;;;;;::;;;;;;*&&**&OOO&;::;*;:------::;&&:;S@@@@@@@ @@@@XX@@@X&;&
      @XXX@       @  @                @XS8OOO&&&OO&&&OOO88SSSS88OO&&&*&&&O&&**;;:::::::;;;;**&O8O8S@X@@X@@@@X@XXXXX@@  XO&&*;;:::-------::;****;;;;;;;;*&&&&&&&O&*;:::;:::------:;*&*::O@@@@@@@@@  @XS@@@@X*;O
      @XXX@        @                   @XS88O&&&******&OO8SSS8OO&&&*&&&OOO&**;;;:::::;;;;;**&OOOOOS@X@XS@@@@X@@SXXX@@   SO&&**;:::------:;;*****;;;;;;*&&&&&&&&*::::::::--··---:;**;:;O@@@@@@@@@@ @@S@@@X@8:*S
      @X@X@                             @XXSOO&&******&&O8SSS8OO&&&&&&OO&&&**;;:::::::;;;;**&OO&OOS@X@X@@@@@X@@SSXX@@   @8O&&*;;::------::;**;**;;;;*&&&;;;**;;:-::--:-······-:;*:::&8@@@@@@@@@@@@@XX@@@X@O;OS
      @@@@X        @                @    @@XS8O&&&*&&&&&&O8SSS8OOOOOOO&O&&*;;;;::::::;;;;**&OO&&OOX@X@@@@@@@XX@@XXXX@@@@ X8O&*;;:::-----:;;******;*&&&*;;;;;:::::---:--·----:;;;;:;*OS@@@@@@@@@ @XX8X@@XX@&&O&
      @@@@X                    @           @@XS8O&&&&OOOO&OO88SS88OOOO&&&*;;:::::::::;;;;*&OOO&OOOXSS@@@@@OXXX@@@@XX@@@@@ X8O&*;;::::--:::;*******&OO&*;;;:::::::-::------::;::::;;&8@@@@@@@@@ @@XSS@@@X@X&&**
      @@@@X                         @ @      @@XS8O&&&OOOOOOOO8888OO&&&*;;:::::::::::;;;**&8O&OOO8XXX@XXX@&XXX@@@@@X@@@@@ @X8O&*;;:::-::::;;**&&*&OO&**;;:::::-::-------::::--:-::;8@@@@@@@@@@@@@XS@ @SXS*;;*&
      @@@@X                                    @XXS8OOOOOOOO&&O&&&&&**;;;;::::::::::;;***&8O&&OOOS@XX@S8X@X@XX@@@X@@@@@@@  @XOO&*;;:::::::;;;*&&*&OO&&*;::::::--::-------------::*8@@@@@@@@@@@@@X8X@@S8O;::*OO
      @@@@X@     @    @        @        @   @@   @XXS8OOO8OO&&&&***;;;;;;::::::::::;;;;*&OO&&&&8XXS&8X8SX@@@@XX@@@@@@@@@@@  @SOO&**;:::::;;::;*&&O8O&*;::---:-----------------:;&S@@@@@@@@@@@@@@SS@@SO*:::*OO*
      @@@@X                             @  @SSX@  @@XXS8O8OOOO&****;;;;;::;;::::::;;;;*&OO&&&OSX8OSOX@XX@@@@@X@@@@@@@@@@@@   @SOO&*;;::::;;:::;*&O8O&*;:-----::-------------::*&X@@@@@@@@@@@@@@XX@@SO&;:;*O&*;
      @@@@X      @  @          @           @8SS8@    @@XS888O&&&**;;;;;;;;;;;;;;;;;;**&OO&*&8XS&&OXXXXXXX@@X@XX@@@@@@@@@@@@@  @8OO&**;:::;;:::::*OO&&*;;:---:::-------------::&X@X@@@@@@@@X@@@@@@@XO&*::*O&*::
      @@@@X@                               XO8X&X@@@@ @ @XS8OO&&***;;;;;;;;;;;;;;;;**&OO&*&SXS*;*OSXXXSX@@@@XXX@@@@@@@@@@X@@   XOOO&*;:::;;;::::;&&&**;;;:::::-------------:*8X@X@@@@@@@@X@@@@@@@@O&*:-;O&;;::
      @@@@X@         @       @             SO8S&X@XX @SX@ @X8OO&&****;;;;;;;;;;;;;*&&OO&*OXS8&**&SOSXXXX@@@XX@@@@@@@@@ @@X@@ @  S&&O&*;:::;;:::-:*&&***;;;::::------------;OS@@@@@@@@@@X@@@@@@@XX8&;:-;&&;;:::
      @@@@X@        @      @  @ @          XXX8&XXSSX@X88X@ XSOO&&****;;;;;;;;;***&OOO&OS@@88**&8SS@@XX@X@XXXX@@@@@@@@  @@@@@   @8&OO&*;:::;::--:*&&****;;;;:::---------:*8XXX@@@@@@XX@@@@ @ X8XS*;:-:&&;;::::
      @@@@X@       @        @@      @@     X@ S&XXXXSSXXS&8  @S8OO&&************&&OOOOS@@@@8OO&8S8SSXXXXX@XXXXX@  @ @@@ @X@ @    XO&OO&;;;::::-::;*&****;;;;::::-::---:*O8XXXXX@@@@XX@@X@@@@X8SS*:::*&*;;;::::
  @  @@@@@X@              @  @@   @ @@     @@@S8@@X@S88X@8OS@  XSOO&&***&*****&&OO8O8@@@@@@X8XXXS8&OXXSX@@XXXXX@@ @@@@  @@@@ @    XO&OO&**::-:::;********;;;;::::;;;*&&O&OSXX@@@@@X@@@XX@ @XOSS*;:;&&*;;;:::::
      @@@@@@       @ @     @@@@    @@@    @@@XOS@@8X@SO8@S&*OX  @X88O&&&&&&&&OOOOOO8S@@X@@S&SXSO&8SXXX@@@@XXXXX@@@@@@@   @@@      @XO&OO&*;::-::;;**********;::;*&&&&**;&8SX@@@@@@@@SS@@ @SOO8&;;&&&**;;:::---
  @   @@@@X@        @    @@@@@   @@ @@@   @@@@XX@@X@ @SSXXO&&OS   @XSS8OOOOO88OOOO&&&X@@S8&:*&O&SXX8SXXX@@XXX@X@@ @ @    @@@        XOOOO&**;:::;;*;******&&*;*&&&O&&&O8XXX@@@@@@@SOOX  @O&OO&*&&&&*;;;:::----
 @     @@@X         @@ @  @@@@  @@@@@@@   @@@@@@@@@X@  @XSXXXXOO@   @@@@X@XXS88SXS&&OX@@S*;;*&OXXXO&XXOS@@XXX@XX @@  @   @@@         X8OOO&*;;;:;;**;**;*&OO&&&O8SSSSXXX@@@XX@@X8OOOX @XO&8OO&****;;;:::::----
  @  @ @@@X         @@   @@@@@ @@@@@@@@  @ @@@@@@@@XS@@@@@@@@@X8X@ @XSS88X@XSSXX@S8X@@@@@8&OSXS8S8;8@X&S@@XXXXSX @ @ @    @@          @8OOOO&*;;;****;;**&O8888SXSXXXXXX@@@@SO&**&OX XSO&8O&O*;::::::::-::----
 @    @@@@X@        @    @@@@@  @@@@@@@    @@@@@@@@S8S@X@@@@@@@@@@@@@@XO&OOOO&&OS8@@@@@@@@@@XS&OXO*8SSOS@@@XXXX@@@ @ @    @@           @SOOO&&****&***;**&O88O8SXXX@@@@XSSS&;::;**8@@SOO8OOO*::::::---::------
      @@@@X         @@@@@ @@@@ @@@@@@@@   @@@X@@@@@S88@X@@@@@@@@@@@@@ @@@XOOOO8X@@@@@@@@@@XS&&&OX88&8XO8@@XXXX@@@ @ @     @@            @XOOO&&&&&&&&*****&OO&&OO8XXXSOO&*;::::;&X@@X8O&*&8*::----------------
     @ @@@@          @ @@ @@@@@@@@@XX@@  @@@@@@@@@X888X@X@@@@@@@@@@XXXSX@XXXX@X@@@@X@@XX@XS&&&*OSXO;SXOS@@XXSX@@           @              X8OOOO&OOO&******OOOOO88OO&;;**:::::&8@@@S&*;;&8&:---··-·---··------
     @  @@@        @@@@ @@@@@ @ @@@X@@@ @@@@@@@@X@XO888X@@@@@@@@XSXXXS88S888SS*8@@@@@XXX8*&**&O&S8;*XS8@@@XXXX@@  @        @@              @X8OOOOOOO&&&&O&OOOO&&*;;;***;:::*OX@@SO;::;&8O;:-········-··------
  @  @ @@@@         @@@@@@@@@@@@@@@@@@@ @@@@88@@SSXOO888X@@@@@@@X&OO&&**&;*OXXO8@@XXXXXX&&;;&X8O@O**SS@ @@XXX@@@    @      @                @XS8OOO88OO&&&*&&OOO*;;*;::-:*OS@@@XO&;::*&8O*:---··············--
  @   @ @@@         @@@@@@@@@@@@@@@@@@ @SXXSOS@@SO8OO8888S@@@@@XX8O88O&OO;**&&OXXXXXXX@SOX88S8O8X8&&XSX@@@XXXX@@@    @                        @XS8OO8S8O&&**&O888OO&&&&OOX@@X8&&;;:;*&OO&;----··············--
     @ @@@@ @        @@@@@@@@@@ @@@@@  S&O8O*8@X&&8OOOOOO8S@ @X&&8OOS8OSXO&&O8XXXXXXXXXXXX@@O*&8XSS@@SX @@XXXX@@  @        @                    @XS88SS8O&**;*O8SSXXXXXXXS8*;;;:::;&&OOO;:----·········,····--
      @ @@@ @@      @@@@@@@@@@@ @@@@@  8O&O&;SS&OOOO8OOOOOOS@@@8O&*&&O&OX8SX@@@XXXXXXX@X@@@XSSOXXX@  SX@@@@XSX@@  @                               @S88SS8O&******&OO8O&&*:::;;:::*&&&&O&;-----··········,···--