;;;;;;;;;;;;;;;;;;,,,,,,''''''''..............   ...................'''',,,,;;;;;;;;::::;;;;;;;;;;;;::::::cccccllllllloooodddddxxxxddddollcc::;;;;;:::::;;,,,,;;;;;;,,,,,,''''''''''''''''......'',,,,;;;;;::::::::ccccccclllllloooooooooooooollc::;;;;;;;;;;::ccc:::::::cloddxxxxxxxdddddddddxxxxxkkxkkkkkk
;;;;:::::::;;;;;;;;,,,,,,'''''''.............    ..................''',,,,,;;;;;;;;;::::;;;;;;;;;;;;::::cccccccllllllooodddddddxxxddddoollc:::;;;;;:::::;;,,,,;;;,,,,,,,,,'''.''''''''''''......',,,;;:::ccccccccccccccccccccccccccccclllllllllccc::::;;;;;,,;:ccc::::;;;;:cclloooodddddddddddxxxxxxxxxxxxxx
:::::::::::::;;;;;;;,,,,,'''................     .................''',,,,;;;;;;;;;;;::::;;;;;;;;;;;::::::cccclllooooooodddddddxxxddddooollc:::;;;;;:::::;;,,,;;;,,,,,,',,''''''''''''''''.......',,,;:cccccllllllllllllllllllcccccccc::::::::::::::;;;;;:;;;;::cc::::;,''''',,,;::ccccllloooodddddxxxxxxxxxx
::::::::::::::;;;;;;;,,,,,''................    .................''',,,,;;;;;;;;;;;;;::::;;;;;;;:::::cccccccllloooloooodddddxxxxxxddddoollc:::;;;;::::::;;;;;;;;;,,,,,,,,''''''''''''''''.......',,,;:cccccllllllllllooooooooooooollllccccc::::::;;;;;;:cc:::ccc::;;:;;,,''''...'',,,,;;;:::cccclllooodddddd
cc:::::::::::::::;;;;;;,,,,''.'............     ................''',,,,;;;;;;:::;;;;:::::::::::::::ccccccccclllooooooodddxxxxxxxxxddddoolcc:::;;;;:::::::;;;;;:;;;;,,,,,,,'''''''''''''''.......',,,;:cccccllllllllllooooooooooddoooooollllllcccc:::::clllc:::::::;;;::;;;,,,,,'''''''''',,,,;;;;;;::::ccccl
cccccccccccc::::::;;;;;;,,,''..............    ................''',,,,,;;;;;;::::::::::::::::::::::cccccccccllloooooddddxxxxxxxxxxxdddoolcc:::;;;::ccc:::;;;;:::;;;;;,,,,,'''''''''''''''......'',,,;::ccccllllllllloooooooooooooooooooooooollllllccccloolc:::::;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
ccclllllccccccc::::;;;;;,,,''..............   ................'''',,,,;;;;;;:::::::::::::::::::::::ccccclllclllooodddddxxxxxxxkkkxxxddoollcc:::::::cccc::;;;:::::;;;;;;;,,,''''''''''''''......',,,;:::cccclllllllooooooooooooooooooooooooooooooollccllllcc::::;;;,,;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''
llllllllllllccccc:::;;;;,,,,''............    ...............'''',,,,;;;;;:::::::::::::::::::::::::cccccllllloooodddddxxxxxkkkkkkkkxxddollcc:::::cccccc::::::c::::;;;;;;,,,''''''''''''''......',,,;::::cccclllloooooooooooooooooooooooooooooooolllccclllc:::::;;,,,;;;;,,,,,,'''',,,,,',,,,,,,,,,,,,'''..''
lloooooolllllccccc::::;;;;,,''............   ................'''',,,,;;;;:::::::::::c::::cc:::::::ccclllllllooooddddxxxxdddddollooooooollllccc:ccccccccc:::ccc::::::;;;;;,,,'''''''''''''......',,;;::cccccclllloooooooooooooooooooooooooooooooolllcccllcc:::::;,,,,,,,,,,,,,,''''''''''''''''''''''''''..''
looooooooollllccccc::::;;;;,,'.............  ................'',,,,,,;;;::::::::::ccc::::cc::::ccccccllllllloooooolllc:;,,,,,''',;;:::::cccc:cccclllllllcccccccc:::::;;;;,,,,,,,'''''''''......',,;;::ccccccllllooooooooooooooooooooooooodoooooolllcclllc:::::;;,,,,,,,''''''''..''''''''''....''''''''...''
oooooooooooolllccccc:::;;;;,''............. ................'''',,,,;;;;:::::::::cccc:cccccc:cccccllllllllllcc:;,,'.......''''',,;;;::cccc:;;;;:::cllllcccccllllc::::;;;,,,,,,,,,,'''''''.....',,,;;:ccccccllllloooooooooooooooooodddddddddoooooollccllcc::::;;,,',,,''''''.....................'''''''....'
ooooooooooooollllcccc:::;;;,''..............................''''',,;;;;::::::::::cccccccccccccccclllllolc:,''....................''',,;;;:cccc:;;;;::lllccclloollc::::;;;,,,,,,,,,,''''''.....',,;;;:ccccclllllloooooooooodddddddddddddddddddoooollclllcc:::;;,,'''''.............................''''.....'
oooooooooooooollllccc::::;,,'...............................''''',,;;:::::::cc:::cccccccccccccccclllc:,'.................',,'',,,,,,,;;;,,',;clc::;,;:ccllloooolcc:::::;;,,,,,,,,,,''''''....',,;;;::ccccclllllooooooodddddddddddddddddddddddoooollcllccc:::;;,,''''''.....................................'
oddooooddoooooolllcccc:::;,,'..............................''''',,;;;::::::ccccc:cccccccccccclllc:,'....  ...............',,,;;;;;;;;;;;,;;,,,;:::;;;,,:looooooolccccc::;;,,,,,,,,,,'''''....',;;;;:cccccllllloooooooodddddddddddddddddddoooddooolccllcc:::;;,,,''''''''''''.......................''''.....
oddddddddddooooollllcccc:;,''.............................''',,,,;;;::::::ccccccccccccccccccc:;,.. .. ............ .   .  ....''',,,,,;,,,',;;;,,,,;;;,,:loodooolllllll:;;;;;;;;;,,,,''''...'',,,;::cccccllllloooooooodddddddddddddddddddoooddoollcclccc:::;;,,''''''''''''..............'''''......'''''...
oddddddddddddoooollllccc::,'.............................''',,,,;;;::::ccccccccccccccccccc:;'.................    ...............,;;;:::cc::;;;:,'''';;,,:lodddoollloolc::;;;::;;;;;,,''....',,,;;:cclllllllloooooooooodddddddddddddddddooooodoolcccccc::::;;,,'''''''''''...............''''''''''''''''''.
ddddddddddddddooooollllcc:,'.............................'',,,,;;;::::cccccccccccccclcccc;...   .............      ...',;;;;:cclldddxkkkOOkkkxdo:,''.'',',loddddoooooolcc:::::::;;;;,,,'....',,;;::clllllllloooooooooooddddooooodddddddoooooooollcclccc:::;;;,,'''''''''''...............'''''''''''''''''''
xxxxxxddddddddddoooollllc:,'.............................'',,,;;;::::ccccccccccccclllll:'.          ......    ....',:coodxxkkO000000KKXKXXXXXXK0kxoc;'''',loddddddddoolllcccc::::::;;,,''..',,;;::clllllllloooooooooooddddooooooodddddoooooooollcccccc:::;;;,,,,,''',,,,''''............''''''''''''''''''''
xxxxxxxxxxxdddddddooolllc;'..............................'',,;;;;::::cccllcccllllclllc;.           ...........';:clodxxkOO000KKXXXXXXNNNXXNNNNXXXKK0kdoc;,;:lloooodddoolllccccc:::::;;,''.'',;;::clllooollooooooddooddddddooooooooodddoooooooollccccc:::;;;,,''''''',,,,,''''''''.......''',,'''''''''''''''
xxxxxxxxxxxxdddddddoooolc;'.............................'',,,;;;;;:::ccllllcccccllcl:..     ..   .........';:;;::llodxkO00KKKKXXNNNNNNNNNNNNNNNNXXXXXKK0xl;,,,;cclloddoollllllcccc::::;,''',,;;::cllooooooooooodddddddddddooooooooooodooooooollcccccc::;;,,,''''''''.''''',,,,'''''....'''''''''''''...'....
xxxxxxxxxxxxdddddddoooll:,..............................'',,,;;;;::::ccllllccccllcl;.      ..    ..,;,,,;:;;:cccllodxkO00KKXXXXNNNNNNNNNNNNNNNNNNNNXXXXXK0xc''',:ooodooooooollcccccc::;,''',;;::clloooooooooooddddddddddddoooooooooooooooooollcc:ccc::;;,,,,'''''''.....'',,,,''''''''''''''''''''''...''...
xxxxxxxxxxdddddddddooolc;'.............................''',,;;;;::::cclllllccccccc,.       .    .';,,::c:;,';cllllodxkOO0KKKXXXNNNNNNNNNNNNNNNNNNNNNNXXXXKKOl,'..,loddddooooolcccccc::;,''',;:cclloooodddddddddddddddddddddooooooooooooooooolcc::cc::;;;,,,,,,,,,''....''',,,,,,'''..''.......''''''''''''''
dddddxxxxddddddddoooolc:,'.............................'',,,;;;::::ccclllllcclll:.        ..  .....';:llc;'';cllloodxkOO00KKXXXNNNNNNNNNNNWWWWWNNNNNNNNNXXXK0o'...';ldddddddoolllllcc:;,'',;:ccllooddddddddddddddddddddddddoooooooooooooollllc:::cc:;;;,,,,,''''''.....',,'',,,,''''''''''''......''''''''''
dddddddddddddddddoooolc;'..............................'',,;;;;:::ccllllllclllc;.       .. ......',,;:clc;..,coooodxxkkkO00KKXXNNNNWWWWWWWWWWWWWWWWNNNNNNXXXKOl.....;odxdddddoolllllc:;,,,;:cllloodddddddddddddxxxxxxxxxdddoooooooooooooolllc:::::::;;,,,,,'''''.......''''''',,,''''',,,,,,'''''''''''',,''
dddddddddddddddddooool:,'.............................'',,;;;;::ccclllllllllll,.       .. ........';;cllc,..';clodddxxxkOO000KXNNNWWWWWWWMMMMMMWWWWWWWWNNNXXK0k;....,:oxxxxxddddooolc:;,,;:cllllodddddxxddddddxxxxxxxxxxxdddoooooooooooollllc:;:::::;,,,,,,,'''........''''''''''''',,,,,,,,,,,'',,,,,,,,,,,
ddddddddddddddooooollc:,..............................'',,;;;;:cccllllloololl;.      .......   ...,;:ccc:;''',:lodxxxkkkkkO0KKKXXNNNWWWWMMMMMMWWWWWWWWWWNNNXXK0o'....;lxxxxxxdddddool:;,,;cclllooddddxxxxxddddxxxxxxxxxxdddddddooooooolllllcc:::::;;;,,,,,,,'''........''''''''''',,,,,,,,,,,,,,,,,,,,,,,;;;
xxxdddddddddddooooollc;'.............................'',,,;;;::ccllloooooollc.       ..   .  .....',;;;;;,',,;:codddxkOOOOO0KKXXNXNNNWWWWWWWMMWWWWWWWWNNNNXXXK0O:....,cdkxxxxxxxxddolc:;;:cclllodddddxxxxxddddxxxxxdxxxxxdddddddoooooollllcc::::::;;;,,,,,,,''................''''''''''',,,,,,,,,,,,,,,,,,,
xxxxxdxxddddddooooollc;'............................''',,;;;;:cclllooooooool;               .......'',''';:;;;:ldxxxkOO0000KXXXNNXXNWWWWWWNWWWWWWWWWWNNNNNXXXK00o'...'cdxkxxxxxxxddolc:;;:ccllooddddddxdxxddddxxxddddxxxxxddddddoooooolllcc::;;;:;;;,,,,,,,,,'...........................'''',,''''',,,,,,,,
odddddddddddddooooolc:,.............................'',,;;;;::ccllooooooooll,             ........''.....';::;:ldxkkOOOO000KKKXXXXNNWWWWWWWNNWWWWWWWWNNNNNXXKK00k:....:xkkkkxkkkxxddoc:::cllloooddddddxdxxdddxxxdddddxxxxxxddddddooooolllcc:;;;;;;;,,,,,,,,'''...............................''''''''''',,,,
::::ccclllloooooooolc;'.............................'',,;;;::cclllooooooooll,           .................,;::;:ldkOOOOO0KKKKKXXXXXNNWWWWWWWWWWWWWNNNNNNNNNXXKKK0Oo;'..;dOOkkkkkkkxxdolc::cllooooddddddxxddddxxxxdddxxxxxxxdddddddooooolllcc:;;;;;;,,,,,,,,''''..................................''''''''''''
;;;;,,,,,,;;;;;;::::;'..............................'',,;;;::cclloooooooooll,         ...............''',;;;;:cokOOOOOO000KKKKXXNNNNNWWWWWWNNWWWWWNNNNNNNXXXXKKKOdc;,.,okOOOkkkkkxxdolccccllloodddddddxxddddxxxxxxxxxxxxxddddddddddooolllc::;;:;;;,,,,,;,,'''...................................''...'''''''
cccc::::;;;,,,,,,''................................'',,,;;::cclllooooooooooo;       ................',,,;;,'';oxkkO00OOO00K0KKKXXXNNNNNNNNNNNNWWWWNNNNNNNNXXXXKKOd:;,,'cxOOOkkkkkkxdolccclllloodddddddddddddxxxxxxxxxxxdddddddddddddoolllcc:;;::;;,,,,,,,,'''.............................'''''''''..'''''''
ccllcccccccc::::;,...                ..............'',,;;;::cclllooooooooooo:.      ..... .........';ccc:,''.;lddxxxddxkkOOOO0KXXXNNNNNWNNWWWNWWWWNNNNNNNNNXXXKKOo;,',,ckOOOOkkkkkxdollllllloooddddddddddddxxxxxxxxxxdddddddddddddddooollc:;;;:;;;,,,,,,,'''.................................'''''''''''''''
;;::::::::::::::;,......             .............'',,,;;:::cllloooooooodddo:.             .......,,:odo:'...';cllc:::::cllodxkkO0XXKKXNNNNWWWWNNNNNNNNNNNNXXXKKOl;'.',:k0OOOOOOOkxdoollllllooddddddddddddxxxxxxxxxxxdddddddddddddddooolc::;;:::;;,,,,,,,'''........................................''''''''
lcccc::;;;,,,,,,'.........           .............'',,,;;::ccllooooddddddddol'             ......',:coxo;'...'.,:c::::;,,'',,;:cldxOO00KXNNNNXXXXXXXXXXXXXXXXKKKkc'...,lO0OOO00OOkxdoolllllooodddddddddddxxxxxxxxxxxdddddddddddddddoooolc:;;;:::;;,,,,,,,,'.........................................'''''',,
dddddooollccc:,...                  ..............',,,;;;:ccclloooddddddddddo,   ..          ......',:ll;'..',',clddddddxxdol:;'',;codkO00KKKKKK0OkkdooodxkkkxO0Oc'..';d00O0000OOkxdoollloooodddddddddxxxxxxxdddxxxddddddddddddddddoooolc:;;:::;;;,,,;;,,,'..........................................'''',,,
ooddoooooooool;'......              .............'',,,;;::ccllooodddddddxxddd:.........''..',;,'',;::;;;,''',;:::c:;',,;:clloool'..'':oodkOOkxxkdolllc:;;:cclodxkl'..,:x00O0000OOkxdollooooodddxxxdddxxxxxxxxdddddddddddoooddddddddoooll:;;;:::;;;,;;;;,,,'......................................''..'''',,,
lllllloooooolc;'...........         .............'',,;;;::ccllooddddddxxxxxxxc...     .'',;cll:,;::clc;,'',;::clodl:cooollc::;:l:....,lxOKKK0xddoodxkkxxddoodxdddc;',:ok0OO0000OOkxdooooooddddxxxxdxxxxxxxxxdddddddddooooooooooooddooolc:;;:::::;;;;;;;,,,'......................................'''''''',,;
cclllllllllllc;'............       ..............'',,;;;::clllodddddddxxxxxxko.        ..,:col;,;clllc,....;loodxkOdoodkO00Okxxxd:..,;:oxk0KX0xoc;;;;:ccodxxO0kooc:::dkO0OO0000OOkdooooodddddxxxxxxxxxxxxxxxdddddddddddoooooddoooooooolc:;::c:::;;;;:;;;,,''...........''''''''''''''''...........'''',,,,;;
::::cccccclllc:,............      ..............'',,;;;;:clllooddddddxxxxxxxxd'         ..';:;,''';:;;'..',:clodxkOOkxdddxkkkkxdooc:::cloxOKKK0kxdoooollllcco0Odlcook0000000000OOkdoloodddddxxxxxxddddxdxxxdddddddddddoooooooooooooooolc:::cc:::;;::::;;;;,,'''''''..'''''''''','''''''''''.......'''',,,,;;
;;;;;;;;;:::c:;'...........       ..............'',,;;;::cllloddddxxxxxxxxxxkd'. ....... ...............,::clodxxkOOOOOOOOOkkxdoodxxdddddxO0KKK0OkxxOKKKXXKOxkkxllod00000000000Okxdoloooddddxxxxxxxxddddxxdddddddddooooooooooooooooooolc::cccc:::::::::::;;;;,,,,''''''''''''',,,,,''',,,,,'......''',,,,,;;
:::::;;;;;;;;;,'..........       ...............'',;;:::cclloddxxxxxxxxxxxxxkd,. .....   ..............,;coddddxxkkkkO00000Okxolllolcloddxk0KKKXK0OOkkkO0KK00OOkdocd00000000000Okxdoloooodddxxxxxxxxddddddddddddddddooooooooooooooooolcc:cclcccc:cccccc::;;;;;;;;,,,,,''''''''',,,,,,,,;;;,'.....''',,,,;;;;
lllllllllllccc:,.........        ..............'',,;:::cclllodddxxxxxxxxxxxkkk:. ...    ...............';clllloddddxkO00000Okxlccodoc:clodxO0KKK000KKKKKKXXXXKKKOdokK0000000K00Okddoooooodddxxxxxxxxddddddddddddddddddoooooooooddddoolc::clllcccccllccc::,,,,,,,,,,,,''''''.''',,,;;;;;;;;;,....'''',,,,,;;;
ooooodddddddddl:,.........       ..............',,;;:::cclloodxxxxxxxxxxxxkkkkd'  ..    ................,,';:cccclodxkkOkxdooc,,cdxddlllodxO0KK00KKKKKKKKXXXXXXK0OO000000000K0Okxdolllooodddxxxxxxxddddddddddddddddddddodddddddddddoolc::clllllcclllllc:;'..'.'''......'''....'',,,;;;;;;,,'....',,,,,,,;;;;
ooodddddddddxdo:'..........     ...............',,;::::cclloddxxxxxxxxxxxkkkkkkl....     ...........'..''..,;:ccclodddddolll:...';;::;;:codk0000000KXXXXNNNNNNXX00000000000000Okxdlc:::ccloodddxxxxdddddddddddddddddddddddddddddddddolc:cllllllclloollc:;''.'..'''..............'''',,,,,,,'....',,,;;;;;;;;
ooddddddddxxxdl;'...........   ...............'',;::::ccllloddxxxxxxxxxxxkkkkOOx;....''.............''''...,,;::cloooolloodl'      ......;codxxxkkod0XXNNNNNXXXXK000000OO00000Okxoc;,,,,;;;:::ccllllloooooooddddddddddddddddddddddddolcccloolllllooollc:;,''''''''''''''''..........''''',,,'''',,,,;;;;;;;;
dddddddddxxxxdc,..............................',,;::::clllooddddxxxxxxxxxkkkkkkko'....''.............''...''',;:clollllllllc;'..       ...',;:coxOo;lk00XXXNXXXXK00000OOOO000Okxdoc::;;;:::::;;;;;;,,;;;::::ccllloooooddddddxxxxxxddolccloooollloooollc:,,,,,,,,,,,,,,,,,''',,,,,,'''',,,,,,,,,,;;;;;;;:;;;;
ddddddddxxxxdo:'..............................',;;:::cccllodddddxxxxxxxxxkkkkOOkkc......''................''',;clllccccccccccc:;,..     ..';:ldO0KOl;cdxO0KXXKKK00000OOOOOO0OOkxdlccccclllllllccc::;;,,,,,'',,,,;;;:::ccllooddxxxxxxdooooddoooloooooolc:,,,,'',,,,,,,,''''',,,,,,,,,,,,,,;;;;;;;;;;;;;::;;;;
dddddddxxdxxdl;............. ................',,;;:::cccllooddddxxxxxxxxkkkkkOOOkx, .......  ...........,,'',;cllcc:::::::ccllccccc:,'',:ldxkOOO0OOk:;:okO0KK0000O00OOOkkkOOOkxdoc:;::ccllooooooollccccc:::;;;;,,,,,,,,;;;;::ccclloollloddddooooddooolc;,''''''''',,''''''',,,,,,,,,;;;;;;:::::::::::::::;;;
ddddxxxxxxxdoc,............. ................',;;;:::ccllooodddddxxxxxxkkkkkkOOOOko.  ...    ...........,,.';:loolc;',,',;;:cccccloxxxddxxkkkOOOOOkko;,:dkO00O00OOOOOOkkkkkkkxdolc;,',,,;;;;::ccclcclllllllllccc:::ccccc::::::::::::;;;codxxdoodddooolc;,''''''''''''',,''',,,,,,,;;;:::::::::ccc::::::::::c
xxxxxxxxxxxdo:'.............................'',;;;;::ccloooddddddxxxxxxkkkkkOOOOkkxl.   ..   ..... ....','.':lddolc,........'',,,:ldkOkxxxxkkkkOkkkko:,:okO00O00OOOOkkkxxxxxxddolc:::::::;;,,,,,,,,,;;::::cccccllllooooddddddddddddoolclodxxxdddxddool:;,,,,,,,,,,,,,,,,,''',,;;;;;;;;::::::::::cc::::cc:::c
xxxxxxxxxxxdl;'............ ................',,;;;;::cllooooddddddxxxxxkkkkkOOOOkkkkl.  ..   ..........;;..,coxdooc.......';,;:::cooloxdoooodxxxxxxxo:,:okO0000Okkkkkxxxdddddoolccclloooollllccc::;;;;;;;;;;;;;;;:::ccloodddxxkkkOOOOOkkkkkkxdxxxxddol:,,,,,,,,,,,,,;;;;,,,,,,;;;;;;;;;;;:::::::::::::ccc:::
xxxxxxxxxxxoc,............. ...............'',,;;;::ccllooooddddddxxxxxkkkkkOOOOOOOOx:. ..............':;..;oddddxd'.'''c::xdoOOk0XXOOKKOkdc;;coddoooc;cdkO0KKOkkkkxxxdddddoollccccllooooooooooooooloooolllccc::::;;;:::cclllooddxkkkOOOOOkkxxxkkxxxdoc;,,,,,,,,,,,,,,;;;;,,,,,,;;;;;;;;;:::::;;;;;:::cccccc
xxxkkxxxxxxo:'.............................'',,;;;::cclooooodddddxxxxxxxkkkkOOOOOOOkkd;...........  ..,c;..:dkxdoodc....,'';:;cllx0OkOXXXXK0o..,locoollokkO0K0Okkxxxddooooollcc::::ccllloooooooooooooddddddddddddddddddddddddddddxxxxxxxxxdddxkkkkxxxolcc::;;;;;:::::;;;;;;;;;;;,,;;;::::ccccc:::::::ccclllc
kkkkkkkkkxdl;..............................'',,;;;::clllloooddddxxxxxxxxkkkkkOOOOOOkdlc'........     .,l;..:dkxddoloc.           ....';;codxl..;xdlooddxkkOKKOkxxxxdoolllllcc::::;:::cccllloooooloooooodddddxxxxxkkkkkOOOOO0000000KK000OOkkkkkOOOkkkxdooollcccccclllccc:::::::::;;;;:::::ccccccccllloooooooo
kkkkkkkkkxdc,..............................'',,,;;::cllllloddddddxxxxxxkkkkkkkOOOOOOkdc:'.......     .,l:..:dkkxxdlcol,.     .   . ..    ....,lOOdodxkOkkO0K0kxxxddoollccc:::;;;;;;;:::ccccllllllllooooooddddxxxxkkkkkOOOOO000KKKKXXKKKKKKKKK000OOOOkxdooollllooooollllcccccccccc::::::::::ccccccllloooooddd
kkkkkkkkkxo:'.............................'''',;;;:ccllllooddddddxxxxxxkkkkkkOOOOOO00OOOo.......     .'ll..,oxkkxdol:col;'',;;,',::cl:'.....:x00kddxOOkkk0K0kxxxdoollcc:::;;;;;,,;;;;;;::::::::::cclllloooodddxxxkkkkOOOOOOOO000000000000000KK00000Okxddoollloooooooollllllccllllccccccccccccccccccclllooood
kkkkkkkkxdl;..............................''',,;;;:ccllllooddddddxxxxxxkkkkkkOOOOOOOOOOOx,....        .:o, .cxkkkdoolccloooddxxddxkOkxkx:,cdO000OkkOOkkkO00kxxxdollcc:::;;;,;;;;;;;:::::::;;;;;;;;::::cccllloooddxxxkkkkkkOOOOOOOOOOOOkkkkkOO000000Okxddoollllooolllllooolllllllllllllllllllcccccccccllllooo
kkkkkkkkxoc,..............................'',,;;;::clllloodddddddxxxxkkkkkkkkOOOOOOOOOOOk;....     .  .'lc..;oxkkdooccclllodxkOO000K0OOOkkO0000OOOO0OkkO00kxxxdolcc:::;;;,,,,,;::cccccccccccccc:::::::::::cccclllooodddxxxxxxxxxxxxxkkkkkxkkO000OOOkddoooollccclcccccclllllllclllllllooooooolllllllllllllooo
kkkkkkkkxo:'.............................''',;;;:::clllloodddddddxxxxxkkkkOOOOOOO0OOOOOOOc....    ...  .:l' .cdxkxolc::ccloodxkO0KKKKK000O000000O00OOO00Okddddolcc:;;;;,,,''',:cllllllllllllloolllclllllllllllloooooooooooooooooodddxxkkkOOOKKK0Okkxdooooolllllllccccccccccccccllllllooooooooooolllllloooooo
Okkkkkkxdc,..............................'',,;;;::cllllooodddddddxxxkkkkkOOOOOO00OOOOOOOOc.....    ...  .c;..,ldxxdlcc:::clddxxxkOOOOOO00000K000000O000Oxoooollcc::;;;,,,'''',;clllllllllllooooooooooddddddxxxxxxxxxxddddoooodddddddxkOO0OO0KXK0Okkxdddoooooollllllllcccccccccllccccclllloooollllllllooooood
Okkkkkkxl;'.............................'',,,;;::ccllooooodddddddxxxkkkkOOOOOOOOOOOOkkkOkc.....    .    .,:. .:loxxdolccccloodxxkOkkkkOOO000000KK0O00kxdolllllccc:;;;,,,,''''';cllcccllllloooddoooodddddxxxxxkkkkkkkOOkkkkxxddxxxxxkkO00000KXXK0OOkkxxxxddddoooooooolllllccclllllllllllooooolllllllloooooodd
kkkkkkxdc,..............................'',,;;;::cclloooooddxxxxxxxxkkkkkkOOOOO0OOOkkkkkk:.....        ...;,..';cldxddoollodddxkkOOOOkkkOO0000KK0000koollccccccc:;;;;,,,'''''';ccccccccllloooddddddddddxxxxkkkkkkOOOOOOOOOkkxxxxxxxkOO00000KXXK0OOkkxxxxxxxdddoooooooooooooooooooooooooodddddooddddddddddddx
kkkkkkxo:,.............................'',,,;;::ccllooooodddxxxxxxxxkkkkkkkOOOOOOOOkkkkkk:...... ..       .;. ..;:codxxddddxxxxkkOOkOOOO00000KKK000xollllccccc:::;;;;;,,'''''';:ccccccclllooddddddddddxxxxkkkkkkkOOOOOOO00OOOkkxxxkkOO0000KXXXK0OOkkkxxxxxxxdddoooddoooodddxxxddddddddddddxxxddddxxxxxxxxxxk
kkkkkkxl;'............................''',,;;::ccclloooodddxxxxxxxxxxkkkkkOOOOOOOOkkkkkOx;........        .... ..,;:loddxxxxkOOOO00OOOO00000000000xolllllccccc::;;;;;;,,,'''',;:cc::ccclloooddddddddxxxxxkkkkkkkkOOOOOOO00000OOkxxkOO00000KXXK00OOkkkkxxxxxxxddddxxxdooodddxxddxxxxxxxxxxxxxxxxxxxxxxxxxxxkk
kkkkkxdc,.............................''',,,;::cccllooooddxxxxxxxkkkkkkkkkOOOOOOOOOOkkOkd,.......           .    .',;cllooddkO0KKKK00OOO000000OO0xllllllcc:::::;;;;;;;,,,,''',;::ccccllloodddddddxxxxxxxxkkkkkkkkOOOOOOO00000OkxxkOO000000KXKK000Okkkkkkkkkxxxxxxxxxdddddddxxxxxxxxkkkkkkkkxxxxxxxxxxkkkkkkk
kkkkkxo:,.............................'',,,;;::cclloooooddxxxxxxxkkxxkkkkOOOOOOOOOOOOxlll,.....                   ..',;:clooxkO000000OOO000OOkkxoccccllc:::::;;;;;;,,,,,,,,',,;::ccclllooddxxxxxxxxxxxxkkkkkkkkkkOOOOOOO0000OOkxxkO000000KXXXKK00OkxxxkkkkkkkkkkkxddddxxxdxxxkkkkkkOOOOOOOkkxxxxxxxxkkkkkkkk
kkkkkdl;'.............................',,,;;:::cllooolooddxxxxxxxkxxxxkkkOOOOOOOOOOxc..,o:.....                     ..',,:cloddxkkOkkkOOkkkxxdxc..';:ccc::;;;;,;;;,,,;,,,,,',,;:ccllllooddxxxxxxxkkkkkkkkkkkkkkkOOOOOOOOO00OOkxxxkO000000KXXKKK0OkxxxxkkOOO000OOOkxdxkkkkxxkkkkkkkkOOOOOOkkkxxxxxxkkOOOOkkkO
kkkkxdc,.............................',,,;;:::cclooooloddxxxxxxxxkxxxkkkkOOOOOOOOxc.  .;ll;...               ...      ...',:ccllllooddddddoddx0o.....,;;;:;;;,,,,,,,,;,,,,'',;:ccllllooddxxkkkkkkkkkOOkkkkkkkkkOOOOOOOOOOOOOkxxxxO0000000KXXKKK00OkxxkkOOOOOOOOOOkxxkO00000OOOkkkkkkkkkkkkkxxxkkkkkkOOOOOOOO
kkkkxo:'............................'',;;;:::ccllooooodddxxxxxxxxxxkkkkkkkkkkkkxl'    .:cll;... ....          ..............',,,,,;;;::clodxxONk. ......',;;;,,,,,,,,,,,,,'',;:cclllooddxxxkkkkkkOOOOOOOOkkkkOOOOOOOOOOOOOOOkxxxkO000000KXXXKKK00OOOOOOOOOOOOOOOkkxkkO000KKKK000OOOOkkkkkkkkkkkkkkkkOOOOO000
xxxxdl;'............................',,;;::::ccllooodddxxxxxxxxxxxxxkkkkxxkkkdc.     .;c::cl:.......            ..................'',;coxxkxOXWXd,.........',,,,,,,,,,,,,'',,:cccllooodxxxkkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkxxxkO00000KKXXKKKK00OOO0000000000000OOOOO00000000000OOOkkkkOOOOOOO00000OOO00000
xxxxoc,............................'',;;::ccccllooodddxxxxxxxxxxxxxxxxxxxxxo;.       'ccc::ccc;......                .........'..';cldxkxxxONWWWWXx;..........'',,,,,,,,,'',;:cclllooddxxkkkOOOOOO000000OOOOOOOOOOOOOOOOOOOkxxdxkO00000KXXXKKKKK0000000000KKKKKKKKK000KKKK000000000OOkkkOOOOOO000KKK00000KKK
xxxdo:'............................',,;;::ccccllooooddxxxxxxxxxxxxxxdxxxdc'.        .,c::::;:cc:,...   .                   ...',coxkxxxxxkKWWWWWWMWKo,...........',,,,,,,,',;:ccllloodxxkkkOOOOO00000000000000000000OOOOOOOOkxxkOO00000KXXXKKKXXKKK00KKKKKKKKKKKKXKKKKKKKKKKKKKK0000OOOOOO000000000000000KKK
xxxdl;'...........................'',;;:::cccllooooodddxxddddddddddddol;..          .;:::::;;;;::;'.. ..        ...   ...,;:coddxddddxxkKNWMMWWWWMMMNOdc'...........',,,,,,,:cllllooddxkkkOOOO000000000000000KKKKKK0000000OOkxxkO000000KXXKK0KKKKKKKKKKKKKKKKKKKKXXXXXKKKKKKKKKKKK000OO0000KKK000O0000000000
xxxoc,............................'',;;::ccccllooooooddddddddddolc;,'..             .;:::::::;;;;;;;,..     .... ....,:coddxdddddddddx0NWMMMMMWWWMMMMWWO:...............'',;cllllooddxxkkkOOO00000KKKKKKKKKKKKKKKKKKKKKKKK0OkkkO0000000KKKK0000000000KKKKKK000KKKXXXXXKKKKKKKKKKKKK0OOO0000KKKK0000000000000
kkxo:,............................',,;;:cccccllooooooddddolc:,'..                    '::::::;;;;;;,;;;,'............';clodxxxxxxxddxOXWMMMMMMMWWWMMMWMMNk;..................',;:clodxkkkkOOO000KKKKKKKKKKXXXXXXXXXXXXXXXKKK0OkO00000O00KKK0OOOOOOOO0000000000000KKKKKKKKKKKKKKKKKKK00OO0000KKKKKKKKKKK000000
kkxl:'...........................',,;;:::ccclllooooool:;,...                         .::;;;;;;;;;;;::cldxdoc;;;,.....':clodxxxdook0NWMMMMMMMMMMWWMMMWMMN0d,.......................';:loxkOO0KKKKKKKKKKXKXXXXXXXXXXXXXXXXKKK0kkO0000OOO0KKK00OOOOOOOOOOO00000OOOOOOO000000000000KKK00000000KKKK00000KKKKKKKKK
kkdl;'..........................',,;;;::ccclllcc:;,'...                              .;::::;;;;:ldkkO0OO0KXK0kdc,....',:cloddddxKNWWMMMMMMMMMMMMWWMMWWMN0Oo.............................',;clodkO0KXKKKKKXXXXXXXXXXXXXXXKK0OkkO000OOO0KKK0OO000000000000000000OOkkkkkkOOO00000000KKKKKKKKKKKKK0000000KKKKKKK
kxoc,...........................',,,;::::;;,'....           ..    ..                  ':::;;,,;:lxO0KKKKKKKKKXXKkc'...',;:loxOKNWWWMMWMMMMMMMMMMMWWMMMMN0Ok:....................................';:loxk0KXXXXXXXXXXXXXXXKK0OOO0000OOO0KK00OO0000000OO000KKKKKK0OkkOOOOOOOO000000KKXXXXXXXXXXXXXKKKKKKKKK0000
Oxl:'..........................',,'''.....                 ...    ....                .,:;,,,,,;;:oxO0KKXXNXXXXXNKko;''',;ok0KNWWWWMMWWMMMMMMMMMMWWMWMMXOOOd'.........................................';coxO0KXXXXXXXNXXKK0OOO0KK00OO0KK0OOO000000OOOO00KKKKKK0OOO0KK00000000000KKKKXXXXXXXNNXXXXXXXXXXXXKKK
kdc;'..............................                        .    .....              .. ..;:;,,'''',;coxkO0KKXXXXNNXK0kollodddddxkO0KXWMMWMMMWMMMMMWWWWMMXOOOkc..............................................';coxO0XXXXXXKK0OO0KK000O00K00O0000000000000KKKKKKKK0O00KKKKKKKKKKKKKKKKKKKKXXXXXXXXXXKKKXXXXXXXX
xo:'.........................                         ......    .... ...           .....';;,,,'''',;cldxkO00KKOxdlcldxkkkkkkkOOOkkkkO0KNWWMMMMMMWWWWMWNKkOOOx;..................................................';cox0KXXK0OO0KK00OO00000000000000000KKKKKKKXKKK00KKKXXXXXXKKKKKKKKKKKKKKXXXXXXXK0000KKKXXXX
o:,......................                              .   ..                      ....'',;;,,,'''',;:cldxkdc;''',,;:loxxkkkkOOkkkkxxdloOXWWWMMWWWWWMNX0kOOOOl. .....................................................';codxO00K000OO00000000000KK00000KKKKXXXXXKKKXXXXXXXXXXXXKKKKKKKKKKKKKXXXXXKK00KKKKKKKK
c,.................                                    ..       ...                 ..'cc;;:;,,,'''',,;clc,..  ....',;codxkOOOOOkxxddoclodkKWWWWWWWWMNKOkOOOOx, ..........................................................'lOK0000OO000OO000K000000O0000KKKXXXXKXXXNNXXXXXXXXXXKKKKKKKKKKKKKKKKKK000KKKKKKKK
:'............   ..                                     ...          ....            ..;locll:,,,,'',,;:,......  ....,;:ldkOOOOkxddddc:ccclokKNWWWWWWXkkkkOOOkc. ...........................................................:k000OOO000OOO00KKK0OOOOO0000KKKXXXKXXNWWNNNNNNXXXXXKKKKKKKKKKKKKKKK0OO0KKKKKKKK
;............      .                                            ...                   .':oxodko:;,,,;:;.........   ....,cdkOOOOkxdd0KOxlc::lodOXWWWWW0xxkkOOkko. ............................................................:k00OO0000OkkO00000OkkO00KKKKKXXXXXXNNNNNWWWWWNNXXXXKKKKKKKKKXXXXKK0OO00KKKKKKK
,...........                                                                          ..,:oddO0dccc:c:.......  ..    ...;okOOOkxdx0XXNXK0xolldxx0NWWW0dxkkkkkkd, ........................................................ ....cO0OO0K0OOkkO0000OOkO00KKKXXXXXXXNNNNNXXXXNNNXXXXXXXXXXXXXXXXXNXXKK0000KKKKKKK
'...........                                                                           .';:lokKOxddc:lo:'....  ....   ..,lxOOOxdxKXNNXXXXXX0OkxdxKNWNkdxkkkkkkkc. ....................................................... ....'oOOO000OkOO00000OkOO0KKKKKKKKKKXXXXXXXXKKKKKKKKKKKKKKKXKKKKXXXXXXXXXXXXXXXXXX
..   ......                                                                            .',;:lxOkkOOc,lxkd;..........  ..,cxOOkdxKNNNNXNNNNXXNNX00XWWKxdxxkkkkxko'  ...................................................... .....;xOO00OOOO0KKKK0OkO00KKKKKKKKKKKKXXKKKKKK000KKKKKK000000000KKKKKKKXXXXXXNNNNN
                                                                                       .',',;ldxk00o;cxkkx:..........  ..,coxdd0XXXNXXNNNXXXNNNNXXNXxodxxxxxxxxx:.  ....................................................  ......lOOOOkkO0KXXXK0kkO0KKKKKKKKKKKKKXXXKKKKKK000000KK000000000000000000000000KKK
                                                                                       ..''',;lxkOOd:cxkkkd;.''''........,:oxdxKNXXXXXXXXXXNNNNXXXNKdoxxxxxxxxxxl.  ....................................................  ......;xOOOOkO0KXXK00OO00KKKKKKKKKKKXXXXXKKXXXXKKK0000KKK0000OOOOOOOOOOOOOOOOkkkkk
     ....                                                                               .'.'',;lkOOo:lxkkxxc',,''.....''.,lxxocxXXXXXXXXXXXNNNNXXXNKddxxxxxxxxxxo'  ....................................................  .......oOOOkkOOO00OO000KKKKKKKKKKKKXXXXKKKKKXXXXXXKKK0000000OOOOOOOOOOOOOkkkkkkkkx
      ..                                                                                ....'',:okkocoxkxxxl;;'.''.''''..,cdxdcoKNXXXXXXXXXXNNXXXXN0dddddddddxxxd;   ...................................................  .......:kOkkkkkkkkkkkOOO00000000KKKXXXXKKKKKKKXXXXXKKKK0000OOOkkkkkkkkkkkkkkxxxxxx
                                                                                        ....'',,:oxocokkxdddoc'.'''''''..,cdxdllkKXXXXXXXXXXNNXKKXKdoddddddddxxxd:.   .................................................   .......'dOkkkOOOOOOOOOOOOOOOOOOOOOO00KKKKKKK0000000000000OOOOkkkkkxxxxxxxxxxxxxddd
                                                                                         ...''',,:doldkkxoodxc..'''''''..,cdxdoclk0KKKKK0KXXNNXKKX0olddddddddxxxd:.   ...................  ....  ......................   ........:kkkkO0000000000000OOOOkkxxxkO000000OOOO0OOOOOOOOOOOOOOOOkkxxxxxxxxxddddod
                                                                                         ...'''',,:loxkxdoodxc..'''''''..,cdddolcok0K00000KXNXXKKX0oodddddddddxddc.    .................   ....  ......................   ........'dkxOO0000000000000OOOOOkxxxxkOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkxxkkkkkxxxxddd
.....                                                                                    ....''',,,:okkxoldxd;...'''''...'cddddooldkO00OO0KXNXXKXXOooddddddddddddl'    .................   ...   ......................  ..........cxxkOO00000000000OOOOOkkdodxkkOOOOkkOOOOOOkkkkkkkkkkkkxxxddddxxkkkOOOOOkk
........                                                                                  ....','',;cdxdooxkl'...'''''...'codddddoodkOOOk0XXXXKKXKxloddddooddddddo,     ................   ...    ....................   ..........;xkOOOOOOO000OOOOOOOOkkxdlldxkkkkkkkkkkkkkkkkxxxxxxxxxdoollllodddxkkkkkOO
.......                                                                                   ....'''',,,coooxkd;..'''''''...'coddddddddxkkOO0XXXXKXXOoooddddooodddddo:.    ................   ...    ....................   ...........okkkkkkkkOOOOOOOkkOOkkxdolldxkkkkkkkkkkkkkkxxxxxxxxxxdolllooddddoooooodd
.......                                                                                   ....'''',,,;:oxxko'.',,'.'''...':odddddddddxkOO0XXXXKXXklooddoddoooddddoc.     ...............    ..    ....................   ...........ckkkxxxxxkkkkkkkkkkkkxxxdoooddxxxkkkkkxxxxxxxxxxxxxxxdolllodddddoooollcc