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