`,`                       
                                                     ;   ,                      
                                                     `    '                     
                                                          `                     
                                                     :     `                    
                                                           .                    
                                                      ;   `':,.```.:'++''++`    
                                                      +                   .#+;  
                                                      :              `,:.     ' 
                                                      `            .           `
                      #+++##+.                           ,  `;`     `    ,'''   
                `:'+###@#+'++'+#`                    `,        :       ,     +; 
             ,@#++++++++++++++''+#`,.                ;;         .    .       :  
           :#++++++++++++++'++++++#+'+,              , ,                     :  
           .`'@#++++++++++'+++++++++''+;             '  ,                  `;   
           +#+++++++++++++++++++'++'+;+':            #   ,               `'     
         :#+++++++++++++++++#++++#+':  ,+`          ;#+    .`       `.;+,       
        #+++++++++++++++++++++'+++''+   .#          ####.   ' ````              
       @+++++++++++++++++++#++,   ,++    ,:        .######:                     
      @+++++++++++++++++++++++`     +     :        #######.                     
     #++++++++++++++++++++++++:      :     ;       #######                      
    ;++++++++++++++++++++++++++       ,    `      ,#######                      
    #+++++++###+++++++++++++++'`       `':  #     ########                      
   #+'+#;.   `#+++++++++++++++++  .`   ;;;: ':.   ########                      
  `+#,      ,':;+#+++'++++++'+'+,,;;;   @#; ,::. +#######;                      
  +,               :#++++#';:;+++;'@+'  :@':,::# ########.                      
                      '#::::::::;@#@@+:  @@+;::+,########                       
                      `:::::::::::;@@@;  +@';:;#########@                       
                      '::::;+#++::::+@'` ':;:::#########@            `,'        
                      ':::::####@;'::;+  ::::::::########        `;#@+#         
                       ;:::::#####+:;::''::::::::::#####;     ,#+'+;;#          
                       .::,:::#####@:::::::::::::::::;##:`,'#;:+;;;;+           
                         +,::::#######:::::::::::::::::::::::+;;;;#.            
                          ,;::::########::::::::::::::::::'+;;;+'`              
                            '::::;;######@;:::::::::::::#+'+',                  
                             `';:'::';####:##'::::::;#@.                        
                               :':+:::'#@:+++##########                         
                                 ':;::;@:++++@#########                         
                                  ;;::+;+++++#########:                         
                                  .:'''+++++++@#######`                         
                                   .'+,++++++++######@                          
                                       :+++++++;  `:#+                          
                                        #;..,++#:.   :                          
                                       '       :     `;                         
                                      . `.      `    ,                          
                                      '####`          `                         
                                    `@######         `:                         
                                   '########         ;                          
                                 .#########@         ;                          
                               ;###########@#`      #                           
                             +##############+ .,``:.                            
                           +################,      `                            
                          ##################       ;                            
            `'#@@@#'     +############@####+       +                            
         `+@@@@@@@@@@@,  ############@#####        ,                            
        '@@@@@@@@@@@@@@@`#################'       `                             
       `#@@@@@@+.    `;@@@#########@######        '                             
       `##@@'`          `@##########+####;        ;                             
         `   .+#@@@@@#:   .########;@####         `                             
          `#@@@@@@@@@#@@#,` ######:,'###`        ;                              
         +@@@@@@@@@@+;;'+  '.''+; , '##+         '                              
        @@@@@@@@+.     `      ,:;.  +##          `                              
       #@@@@#@:         `      `    ##,         ;                               
       #@@#@:           +   `  `    ##          ,                               
       @@@;              ;';       ,#          ,                                
                           ,   `   #'          ;                                
                          '    .  `#`         .                                 
                         +        ##         `'                                 
                       .: ,.     ,##        `#                                  
                      '`.`  ,    ###.      ;#'                                  
                     ' ;   .    #####,  `;###                                   
                    ' ;  .     #############:                                   
                    ';        #############@                                    
                    `,  `   .##############`                                    
                     +   ;,+#######@######+                                     
                    #####################@                                      
          :+++'.    #####################`                                      
        ,':::::::'`,+############@######;                                       
       `;::::::::::':###################                                        
       +:::::::::::::;################@                                         
       +::,+;::';:::::;#########+###':++;.                                      
       +:,':::::::::::::######@::::::::::::;+`                                  
       ,,+:::::::::::::::;####;:::::::::::::::+`                                
        ';,::::::::::::::::::#:::::::::;'';::::;`                               
         ',,:,::::::::::::::':::::::::::::::+:::#                               
         :,,,:::::::::::::::;:::::::::::::::::::'                               
          ',:::::::::::::::#::::::::::::::::::+:'                               
           ;:,:::,::::::::+ .'::::::::::::::::+:+                               
            `':,,:::::::'`    +;::::::::::::::':                                
               .'++##+,        `@::::::::::::;;`                                
                                 ,#'::::::::;.                                  
                                    .'#+''#+