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