adam
Dunn
Social Accounts
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                 ,:::::::::::`                                        
                                                                              .::::::::::::::::,                   .                  
                                                                            `:::::::::::::::::::::               `:`                  
                       `                                                   ::::::::::::::::::::::::`           `:::                   
                       :`                                                `::::::::::::::::::::::::::,        .::::,                   
                      :::                                               `:::::::::::::::::::::::::::::    .:::::::                    
                      ::::                                             `:::::::::::::::::::::::::::::::::::::::::`                    
                     ,:::::                                            ::::::::::::::::::::::::::::::::::::::::::                     
                     :::::::                                          ::::::::::::::::::::::::::::::::::::::::::                      
                     ::::::::                                        ::::::::::::::::::::::::::::::::::::::::::                       
                     :::::::::`                                      :::::::::::::::::::::::::::::::::::::::::      .:                
                    .::::::::::.                                    :::::::::::::::::::::::::::::::::::::::::    .:::`                
                    ,::::::::::::                                   :::::::::::::::::::::::::::::::::::::::``.:::::::                 
                    ,:::::::::::::                                 :::::::::::::::::::::::::::::::::::::::::::::::::                  
                    ,::::::::::::::.                               ::::::::::::::::::::::::::::::::::::::::::::::::                   
                    .::::::::::::::::                              :::::::::::::::::::::::::::::::::::::::::::::::                    
                    .:::::::::::::::::.                           .::::::::::::::::::::::::::::::::::::::::::::::                     
                     :::::::::::::::::::`                         ::::::::::::::::::::::::::::::::::::::::::::::                      
                     :::::::::::::::::::::                        :::::::::::::::::::::::::::::::::::::::::::::                       
                     :::::::::::::::::::::::                      :::::::::::::::::::::::::::::::::::::::::::,                        
                     .::::::::::::::::::::::::`                   ::::::::::::::::::::::::::::::::::::::::::`                         
                      ::::::::::::::::::::::::::,                 ::::::::::::::::::::::::::::::::::::::::::`                         
                      :::::::::::::::::::::::::::::,              ::::::::::::::::::::::::::::::::::::::::::`                         
                       ::::::::::::::::::::::::::::::::`          ::::::::::::::::::::::::::::::::::::::::::`                         
                       ::::::::::::::::::::::::::::::::::::.`     ::::::::::::::::::::::::::::::::::::::::::                          
                        ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                        `:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                         .::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                          ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                    ,,     .::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                    ,:::`   `:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                    .:::::::,.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                    `:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                          
                     ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.                          
                     ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                           
                     ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                           
                      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                           
                      ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,                           
                      .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`                           
                       :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                            
                       `::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                            
                        ,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.                            
                         ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                             
                          :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                             
                           :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.                             
                            ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                              
                             `::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                              
                               ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                               
                                 .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                               
                                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                
                            .`  ``.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                
                            :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                 
                            .::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                 
                             :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                  
                             .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.                                  
                              :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                   
                               :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                    
                               `:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,                                    
                                `::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                     
                                 `::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                      
                                   ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`                                      
                                    ,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::.                                       
                                      :::::::::::::::::::::::::::::::::::::::::::::::::::::::,                                        
                                        .::::::::::::::::::::::::::::::::::::::::::::::::::::                                         
                                            .,::::::::::::::::::::::::::::::::::::::::::::::                                          
                                              .::::::::::::::::::::::::::::::::::::::::::::                                           
                                             :::::::::::::::::::::::::::::::::::::::::::::                                            
                                           ,:::::::::::::::::::::::::::::::::::::::::::::                                             
                                         `:::::::::::::::::::::::::::::::::::::::::::::,                                              
                                       `::::::::::::::::::::::::::::::::::::::::::::::.                                               
                                     ,:::::::::::::::::::::::::::::::::::::::::::::::                                                 
                                  .:::::::::::::::::::::::::::::::::::::::::::::::::                                                  
                              `,::::::::::::::::::::::::::::::::::::::::::::::::::.                                                   
                ..``````.,:::::::::::::::::::::::::::::::::::::::::::::::::::::::                                                     
                 `:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`                                                      
                   .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::.                                                        
                     .:::::::::::::::::::::::::::::::::::::::::::::::::::::,                                                          
                       .:::::::::::::::::::::::::::::::::::::::::::::::::,                                                            
                         `:::::::::::::::::::::::::::::::::::::::::::::.                                                              
                            .:::::::::::::::::::::::::::::::::::::::,                                                                 
                               .:::::::::::::::::::::::::::::::::,                                                                    
                                  `,:::::::::::::::::::::::::,`                                                                       
                                        .,:::::::::::::,.`                                                                            
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                          :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':                            
                         ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                           
                        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                          
                        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++++''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''''''''+:`           ``;'''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''''''''''':                 :'''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''''''''''                   :'''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''',                    :'''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''''.                     :'''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''',                      :'''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''''''                       :'''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''''                        :'''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''';                        :'''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''''                         :'''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''+                         :'''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''':                         ,'''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''`               :+++++++++''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''              `'''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''              ''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             .''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             ;''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+```````````             `````````````''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                     ''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                     ''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    `''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    ,''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    ;''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    +''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    +''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    '''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    '''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                    '''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                   .'''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''+                                   :'''''''''''''';                         
                       ,'''''''''''''''''''''''''''''''''''''''''''''             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       ,''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''';                         
                       .''''''''''''''''''''''''''''''''''''''''''''+             '''''''''''''''''''''''''':                         
                        ''''''''''''''''''''''''''''''''''''''''''''+             ''''''''''''''''''''''''''                          
                        .'''''''''''''''''''''''''''''''''''''''''''+             ''''''''''''''''''''''''':                          
                         `''''''''''''''''''''''''''''''''''''''''''+             ''''''''''''''''''''''''.                           
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      
Media outlets
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                 ,,::::::::::,,                                                                         
                                                                                                            `:::::::::::::::::::::,`                                                                    
                                                                                                          ,::::::::::::::::::::::::::.                                                                  
                                                                                                        `::::::::::::::::::::::::::::::,                                                                
                                                                                                        :::::::::::::::::::::::::::::::::,                                                              
                                                                                                  .::.  :::::::::::::::::::::::::::::::::::.                                                            
                                                                                                  ::::  :::::::::::::::::::::::::::::::::::::                                                           
                                                                                                  ::::  ::::::::::::::::::::::::::::::::::::::`                                                         
                                                                                                  ::::  :::::::::::::::::::::::::::::::::::::::,                                                        
                                                                                           ,::    ::::  :::::::::::::::::::::::::::::::::::::::::                                                       
                                                                                           ::::   ::::  ::::::::::::::::::::::::::::::::::::::::::                                                      
                                                                                          `::::   ::::  :::::::::::::::::::::::::::::::::::::::::::                                                     
                                                                                          `::::   ::::  :::::::::::::::::::::::::::::::::::::::::::,                                                    
                                                                                          `::::  `::::` ::::::::::::::::::::::::::::::::::::::::::::.                                                   
                                                                      :;,                 .::::  `::::` :::::::::::::::::::::::::::::::::::::::::::::`                                                  
                                                               `,    `:::    :::          .::::  `::::` ::::::::::::::::::::::::::::::::::::::::::::::                                                  
                                                               :::   ,:::   ,:::    :::   `::::  `::::` :::::::::::::::::::::::::::::::::::::::::::::::                                                 
                                                               :::   ,:::   ,:::   `:::,  .::::  `::::` :::::::::::::::::::::::::::::::::::::::::::::::.                                                
                                                        .,    `:::   ,:::   ,:::   ,::::  ,::::  `::::, ::::::::::::::::::::::::::::::::::::::::::::::::                                                
                                                        ;:.   `:::   ,:::   ::::`  ,::::  ,::::  .::::, :::::::::::::::::::::::::::::::::::::::::::::::::                                               
                                                        ::.   `:::   ,:::   ,:::`  ,::::  ,::::  ,::::, ::::::::::::::::::::::::::::::::::::::::::::::;::                                               
                                                        :::   .:::   ,:::   ::::`  :::::  ,::::  ,::::, :::::::::::::::::::::::::::::::::::::::::::::::::,                                              
                                                        :::   .::;   ::::   ::::`  :::::  :::::  ,:;::, ::::::::::::::::::::::::::::::::::::::::::::::::;:                                              
                                                        :;:   ,:::   ::::   ::::.  :::::  :::::  ,::::, ::::::::::::::::::::::::::::::::::::::::::::::::::`                                             
                                                       `:::   ,:::   ::::   ::::.  :::::  :::::  :::::: :::::::::::::::::::::::::::::::::::::::::::::::::;:                                             
                                                 :;    `:;:   ::::   ::::   :;:;,  :;:::  :::::  :::::: :::::::::::::::::::::::::::::::::::::::::::::::::;:                                             
                                                 :;,   `:;:   :;::   ::::   :::;:  :;:;:  :::::  :;::;: ::;::::::::::::::::::::::::::::::::::::::::::::::::,                                            
                                                 ::,   .:::   ;;:;   ::::`  :::::  :;:::  ;::::  ::::;: ::;:::::::::::::::::::::::::::::::::::::::::::::::;:                                            
                                                 ;;,   ,:::   ;;;;   ;:::`  :::;:  :;;;:  ::::;  ;;;:;: ::;:::::::::::::::::::::::::::::::::::::::::::::;:;;                                            
                                                 :;:   ::;:   ;;::   :;:;.  :::::  :;:;:  :::::` :::::: ::;:::::::::::::::::::::::::::::::::::::::::::::::::                                            
                                                 :;:   :;;;   ;;;:   ;;::.  :;;;:  :;;;:  ;;;;;` ::;;;: :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:`                                           
                                                 :::   :;;;   ::;:   :;:;.  ;:;;:  ::;;:  :;;;;` :;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                                           
                                                `;;;   :;;;   ;:;:   ;;:;,  :;;;:  ::;;;  ;;;;;` :;;;;: :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::    .::::::.                               
                                                `;;;   :;;;   ;:;;   :;;;,  :;;;:  :;;;;  :;;;;` :;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`;:;;;;;:;:;:;;.                           
                                                ,;:;   :;:;   :;;;   :;;;:  :;;;:  :;;;;  ;:;;;. :;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::                         
                             .     `;.          ,;;;   ;;;;   ;;;:   ;;;;;  ;;;;:  :;;;;  ;;;;;. ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                       
                             :.    ,;:    ,;    :;;;   ;;;;   ;;;;   ;;;;;  ;;;;:  ;;;;;  ;;;;;. ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:                      
                             ;:    ,;:    ;;,   :;;;   ;;;;   ;;;;`  ;;;;;  ;;;;;  ;;;;;  ;;;;;. ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;                     
                      `      ;:    :;;    ;::   :;;;   :;;;`  ;;;;`  ;;;;:  ;;;;;  ;;;;;  ;;;;;. ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                    
                      :;    .;;    :;;    ;;:   ;;;;   :;;;`  ;;;;,  ;;;;;  ;;:;;  ;;;;;  ;;;;;. ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:                   
                      ;:    ,;;    ;;;    ;;:   ;;;;   ;;;;`  ;;;;,  ;;;;;  ;;;;;  ;;;;;  ;;;;;, ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::                  
                      ;;    :;;    ;;;    ;;;   ;;;;   ;;;;`  ;;;;:  ;;;;;  ;;;;;  ;;;;;  ;;;;;, ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                 
                      ;;    ;;;    ;;;    ;;;   ;;;;   ;;;;.  ;;;;:  ;;;;;  ;;;;;  ;;;;;  ;;;;;, ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                 
                      ;;    ;;;    ;;;   `;;;   ;;;;`  ;;;;,  ;;;;:  ;;;;;  ;;;;;  ;;;;;  ;;;;;, ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:                
                ,     ;;    ;;;    ;;;   .;;;   ;;;;`  ;;;;,  ;;;;; `;;;;;  ;;;;;  ;;;;;  ;;;;;, ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                
                ;`   `;;    ;;;`  `;;;   ,;;;   ;;;;,  ;;;;:  ;;;;; `;;;;;  ;;;;;  ;;;;;` ;;;;;: ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:               
                ;.   ,;;.   ;;;,  `;;;`  :;;;`  ;;;;,  ;;;;:  ;;;;; `;;;;;  ;;;;;  ;;;;;` ;;;;;: ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;               
               .;:   ;;;:   ;;;;  .;;;,  :;;;.  ;;;;,  ;;;;;  ;;;;; .;;;;;  ;;;;;  ;;;;;. ;;;;;: ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`              
               :;;   ;;;;   ;;;;  ,;;;;  ;;;;:  ;;;;:  ;;;;;  ;;;;; .;;;;;  ;;;;;  ;;;;;. ;;;;;: ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:              
               :;;   ;;;;   ;;;;  :;;;;  ;;;;:  ;;;;:  ;;;;;  ;;;;; .;;;;; `;;;;;  ;;;;;. ;;;;;; ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;   ;;;;   ;;;;  :;;;;  ;;;;;  ;;;;;  ;;;;;  ;;;;; :;;;;; `;;;;;  ;;;;;: ;;;;;; ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;   ;;;;  `;;;;  ;;;;;  ;;;;;  ;;;;; `;;;;; `;;;;; :;;;;; `;;;;;  ;;;;;: ;;;;;; ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;.  ;;;;  ,;;;;  ;;;;;  ;;;;;  ;;;;; `;;;;; `;;;;; :;;;;; .;;;;; `;;;;;: ;;;;;;`;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;:  ;;;;. :;;;;  ;;;;;  ;;;;;  ;;;;; `;;;;; `;;;;; :;;;;; .;;;;; `;;;;;: ;;;;;;`;;;;;;`:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
              `;;;; `;;;;, ;;;;;  ;;;;;  ;;;;;  ;;;;; .;;;;; ,;;;;; :;;;;; .;;;;; `;;;;;: ;;;;;;`;;;;;;`:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;:  ;;;;` :;;;;  ;;;;;  ;;;;;  ;;;;; `;;;;; `;;;;; :;;;;; .;;;;;  ;;;;;: ;;;;;;`;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;.  ;;;;` ,;;;;  ;;;;;  ;;;;;  ;;;;; `;;;;;  ;;;;; ,;;;;; `;;;;;  ;;;;;, ;;;;;; ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;`  ;;;;  `;;;;  ;;;;;  ;;;;;  ;;;;;  ;;;;;  ;;;;; .;;;;;  ;;;;;  ;;;;;. ;;;;;: ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              
               ;;;   ;;;;   ;;;;  :;;;;  ;;;;;  ;;;;:  ;;;;;  ;;;;; `;;;;;  ;;;;;  ;;;;;` ;;;;;: ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,              
               ;;;   ;;;;   ;;;;  :;;;;  ;;;;:  ;;;;:  ;;;;:  ;;;;;  ;;;;;  ;;;;;  ;;;;;` ;;;;;: ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;               
               :;;   ;;;;   ;;;;  ,;;;;  ;;;;:  ;;;;.  ;;;;,  ;;;;;  ;;;;;  ;;;;;  ;;;;;  ;;;;;, ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;               
               `;:   ;;;:   ;;;:  .;;;:  ;;;;,  ;;;;`  ;;;;`  ;;;;,  ;;;;;  ;;;;;  ;;;;;  ;;;;;. ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.               
                ;.   ,;;.   ;;;,  `;;;.  :;;;.  ;;;;   ;;;;`  ;;;;`  ;;;;;  ;;;;;  ;;;;;  ;;;;;. ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                
                ;`   `;;    ;;;`   ;;;   :;;;   ;;;;   ;;;;   ;;;;`  ;;;;;  ;;;;;  ;;;;;  ;;;;;` ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`                
                .     ;;    ;;;    ;;;   ,;;;   ;;;;   ;;;;   ;;;;   ;;;;:  ;;;;;  ;;;;;  ;;;;;` ;;;;;; :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                 
                      ;;    ;;;    ;;;   `;;;   ;;;;   ;;;;   ;;;;   ;;;;.  ;;;;;  ;;;;;  ;;;;;` ;;;;;: :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                  
                      ;;    ;;;    ;;;   `;;;   :;;;   ;;;;   ;;;;   ;;;;`  ;;;;:  ;;;;;  ;;;;;  ,;;;;: :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                  
                      ;;    :;;    ;;;    ;;;   ,;;;   ;;;;   ;;;;   ;;;;   ;;;;:  ;;;;;  :;;;;  .;;;;, :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                   
                      ;;    .;;    ;;;    ;;;   `;;;   :;;;   :;;;   :;;;   :;;;,  ;;;;;  :;;;;  `;;;;` :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                    
                      ;:    `;;    ;;;    ;;;    ;;;   .;;;   :;;;   :;;;   :;;;.  ;;;;;  .;;;;  `;;;;` :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                     
                             ;;    ;;;    ;;:    ;;;   `;;;   .;;;   :;;;   :;;;`  ;;;;:  .;;;;   ;;;;  :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                       
                             ;;    ,;:    ;;:    ;;:    ;;;   `;;;   ,;;;   ,;;;   ,;;;:  `;;;;   ;;;;  :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                        
                             ;`    ,;:    ;;,    ;;,    ;;:    ;;;   .;;;   ,;;;   `;;;,   ;;;;   ;;;;  ,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                          
                                    ;     :;     ;;`    ;;     ;;`    ;;:    ;;;    ;;;    :;;    .;;.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,                             
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                            `;;;:           :;;;        `..       .,`    ..`      `..`    ......              :;;;`     `..`            :;;;.       `..       ...    `.....`                            
                           ;;;;;;;;       :;;;;;;;      ;;;       ;;;    ;;;.     :;;,    ;;;;;;;;;         ;;;;;;;;    .;;;          ,;;;;;;;`     :;;.      ;;;    ;;;;;;;;;.                         
                          ;;;;;;;;;;.    ;;;;;;;;;;     ;;;       ;;;    ;;;;     :;;,    ;;;;;;;;;;`      ;;;;;;;;;;   .;;;         :;;;;;;;;;`    :;;.      ;;;    ;;;;;;;;;;;                        
                         .;;;,`.;;;;    ,;;;;..:;;;;    ;;;       ;;;    ;;;;;    :;;,    ;;;:::;;;;;     ,;;;;..;;;;;  .;;;         ;;;;,.:;;;;    :;;.      ;;;    ;;;:::;;;;;,                       
                         :;;:    `;     ;;;;    .;;;`   ;;;       ;;;    ;;;;;.   :;;,    ;;;    `;;;:    ;;;:    `;.   .;;;        ;;;;     ;;;.   :;;.      ;;;    ;;;     ;;;;                       
                         :;;;           ;;;      ;;;:   ;;;       ;;;    ;;;;;;   :;;,    ;;;     ,;;;   `;;;           .;;;        ;;;      ,;;;   :;;.      ;;;    ;;;      ;;;                       
                         .;;;;;`       ,;;;      `;;;   ;;;       ;;;    ;;;;;;;  :;;,    ;;;      ;;;   ;;;:           .;;;        ;;;       ;;;   :;;.      ;;;    ;;;      ;;;;                      
                          ;;;;;;;;`    ;;;,       ;;;   ;;;       ;;;    ;;; ;;;. :;;,    ;;;      ;;;   ;;;`           .;;;       `;;;       ;;;   :;;.      ;;;    ;;;      ,;;;                      
                           ;;;;;;;;'   ;;;,       ;;;   ;;;       ;;;    ;;; .;;; :;;,    ;;;      ;;;   ;;;            .;;;       `;;;       ;;;   :;;.      ;;;    ;;;      ,;;;                      
                             `;;;;;;,  ;;;:       ;;;   ;;;       ;;;    ;;;  ;;;;:;;.    ;;;      ;;;   ;;;`           .;;;       `;;;       ;;;   :;;.      ;;;    ;;;      :;;;                      
                                 ;;''  .;;;      ,;;;   ;;;`     `;;;    ;;;   ;;;;;;,    ;;;      ;;;   ;;;;           .;;;        ;;;       ;;;   :;;:      ;;;    ;;;      ;;;,                      
                                 `;;;   ;;;      ;;;,   ;;;:     ;;;:    ;;;   .;;;;;,    ;;;     ;;;;   `';;      `    .;;;        ;;;      ,;;;   .;;;     `;;;    ;;;     `';;                       
                          ;;     ,;;;   ;'';    ,;;;    `;;;`   `;;;     ;;;    ;;;;;,    ;;;    ;;;;`    ;;;;    :;;   .;;;        ;;;;    `;;;`    ;;;.    ;;;,    ;;;    ,;;;;                       
                         ;;;;;,,;;;;;   .;;;;:,;;;;;     ;;;;;,:';;;     ;;;     ;;;;,   `;;';;;;;;;;     ,;;;'::;;;;:  ,;;';;;;;;   ;;;;:,;;;;;     ;;;;;,;;;;'     ;;;;;;;;;;'                        
                         :;';;;;;;''     ;;;;;;;;;;       ;;;;;;;;'      ;;;     .';;,    ;;;;;;;;;;       ;;;;;;;;''   .;;;;;;;;;   .;;;;;;;;'       ;;;;;;;;;.     ;;;;;;;;';                         
                          .;;;;;;;;       ,;;;;;;;        `;;;;;;;       ;;;      ;;;,    ;;;;;;;;`         ;;;;;;;;    ,;;;;;;';;    .;;;;;;;         ;;;;;;;.      ;;;;;;;;,                          
                             `..`            .:`             `:`                                              `..`                       .,`             `..                                            
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                     

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