######################################## ######################################## ###################*#################### ##################/#\################### #################/###\################## ################/#####\################# ########*======*#######*======*######### #########\###################/########## ##########\#################/########### ###########\###############/############ ############*#############*############# ###########/###############\############ ##########/#################\########### #########/###################\########## ########*======*#######*======*######### ################\#####/################# #################\###/################## ##################\#/################### ###################*#################### ########################################