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