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