######### #! ! ! !# ###### ! ! ! ###### #+ ! ! ! ! -# ###### ! ! ! ###### #! ! ! !# #########