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