----                                                                        
                                                                  ::::                                                                        
                                                                    ::::                                                                      
                                                                    --::                                                                      
                                                                      ::::                                                                    
                                                            --::      ..::..                                                                  
                                                            ::::        ::::                                                                  
                                                          ::::            ::--                                                                 
                                                          ::--            --::                                                                 
                                                        ::::                ::::                                                               
                                                      ..::--      ::::      --::                                                               
                                                      ::::      ..::::        ::::                                                             
                                                    --::        ::::::::      ..::..                                                           
                                                    ::::      --::....::..      ::::                                                           
                                                  ::::        ::::    ::::        ::--                                                         
                                                  ::--      --::        ::--      ::::                                                         
                                                ::::        ::::        ::::        ::::                                                       
                                              ..::..      ::::            ::::      --::..                                                     
                                              ::::                        --::        ::::                                                     
                                              --::                          ::::        ::--                                                   
                                                ::::--                      ..::--      ::::                                                  
                                                  ::::::::::--                ::::        ::--                                                
                                                      ..--::::::::::..          ::::      ::::                                                
                                        ::::                  ..::::::::::::    --::        ::::                                              
                                      ..::..                          --::::::::::::::      --::                                              
                                      ::::      ..::..                        --::::::        ::::                                            
                                    --::        ::::                                ..--        ::--                                           
      
                                                                                                                                              
                                                                                                                                              
      
                                        mmmmmmmm..      mm  ::mm      mmmmmmmm        ::mmmmmm::                                              
                                      --        mm      mm++..      mm      ..mm    ++mm      ++++                                            
                                                  ++    mm        mm                mm          mm                                            
                                          ::++--  mm    mm        mm              ::::          ++::                                          
                                      ++::      ::mm    mm        mm              ++::          --::                                          
                                      mm          mm    mm        mm                ++          mm..                                          
                                      mm        ++mm    mm        --mm        mm    mm          mm                                            
                                      mmmm    mm  mm    mm          ++mm..--mm::      mmmm  mmmm                                              
                                          --..                          --..              --