:::::::::
:::::::::::: ::::::::::::::::::::::
::::::::::::::::::::: ::::::::::::::::::::::::::.
:::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::. :
::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::: .:::::
::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::: :::::::::::::::::::::::::::.... ::::::::::::::::::::::::::::
:::::::::: :::::::::::::::::::::::::: .::::::::::::::::::::::::::::
::::::::::: :::::::::::::::::::::::. .::::::::::::::::::::::::::::
::::::::::: ::::::::::::::::::::::: .:::::::::::::::::::::::::::::
::::::::::: :::::::::::::::::::::::::::. .:::::::::::::::::::::::::::::::
::::::::::::::: :::::::::::::::::::::::::::::. .::::::::::::::::::::::::::::::::::
:::::::::::::::::: .:::::::::::::::::::::::::::::. ::::::::. ::::::::::::::::::::::::::
:::::::::::::::::::: ::::::::::::::::::::::::::::: .::::::::: .::::::::::::::::::::::::::::
::::::::::::::::::::. ..::::::::::....::::: ::::::. :..::::::.:::::.:::::::::::::::::::::::::
:::::::::::::::::: .::::::::::.. .:::. .::::::. ..:::::::::::: :::::::::::::::::::::::::::
::::::::::::::::: .::::::::::. .::::::::::::. .::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::: .::::::::::::. .::::::::::::. .:::::::::: .:::::::::::::::::::::...:::::::::::::::::::::::::
::::::::::::. .::::::::::: .::::::::::::. .:::::::::::::: .:::::::::::::::::::::::: ..:::::::::::::::::::::::::
::::::::::: .::::::::::: .::::::::::::. .::::::::::::::::: .::::::::::::::::::::::::::. ..::::::::::::::::::::::::
:::::::::: ::::::::::: .::::::::::::::. :::::::::::::::::::: :::::::::::: ::::::::::::::::. .:::::::::::::::::::::::
::::: .::::::::::: :::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::. .::::::::::::::::::::::
:::::::::::: :::::::::::.: :::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: .::::::::::::::::::::
::::::::::: ::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: .:::::::::::::::::::
::::::::::: :::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::: .::::::::::::::::::
:::::::::::: :::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::: .:::::::::::::::::
:::::::::::. ::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: .:::::::::::::::::::::::
::::::::::: ::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::: .::::::::::::::::::::::::
:::::::::: ::::::::::::::::::::::::::::: :::::::::::::::::::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::: :::::::::: .::::::::::::::: :::::::::::::::::::::::::: ...::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::: .:::::::::: :::::::::::::: ::::::::::::::::::::::::::: .::::::::::::::::::::::::::::::::::::::::::::::
:::::::::: ::::::::::: ::::::::::::::: ::::::::::::::::::::::::::: .::::::::::::::::::::::::::::::::::::::::::::
:::::::::: :::::::::::: .:::::::::::::: :::::::::::::::::::::::::. .:::::::::::::::::::::::. .:::::::::::::::
::::::::::. ::::::::::: :::::::::::::: ::::::::::::::::::::::::: ::::::::::::::::::::::: ::::::::::::::
::::::::::: :::::::::: ::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::.:::::::::::::
::::::::::: .::::::::: :::::::: ::::::::::::::::::::::::: .:::::::::::::::::::::::::::::
.::::::::.: :::::::::::. ::::::::::: ::::::::::::::::::::::::::::
::::::::::.:::::::::::. .:::::::::::::::::::::::::
::::::::::::::::::::::. ::::::::::::::::::::::
:::::::::::::::::::::. .::::::::::::::..
.::::::::::::::::::::: ..:::.::
:::::::::::::::::::::
::::::::::::::::::::.
::::::::::::::::::::
:::::::::::::::::::
.:::::::::::::::::::
.::::::::::::::::
::::::::::::::
..:::::::::::
:::::::::
.:::::
.......
...........
.............
..............
.......................
......... ..............................
...................................................
.............................................-*...-------
..............................................------------ ...........
.............................................:------------------ ....................
...........................................:--------------------- ...... ................................
.........................................------------------------- .......... ......................................
.................................... ---------------------------- .......... ............................................
............................ ---------------------------- ............. .............................................
............... ---------------------------- .............................................................
---------------------------- .............................................................
------------- --------------- .............................................................
------------- --------------- .................................. ..................
------------- ------------------- ............................. .........
------------ ------------------ ........................ ........
--------- --------------- ................. ........
-------- -------------- .............. ........
-------- -------------- ......
-------- --------------
-------- -------------
-------- -----------
-------- --------
--------