llcl:::::;::cc:;;;::;;;;;cllc::;,. . ... .,,'.;dkOKKKKXXXXNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
ooooc:::::clcc:;;;:c:::cclll:'.... . .,,'.;dxkkkkkkkkkOOOOOOO000000KKKKKKKKKKKXXKKXXXXXXKKKKKKKKKKK
lllccc:::cccc:c:::cccc:c:;;,. .. .,,'.;dxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxx
:clcclccccc:;::::cllc:;,'..... ... .:;,;cooooooooddddddxxxxxxxkkkkkkkkkkkkkkkkxxxdddolccccccccccc
llllllccccc:;::cll:,'.. ........ ...':cllllloooooooooddddddxkkxxkxxxxxxxxxxxxxdllll;'''''''''..
ddooollllc::clolc;.... .... ...,::::::::::c::ccllllodddddoooooooooolool;';:.
llccllllccccclc;'.. . ..... ';;;;;;;;;::;;:ccccclooooooooollllolllll,.;;.
...'',;;;:::::,........ ... . .,,;;;;;;;;:;;;::ccclooooolllllllllllllc,.,;.
......... ... ..... . . . .,,,,,;;,,;:;;;::::cclollllllllllllllllc,.,;.
.... . . . . .,,,,,,;,,;;;;;:::::clllllllllllcllllccc,.,;.
. . .,,,,;;::::::;;:::::cllllllllllccccllccc,.,;.
. . .,;:oxk000KK0kdl::::cllllllllccccccllccc,.,;.
. ..,,'.. ..,;:cc:,.. . ,ldxxxOKKXXXXNXOoc::cllllllccccccccllccc,';;.
... ..'';:;;:' ..;cloodddollc:;'. ...;oxdlclOK0KKKXNXOdlc:cllllllcccccccclolcc,';;.
...... ...,;,;;;,:, .';cloodxxxddddxxdoll:,. .'':oxdlcloxkkO0000Okxlcc::clllllcccccccclolcc,';;.
......... . ..',;::;;;;;;,,;,. .,:loolokOkxooodxxdllooodd:. ......cdxxkdc:clllllcccllldxlcclcclllllccccccccllccc,';:.
.....'.... ..,,;:::,,;,,'',;'. .,cloooldOkdllodddocllcccloxl. ......cxkxoc:::cclc:;::cclooc:clccllllccccccccclolcc,';:.
.......... .';;;;,,,''.';:,. .,:lodoloddoccloooc:::::::ccldc. .....';ldoc::::coxoc:::cclxdc;:cccllllccccccccclolcc;';:. ...
'''''','...........',;:::,'''.':l:. .;;coolclolc::cllc:;;;::::::ccod' .....,cddc::;:::;;;;;;;;clc;,cc:clllccccccccccllccc;'::. ....
:cc:,,;:::..,:,. .'',;:c:'....;loc. .,::cloccllc:::c:::;:cc::::::clod;. .codxl;;;;;;;::::::;::;.'locccccccccccccccllccc;'::. .....
::::;,;c:;..',. .''',,;:,...,cll:..';:clolcclc:::::;;,;clcc::;:clodxc. ..cdxxl:;;,,;;;::::::;:;';ddolcccccccccccccllccc;'::. ...
:ccc:,;c:,. .'. .,'..'',,,,;;,'...,;:llolllc::::c:::cooool::;cdxxxxl. ..:ooll:;;,,;;;;;::::::;,ckkdol::cccccccccclolcc;,::.
,,;,,'''... .'. ':, .,;;;;::;. .';:llldooolccllc::cooloolc::cdkxxko,. .;okOOo:;,,,,,,;;;;;::;:oO0kdl::cccccccccccllcc;,;:.
..'''....''..;,. ';' .',;,;;;;. .,;collddddolllc::;:::ccc:c:;:cloool;. .'lOKXkl::;;;,,;;;;;::lOK0Okdlc::ccccccccccclcc;,::. ..
.........''..,,. .,' .',,;,''. ';:lolldxxdddlc:;;;;;;::::::;;;:cccl:. .':o0XOlccc:::::cclodkKXKkkOdlc::ccccccccccclcc;,::. ..'
...'''...''..,:;'.... .','''.....,:coolldxkkkxl;;;,,;;;;::::;;;::c:clc' ....;cxKXKd:cccccloxk0KXXK0OxxOko:cc:cc::cccccclcc;,::. .'
..........'....... .. .','..',''';:lddllddxkkdc;;;;;;;;:::::::cloolldo;.';;;lk00OOOx:ccccclkKXXK0O0OOkxxdlccc::c::::cccclc:;,::. .
..................'... .',,,,,,,',:cldollodxkkxc;;;;;;;:cccc::ccodoloxxdlooooxkxdddkdccclloxKX0Okdodooxdolccc::::::::::c:cc:;,::.
'...............','''. .',''''''',:looollodxO0ko:;;;;;;:ccccc:::ldoldkOkooxkkxllloolc::::clkXkc:cc:cdoc:::;;;:::ccccc:::cc::;,;;.
;;,...........'',,.... .''.......;clodollooox0Odl:;;;;;;;;;;;:ccloodOOOkxodkdc:cll:,,,,,,,,:o:,,;lxdl:;;;,,,,;:ccccccc:::cc:;,;;.
oc:;'........'''''.... .''.......;clodolllol:okdoc:;;;;;;;;;;:::clok0OOOOkkxl:cc:;,,,'''',,,,,,,;okocc;,,,;;:;;:ccccccc::cc:;,;;. ...
clolc;,''..''''',''... .''.......:llodocllllcoOxlcccc::;;;;;;:::cldkOOOOkxddlc:;,,,,''''''''',,,,;;;;,,,;;:::;;;:cccccc::cc:;,;;. ......
:::cddl:;,'..',,,'......,,......'colldlcoclolokxlc::cccccc:::cloodxkOOOkkdoo:;,,,,,,,,'''''''''''''''',;::::::;;;:cccccccclc;,;:............
,;:::lddoc:,'..''.......',... .;lolodlldlclllxxlc:::::ccllodk0OkxddxOOOOkxl;,,'',,,''''''''''''''''',:::;;:::::;;cccccccccl:,::............
''',;;cloddl:;;::,...'''',......:lllddlodlclooxkolc::::ccllodxOkxdoccdOO00Ol,,,''''''''''''''''',,,,,;:;;;;;:::::;:cccccccclc,::'...........
''''',:::cldxddol;'.....'''....,clloxxodxoldkOkxdolc:::cclllloxxooolldxkO0kc,''''''''.....'''''',,,,;;:;;;;::::::::llcccccll:;::'...........
;;;;;::cc:;lxxl:,,;,'..''.''..':clldxdodkkookO0kxdolccccccllllooooodxdcclxdc;,,'''........''''''',,,,;;;;;;::::cc::lllccccoo:;::,...........
;;,,,;;;;,,cxdc;,,;;,;;;,,,'..,:llodxdookOxdx00kxkxocccccclllllooddxddo:;cc;;;,,,''''.......''''',,,,,;:::;;:::ccc:clllllloo:;:::cc::::;;,,'
::;;;;:;,;;lxxl;,,;::::;:::;,,;clodkkdodxkkxxO0OdxOkdlccccccllllollllllc::;;;;;;,,,'''''''''''''''',,,;:cc;;;:::cc:clllllloo:;:::ccccclccccc
llcllool:::lddo:;,::::::::clccclldkOxodxxxkkxO00xoxOOxolcccllllllccccc:,',,,;;;;,,;,,,,'''''''',,,,,,;:cll::;;::cc::llllllloc;:c:ccccccccccc
lccoolccclllddo:;;::;;;;::ccccclldkkodxdxddxk0KKOdoxOkxoccclolcclcc::c;,,,,,;,;;,,,,;,,,,,,,,,,,,,,,;:::ldl:;;::ccc:lddllllol::::ccccccccccc
clooocccccodxxdc;;::,;;;,;:::ccloxkooxddxooxk0KK0koodkkxdlllolcclc:::::,,,,;;,;;;,,,,,,,;;;;;;;;;;;;::cccol::;:::cc:oOOkdoolccc::ccccccccccc
oddolllllloxOOxo:;::,,,,,;;;;:coddolooodxoodxk0K00koodxkxdooolclllc::::;;;;;;,,,,'''',,,;;;;;;;;;::cc::ccllc::::::cccxKXK0xdlcc::ccccccccccc
:ldolllllodk0K0Odlc:,,,,,;;;;:looollllloxdllddxOkkOkdloxkkxdddolodoc::::;;;:;'.......'',;;;;;;;;;::cccccclll::::;::c:l0XXKK0Oxoc:ccccccccccc
coxkxxxxxxkkKKKK0Od:,,,',,,,,;cllllllllldxoclddkxoxOxdooxkkxxxxddxxdl:::;;;:,''..',,'''',;::;;;;;:ccccccclllccc::;::ccxKKK0Okxl:clcccccccccc
oxkkxxxxxxxk00Okkxo;''''',,,,;:c:::ccccclddlcloxkodkxddloddddddxxxxkxoc:;,;,'','',::,'.',;,,,;;;;;:::::::clolc:::;::c:o0K0dcc;',clcccccccccc
lllccccclldddoolllc,'''''',,,;::::::::::clooc:coxdoxxoollooooooooddxxxdoc;,'.'''.',,'''';:,,;::;;:c:::;::::lol:::::ccccclc;'';::cccccccccccc
lcc::::::;;:llllll:,,''''',,,;:::::::::::clolcclddddxolllloolllllloodxdc;,,'''''.',,''',cc;;:::;::;;::;:cccldoc::::cllc;''''',:::::::ccccccc
ddoc:::;,,,,:cccc:,''''''',,;:::::::::::ccclolcloxddxdlccllllccc:cccc:;,',,,''''',,,,',,::;;:cc:;;,,:ccloolloocc:::cclc;'.'',',:;;;;::::::::
oc:;;,,,''',;;,,'''''''''',,,:::::::::::cccloolldxxdkxoc:c:;;;,,,,,,,',,,,,;,''',,,,,,;:lc,,:c:;;,,;coolllccldoc::cclll:'',,,,,c:'......',,;
c:;,''.''..,,...'..''''''',,,:c:::::::::cccloooldxxxxkdc;;::,,'''''''',,,,,;,''',,,'',;::;,,::,,,,';coll:;;clodl::cclllc;,,',,,clc::;,,'....
l:;'''''..'','........'''''',:cccc:ccccccccloddlodkkkkxl:;::;,,'''''',,,,,,;;,',,,''',;::;,,cc:;,,',lollc;;:lodocccllollc;,,,,,;,,;,;;::c::;
l;;;''''..'','.''.......'''',:cccccccccccclloddlldxkkkkoc:;::,,'''',,,,,;,;;:,,;;,''',:ll;,,cccc;,';lolllc:cclddlccloool:;,,,;;:l;,....';ccl