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