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