######################################################################################################
######################################################################################################
######################################################-..-############################################
###########################################.-######=..-=+.############################################
##########################################.=:...#-..@#*..#############################################
##########################################:.-%#+...#:...:%+.##########################################
############################################:.-=@+##++++:..-##########################################
###########################################..--.:####:.---+###########################################
####################################### ....=#@@%===%%@@#=...:=#######################################
#################################### ...@%=+***********++++=%@..-%####################################
##################################..:%==****+%@@@@@@@@@@%=++++==%:..##################################
#################################..+@=****=@@+:...#@..-:+@@=++++%#+.-#################################
################################.-=%+****=#=-:%####@###%:-=#=++++=%=-.################################
##############################*..==******#=-:%##########%:-=#++++++%=..@##############################
##############################*.@=******+#+-.+@####@###@+.-+#++++++=%@.=##############################
#############################: =%+*******@@:....--##--....:@@+++++++=@=.+#############################
#############################*.@=+*******+%@@%%%%@@@@%%%%@@%++++++++=%@.=#############################
#############################*.#+****************************+++++++==#.=#############################
#############################*.@+*****************hi*********+++++++=%#.=#############################
#############################*.@=+******=#=+**************+=#=+++++==%@.=#############################
##############################-.%=*******%#%+************+%#%+++++==%@.:##############################
##############################=.=%+*******+%@%=++****++=%@@=+++++===%=.@##############################
################################.=%+*********=@########@=+++++++===@=.################################
#################################.=#%++++******+++++++++++++++===%#=.#################################
#################################+.-+@=++++++++++++++++++++++==%@+-.=#################################
###################################=.-=#%=++++++++++++++++===%#=-.%###################################
#####################################=...==%%===++++=====%%==...=#####################################
##########################################-...*########*...-##########################################
##############################################%========%##############################################
######################################################################################################
######################################################################################################