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