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