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