WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKKXxkd::';,'..,'
WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWkdxlll:;,;,.....
MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXdolc;,,,''.....,
WNKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOdc:;,,'.......::
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMN0c;;,;'.'. .....
MMWXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNko;,''.... .. ..
MMMNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMWXOo:,'...,,.. . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWMMMMMMN0oc;,,'..',..... 
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWNNNNNNNNNNNNWWWWWNkc:;,,,:.;'..... 
MMMMMMMMMMMMMMMMMMMMMMMMWWWWWWNNNNNNXXXNNNXNNWNNNXXXXXXXXXX0ddololo;,;o';'......
MMMMMMMMMMMMMWMMMMMMWWWWWWNNNXXXXXXXXKXKKXKXXXXNXXXXXXXKKKOdocc:;ldc;.,,d'... ..
WWWWNNNNNNNNNNWWWWWWWNNNNNXXKXKKKKKKK00000KKKKKKXXXXXXKKK0000dxl;,;cd;..'.... .'
OO000KKKKXXXKKKXNNNNNNNXXXXKKK0000000O00O00000KKXXXKKKKKKK00OOko:;;,,'..........
xkkOOOO00K0OOOkkKXXXNXXKK00000kkO0OOOOOkxxkOOkxxO0KK0KKO000K00Oo:;;'',.... .....
dxxxkkOOO0OOxxxxOKKKKK00OxxkOkxxkOOOOkolllldkxolldOOkkOkOO00000Okxcc::',.. ..'''
xkkxOOOOO00xddxkO000000OOxddxxddddkkkxoccclloolc:ckkdxkxkOOOO0OOOxxxxd''.'..'...
kkkkO000K000KOO0KKKXKK000Oxkkxdxdokkxxdllclloll::lxxoooddxkxxkxkkkOOOx:,,, ';...
xkkkOOOO0OO0OOO0OOO000O0Okkxxxxddoxxdxxdooddoolc:ldxdddcccoxxxxxxkkOOdc,:' ,;';'
xxxxkkkxxxxxxxxxxkkO0OOOOOOkOkOkklkxxxxxxdddoooooooooolc:;:dxxdddxxxd::;:...'...
ddxxxxddddxxxxxkkkkkkkkOkkkxkkkkxoxkkkkkkkkxkkxkxxxdddddllcodddolodol;,:,...... 
ooooooddddddodddddxxxkkkxxkkkxxxxoxkxxkkkkkdxxxxxkxxxxxxdxkOkkxl,;'.',''........
lllooooxdxddxdxxxdddxkkkkkkxxkkxxloxddxxxdxxxxxxddollcoddoodooolc:.,''''.. .'...
lllooddollodxxxkkxxxxkxxddkkkOkkOxlxkkkxkkkxxxdllclx0KXXXXOoclllccllc;;,;;;:,'..
llcloodddooodddddodddxxdxdxkkkkkOkokkkkdkxxxocccookKXXXXXKoc:ccc:;:cclolccc:...'
llllollloooooooddxxddddxxxOkkkkkkklxkkxoxxdolc:cxO0XXKOXXKd:;:c:;;:l:clc::l,.. '
cclcllloolloddxxdoodddodxdxddxkkkxlxdddoddoolclOKO'KN0;XNN0o:;;c;'oo;;ccll;'....
:;;:lccccllolllooooooloddoooooddddcocddddoc:,:cOX0'XW0;XOkKOc;;c:'ll;;ol'.''..',
cc:cccccll:cc::cloooooddddxddodoolccldo:;::,'ckkc:,XW0;0..dOo:;c;.;,''c;.....'' 
::ccllllc::;:clllcooodoxxxdloxkxd:,,:oo,';::;cxd'',xOo:l,;,::'','.'............ 
ccclllccccccclllcldddddxxddOkdddl,;::ll:,;,,,,,,;;,,;;cl:l:::.''..;,..''... ... 
';c:::cllod;cc:;:cddddoolo,do.','.'',cc;',,;';c:''',..,k..Od'..,'.::'';;... ... 
..,.'.':,.'',;'.,c;;l:c:,,;:ll,...'''.',.':x.l0k'...',,x..lok,....;:'';;... ... 
 .. .'''';''..;..cl;;;c:'..,:;;; ''.'....';:,:c;,,,''''.....:''............ ... 
  .  ..,:;'...,'..,;:;;,........ ...''...'',;;;;::;,,,,;'';:;.....   ... .. .'. 
 ..   ..'. ...''..',',,'..       ''''.'..,c:....';kO0o;0..O0O'cl,.'.   .... ... 
..... ... ....;'.....''....   .  ,,',,:'.cd:..ld,:XXXd:K'.0K0'od,.,'.    .. ..  
.. .. . . .'.,;'..  .  .......'' ',,;;c'.,,..lkd';kxxc;l''::;''.........     .. 
....      ...''...     ...'..;;:..',:;c'.'',,,,,,,,,,,,',,,;;.;:..;;....     .. 
 ..  ...........    .........;cc'.',;::'.';;:clc';dxkc;x..kKO'xO:cdc....      . 
;,''',,,,,;,''...  .....  . .',,'...;c:,.:dxkkOk:l000OkOxx0K0OO00Oxc'...        
;,,;;;::c:;...... ......  . .      ..,;,,:odxkdxxxkkkOOOkkxxxddxxxdol:,...      
;;;;;;;;:,' ........   ..           ',,,:ccloo';lolcoxxxxxddodxdddolc;...    .  
;;;:,'.',,.  . .....  .. ...''....',;;::clll:.' ,c,;:odddddddxxddoool;.... .... 
;:c;..  ..     .........;;:::ccccclllllooool.   ...;;oddddxxxddddodoocl:,...... 
c:;,.   .........'....';:ccclollllllooododoo'   ..','ddddddddxxxddddoooc'...    
ccc;,,;;:cc;,',:;'',;'',::lloodooooooooddddxdol.  .',ddxxxxxxxxxdxxddol:,'....  
::c:cc:c:c:cc;;;,'';:,',cloooooododddddxxxddddo,  ..,odddxxxkxxkxxxxxdoc'....   
c:cccc;:;:;,,;;;;;c:::clllooodddddddxxxkkxkkxdd: .;:ccldddxxkkkxxxkkkdol:'..  . 
c::cc::cc;;'...',:coolloolodddddddddxkkkxxkkxxdc.;cllooddddxxxkkkkkkkxooc,......
:::llc:cc;,:;,;'.cclloddolodddddoddxxxkkxxkkxdddolllloddxddxxxkxxxxxxxdol:'.....