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