                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                            
                                                                                      .                          ................                                                                                                                                                                           
                                                                      .....   ;;;;;:::::::::;;;;;;   ;;;;;;;;;;::::::::::::::::::;;;      ..                                                .....  ... .....                       ....                                                                     
                                                        ...   . ..... ; ;:;:;;:;:::::::;       ;::::::::::::::::::::::::::::::::::::;  .                         ; ;;;;;   ..                ...    ....                          .   ;  .  ..                                                              
                                                .        ........   ..  . ;  ;;;;;;; .    . ;;;;;;;;::::::::::::::::::::::::::::::::;                            .   . ...                              .......                    .......;;;;     ..                    ....                               
                                              .           ..  .. . ; .;; ;; ;;; ;;; ..               . ;::::::::::::::::::::::::::::; .                                                            . ;; ..               .....;;;;;::::::::::::;;;;; ...     ..        ..     . ....                        
..                 .                         .;;;; ;::;;;;; ;:; .. ;; ;; . ;::;;::;;;:; ...             ;::::::::::::::::::::::::;:;                                                             .;:;.        .;;; .;. ; ;;;:::::::::::::::::::::::::::::;;;;::::;  ...... ;;;;    ..                      .
.           .. ;;;;:;;;;;;;       .....    ;      .. ;;;:::::;;;;...  ;;; ..   ::;    ;::::;;            ;;;::::::::::::::::::::;  .                              ...  ;;;;;;;;;  ...         ..  .....    ...;:::  ::::::::::::::::::::::::::::::::::::::::::::::;;:::::::::::::::::;;;;;;        .      ..
;;;;....   . ;;:::::::::::::::::::::::::::::::::::::::;;;;;;:::;;;;;::;:::::; ;::;   .   ;::::;;  .      ;:::::::::::::::; ...          .                         ;:::::::::::::::;;;;; ...; .;;;;:;;;:;::::::;:::; ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
... ;; .  . ;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;; ;; ..    . ;::::   .       . :::::::::;...           ;;;;;;;.                   . ;::::::;. ;::::::::    ;;:;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::; 
       ..  . ;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::; .   .. . ..  . .  ;;  .          .;:::::;.                 ...        .         . ;;::::::; ..;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;::;;:::::::;;;  .
           . ;;:::::::;;;;;   ;;;;;::::::::::::::::::::::::::::::::::::.             ;::::;;.  .             ..  ;.                                       ;:::::::::;. .;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;::; .    ;;;     .      
               .. ;; ; .           .;::::::::::::::::::::::::::::::::::; ...          ::::::;;;::;.                                               ; .     .     ;:::..    ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;; .       ..  . ;;:;.             
             ... ..  .               . ;;::::::::::::::::::::::::::::::::::;;  ... .. ::::::::::::: ..                                         . ;;:        .;; ;;  ...;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::; .             .::::;.              
         ...                            . ;::::::::::::::::::::::::::::::::::::::;. ;:::::::::::::::::;.                                     .;:;. ;:;   .  ;::;;;;;:;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;  .          ;: .                
                                           ;;:::::::::::::::::::::::::::::::::::::;;::::::::::;;;;;;  ;                                      ... . ;; ; ;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.;;         . .                  
                                            . ;;::::::::::::::::::::::::::::::::::::::::::::;;;;... .;;;;                                         . ;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::; ;.                              
                                               :::::::::::::::::::::::::::::::::::::::::::::::;:;      ...                                           :::::::::::;;::::::::::::;  ;:; ;:::::::;  . ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;.   .                              
                                               ::::::::::::::::::::::::::::::::::::::::::::; .. ..                                            .   .. ::::;;;   :;  ;;::::::::;.  ... . ;;::::    ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;.   .;; ..                           
                                               :::::::::::::::::::::::::::::::::::::::::;; .                                                   :::::::;      ; .    ..;::;;;:    ;;; ...;:::::;. . ;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:::::;.       .;..                              
                                              .;:::::::::::::::::::::::::::::::::::::::;.                                                     ;::::::;  .        ..;. .;:;. ;::::::::::::::::::.   :::::::::::::::::::::::::::::::::::::::::::::::::::::;.. ..;:;.         ;.                               
                                                ;:::::::::::::::::::::::::::::::::::::;                                                       .. ;   ..      ;;  ..    .  ... ;  ;; :::::::::::;   ::::::::::::::::::::::::::::::::::::::::::::::::::::::; .  .;:;   ...;;:                                 
                                                   ;::::::::::::::::::::::::::::::::; .                                                        . :;;;:::::::::;.                 .  :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;.       . ;; ; ..                                 
                                                     :;;:::::::::::::::::::::::::: .                                                          ;:::::::::::::::::;;;.. .;;; ........::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.        .                                       
                                                     .; ;::::::::::::;;   ; ...  :                                                          . :::::::::::::::::::::::;;::::::::::::::::::::::: .;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                                 
                                                      .; .;::::::::::.           ;:.                                                       ;::::::::::::::::::::::::::::::::::::::  ;:::::::::;...;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::                                                  
                                                          ..;:::::::;                .                                                    :::::::::::::::::::::::::::::::::::::::::..;::::::::::;.. ;.... ... ;:::::::::::::::::::::::::::::::::::::::::;...                                                
                                                          .   ::::::;          ...   .                                                  ;::::::::::::::::::::::::::::::::::::::::::;   :::::::::::::::;         ;:;::::::::::::;;;;:::::::::::::;:;;;  .                                                    
                   .                                          ;::::::      ::       .  ..  .                                            ;::::::::::::::::::::::::::::::::::::::::::::   ::::::::::::::          .. :::::::::;;.     ::::::::::;..;.                                                         
                                                               .  ;:::;;;;::;        .  .. .. .. .                                       ::::::::::::::::::::::::::::::::::::::::::::;. .;::::::::;; .            .:::::::; .        :;:::::::;...         ;                                                
                                                                    .... :::;;;;.                 .                               .    .;:::::::::::::::::::::::::::::::::::::::::::::; . :::::; .                  :::::.          ..  ::::::::          ;                                                 
                                                                          .. ;::          ..                                            ;:::::::::::::::::::::::::::::::::::::::::::::::: ; ...                     ;:::;          .   .: ;;:::::.            .                                             
                                                                               :        ;: ;;  .   .                                    . ;:::::::::::::::::::::::::::::::::::::::::::::::   ;;;                     ;::               .;    ;: .        . .;                                               
                                                                                  ;  ;;:::;::::::::;                                       ;:::::::::::::::::::::::::::::::::::::::::::::::::::;                     . . ;             .;    .         ..     ;.                                            
                                                                                      :::::::::::::::;   .                                  . ;::;;;:;  ..;:::::::::::::::::::::::::::::::::::;                         .            ...  ;            ; . . . .                                            
                                                                                     ;:::::::::::::::::::::                                    .           ...::::::::::::::::::::::::::::::;                                          ; .;:.      . :::.                                                   
                                                                                   .;:::::::::::::::::::::::.                                                .::::::::::::::::::::::::::::;.                                           .;:;;;   .;;:::::  ....  ;.                                          
                                                                         ..       .::::::::::::::::::::::::;:;; .                                             ::::::::::::::::::::::::::;.                                              . ::;..  ;:::::      ..   . ;  ...      .                           
                                                                                  .:::::::::::::::::::::::::::::::;;; .                                       .;:::::::::::::::::::::::.                                                 ..;:: .  .      ; ;.  .... .; ;::::; .      .                      
                                                                                   ::::::::::::::::::::::::::::::::::::;;                                       ;:::::::::::::::::::::;                                                     .   .....    ....        .. .;:::::; .. .  .                    
                                                                                   .;:::::::::::::::::::::::::::::::::::;                                       .::::::::::::::::::::::                                                        ...   ......... .   .       ;;;. ;  .    .....               
                                                                                     ;:::::::::::::::::::::::::::::::::                                          ;:::::::::::::::::::::                                                                  .. ..    ...            ...       ..               
                                                                                      ;::::::::::::::::::::::::::::::;.                                         .;:::::::::::::::::::::;                                                                       .   ;::;;    :                               
                                                                                        ;::::::::::::::::::::::::::::                                           ;::::::::::::::::::::::;   . ;:;                                                             .;:;;::::: .  .::;.                 ..        .
                                                                                         . ;:::::::::::::::::::::::::.                                         .::::::::::::::::::::; .   .::::.                                                           .;::::::::::::;;;:::;                  .        .
                                                                                            ::::::::::::::::::::::::                                            .;:::::::::::::::::.      .:::;                                                       ..  ;:::::::::::::::::::::; .            .            
                                                                                           ;::::::::::::::::::::;;;                                              .:::::::::::::::::       ;::;                                                      .;::::::::::::::::::::::::::::;             .           
                                                                                           ;:::::::::::::::::; .                                                  ;::::::::::::::; .      .;;.                                                       :::::::::::::::::::::::::::::::;.                      
                                                                                          .::::::::::::::::::                                                     .;:::::::::::::.                                                                  .::::::::::::::::::::::::::::::::;                      
                                                                                           :::::::::::::::::                                                       .;::::::::::;.                                                                    .:::::::::::::::::::::::::::::::;                      
                                                                                          ;:::::::::::::::;.                                                        .::::::::;                                                                        ;::::::;;;  .. ;::::::::::::::;.                      
                                                                                         .:::::::::::;;;;.                                                            ;    ..                                                                          ;; ....          ;;:::::::::;.                 .     
                                                                                        .;::::::::::::                                                                                                                                                                  .  ::::::;;.                  .  .. 
                                                                                        .:::::::::   .                                                                                                                                                                     .. . ..                      : . 
                                                                                         ;:::::;                                                                                                                                                                              .;;                   .; .    
                                                                                         ;::::;;.                                                                                                                                                                              . .               . ;; .     
                                                                                        :::::;                                                                                                                                                                                                    ; .       
                                                                                       ;:::::;                                                                                                                 .                                                                                            
                                                                                       ;::::;.     ...                                                                                                                                                                                                      
                                                                                       . ;;;: .     .                                                                                                                                                                                                       
                                                                                          ..  .                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                            
                                                                                                   .....                                                                                                                                                                                                    
                                                                                               . ; ....                                                                                          ....                                    ....     ...                                                       
                                                                                            . ;; .                                                                                       ...   ;:::::;;        .       ...  ;;;;;;;;;;;;;;::::;;;;:::;;;;;;;;;;;;;::::::;;;;;;  .  .  .                     
                                                                                       ...;;  :::; .                                            .  .    ........... .. ......... ;;    ;::::::::::::::::::::::;; ..  ;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:;;;; ......          
                                                                ..    .......      .  .   ;;; :::::                                      .. ;:;;:;;:;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::   ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;         
                            . .  ...        ;;  ; ; ; ;   ......  ;::::::::::::;;;:::;;:::::::::;; .                                ... ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;  .           
                  .   ..  ;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::; ;   ...               ..         .   ;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;. ...         
             . ..  .    ;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;..  . . ..  ..      . ;::::;     .   ;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::; ....           
              ..   .. ;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:;;;;    .   ..      ... ;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ..            
   ..        ;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;     
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::