###                                                                   
                            ####  ############                   ############       ###############
                             ###  ##############      #####      ##############    ################
                            ####  ##############  ############   ###############    ###############
                            ####            ###   ############   ###        ####              #####
                            ###            ####  ###       ###  ####        #####            ####  
                           ####           ###   ####       #### ###         ####           #####   
                           ###          ####    ###        ### ####         ####          ####     
                          ####          ###    ####       #### ###         ###           #####     
                          ###         ###      ###        ### ###       ######    ##########       
                         ###         #############      #### ####################################  
                        ###        #######    #############  ####    ##########     ####      #####
                       ####       ####        ##############################       ###             
               #      ####      ####            ####  ##############    ###      ####              
             ###     ####      ####                  #### ###          ####    ####                
            ###      ###       ###                   ### ###          ####   ####                  
           ###      ###      ####         ###      ###  ####         ####  ####                    
          #####    ###      ####         ###      ###  ####       ###### ####                      
          ############     ####         ###########    ###############  #########                  
           #########      ####           #########    ##############    ################           
           ######            #            ######                                     ###           
                            #                                                                      
                            #                                                                      
                           #                                                                       
                                                                                                   
                          #                                                                        
                                                                                                   
                         #                                                                         
                         #                                                                         
                        #