;+xx+;                                                                     
                                           :xxxxxxxx;.                                                                  
                                          .xxxxxxxxxx;   ;xxxx;.                                                        
                             .+xxxx+.      xxxxxxxxxX+.;+xxxxxxx;.                                                      
                            ;xxxxxx+xx.   .xxxXXxXxxxx;xxxxxxxxxx;.                                                     
                           .xxxxxxxxxx;.  .xxXxXXxxXX$xxXxxXxxxxx;.                                                     
                            xxxxxxxxxx+:  :xxxxXxxxXX$xxxxxXxXxxx;.                                                     
                            ;xxxXxxxxxx;. :xxXxxxxxXX$xxxxXxxXxxx+. .+xxxx;                                             
                            ;xXxXxxxxxxx: :xxxxXxxxxX$xxxxXxxxxxxx:++xxxxx++.                                           
                            .xxXxxxxxxxx;.;xxxxxxxxxx$xxxxxxxxxxXx;xxxxxxxxx;                                           
                             xxxxxxxxxxXx:;xxxxxXxxxX$xxXxxxxxxx$x;xxxxxxxxx;                                           
                             ;xxXxxxxxxX$;;xxxxxxxxx$$xxxxxxxxxxXx+xxxxxxxx+.                                           
                             :xxXxxxxxxx$x+xxxxxxxxxX$xxxxxxxxxX$x+xxxxxxxx+.                                           
                             .xxxxXxxxxx$$xxxxxxxxxxXXxxxXxxxxxX$xxxxxxxxxxx+++++;         ...                          
                              +xxxxxxxxx$$xxxxXxxxxxx$xxxXxxxxx$$xxxxxxXxX+;;;;;;;++.   .;;;;;;;;                       
                              ;xXxxxxxxxx$xxxxxxxxxxXxxxXxXxxxx$$xxxxxXxX+;;;;;;;;;;;. ;;;;;;;;;;+.                     
                              .xxxxxxxxxxXXxxxxxxxxx$xxxXxxxxxX&xxxXXXxXx;;;;;;;;;;+x;.;;;;;;;;;;;+.                    
                 .:;;.         +xxXXxxxxxXXxxxxxxxxx$xxxxxxxxx$$xxxxxxXX+;;;;;;;;;;xx;;;;;;;;;;;;++.                    
               :+xxxxxxx:      ;xxxXxxxxxxxxxxxxxxxXxxxxXxxxxxXxxxxxXXXx;;;;;;;;;;;xx;;;;;;;;;;;+x+++;++;               
              :xxxxxxxxxx:     .xXxxxxxxxxxxxxXxxxxxXXxxxxxxxXxXxxXXxXX;;;;;;;;;;;xX+;;;;;;;;;;++;;;;;;;;;:             
              ;xxxxxxxXxx+.     xxxxxxxxxxxxxxxxxxxxXxxxXXXxxxxxXxxXXXx;;;;;;;;;;+Xx;;;;;;;;;;+x;;;;;;;;;++.            
              :xxxxxxxxxxx;     +xxxxxxxxXxxxXxxxxXXxxxxxxxxxxxxXxXXXX;;;;;;;;;;;xX;;;;;;;;;;+x;;;;;;;;;;;+:            
              .xxxxXxxxxxxx:    +xxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxXxXX$+;;;;;;;;;;+$x;;;;;;;;;+x+;;;;;;;;;;+;.            
               +xxXxXxxxxxx+.   xxxxxxxxxxxxxxxxxXXXXXxxxXxxXxxXxXXXX;;;;;;;;;;+Xx;;;;;;;;;;++;;;;;;;;;;++:             
               .xxxxxxxxXxxx;   +xxxxxxxxxxXXXXxXXXXXXX$X$XxxxXxXXXXx;;;;;;;;;;x$;;;;;;;;;+++;;;;;;;;;;+xx;;:.          
                ;xxxxxxxxxxxx; .xxxxxxxxxxXxxXXXXXX+;;+;+;x$$XXXXXXX;;;;;;;;;;+x+;;;;;;;;;+x;;;;;;;;;;+x;;;;;;;;        
                .xxxxxxxXxxxxx.;xxxxxXxxxxxXXXxXXx;;;;;;;;++x$XXXXXx;;;;;;;;;;xx;;;;;;;;;++;;;;;;;;;;+x;;;;;;;;;+       
                 ;xxxxxxxxxxxXxxxxxxxxxxxxxXXXXXX;;;;;;;;;;;+$$XXX$+;;;;;;;;;+x;;;;;;;;;;+;;;;;;;;;;+x+;;;;;;;;;+.      
                  xxxxxxxxxxxX$xxxxxxxxxxXXXXXXXX;;;;;;;;;;;+&$XXXx;;;;;;;;;;+;;;;;;;;;++;;;;;;;;;;+x;;;;;;;;;;++.      
                  ;xxxxxxxxxxxxxXXXxXXXxxXXxXX$$x;;;;;;;;;;;x&$$XX;;;;;;;;;;+;;;;;;;;;;++;;;;;;;;;+x;;;;;;;;;;;;.       
                   xxxxxXxxxxxxxxXxxXxxXXxXXXXXX+;;;;;;;;;;;x&$XXx;;;;;;;;;;;;;;;;;;;;++;;;;;;;;+++;;;;;;;;;;+:         
                   :xxxxxxxxxxxxxxxxxxXxxxXX$$X$;;;;;;;;;;;+X&$Xx;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++;;;;;;;;;++:          
                    +xXxXxxxxxxxxxxxxxxxXXXXX$Xx;;;;;;;;;;;+$&$X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;+.           
                    :xxxxxxxxxxxxxxxxxxxXXXXXX$x;;;;;;;;;;;+&&$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;+.            
                     xxxxxxxxxxxxxxxxxxXXXXXX$$+;;;;;;;;;;;+&&+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;              
                     :xxxXxxxxxxxxxxxxxxxXXXX$$;;;;;;;;;;;;+&x;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;.               
                      +xxxxxxxxxxxxxxxxxxXxXX$$;;;;;;;;;;;;+X;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;.                
                      ;xxxxxxxxxxxxxxxxxxXXX$$X;;;;;;;;;;;;;++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+.                  
                       xxxxxxxxxxxxxxxxxxXXXXXx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                   
                       .xxxxxxxxxxxxxxxxxxXX$$+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                    
                        ;xxxxxxxxxxxxxxxxXXX$X+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                     
                         ;xxxxxxxxxxxxxxxXX$$x;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;.                      
                          ;xxxxxxxxxXXxxxXXXX+;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;.                       
                            ;xxxXxXxxxXXXXx$X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:                        
                            ;xXxxXXxxxXxXXX$x;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                        
                            :+xxXxxXXXxxXXXXx;;;;;;;;+;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;.                         
                            .xXxXXXXxxXXxXX$x;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+.                          
                             +XxXxXXXXxxXXX$x;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.                           
                             +XxXXXXXXXxX$XXx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+.                            
                             +XxXXXXxxXxXXX$X;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;:                             
                             ;XxXXXXXXxXXXXX$x;;;;;;;;;;+;+;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+:                              
                             +XxXXxXXxXXXXX$X+;;;+;;;+;;;+++;;;;;;;;;;;;;;;+;;;;;;;;;;;+..                              
                             +XxXxxXxXXxXXX$x;;;+;+;;;+;;+;+;;;;;;;;;;;;;;;;;++;;+;;++;..                               
                             ;xxXxXXXXXXXX$x;;;;;;+;+;+;+;+;+;+;++;+;+;;+;;;;;;+;+;++;.                                 
                             ;xxXXXXXxxXXXX;;;;+;+;+;+;+;+;+;+;+;;+;+;;;;;;+;;;;+++;..                                  
                             ;xxxXXXxxxXXXx;;;+;++;+;++++++++;;+;++;+;+;;;+;+;++;;:.                                    
                             ;xxxxxxXXXXXx;;;+;;+;+;+;+;+;+++;;;++++;+;+;+;+++x+:..                                     
                             ;xxxxxxXX$$X;;;;+;+;+;+;+;+;+;++++;+;+++;+;+;+++x+;..                                      
                             ++x$$$$Xx$$;;;;+;+;+++;;;+;+;+;+;;+;+;+;+;;++++x+;..                                       
                               ........;;;;+;;;+++++++;;+;;+;;+;+++;;++++++x++:.                                        
                                      ;;;;+;;+;+;+;+;+;++;;;;;+;+++;+;++++x++:..                                        
                                      ;;;;+;+;+;+;+;+;+;+;+;;+;+++;+;+;+++x+;:.                                         
                                     ;;;;+;;;;;+;;;;;+;+;;;;+++;+;+;+;+++x;+:..                                         
                                     ;+++;;;;;;;;;;;;;;;;;+;+;+;;;++++++x++:..                                          
                                       .;+x++;;;;;;;;;;;;;++;+;;;+;+;x++x;;:.                                           
                                           .:;;+;+;;;;;;;;;;;;;;;;+;+++x++:..                                           
                                                 .;;;;;;++;;;;;;;;;;;++++:..                                            
                                                       .;;;;;;+;;;;;+x+;;..                                             
                                                              :;;;;;+;+;..