aziznal.sh
$>
$>

$>
$>

$> _

I'm Aziz; a web developer with a passion for making things people may possibly one day want to use.

I've been a developer for the last 7 years. I've worked professionally as a Senior developer™ and Team Lead. See my CV for details.

I enjoy reading & making cool components and animations in my spare time.

links

abodenaal at gmail dot com
Github
Medium
LinkedIn
CV

Projects

Finman: personal finance application
SkillsValley: Skills-based job matching
German Docs
VSCode Extension: Dart import sorter (12K+ downloads)
The Middleman: App for connecting arabic speakers looking for handymen, doctor clinics, and more
Tax Calculator

concepts

How query keys work in tanstack query
Infinite scroll & lazy loading with tanstack query

components

Streak Tracker
Tag Input Demo

random fun

Matrix Effect
My Project Graveyard
Inverting a binary tree in 30+ programming languages
Thai Number Generator

archive

Guitar practice website (wip)
Tanstack forms examples
Demo of next-intl
Interactive design principles
Custom Themes with Tailwind
Emoji Picker
When am I going to my military service?
Guitar practice website (wip)
Visual exploration of path finding algorithms using in python
Python library I made containing utilities for web scraping
HTML video player customization, and why you probably shouldn't do it
Samehnaal.com
                                                                                                                *#%%%%%%%%%%%%%                                                       
                                                                                                          *##########%%%%%%%%%%%%%%#                                                  
                                                                                                        ********####%%%%%%%%%%%%%@%%@@@%                                              
                                                                                                     ***********########%%%%%%%@%%%@%@@@@@%#                                          
                                                                                                   **+****************#####%%%%%%%%%%@%@@@@@%@#                                       
                                                                                                 *+**++****************###%%%%%%%%%%%@%@@@%%%%%@%                                     
                                                                                                ++++++*+****************####%%%%%%%%%%%%%@%%%%@%%%%                                   
                                                                                               +++++++++++***************####%%%%%%%%%%%%%%%%%%%%@%@#                                 
                                                                                              *++++++++++++++++***********#####%%%%%%%%%%%%%%%%@@@%@@%                                
                                                                                              *+++===========++++*************###%%%%%%%%%%%@%%%@@@%%%@%                              
                                                                                              *++==========-=====++++***********#%%%%#%%%%%%%%%@@%%%@%%@@#                            
                                                                                              ++=======+=++=====--=++*************###***+*#%%%%%%%%%%%%@%@%                           
                                                                                              *+=======+**=:::++++===+*******####****+=-:-=+*%%%%%%%%%@@%@%%                          
                                                                                              +=========+++*++*****===+********#****=:..:==:=*%%%@@@@@@@@@@@#                         
                                                                                              +===========+++++****+-=+********#***+-   :=+-++*%%%%@@@@@@@@@@#                        
                                                                                              +==============+++****-=+************=:     .:***%%%@@@@@@@@@@@@%                       
                                                                                               ===============+++***==++***********+=..   .=**#%@@@@@@@@@@@@@@@%                      
                                                                                               =================++*+==++************===:.:=*##%%@@@@@@@@@@@@@@@%                      
                                                                                               =============++++++++===+*+***#*********++**#%%%@@@@@@@@@@@@@@@@@                      
                                                                                              +==========++++*******==+++*******########%%%%@@@@@@@@@@@@@@@@@@@@#                     
                                                                                              ========++++++******+==+++*++****###%%%%%%%%%%%%@%%%@@@@@@@@@@@@@@@*                    
                                                                                             *==========+++*******===+**+******###%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@%                    
                                                                                             +=======++++++******+-=+***+*+****###%%%%%%%%%%%@@@%%@@@@@@@@@@@@@@@@#                   
                                                                                             =========++++*****+====+***+++****###%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%                   
                                                                                             ========++********=+==+*****+*****##%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@%*                  
                                                                                             =======++++*****=**+-=**##*********#%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%*                 
                                                                                             +=====++++++++****+-=***#**#******#%%%%%%%%%%%%%%%%@@%@@@@@@@@@@@@@@%%%#                 
                                                                                            *+====++*++++++***=-=******###***+*#%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%#*                
                                                                                            *+===+**+===+++++==+******#**###**#%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%*                
                                                                                            *+===+**===++=====**+*********###*#%%%%%#%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%*                
                                                                                            ++=++**+========+*+++*****#****#%*%%%%%%#%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%#                
                                                                                            ++=++**=====-==++++++****#*****#%#%%%%%@%#@%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%#                
                                                                                            +++++*+==--=======+****#####***##%%%%%%@%%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%#%#               
                                                                                           *+++++===========++++****####**###%%%%%%@%%%%%%%%%%%%%%%@@@@@@@@@@%%%%%%#%%%               
                                                                                          **++++++==========++*******###***##%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%##*              
                                                                                          ***+++++++=======++*********#****###%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%              
                                                                                         ****++++++++=====+++**************####%%%%%%%%%%%%%%%%%%%##%%%%#%%%%%%%%%%%%###              
                                                                                         *++++++++++++====++***************####%%%%%%%%%%%%%%%%%%##########%%%%%%%%%%%##*             
                                                                                        *++++++++++++++==++++**************#####%%%%%%%%%%%%%%%###############%%%%%#%%%%#*            
                                                                                        +++++++++++++++++++++++*************######%%%%%%%%%%%%%%#############%##%%%%%%%#%%            
                                                                                      +=++++++++++++++++++++++++++++*********######%%%%%%%%%%%%%##*############%%%%##%#%%%*           
                                                                                     =====++==++++=++++++++++++++++*************#####%%%%%%%%###%###***##########%%%%#%##%#           
                                                                                   +==========++=+==+++++=++++++++++**********#***#######%##########**##**###**##%%%%%%####*          
                                                                                  =============+=+====+++=+++++++++++*********#*****################******#*****###%%%###*%#          
                                                                                 =======-=================+++++++++++************************#*************###**####%%%%*###*         
                        +****                                                   ======-=====================+++++++++*****************************************##*####%%%##**#         
                         *++******                                            +======--=---===================+++++++++****+*+********++*********************############*****        
                             +**##***                                        ==-====-----==-------==============+++++++++++++++++*++++++++*******************#############****        
                               +**####**                                    ===--==------=--------==================+++++++=====+++++++++++********************######*#####****       
                                 ++***##***                                =====--=-----==--------==================+++===============++++*********#####*#*******#####***##*#**       
                                    ++*####**                             -=====-=-=---==--------===================++==============+++++*********######*#*******##**#****#****       
                                      ++***##***                         ==-==-=-==---==--------=====================++===============+++*********######**********##*******#****      
                                        ++***##***                      +======-===------------======================+++==============++++*******########***********************      
                                          +***###***                   ==+-=========--=--------======================+++==============+++++*******#######***********************      
                                     *     ++****##***                ===+:-==----------=-------==========-===========*=+===========++++++++******########*********************#      
            *##****                  +***    =+****##**              ==========-::--==-------------======--=-=========+=+============++++++++******##***************************      
              *####****               +****   ++*****#***           +=+--==-============---------===========-==========+=+============+++++++**********#************************      
                 *####*****             *****  ++++***##**        *+==+=:==:::==--=====--------===================================+===+++++++**********##***********************      
                     *********           *+**** *+++***####*      ===-+=-=====::::----===------=--======-============================++++++++***********##*******************+**      
                        ******###**         +******++****####*  *-+==:===-===============------------==-=============================++++++++**********#********************++**      
                          **************      ++***++++***#####*+-===--==-==:==::==--===---------------==============================+++++++++****************************++++*       
                             *******######*    +==+*+********#****=====+-===--==:::==------------------==============================+++++++++***************************++++**       
                                ***********************++********+=--==+=+:=+::-=::======---------------=============================+==+++++++++**********************+=++=+*        
                                   *******************=+++******+++-=======:==-:==:-====--------------=================================+++++++++++*********++*********++====*         
                                        ************+=+++++****+===+==++===::==-:======---------------===-==-==========================+==+++++++++*******+++*******++++==++*         
                                                   ++=+++*****+-====++++=:==:-======++===-------------===-==================================+==++++*******++++******+++==++*          
                                                     =+++*****=:=-+=+++*+:=+===++===++====-------------=--=-==================================++++*********+++*******+==++*           
                                                     +++*****+=:====+++*+::=+=====+++++=====-----------------=================================+++**********++++******+==+*            
                                                     ++*******+:=-==+++*++:-====+++++++======-----------=--=--=====-=========================++++**********++++*****===++             
                                                     +*******++=++==++++*++===+++++++++++====-----------==---======-=========================++++++++******+++++***===++              
                                                     +*******++**+===+++++++++++++++++++++=====------------====-=---===========================+++++++++*+++++++**=====               
                                                    =+*******+++*+++=+++++++++++++++++++++=====---------=--=====-=================================++++++++++++++++====+               
                                                 ====+******++++*++++++++++++++++++++++++++====-=-------=---===----=================================+=+====++++++====+                
                                                =====+****+++++++++++++++++++++++++++++++++=+=--=-==-----------=----=======================================+++++===++                 
                                                =====+****++++++++++++++++++++++++++++++++++=-------=----------=-==-===--===================================++*==++                   
                                                     ++****+++++++++++++++++++++++++++++++++--------=-===-=------==-=======================================++*                        
                                                     =++*++++++++++++++*+++++++++++++++=+++=-::-------======--------==-==-================================++**                        
                                                      =++++++++++==++++++++++++++++++==+++------------=====------------=-----============================++**                         
                                                       ==++++++++==++*++++++++++++======+--------============--==------------==-=======================++++++                         
                                                         ===+++++==++++++++++++=======+=-=--------=-=====-=========---=====-==-=======================++++==+===*+                    
                                                             +=++==+++++++++===============-=-----===================--==----==================++=======+==++=--==+*                  
                                                                ==-++++++++==================-----==========================================+++===:==-==--:=++:---==+*                
                                                                    ++++======------=========-----=========================================+===         ::-===*-:-:-=++*              
                                                                     ========----------======------=====================================                  --==++-:---==++             
                                                                       =======-------------:---:::--==============================                        :---=++  ----==*            
                                                                        ======----:::::::--::--:-::--======================                                -:=+**   ---===**          
                                                                         =====---::::::::::::::::::::-------:---==-                                        -=-=+     =--===+          
                                                                         =====--::::::::::::::::::::::::::::                                               -===+      =---**          
                                                                         =+===-::::::::::::::::::::::::                                                    ====       ----=+          
                                                                          ====--::::::::::::::::::                                                         ==        ==-====          
                                                                          =====-----=-::::::::                                                            =           =====+          
                                                                          =========:-=+++=-                                                                              ==+          
                                                                          ========+-:-=====                                                                             ==+           
                                                                          ==-======+=:--====                                                                            =+*           
                                                                            :=====+*=+=--==+=                                                                          =+             
                                                                               =====++++--=++                                                                                         
                                                                                 =====+++===+*                                                                                        
                                                                                   ==++*   +++                                                                                        
                                                                                    =++**   ++                                                                                        
                                                                                     =++**                                                                                            
                                                                                      *+**                                                                                            
                                                                                       *+*                                                                                            
                                                                                        +**                                                                                           
                                                                                         **                                                                                           
  ,o.                                                 
  ]8[                do                               
  d8'      ,oo.      d8                               
  d,ooo88888PPP      ''      ,_              ____     
  d`8888''''         do      d8  __,o.    ,o888888.   
  d8'"88b.           88      d8,d888PP   ,88P'  `Y8b  
  8P   `Y88.         8b      dd8P''     ,88'      8b  
  8b     `Y8b.       8b      d8F        d8'      ,8b  
 ,8b       `Y8b     ,8b     ,8P         d8.    ,o88P  
 `8'         ''     ]8[     ]`'         `88oooo88P'   
                    '"'      '           `""""""'     
                                     **                                                                     
                                    **                                                                      
                                   **        +                                                              
                                  *         *                                                               
                                **        **                                                                
                             ***+        *+                                                                 
                          ****+       **                                                                    
                        *#*++=     **           *                                                           
                     ***#++++*******          *                                                             
                   +**#*++=+++*+            *                                                               
                ***###***+++**+*++****+++++                                                                 
              *##*##*##*+********++++++++                                                                   
             *###########********+===++=++                                                                  
            **####%%######*##******++=+                                                                     
           *######%%###%#*##*******++*++*                                                                   
          *#####%%#%%#######***********++++                                                                 
         *#####%#%%%%%%#####********+**++++==                                                               
        *######%##%%%#%%####***+*#*+****+++===                                                              
       *###########%%%%%#%#***+*=++++++++======                                                             
       **##**#*****#######**#++:::=**++=========                                                            
        #********+==*##****=+=::::=++=========++=                                                           
         *****#*********++=+==+====*============+=                                                          
         ************#**+**+*=*+*+*++=+===========+                                                         
        *******+********#***#**+****++=============                                                         
       *******++**####*****##*******+==========++==+                                                        
      **+*****++*###%##*##*#*#***+*++==========+++==*                                                       
      #***+***++##%%%%%%%##***#*****++==+===++++*====                                                       
      **+*#*****##########**####********+********+====-=                                                    
     #****#*****#%%########%###*###****************==--=-==+                                                
      ************##%%%%%#########*#******#*******+=-=====-====+                                            
      %******#**####%%%%%%##########*************+++====----------=                                         
      *******#*###%%%%%%#####%%%####***********++=*++==-=-:-----------                                      
      ***#***###%%#%#######%#%%%##*#***********+++++*===--:::-:::--::--:                                    
       ******##%%%%%###%##%########***####******++*+++==--::::-:::-:-:::--=                                 
       ****#*#%%%%%%%%%%#%#%########%#####***********+==--:::--::::::::::---                                
      #**####%%%%%%%%%%%%%%%%%%%%%%%#####************+===:-:::::::::::::::--=                               
      ****####%%%%%%%%%%%%%%%%%%%%%%%%####***********+====--:-::--::-:::::--:                               
      ***######%%%%%%%%%%%%%%%%%%%%%%%###************====----::::::-:::::::::-                              
     =****#####%%%%%%%%%%%%%%%%%%%%%%#####*#********+=====----:-::::-:::::::::                              
    =++****####%%%%%%%%%%%%%%%%%%%%%######*##******+=+====----::-::::::::--:::-                             
   *+=+****###%%%%%%%%%%%%%%%%%%%%%#####*#*********+++====--====---===--:-=-:::                             
  *+==+*****###%%%%%%%%%%%%%%%%%%%#######***********++====----=-=+*+++--::-=:::-                            
 **++==+*****####%%%%%%%%%%%%%%%%%%%######***********++=+==----=+*++++===--:::-:                            
***+++=++*****#######%#%%%%%%%%%%%#%%######*********+++++=+---=+++==*++++==-:-:=:                           
****++++*******#######%%%%%%%%%%%%%%%######*********++++=+*****+==::-++++===:-:-=:                          
******************########%%%%%%%%%######***********+==+=****++==-:::-++++====:-=::                         
*****************#######%############**************++====****=--:::::-====+===---::                         
******************#######%%%%%%%##************+***++========***====+::::========-:::                        
 *******************######%%%%#####**************+=+========****++++=============--::-=--====+              
 ***+++***************#####%%%%####******+********+==========+=****+====++========--:=--=-=-==============* 
  **+****************###*###########*************++=====++++++**++++==++===-=======--========-=-======---   
   %***+*****************########********##******+++++++=+===+**++++================----::-                 
     *+***************####%#%##*#*******###%#*****++*++++++====*+++=================                        
       **************#############*****##%%%##*********+++=====-++==================                        
        ***********###############**#*#*#%%####********+++======---=================                        
         ***********#######%####*##**##%%%#####*******+++=====--=:--+===============                        
          **********#################%##%%%%###******+++=====---:-++============-==-                        
              *******###################%####********+++=====----::++==========-===                         
                *******#################%####********+++====--=--::::+=-=======-=--=                        
                 *********#####*###########*********++++=====-=--:-::::==--==-----======                    
                   ********#*#*#######*#####*******+++++=====-----:::::::---=-=--:-======                   
                    ********************####***********+++======----::::::-----:::::::-=====                
                      ****************#*#**#*********+**++=====-----:::::------    .:::.:::====-            
                       *******************************+++++=====----:-:::--:--          ....:..:===         
                         *****************************++++=+=====---------:---                              
                           *****************************++======---------=-:--                              
                             **************************++++=========---------                               
                              ************++*********++*+++++=========-----                                 
                                +*****+++=+===+++++**+*******+++======--                                    
                                 +**=#*=#*== ==++++*++++=+**+++======-                                      
                                      **#**               ***+==                                            
                                      ****=              **=++=                                             
                             =+       *#**               ***==                                              
                             #++    *****+               ***=                                               
                              +++==******++           ** **++           =                                   
                               +*********==+=        ********===-::--====                                   
                                  **==***=             +****+=========-=                                    
                                  ====*+==             *++*+=---===-=                                       
                                       *==          *+==-=++==                                              
                                                    +=-=  +++==                                             
                                                            +==                                             
                                                            +=                                              
                                                            =+                                              
         8b                                            
        ]8P                                 do         
        d8[                                 88         
        d8'                                ,8P         
        d8     ,o8888o.,8b    ,o888888     d,oooooooo  
  do.   d8    d88P''`88]8[    88P'''''     8Y88P""""'  
  8P'   d8    d8'    ]8]8[    8b          ]8'Y88.      
  88.. ,88    d8L_ _,88]8b.   Y8.         d8[ '88L     
  'Y88d88P    'Y88888P''YP'   `888ooop    88   'Y8[    
    ``"''        '''           ''""""'    `'     '     
                                                                      %%%%%@@%%%%%%%%%#                  
                                                                  #%%%%%@@@%@@@@@@@%@%%%%                
                                                               #%%%%@@@@@@@@@@@@@%@%@@@%%%#              
                                                            %%%%%%%@@@@@@@@@@@%@@%%%%@@@%%%%#            
                                                          %%%%%%%%%%%@%%%%@@%@%%%%%%%%%%%%%%#            
                                                       %%%%%%%%%%%%%%%@@@@%@%%%%%%%%%%%%%%%%#            
                                                     %%%%%%%%%%%%%#%%%%%%%%@%%%%%%%%%%%%%%%#*            
                                                   %%%%%%%%%%%%%*#%%%%%%%%%%%%%###*##########            
                                                 #%%%%%%%%%%%%**+-+**#####%#%#*==********==**            
                                                #%%%%%%%%%%%%%#*=...=***##***+*#--*#===:-=+**            
                                               %%%%%%%%%%%%%%%%%*-..=****##*+*******##*+===+             
                                              %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%**++++*#**=-+++              
                                             #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#*++****+-=**               
                                            #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#****+=*##               
                                           #%%%@%%%%%%%%%%%%%%%%%%%%%%@%%@%%%%%%#*+**==**##              
                                          #%%%%%%%@@@%%%%%%%%%%@@@@%@@@@%%%%%%%%%%#*+++*##*              
                                          %%%%@@@%%@@@@@@@@@@@@@@@%@%%@%@@@%%%%%%%%#*+**##*              
                                        #%%%%%@@@@%@@@%@@@@@@@@@%@@@@%@@@@@%@%@%%%%#******##             
                                       %%%%%%%%%@@@@@@@@%@@@@@%%@@@@@@@@%@@@%%@%@%%%%######%#            
                                    #%%%%%%%%%%%%%@%@%@@@@@@@@@@@@@@@@@@@@%%@%%%%%%%##%##%#%%#           
                                   #%%%%%@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%#%#%#*          
                                 %%%%%%%%%%%%%@%@@@@@%%@@%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%#          
                                 %%%%%%@@@@%%%%%%@@@@@@@%@@@@@@@@@@%@%@@@@%@@%%%%%%%%%%%%%%%%%#*         
                                #%%@@@@@@@%%%%%@%@@@@@@@@@%@%@@@@@@@%%%%%%@%@%%%%%%%%%%%%%%%%#%#*        
                               %%%%@@@@@@@%%%%%%%%%@@@@@@@@@@@@%@@@@%%%%%%%%%%%%%%####%%%%%%%#**#*       
                             #%%%%%@@@@@@@@%%%%%%%%%%@@@@@@%@@@%@%@%%%%%%%%%%%%%%%%%%%%%%%%%%##****      
                            *%%%%%%%@@@@@@%%%%%%%%%%%%%@%@%@%@%@%@%%%@%%%%%%%%%%%%%%%%%%%%%%####***      
                            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@@@%@%@%%%%%%%%%%%%%%%%%%%%%%%#%####*      
                           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%@%@%%%%%%%%%%%%%%%%%%%%%%###**      
                          %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%##*#**      
                         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%##****      
                        #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%###*****      
                        #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%*#*****      
                       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%#%%###*****       
                      %%%%%%%%%%%%%%#%#######%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%###****       
                     %%%%%%%%%%%%%%%####################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#########****       
                    %%%%%%%%%%%%%#%%%#####***##############%%%%%%%%%%%%%%%%%%%%%%%%%%%#######****+       
                   #%%##%%%%%%%%%%###########**###*#*#*###*###%%%%%%%%%%%%%%%%%%%%%%%%######******       
                  #%###%%%%%%#########%######*****#*#*#*######%%%%%%%%%%%%%%%%%%%%%%####*###****+        
                  #####%%%#%###################*#*##########%##%%%%%%%%%%%%%%%%%%%%%#######******        
                 ###%####%%*****############***##################%%%%%#%#%%%%%%%#%#####*##*****+         
                #####%####*******#*#**###*********##########*#####################***********+=          
               ***##*#*+#***************#************##*#*****#**##*###*#######*************==           
               ***#*#*+++++**********#*************************#*************************++==            
              *****+*+===++**#########****************************************++++++++*++====            
              *******+++++*****####*******+*+***************+++=+++++++***+++====++++++===-              
              *****#**+*************+++++++*+++*****++++++++++++++===++++++++====+++====--               
             *******+****************++======+++++**++++==========+++++++++======+=====-=                
          *##*#**++*+****+++++***+=+=====---=====++++++===+++=======+===============---:                 
       ###%%%#*++**+***+=============:=:::-=-:============================--=====----:                   
    *##%%##***+*****+====---=-----:::::..:****===-===-=============------:--------:-::                   
   **#******+*******+==                    *****++=::-=====--=-----:-::::-:-:::::::::                    
                                            ***: -+::::-------::-:::::::::::::                           
                                           :***   =:....:::::::::.                                       
                                           =+*+                                                          
                                            =*                                                           
                                           ==                                                            
                                        :=-                                                              
              ,.         _.         _.                               
   d8888b.    d8         8b         8b                         op    
   88''`"'    d8.        YP         8b                         88    
   Y8b.       d8[        _         ,8b               ,.        ''    
    Y88b.     d8,oo.    ]8[   ,dd88d8[    _o8888.    d8_ooo.   d8    
     '`Y8b   ,888P88.   ]8[   88P'"Y8'  ,d88P'`Y8.   dd88PPP   88    
      ,,8b   d8P' J8[   `8b   88.  88   ]8P    d8[   d8P       8b    
   d8888P'   88   88b   `8b   Y888o8b   `888oo88P'   d8        8b    
   '''''     `'   `"'    `'     '"""'    ''""""'     `'        `'    
                                   .                                                                                    
                                                                                                             '    '     
                                                                                +                                       
  '                                                                                                                     
                                                                                                                        
                              '   .                                                                                     
                      .                                                                                                 
                                                                        .                                               
                                          .                                                              +              
                                                 '                              '                                       
                                      o                                                                                 
                                                            .          +                                                
                              |    .                                                                                    
                             -+-                      .          .                                                      
                              |    .-.                                          '                                  +    
                                    ) )                  '                                                              
    +                              '-´                                                  +                              .
o                                                                                                                       
   +                                                                                                              '     
                         *                                                                                              
        o                                                                                                               
                      *                                                                                                 
                                                                                           o                       +    
                         +                                                                                              
                                                                                                                        
                         .                                       o    .                                   *             
                                                                                     '  .               .               
                                                                  .                                            '        
                                                                          o     '                                       
                                         +                                                                              
                                                                                                                        
                                  |                                   o                                    .            
                                - o -                                                                               '   
                    '             |                                                                                     
 '                                                                                                                      
                                                                                   '                                    
                                                                     .                  .                               
                                                                                                                        
                                                                                     .                                  
                                 .                           .                                                          
 |             '                              /                                                                         
-+-          *   \                           /                               '               '           /              
 |                \              *          *                                                           / .             
                   *                           +          .                                            *              + 
                      *                                                      +             '       +                    
                                                                                                   +                    
                              '                                                                                         
                                                                                                                        
                      .                *                                              '                  '              
     +    .       .              +                                                                                      
             d8                                   
  ,ooo._.    d8            _                      
 d8PYP88b    d8           ]8[                     
 88    `'    d8           '"'                     
 Y8b.        d8            _    _                 
  `Y8b.      d8 ,___      ]8[  ]8[ ___.   ooooo_. 
    `Y8b.    d8d88888L    ]8[  ]8d8888P   8P""'8b 
      Y8b    d88P' `Y8.   ]8[  ]88P'      8b   88.
  ,.__,d8    d88'   d8[   ]8[  ]`'       ,8b___d8[
  Y8888P'    d8'    d8    ]8[  ]8[       `888888P'
             `'     `'     '    '                 

2019 - 2024



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


    ,od88888oo._          ,o88888888oo.  
  d88P"''''`"P888o.     ,o88"'''''`"Y88. 
 d8P'          ``Y8o  ,d8P'          '88.
 d8'              Y8bd8P'             `8b
 d8                ,88P                Y8
 d8                `P'                 d8
 d8                                    d8
 Y8.                                  d8P
 `8b                                 ,88 
  Y8.                               ,8P' 
  `8b                              ,88'  
   Y8b.                           d8P'   
    `8b                         ,d8P'    
     Y88.                      ,88P      
      `88b.                  ,d8P'       
       'Y88L               _o88'         
         'Y88o_          _o88''          
           `Y88bo_.   ,,o88P             
              `Y888o,o88P''              
                 `YP8PP'                 
                     *****#*#####%#=                                                                                                                                
                  ********###%%%%%%%%%%%%%=                                                                                                                         
                ********#*##%%%%%%%%%%%%%%%%#*                                                                                                                      
              +*********####%%%%%%%%%%%%%%%%%%%*                                                                                                                    
              ********#########%%%%%%%%%%%%%%%%#*                                                                                                                   
             =++++*****############%%%%%%%%%%%%%#=                                                                                                                  
            +*#+*++*******+++**###%#%%%%%%%%%%%%#%*                                                                                                                 
            +****#****+++=:::=+**######%%%%%%%%%%%%+                                                                                                                
           =*****##+++++=:...:++**######%#%%%%%%%%%*                                                                                                                
          =********+*++++=--=+****#*#####%#%%%%%%%%%+                                                                                                               
          *******++******************###%#%%%%%%%%%%%*                                                                                                              
          *+*************************####%#%%%%%%%%%%%%+                                                                                                            
         -***************************###%%%%%%%%%%%%%%%%%%                                                                                                          
          **+==+*******************#####%%%%%%%%%%%%%%%%%%%%%%%*                                                                                                    
          =*+==+******************#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*                                                                                               
           -=++********##*******#####%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-                                                                                          
             +++**********#*#*########%##%#%%%%%%%%%%%%%%%%%%#%%%%%%%%%#%%%%%%*                                                                                     
             =++***********##########%#%%%#%#%%%%%%%%%%%%%##%%###%%%%%#%%%%%%%%#********                                                                            
              +++++**********#########%#####%#%%%%%%%%%%%%%##%%%%%%%%#%%###%#%%%%#***####***+                                                                       
               -=+++**********##############%%%%%%%%%%%#%#######%%%%%#*#%%%%#%##***###*****##**######%#*+=:                                                         
                -=++***********#############%%%%%%%%%%###########*######%%%%%%%%%%%%%#%#**#******###################*                               ..:-            
                  =+++**********#############%%#%#%#%%#%###**#****%%%%%%%%%##%%###%%#%##**#******+#%%%%###%%%%%#*=-  -===   =++==+************+++++****+-           
                  =++*+*********########################*****#**#*##%%%%%##%##%%##*#%##***#****#***%%%%%%%#########%%%%%#######**********######+===-                
                   +++************##################*#*##*##****###**%%#####*%%%#***###%%#*******###%%%%%%%%%%%%%%######*******###%%#+=                             
                   ==+*************#*#############************##*%#######%%##%%%%%**%##***%######*#%%%%%%%%%%%%%%%##%#%%%%##**+==++=                                
                    :++***************###########*#***##%##*#***#%%%#*##%%%%%%%%%%%%%%%*****####%%%%%%%%%%%%%%%%%#**+++++**==::=                                    
                     -+++***************#*#######*#***#*#%###**######*#%%%%%%%%%%%%%%%###****#%%%%%%%%%%%%%%%%%%%%#*==                                              
                      -=++++****************###*#********%#****###%##%%%%%%#%%%%#%##%%%%%%#%%%%%%%%%%%%%%%%%%%#++=                                                  
                       -==+++*******************#*******#############%%%%%##%%%####%%%%%%%%%%%%%%%%%%%%#%*=                                                         
                         ==+++************************#%%%%#######**#############%%%%%%%%%%%%%%%#%%%%*                                                              
                          ====+*********************##%%%%%%%###***####%%%%########%#%%%%%#%####*                                                                   
                            -==++*++****************###%%%%%%%###***##***#####***#%%%%#%%######*                                                                    
                              -===++******************####%#####%%%%**#********#%#%%%#######*=                                                                      
                                =====+*******************#######%##*#%#**+********#***+=                                                                            
                                   =====+**++**************#####*****####**#####****+=                                                                              
                                      ======++*+++************##****#####%######**==                                                                                
                                         --==========+++++************##########*+-                                                                                 
                                          -====-==============+++***********#*#**=                                                                                  
                                         =======-:..::::-====-===+**************+-                                                                                  
                                      =++=+++:  =---=--:        :==+=++*********=                                                                                   
                                  -++==-=+++      -=:  -              -**##%##*=                                                                                    
                               ==+*+= =+++:                            =**#%%*=                                                                                     
                              +***    +==                               ++*##+                                                                                      
                              +         -                              +****=                                                                                       
                                                                      =***:                                                                                         
                                                                 --=:=*##      -*=                                                                                  
                                                                 :===***-   -**#                                                                                    
                                                                  -=*###****##                                                                                      
                                                                ==*##***##*+                                                                                        
                                                           =**+=**#*=                                                                                               
                                                       ==--:-**#*#+                                                                                                 
                                                     :=+****#*+                                                                                                     
                                                  =    :--                                                                                                          
    ,.                                                     
   ,88                           d8                        
   d8'                           8b                        
  ,8P                            8b                        
  ]8[                            8b                        
  ]8[                            8b          ,o.           
  ]8[           ,8b     do       8b          d8'    ,o.    
  ]8[           d8'    ]8P       88          d8     ]8[    
  d8'           d8     J8b       Y8.         d8     d8b    
  d8.    ,_     d8.  _o88b       `88_ _,.    d8.  ,d888    
  `88booo88'    `888888PY88       Y88888P    `88bo88PY8.   
   '`"""""'       '""'   ''        '''''      '`"""' '"'                                                              
                                                                                         =+++===+++***                                                                                
                                                                                       =++=+++=======+##                                                                              
                                                                                      ==++++======+++++***                                                                            
                                                                                     ====++=++=++=====++***                                                                           
                                                                                     =====++======+++==+++**                                                                          
                                                                                     -===========+===++==++*#                                                                         
                                                                                     =====+====++=========++**                                                                        
                                                                                     =====+=====+===========+**                                                                       
                                                                                     ===============++=======+**                                                                      
                                                                                      =======+===============++*+                                                                     
                                                                                      ======================+++*%                                                                     
                                                                                      +==========+==============*%+                                                                   
                                                                                       =========++========+===+++**%                                                                  
                                                                                       =======++====+=============+**%                                                                
                                                                                       +=====+=====++==========++++++*#%***                                                           
                                                                                        ============================++++#***                                                          
                                                                                         ============================++==+%*                                                          
       ===========+++                                                                    ===========================+++++++**                                                         
    ===================+=                                                                =========================+===+++*****                                                        
  ==--=======------=-========                                                             ===============================+++*##                                                       
 ==--======-------==--=----======================                                         ===================================+*%#                                                     
 -::----===-------------------=--=====================+++                                  =====================================+%*                                                   
 =::----------=------::-------------------------======++++++++++++++++++*+                 ======================----=============+*                                                  
   ---:-----------:::-::-::::-:---------------==============+=+=======------=========================================================*+                                               
   =-::--::--------------:--:::---::---------------==================================================================------============*                                              
   =---:::----::--------::::--------------------------=====================================================================--=--===---==+*                                            
    ::--::::::---:::::::::::-::::-----:::--------------====--=-------====================    =========================----==============+==                                           
     ----::---:--::::::::::::::::::::::-:::------------------------=---================+++++ =======================-====---==--============+                                         
      ==---:-:-::::::::::::::::::::-::------------------------------============-------==========================---=--:-===============++=++*                                        
         --:--::--:-:-::::::::::::----:-----:-----::-------------==-=======-::::--:-----------=====================-::====--======-========++***                                      
           ----:---:---:::::::--:---:-::--:----------:---:------=-===-:::::::-:----------=============================--::-==-:--:-=-======+=+**#@                                    
             -----::::::::-:-:::::-:::::::--::::-::--:::---------::::::::----===============    ====================--::::--:===-==-==-====++++***#%                                  
               -::::-::-::::-:::::::::--:::::::::-:::---------::::::::---=========               ==================------=-::----============+=+++**#%                                
                 --::::::::::::::::::::::::-------:----::::::::::::------===+                     =================-=---:::---::---=---=========++****#%%@                            
                    --:::::::::::::::::::-::::::--::::::::::::::-----===                            =============-===---=-=-::--=-:---==-======+===+*****#%%                          
                      =-::::::::::::::-----:-:--:::::::::::::----====                                ==================--:--==----=--===============+*******%%                        
                          --:::::::::::::::::::::::::::::-----===                                       ==================--------=--=======-=====++++++********##%%                  
                              ::::::::::::::::::::::---===                                                ==================-===--===--===========+===++++**********#**#@             
                                    ::::::::::::::====                                                      =====================================+==+++++**+***************#%@        
                                             ::---=                                                           ====================================+++++**********************#@       
                                        :::::::--=                                                               =============================+=++++++**********************          
                          ::::-::::::::::::::-                                                                    ==========================++++++++***********************##%%       
                           :::::::::::::::::::                                                                     ======================+++++++++**********#############%%%%%%#######
                                                                                                                  ==-==   +============+++++++**********#%%                  @%%%%##  
                                                                                                               =======       +========+++++*******#%%%                                
                                                                                                            =----=   +          =====+******#%%%%                                     
                                                                                                         ==-----  =+=+++        ===+++                                                
                                                                                              =+*++*+===++==--=======         *===+++                                                 
                                                                                               ===---:=-=-::               +======*                                                   
                                                                                                                         =====+         %*%                                           
                                                                                                                =     +======= **++++++*                                              
                                                                                                             --==--=====-- =-======                                                   
                                                                                                          =--==--------                                                               
   _                                                        
  ]8[                                                       
  `8b                 __                                    
   88        ___      88                              ,.    
   d8_oood888888'     ''                              Y8'   
   d,888P"''''        8b     ,o.                            
   d8`Y88o.          ]8P     `8b      ,.      ,op     88    
   88  '`88o_        ]8[      Y8[   ,888.   ,o88P     8b    
   8b    'Y888L_     ]8[      '88.,88P"8b  d88P'      8b    
   8b       'Y88b    ]8[       `8888'  Y8bd8P'       ,8b    
   8P         '`'    ]8[        `8P'    888P'        ]8[    
                     '"'                '"'           '     
   8b                                           
  ]8P                                           
  ]8[                                           
  ]8[                                           
  ]8[                                           
  ]8[                                           
  ]8[                                           
  ]8[                 ,_.             ,__       
  ]8[              ,o88888.         ,d8888      
  ]8[             ,888[]88[        o8P'`88L     
  ]8[             d88888P'        d8P   `Y8b    
  ]8[             d8.            ,8P      Y8    
  `8bo___.  ,_.   `88booooo.     ]8L.    ,88    
   `P888888888P    '`YPPPPP'      Y8888888P'    
        `'''''                     '''''''      
 wWWWw 
 (___) 
   Y   
 \ |/  
 \\|///
 vVVVv 
 (___) 
   Y   
  \|/  
 \ | / 
\\\|///
 wWWWw
 (___)
   Y  
  \|/ 
   |/ 
  \|  
 \\|//
   _    
 _(_)_  
(_)@(_) 
  (_)\  
     |  
    \|/ 
  \\\|//
   _   
 _(_)_ 
(_)@(_)
 /(_)  
\|/    
\|///  
  @@@@ 
 @@()@@
  @@@@ 
   /   
\ |    
\\|//  
  @@@@ 
 @@()@@
  @@@@ 
  \|   
   |/  
\\\|// 
  @@@@ 
 @@()@@
  @@@@ 
  \|   
   |/  
\\\|// 
  /-_-\
 /  /  \
/  /    \
\  \    /
 \__\__/
    \\
    -\\    ____
      \\  /   /
____   \\/___/
\   \ -//
 \___\//-
    -//
     \\
     //
    //-
  -//
  //
  \\
   \\
  /-_-\
 /  /  \
/  /    \
\  \    /
 \__\__/
    \\
    -\\    ____
      \\  /   /
____   \\/___/
\   \ -//
 \___\//-
    -//
     \\
     //
    //-
  -//
  //
  \\
   \\
  @@@@ 
 @@()@@
  @@@@ 
  \|   
   |/  
\\\|// 
  @@@@ 
 @@()@@
  @@@@ 
  \|   
   |/  
\\\|// 
  @@@@ 
 @@()@@
  @@@@ 
   /   
\ |    
\\|//  
   _   
 _(_)_ 
(_)@(_)
 /(_)  
\|/    
\|///  
   _    
 _(_)_  
(_)@(_) 
  (_)\  
     |  
    \|/ 
  \\\|//
 wWWWw
 (___)
   Y  
  \|/ 
   |/ 
  \|  
 \\|//
 vVVVv 
 (___) 
   Y   
  \|/  
 \ | / 
\\\|///
 wWWWw 
 (___) 
   Y   
 \ |/  
 \\|///
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||