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