i.i:i:::i:i:i:i:i:i:i:i:i:i:i:i:i:::i:i:i:::i:i:i:i:i:i:i:i:i:i:i:::::i:i:i:i:i:i:i:i:i:i:i:i:::i:i:i:::i:i:i:i:i:i:i:i:i:i:::::i:i:i:i:i:i:::i:::i:i.
: .........,.,...,...,...........,.,.............................,...............,.........,.................................,...........,.,.,...,... 
:.:::::,:,:::::::::::::::::::::,:::,:::::::::::,:,:,:::,:::::,:::::::,:::::::::::::,:::,:::::,:::::::,:::,:::::::,:::::,::::i:i:i:::i:i:,.i:::,:i:::i.
:.::::,:,:,:,:,:::,:::::::,:::,:::::::::::,:::,:,:::,:,:::::,:::,:::::::,:::::::::::,:::::::::::::,:,:::,:::::::::,::::::::,...:,,.,,,.:,.:: ,.,:, ,:,
i.:,:,:::,:,:::,:::::,:,:::,:::,:::::,:,:,:,:,:,:::::,:::,:::::,:,:,:::::,:::::::::,:::,:::,:::::::::,:::,:,:,:,:,:::,:::::.,.,.,.,.,,.,i ..,., ..,.i.
:.::,:::,:::::::::::::::::::,:,:::,:,:,:,:,:::::::,:::,:::,:,:::::,:::::::::::::,:,:,:::::,:::,:,:,:::::,:::,:,:::,:,:::::,::i:::i:::i:::::i:i,::i:i:,
:.:::::,:,:::::::,:,:::::::,:::,:,:::,:,:,:,:::,:::,:::::::,:,:,:::::,:::,:::,:::,:::::,:::,:,:::::::,:,:::::,:,:::::,:::::,:::,:::,:::::::::,:::::::.
:,::,:,:::,:::::::,:,:::,:::::,:,:::,:,:,:::,:,:,:,:::::::::::::,:,:::,:::,:::,:,:,:::,:::::::,:,:,:,:::::,:,:,:::::::,:,:,:,:::::::::,:,:::::::,:::,,
i.:::::,:::,:::,:,:::,:::::,:,:,:::,:,:::::,:::::::,:,:,:::::::::,:::,:::::::::::::,:,:::,:,:::,:::,:::,:::::,:,:,:::::,:::::,:,:::,:,:,:::,:::,:::,:.
:.::::,:::,:,:,:::,:::,:,:,:,:::::::::,:::,:,:::,:::,:::,:,:::::::::::::::,:::,:,:::::::::,:,:::,:,:::::::::,:::::,:,:::::,:,:::::::::,:::,:,:::::,::,
:.:,:::::,:,:,:,:,:,:::::::::,:::,:,:::,:::,:,:,:::,:::::::,:::,:,:::::::::::::,:::::::::::::,:,:::::,:,:,:::::::::::::::,:::::,:::::,:,:::,:,:,:,:::.
:,,:,:,:::::::::::,:::::::::,:,:::,:::::,:::::::::,:,:::,:,:::,:,:,:,:::,:,:,:,:::::::::,:::::::,:,:::,:::::::,:::::,:::,:::::,:::,:,:::::,:::::,::::,
:.:::,:::::,:::::::::,:,:::::::::::,:::,:,:,:::,:::::::,:,:,:,:::,:,:,:,:,:::,:,:,:::,:::,:,:::::::,:,:,:,:,:,:::,:,:,:::::::,:,:,:,:,:,:,:::,:::,:,:.
:,::,:::,:,:::::,:,:,:::::,:,:::,:,:,:,:::,:,:,:::,:,:::,:::::,:::::::,:::::,:,:,:::::,:::,:::,:,:::::::::,:,:,:,:::::::::,:,:::,:,:,::::::::::::::::,
i.:,:::::::,:,:::::,:,:,:,:::,:,:::::,:::,:,:::,:::::,:::::::::,:::::::,:,:,:,:::,:::,:::::::,:::::::::::,:::,:::,:,:,:,:,:::,:::,:::::,:::::,:::::,:.
:.::,:::::::,:,:,:,:,:::::,:::,:,:::,:::,:::,:::::,:::,:::,:::::::,:,:::,:,:,:::::,:::,:::::,:::::::::,:,:::::,:,:::::::,:,:,:,:,:,:::,:,:,:::,:,::::,
:.:,:,:,:,:,:,:::,:::::::,:::,:::,:::,:::,:::::,:::::,:::::::::,:::,:::,:,:::::,:,:,:,:,:::,:::::::,:,:::,:::,:,:,:,:::,:::,:,:::,:,:::,:::::,:,:,:::.
:,,:::,:,:,:,:,:,:::,:::,:,:::::::,:::::,:,:,:::::::::::::,:,:::::::::::::,:::::::::,:,:,:::::,:,:::::::::,:,:::,:,:,:,:::::::,:,:::,:::::::::,:,:,::,
:.:::,:::::::,:::::,:::,:::::::::::::,:::::::::::,:::::::,:::::::::::::,:::,:::::::::,:::,:::::,:,:,:,:,:::,:,:,:::,:,:,:::::,:::,:,:::::,:::,:,:,:::.
:,,:,:,:,:,:,:,:::::::,:::::::::,:::,:::,:,:::,:::,:,:::,:,:::::,:::::,:::::::::::::,:,:,:::::,:::::::,:::::::,:::::,:,:,:::::::,:::,:,:,:,:,:,:,:,::,
:.:::::::::,:,:::::,:::,:,:,:::,:,:::::::::,:::::,:,:,:,:,:,:::::::::::::::::::,:::,:,:,:,:::,:::::::,:::,:,:,:,:::::::,:,:,:::::,:,:::::,:::,:::::::.
:.::,:::::::,:,:,:,:::,:,:,:,:,:::,:,:,:,:::::,:::,:::::,:,:,:::::::,:,:,:,:::,:,:::::,:::,:::::,:,:::::::::,:,:::::,:::::::::,:,:::::::::::::::,::::,
:.:,:,:,:,:::::::,:::,:,:::::,:,:::::::::::,:::,:,:,:,:::::::::,:,:,:::,:,:,:,:::,:::::,:,:,:,:,:::,:::::::::,:::,:,:,:::::,:::,:,:::::::::::::::,:::.
:,,:,:::::::::::,:::,:,:::::::::::,:,:::,:::::::,:,:,:::,:,:::::,:::,:,:,. ..,::.. . ..,,:::,:::,:,:::,:,:,:,:,:::,:::,:,:::::,:::::::::::::,:::,:,::,
:.:::,:,:,:,:,:,:,:::::,:::::::,:,:,:,:::,:::::::,:,:,:::::::::,:::::,:..:ii;;  :;;ii::.:,:,:,:::::,:::::::::,:::::,:::,:::,:::,:,:,:::,:,:,:::,:,:,:.
:.::::::::,:,:,:,:,:,:::::,:,:,:::::::::::,:,:::,:,:::,:::::::,:,:::,.. BW@@WB;:SWBBW@MS :,:::::,:,:::,:::::::::::::::::::,:,:,:::::,:,:,:,:::,:::,::,
i.:,:,:::,:::,:::,:,:,:,:::::::::,:::,:::,:::::::,:,:,:,:::,:,:::::,.SZ7Z.i:ii77rii:W Sa ,:,:,:::::::,:::,:::,:::,:,:::::::::::::,:::::::::::::::,:::.
:.::,:::,:,:::::::::::::::,:,:,:::::::::,:,:,:,:,:,:,:::::::::::,::,.@ ZX  .......  8 7a :,:::::::::::::::::,:,:,:::,:,:::::,:,:::::,:,:::,:,:,::::::.
:.:,:::::::::,:,:::,:::::::,:::,:::,:::::::,:,:,:::::,:::::,:::,:,:.:870W ,,,::,: ,iMiBX ,:,:,:::,:::::,:,:,:,:,:::::,:::,:,:,:,:::::::,:,:,:,:,:,:::.
:.::::::::,:,:,:::::,:::,:::,:,:,:,:::::::,:,:,:::,:,:,:,:,:,:::,::,.0XXZ,.::::,.;MZXXM8 ,::::,:,:,:::,:::::,:,:,:::::::::::,:::::,:,:::,:,:::,::::::,
i.:::,:,:,:::,:,:,:,:,:,:,:,:::::,:::,:::::,:,:,:,:,:::,:::::,,,:,:, 8XS2.,::,:, @;    0:.,::,:,:::,:::::::::,:,:::,:::::::,:,:,:,:::::,:::::,:,:,:::.
:,,:,:,:::,:::::,:,:::::,:::::,:,:::::::::,:::::::,:,:,:,:::,, ..,:, 0;MM,.:::,, B   , B2 ,:,:,:::,:,:::::::,:,:::,:,:::,:,:,:,:,:,:::,:,:::::,:,:,::,
:.:::,:::,:::::::::::,:,:::,:,:,:,:,:::,:,:::,:,:::,:::,:,.   :, .,. ;0r0..,:,:, B@BBMWM@ ,::::::,:,:::,:,:,:::,:::,:::::::::,:,:,:::,:::::,:,:,:,:::.
:.::::::,:,:::,:,:,:::::,:::::,:::::::::::::,:,:,:::,:,,   irZMM@     ,Z2  ,.,.. ZMMMMMMX ,:::,:::::,:,:::,:::::::,:::,:::,:::,:::,:::::,:::::,::::::,
i.:,:,:::,:,:::,:,:,:,:::,:::::,:,:,:,:::,:::,:,:::,:,, ;0MW8MMWXrS0BS. M7,,..,.. .   Z; .:::::,:::::,:::,:::,:::::,:::::::::,:,:,:::,:::,:,:::,:,:::.
:.::,:,:,:,:::::,:,:,:,:::,:,:,:,:::::::::,:,:,:,:,::, @M8;i@M80WMMMBW8Z0MB82B0B0ZZZ28Mr :,:,:::,:::,:::::::,:::::::::,:::,:,:,:::,:::::,::::::::::::,
:.:,:,:,:,:,:,:,:::::::,:::::::,:,:,:::,:::,:::,:,:,:,.;8rS;XMMMMM@2rrXZ,,ir77X777X77i,.,,:::::::,:,:,:::::::::::,:,:,:::,:,:,:::,:,:,:::,:,:,:::::::.
:,::::::::::::,:,:::::,:,:::::::::,:,:,:,:::::,:::,:::,..i           .  .. . . . . . ..,,:,:::,:,:,:::::,:::,:,:,:,:::::,:::::,:::::::::::,:::::::,::,
:.:,:,:::::,:,:,:,:,:::,:::,:::::,:,:,:::,:::::,:,:::::,,.:,:...,.,,,,,,,,:,,,:,,,,::::,:::::::::::::::::::,:,:::,:,:,:,:::::,:,:,:,:::,:::::,:,:,:::.
:,::::::,:::,:,:,:::,:::::,:::::,:::,:::::::::::::,:::::,:::,:::,:,:,:,:::,:,:::::::,:,:::::,:::::::,:::::::::,:::,:,:::,:::,:,:,:::::,:::,:::::,::::.
i.:::::::::::,:::,:,:,:,:,:::::::,:::::,:::,:::,:,:,:,:::,:,:,:::::::,:,:::::,:,:,:::::::,:::,:::::,:::::,:::::,:,:,:::::,:,:,:::::,:,:::::,:,:::::::.
:.::,:,:::::,:,:::::,:,:::,:::::::::,:,:::,:::::,:,:,:::::::::::,:,:::::::,:,:::,:,:,:,:::::,:::::,:,:::::::::,:::::,:::::::::,:::::,:,:::,:,:::,::::,
i.:::,:::::,:,:,:,:::,:::,:::::,:,:::,:::::,:,:::,:::,:,:,:::::::::,:,:::::::,:::,:::,:::,:::::,:::,:::::::::,:::::::,:::,:::::::::,:,:::,:::,:,:::::.
:,::,:::::::,:,:,:::::::,:,:::::::::,:::::,:::::::::::::::::::::,:,:::::::::::,:::::,:,:::::::,:,:::,:,:,:::::::::::,:::,:,:,:::::,:::,::::::::::::::,
i.:,:::,:,:::,:,:::,:::::,:::,:,:::,:::::::,:,:,:::,:::::,:,:::,:,:::,:::::::,:,:::,:::::,:::,:,:,:::,:::::,:,:::::,:::::::::::,:::,:,:::::,:,:,:::::.
:.,:,:::::,:::::,:,:::::::,:,:,:,:::::::::,:,:,:::,:,:,:::::::::::::,:::,:,:,:::,:::,:,:::::::,:::::::,:,:,:::,:::::,:::,:::,:::::::,:,:,:,:::::,:::,,
i.:,:::::::,:::::::,:::,:::::::::::::::::::::::::::::::,:::::::::::::,:,:::::::,:,:,:::::::::::,:::::::,:,:,:::::,:::,:::,:::::::::::::,:::::,:,:,::i.
:,::::::::::::::,:::::::,:::::::::::::::::::::::::::::::::::::::::,:::::::::::,:::,:::::::::,:::::::::::::::::::::::::,:::::::::::::::,::::::::::::i:,
i ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,...,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,...,.,.,.,.,.,.,.,.,...,.,.,...,...,.,.,.,.,.,.....,...,.,.,.,...,.,.,., 
