                                              +@@@@@@@@@@@@@@@@@#%%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,     :@@@@@@@@@@@@@@@@@+               
                                              %@%%@@@@@@@@@@@@@@@@%**?S#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*S:     +@@@@@@@@@@@@@@@@@S               
                                             ,?; ,#@@@@@@@@@@@@@@@@@#%?**?%S##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*;,     %@@@@@@@@@@@@@@@@@@:              
                                                  +@@@@@@@@@@@@@@@@@@@@@@#SSSS##@@@@@@@@@@@@@@@@@@@@@@@@@@SS#S%*:  ,#@@@@@@@@@@@@@@@@@@*              
                                                   **@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;  ,,,   :@@@@@@@@@@@@@@@@@@@%              
                                                    ,+;@+*@S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?#@+        ;@@@@@@@@@@@@@@@@@@@#,             
                                                       +;,#*S*S@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@S@#; :S?        :@@@@@@@@@@@@@@@@@@@@:            ,
?+:,                                                      +;: %@?#%#@@@@@@@@@@@@@#+S#%@@@S:S@@%S@@%;+,   ,:        ,%@@@@@@@@@@@@@@@@@S?+        :+?S@
@@@#%*:,                                                      ?;+#S@@@@@@@@@@@@@@#S@*?@@%, ?@@*S*;                  +@@@@@@@@@@@@@@@@@*,,   ,:+?S@@@@@
?%#@@@@#S?+:,                                                   :#@@@@@@@@@@@@@@@@@? ?*;   :;%+?,            ,       %@@@@@@@@@@@@@@@#:,:+?%#@@@@@#?+:
  ,;*S@@@@@@#S%*+;;::,,,,,,,,,:::;;+**???+               ,::+*?%S@@@@@@@@@@@@@@@@@@#S%*+;:,  ::;           +S##SS%%?*%@@@@@@@@@@@@@@@@#@@@@@@@@S*:,   
      :*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S:        :;*%S#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S%*;,         ,%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%       
,    ,:*@@@@@#%%%%%%%%%%%%SSSS#@@@@@@@@@@@@@+   ,+?S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%+:     ;#@@@@@@#@@@@@@@@@@@@@@@@@@*;;;+%@@@@@@%*,    
;   ;#@@@@@@@#%:            :+S@@@@@*;%@@@@@@%;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%; :%@@@@@@%;,*@@@@@@@@@@@@@S@@*   :S@@@@@@@@@#:   
,  ;@@@@@@@@@@@#:         ,S@@@@@@@@*  ;%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S#@@@@@%;  ;#@@@@@@@@@@@@S*@?,  :#@@@@@@@@@@@#:  
  +@@@@@@@@@@@@@S,       :S@@@@@@@@@@?   ;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*,  :#@@@@@@@@@@@@@++;   ,S@@@@@@@@@@@@@#: 
  S@@@@@@@@@@@@@@?      :#@@@@@@@@@@@@?;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S*#@@@@@@@@@@@@@%,     ;@@@@@@@@@@@@@@#: 
  ;@@@@@@@@@@@@@@;     ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S      ,?@@@@@@@@@@@@@*  
   %@@@@@@@@@@@@?       *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;       :#@@@@@@@@@@@#,  
   :@@@@@@@@@@@S,       ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,        +@@@@@@@@@@@+   
    ?@@@@@@@@@@+         *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+         ,%@@@@@@@@@S,   
    ,#@@@@@@@@?,         ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,          :#@@@@@@@@;    
     *@@@@@@@S:           *@@@@@@@@@@@####################SSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??%%%%%%%%%;            +%%SSS%S*     
     ,%SSSSS%;            ,******+++++++;;;;;;;;;;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,              ,,,,,,,      
      ,,,,,,,                                                                                                                                         
                                                                                                                                                      
                                                                                                                                            ,,        
                             ::::::;;;;;;;;;+++++++++++************???????????????????????%%%%%%%%%%%%%%%%%%%%%%%%%; +%??,                 ,::        
                             *##############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:,S@*                             
                             ,*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:,;,                             
                              ?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,                               
                             *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                               
                            ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;                              
                           ,S@@@@@@@@@@@@@@@@%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,                             
                           *@@@@@@@@@@@@@@@@%:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                             
                          ,#@@@@@@@@@@@@@@@S,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,                            
                          *@@@@@@@@@@@@@@@S, ,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%;@@@@@@@@@@@@@@@@;                            
                        ,:#@@@@@@@@@@@@@@#:  ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* +@@@@@@@@@@@@@@@%,,                          
                   ,:+?S#@@@@@@@@@@@@@@@#:    %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+  *@@@@@@@@@@@@@@@@#%?+:,                     
               ,;*S#@@@@@@@@@@@@@@@@@@@#:     %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:   *@@@@@@@@@@@@@@@@@@@@#S*;:                 
           :+?S@@@@@@@@@@@@@@@@@@@@@@@S:      S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+    +@@@@@@@@@@@@@@@@@@@@@@@@#%+:,            
      ,:+%#@@@@@@@@@@@@@@@@@@@@@@@@@@?,      ,#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*     ;#@@@@@@@@@@@@@@@@@@@@@@@@@@#S?;:        
  ,:+%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@S;        ,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%      ,?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%+:,   
*%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%;,         ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,       ;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%*;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S*:            +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;         ,+%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@