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