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