+ossoooooooooossooooo+++ooooooossooossoossoossosssosoysyyysyyyyyyyyysssssysyssossooooooooooo+oossyyy
oooooooo+ooooooo+ooooooo++++ooosssoossssyyhdyhhhdhdmmddhyysyysssyssosysysyssososoooooooo+ooooooossss
++o+++o++++++/+++/++o++++///++//+osshmNNMMMMMMMMMMMMMMMMMNNmddyyyssssssysyysssssoooooooooooooooossss
o+++++++/+++++++++++////////////ohmNMMMMMMNNNNNMMNNNNNMNMMMMMMMNmhyssssssssssssssooooooooooooooossss
++o+oo+++++++//++++///++/+////odNNNNNNNNdmmmdmdmmdhmmNNMMNMMMMMMMMNdhysosossssssssoooooooooooooossss
o+++o++++/+++++++++//++++//++hNMNNNNmdhhymNNNmmdNsydmmhddmNNMMMMMMMMMmyysssssssssssooosooooooosssyss
o+++++++/+++/++++o+///++++oymmmNNNdyddyhNNNNNmNmNmhdNddmdmmNMNmNNNNMMMNdyyyssssooooosssoooooooossyys
o+++//////++///+++++++//+odNNmmdhhmmdmmmNNmdmmhmNNmMNNNMNMNMMmMNMNNNMMMNhyyyyssssoooossoosooosssyysy
ooo++/+//++++/++/++++//+ymNmmmdsymyo++++o+//osydhddmmmmddddmNNMMMMNMMMMMmyyssssssoooossoossssssssyyy
ooo++/////+//+++++++++/+mNNmdhyhh+--....-----::::////++//+ooyhdNNNNMMMMMNhyysssosooooososssssssssyss
soo+++/////+/++++++++++oNNmdhdyo:-.`````...------::::////++++oydNmmNMMMMMdsssooooooooosoosssysssssss
o++////////////++/////oyNNdhyys/:-..`` ```.--::://::////++ooooshmNmmMMMMMmysoooo+oooooososssssssssos
o+////////////////////oyNNmhhys+:-...``...-::///+///::/++++ooosydmmNNMMMMmysso+++++oooossssssssssooo
++///////::::://////+++sdNmdyso+:--..``...--:::/:::--:::/++++oyyhNNNNMMMMmsss++++ooooossoooososooooo
+/:///////::::://+//++oshNmddds/:--:/:--.``.-::--::-:/oydmNNmdyyhdNNMMMMMdsso+++oooooooooo+ooosooooo
/:::::::::::::::::/::/+oymNdds:--:sNdhdmmdhdy/.`./ydmNNNdhyhdNMNdhhmMMMMNsoo++/++++ooo+ooo+oooooosoo
:::--:::::::://:////:/+/omNhs:--+dh+:::sdNNNy.``.-smNmhysyyyyhmNmhhhNMMMNoo++//+++++oo++++++o+oooooo
:::--::::::::///:////+++odmds:-::/:sdymNNNNN+..`../mMNysdmmddNmmdyyymMMMyo++++/+o+++oo+o+++++++ooooo
:::::::::::://///++++++oo/yms::--:o+:-:/ydd+::-`.-:dmNy+/++oosyhyooyhNhhhso+++++o+++ooooo+++++++oooo
:----::::::://///++++++o-/-ho::-...--..-//:-:/:.-:/ydys+::::::/+++syhhomms+++o+++o+++++oo++++++ooooo
:--::--:::::://///++++++-+.:+::--...-----...:::..::ohy/--..-::///+syhhosdso+o+++++++++++++++++++oo+o
:::---:::::://////+/++++-..-///:-.........:////..://yyho----://+oyhhhhdsds++o++++++++++o++/+oo+oooo+
:::-----:::://///++//++/..:./++/:-...```-+o/ooo:/++odhhmy////+osyhhhdhNhho++++++++++++ooo+++ooooo+oo
:::-----:::::///+++//+++..-.:/+/::...``-so..+so/ymmNNmmdmh+o+ooyhhhdhhyhh+++///++++++/+oo++ooo+o++++
------------:////+++//++:`.`-///::-...-::..-:/+osymmNNmmmhsosoosyhhddysho///////++++////+/++++++++++
--------:---:////+++//++o.``./+//:--.--.:+++yhdhmmddmNNMMNddyoosyhhhdysh////////////////++/+++++++/+
.......----://///+/+///++o/-:+/:::-...-osyhdNmmdmNNNNmNMMNMMNdyyhhhddss+///////++//++//+++++++++++/+
.......-----///://///////+osso::---..-yymmNNNNNmmmmmNNMMMMMMMNmdhhhdy://:/://+///://///+/++/////////
..----------///////+//+++++o+o::--:/+ydmmddyo+/:://:ohmNNNMMMMNmdhhd+//:///////////////////////////:
.........--:::::://///++++++oo+:///+yhy//-..--:+syhyhhyyhdmmNNmmdddy::::/:/:////////+///////////////
-..........-----::///+/++++++os+///:++/:-.....--//+o+/:/+ossyhddhdd/:::/::::///////+////++/////////+
.............---::://+++++++o+oo-:/::::--...```   ``.---:+oshddhhmms:::::::::////++////:///////:////
...`````````...---:://////++++ym/..::::::---.````....-:/+shhddddmmMN:---:---::::://////::::::::::///
..``````````.....---::://::/+ymNh. .:/+oo+o+/:::/+/:/+yddmmNmmmddNMMm:--------::/:/:///::::://::/:::
.```````````.......----:::/sdNNmms``.-:+oosssyydmmddmNNNmmmmmmddNMMMMm/...------::::-::::::::////:::
`````  ``````````....-::/odNNNNmdms.`.-:/:///:://ohmmmddhdddddNMMMMMMMNo-..---.-:-:::-:::::/::::::::
````       ``````..-:++ohNNNNNmNmmmy.`..-::::-::+yddhhhyhhmmNNMMMMMMMMMMms//::---::----:::::::::::::
````      ```..-/ooooss+dNNNNmmmmdmdy-``......:+syyysssyhdmNMMMMMMMMMMMNNMNmmdyyo/:::---::::---::::-
`````  ```./+///-yo//+ohNNmmNmddddddhho.`````.-:////+++/ymMMMMMMMMMMMMNNNNmmdmmmNmhyo/:::----------:
``````.-:+sys+--:+/ydmNMMmmmmmds:ddddhyhs.  ``......-:ymNMMMMMMMMMMNNNNNNMmdyyydd+ydyydhys+::----:-:
..``..-:::/::/oymNMNNNNMNddmds:..sddhhhhyys:` ```.:shmNMMMMMNNhyNNNNNNNmNMMMMMNmdyooydhddmmdys+/::--
 `` /-.-:+yhmNNNNNNNNNNNMmdd/`--o.ddhhhhhyhdmyyyhyydmmNNNNNNms//+mMNNNmNNNNNMMNNMMMNdhyyyyhho--:://:
`.-:+shmNNmmmmmmmNNNNNNNNmdho``.:`/ddhhhhdNMNNNNMmhdddmmmmmd+`.::omNNNNMNNNNNNNNNNNMMMMMNdhss//s:--o
shmNNmmmmddmmmmmmmmNNNNNNNdhh-...``hdhddmMNmdhhmNNNhhhdddds+o-`:+smNNMMNNmNNNNNNNNNNNNNNMMMMNmhyys/:
mmmmmmmmdddmmmmmmmmmNNmmNNdhh+...``-ddmNMNmo`.ydmmNNyyhdy++osssssNNNMMNNNNNNNNNNNNNNNNNNNNNMNNNMMNmh
dmmmmmmmmmdmmmmmmNmmmmmmNNmhyy-....`oNMMNmm+--yhNNmNmhho+oo++ooyNNNMMNNNNNNNNmNNNNNNmNNNNNNNNNNNNNNN
dddmdddddddmmmmmmmmmmmmmmNNhyh/-....oMMmddmmdydNNmmmmm/++//+oohNNNMNNNNNNNNNNNNNNNNNNNNNmNNNNNNNNNNm
dddmddddddddmdmmmmmmdmmmmNmmhdy-..:dMMMdddmmmmmmmmmmmm/-::/++dNNNMNNNNNNNNNNNNmNNNNNNNNNNNNNNNNNNNmN
dddmddddddddmddmdddddddddmmmddh/-oNNNMNdhddmmdddmmmddddo-:/+dNNNMMNNNmmNmhhyssmNNmNNNNNNNNNNNNNNNmNN
mmmmmmmmmmmmmddmdddddddmmmmNNdhddNNNNMmdddddmmmmmmmdddddy:smmNMMNNNNmNNNN:---:NNNNNNNNNNNNNNNNNNNmNN
mmmmmmmmmmmmmmmdddddddddmmmmNmmNNmmNNMmdddmmmmmmmdddddddddNNNMMNNNNNNmNNmyy/yhNNNNNNNNNNNNNNNNNNNNNN
mNNNmmNmmmmmmmmmmmddmdddmmmmNmmmmmmNMMmmmmNmmmmmmmmmmmmNmNNNNNNNNNNNNNNNNNNoNNNNNNNMNNNNNNNNNNNNmNMM
NNNNNNNNNmmmNmNNmmmmmmmmmmmmNNmmmNNNMMmmmmmNmmmmmmmmmNNNNNNNNMNNNNNNNNNNhs+:yydNMNMMMNNNNNNNNNNNNMMM
NNNNNNNNNmmmNmNNmmmmmmmmNmmmNmmmmmNNMNmdmmNNmmmmNNmmmNNNNNNNNMNNNNNNNNNNNh-+/mMNMMMMMNNNNNNNNNNMMMMN
NNNNNNNNNNmmmmmmmmmmmmmmmmmmNmNmNNNNMNdddmyydmmmmmmmNNNNNNNNNMNMNNNMNNNNNodNssMMMMMNNNNNMMNNNNMMMMMN