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