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