::::::::::#################:::::::::
::::::#####################:::::
:::########################::
::#########################:
:##########:::::::::::##########:
##########:::::::::::::#########::
::::::::::::::::::::::::::::::::#########:::
::::::::::::::::::::::::::###########:::::
:::::::::::::::::::::::############::::::
:::::::::::::::::::############::::::::::
:::::::::::::::::###########::::::::::::::
::::::::::::::::##########:::::::::::::::::
:::::::::::::::##########::::::::::::::::::
::::::::::::::::#########:::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::##########::::::::::::::::::
:::::::::::::::##########:::::::::::::::