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