.................................```............---:////+++++/////:::::::::::::::::::::::::///+++++++++++oooooooooooooooooosssssssssssssssssssssssssssssssssssssssssssssssssssssoooooooooooooo++++++++++
-::::----..---------------------.......--:::::::://+oosyyyyyyyyyyssoo+++++++++++ooooooooooosyyhhhhhhhdddddddmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNMNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmdddddddddhhh
---:----......----------------..........--:::::::://++ossyyyyyyyyysso++++++++++++oooooooosssyhhhhhddddddmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmddddddd
------...................-----...````...--:::::::////++oossyyyyyyyssoo++++++++++ooooossoossyyhhhdddddmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmddd
------.....................---...````...--::::::://///++oosssyyyyssoo+++++++++++ooooossssssyhhdddddmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmdd
-------...................----...````...-::::::///////+++oosssssssooo+++++++++++oooossssssyyhhddddmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmd
------....................----....`....--:::::///+++++++++oooooooooo++++++++++++ooosssssssyyhhdddmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmm
------............-------------......---::::://+++++++++++++ooooooooo++++++++++oooossssssyyyhdddmmmmmNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmm
------........-----------------.....--:://////+++++++////++++++oooooo++++++++++oooossssssyyhhddddmmmmmNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNmmmmmmmmmmm
-------.....-------------------....--://////++++++++/////++++++++++++++++++++++ooossssssyyyhddddmmmmmNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmd
.------...----------------------..--:///++++++++++///////+++++++++++++++++++oooooossssssyyyhddddddmmmNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmd
.-----------:::-------------::-----://+++++++++++////////++++++++++++++++o++oooooossssyyyyhhddddddmmmmNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNmmmmmmmmmmdd
.----------:::::::::::::::::::::::://+++++++++++/////////++++++++++++oooooooooooossssyyyyyhhddddddmmmNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNmmmmmmmmmmdd
---::-----::::::::::::::::::::::://++++++/////////////////++++++ooooooooooooooossssssyyyyyhhdddddmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNmmmmmmmmmddd
---::::::::://:::::::::::::::::://+oooo+//////////////////++++++ooooooooooooooosssssyyyyyyhhddddddmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMNNMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmddd
---::::::///////////:::::::://:///+ooo++///://////////////++++ooooooossssssoooossssyyyyyyhhhddddddmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMNNNNMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmdddd
.--::///////++//////::::://///////++++++//////////////++++++++ooooooosssssoossssssyyyyyyyhhhdddddddmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNmmmmmmmmmmmdddd
.--:://////++++/////:::///////////+++++/////::////////+/++++++++oooooosssssssssssyyyyyyhyyhhhddddddmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNmNmmmmmmmddddmddddh
.--://////++++++////:::////////////+++/////::::://////////+++++++ooooossssssssssyyyyyyyyyyhhhhdddddmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMNNNNNNNNNNNNNmmmmmmmmmmmmddddddddddhh
.--:///////++++++///::::///+++/////////////:::::::///////////+++++ooooosssssssssyyyyyyyyyyyyhhhhddddmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMNNNNNNNNNNNNNNmmmmmmmmmmmmmddddddddddhhh
.--:////////+++++//:::::///+++//////++++////::::::::://///////+++++ooooossssssssyyyyyyyyyyyyyhhhhhdddmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNMMNNNNNNNNNNNNNmmmmmmmmmmmmmmdddddddddhhhh
.--::////////++++//:::::///+++////+++ooo++//:::---::::://////+++++++oooossssssssyyyyyyyyyyyyyyhhhhhdddmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNmmmmmNNNNMMMNMNNNNNNNNNNNmmmmmmmmmmmmmdddddddddhhhhh
.--::///:::////+///::::::///////+++oooooo+//::------------:::--..-:////////+oossyyyyyyyyyyyyyyyhhhhdddmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmmdddmmNNNNNNMMNNNNNNNNNNmmmmmmmddddddddddhhddhhhhy
.--::/::::::///////:::::::://////+oosssso+/:---....-----://+++//+oossssyyso+/:::/osyyyyyssssssyyhhhhdddmmmddddmmmmmmmmmmNNNNNNNmmNNNNNmmmmmNNNNNNNNNNNNmdddddmmmNNNNNNNNNNNNNNNNmmmmmmdddddddhhhhhhhhhyy
.--:://:::::://////::::::::::::://+ooo/-..`````````.-:+ooosyyyhhddddddddddmddhyo/:://::-::::---:/oshdddmmddddddmmmmmmmmmmmmmmmmmmmmNmmmmmmmmmmNNNNNNNNNNmmdhhhdddmmmmmNNNNNNNNNNNNmmmmmmddddddhhhhhhhyyy
.--::///::::////////::::::::::---://:` ``````````.-:+osyyyyyyysyyhdddmmdmmmNNNNmmhyo+////////:::---:+sdmddddddddddddmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNmddhyyhhhdddddddddmmmmmmmmmmmmmmmdddddddhhhhyy
.--::////:::////////:::::////::---:.  ``````...-:/oyyyyyyyyysoooo+ossyhhhdddmNNNNNNmmdhysssoooooo++/::/syddddddddddddmmmmmmmmmmmmmmmmmmmmddddmmmmmNNNmmmmmmmmdhyyssyyhhhyyysyyyyyyyyhmNmmmmdddddddddhhhh
.--::////::////////:::::://////:::-    `````.-:/oyhdddhhhyyyso+///++o++ssssyhddmmmNNNNNmddhysssssyysso+/:/+oyhhhyysso++///+syyyhhddmmddddddddddmmmmmmmmmmmmmmmdddhysossyyyyssssssssshmdhdNmysyddhyydddhh
.--://///::////////::::::////////-       ```-/oyhddmmmmmdhyo+::--:/+ss++o+/osyyyhdhdmmNmmmmddhyyyyhhyysso////:-....``.````------::/oyhhddhhhddddmmmmmmmddddddddddddhysoooosssssyyyyyhhydmhooyddy+ohmdo++
.--:::::::::://///:::::::://////.      ````.:oshdmmmmmmdyo/:-.``--:ohyo+o+/+++++osoosyhhhhhdddhhhyyhhhyyysss+::::::----..-/+oossyso+/:/oyhhhhhdddddmddddddhhhhhhhhhhhhhyso++++++osssyshdyoohdso+shdyo//:
---:::::::::://///:::::::::///:`      ```..:/oyhdddhyso/:-.`````..:ody+/++:++/::+/////+/++osyhyyyyssyyyyyyyooo++////::-:://oshddmmdhhyo::osyyhhdddddddddhhhhhyyyyhhyyyhhhyyso+/:::/+++yds+sdsoo+hdsooo++
---:::::::////////::::::::::::.       ```.-/oyhhhyo/-.``````.-:-.--/o/::o/.-/:-:/--:/----:-:/o++os+++oooso//+++/::--:////++syhmmNmmmmmdy+--oyyyhhdddddhhhhyyyyyyyyyyyyyyyyyhhyys+/::-/yh+/sh+::/hy+/++++
..--:::://////////:::--::::::-        ````-/syhhs/.`.``.`...-::-....--.-+-``....-...:....-..---..--::-:/:--:::-..`.:://++++oyhdmmNNNNmmdhs/:/syyhhhhhhhhyyyyyyyyysssssssyyyyyyyyyyso//oy+:sd+-./hh+::::/
`...---::::///////:::---::::`         ```.-+shhs:``.+-...--:///-./:.--.```  ``````...````.``..````...--.......```.:::/++++//+syhdmmmmmmmddyo//syyyhhhyyyyyysssssssssssssyyyyyyyyyyyssoo+o++o/-.-sds:...-
``````....--::::::::----:::`         ```.:/syyy/.``ss:/:.-:+o///-/-``     ``    `/o+``  `` ```  ````..```````` `-:::/:::--..-:/osyhddmmdmdhso////+osyyyyyssssssssssssssssyyyyyyyyyssoo+++oo++++//++:-...
     ```````....-----------          ``.:+osss+.`.-+//::/+oo++//-.`  `   -oo-  `+ss+-` `--`  `   ```````     `.--:::::-..````.-::/+osyhhdddhsoo/::://+ossssssssooooooosssyyyyyyyyyssoo+++++++++ooo+++o+/
             ````````.....          ``.-/osso/:.`.--:/+oyyso/+:.`    `.`./ys+``+yhs/-`./o:-      ```        `.............-:::----.-::/osyhhhsys++syyso+oosooooooooooosssyyyyyyyyyssoo++//////++++++oooo
                     ````           `-://+oo/-.``.-/+osyo/---.` ```` `..-ohs/./ydhs/.`/so/:`  `-.`         ```` ````````.--::///:------::+ossssysoyhddhyo++sooooooooooossyyyyyyyyyysso++///////++++++++o
                                   `-///::--....-:/+++::-./s/.` ```` ``.:sho--ohhs+-`-sys+:`.ohh:```     ```          ```..-----.......---:://++oosyhdddhs//sssoooooooossyyyyyyyyyyssoo+++//////+++++++o
                                  `.://:-....::/+++:-...-oos+````.``  `-/ys:./yhy+:.`:yhs/-/hmmo````    ``               ```          ````...---/++osyhdhyo/+ysssoooooosssyyyyyyyyyysssoo+++///////+++++
                                 `.::---....--///:--+ss:-ody+......`  `-+s/--shyo:-`.shy+-:ymd/````   ``  ``````                         ```.-://+ooossyyso//syysssooossssyyyyyyyyyyysssoo+++/////////++
                                `-::-......-:///---/+yhs+oyy::/.`..`  `:/:-.+hyo/-..+hy+-:ymh-```  `--:/shdddhso:                        `.-/+osyyyyhhyso+:-:/osssyssssssyyyyyyyyyyyyysssoo++///////////
                               `.:-...```.-://:-..-  .sdyso/++/--.`   .--..:so+/-..+hh+-:sds.``  `:yddNNNNmmhyss/```` `                 ``..:ooyhddddddhy+::/+ooo++syyyyyyyyyyyyyyyyyyyssoo++///////////
                               `.-..`````..---..-` `  `/h+:+o/-..`` ``````./+/:...ohy+-:ydo`````-ymNNNNNmmdhyys/:---.`````               `..-/:/+osyhhhys+///++ooo++yhhhhyyyyyyyyyyyyyyssoo++/////++++++
                               ````````````.--``/      `y+os+-..` `  `````::--...+ys:-:sh/`````/dmNNNmmdhyyss+:-:/oyyy+`                 ```....``.-:////:::://///++oyyyhhyyyyyyyyyyyyyssoo+++/+++++++++
                                `   `````../h-` .    ``:y+yo/.`    ``..``-:-..`./yo:-/oo.``.`.ymmmmmddhhys+/---/sdmmddo`                  ```````````````.-///+//++oyhyo+oyyyyyyyyyyyyysssoo++++++++oooo
                     ````           ``.++...o.`     `.-oooo:.`       ```.-..``./o/--//:`````/hmmddddhhys+:..-/sdmmddhs.                    `````````    `.:/+oo++//+ohdho//+oyyyyyyyyyssssoo+++++ooooooo
                      :o-``````````..:/hs `    -:...`-/oo+:.`          `..`` `...`.://````.oddddhhyyso/-..-+shdddhdhs-                      ...--.`      .-/+oo++/::/oyyo++o++syyyyyyysssssoooooooooooos
                      .h/  ```--:-//`../o  .-.`.---.-///-.`      ```   ``    `.-/+sy+` ``-shhhhhyso+:-..:+ydddhhhhh+-``  ```````     ``      .----.`     `-:::::-``..:/+++++/:-/osssyyyssssoooooosssssss
                       -:    .o:.:ys``.``.//.-://::-:-.```               `.-/oyhddd+````/yhhhhys+:-.-:/shdmmdhhhyy/.```````...```    -::.     .-.--.  ` ``.....`````.-://+++oo+:--/+osssssssooossssssooo
                            --/o``oh..``-+/--/+:::.````    ``.-.`     `.-/osyhhhhh:```.+hhhyys+:--:+sydmmddhhhyys/.````````.````    -:///:-``` .-.-:.`..``   ``..`   ``...-:://:--.`..:+ssssooosssssoooo
                          :y/-``.`.+//:-///::::.``      ````.-://-    `.-//+oosss- ``.syyso+/:/+oshdmmmddhhhyyso/-```` ```--..``   .//+++//::--``----.``       ``    ```` ````..-.......:+ooooosssssooo+
                         .hy/..y+/:+s/::::-.``         ````..-:+s+`    `.-:/+oso.  `-oo//:/+syhdmmmmmddhhyyyys+/:-.`` ``..--.```  `:/+++/////:::.``...      ```   ```.:/-``````.-:.`````.-//++oooosooo++
                         :ds:.+doo+/:--.``              `.-::/+oyy-   `.-:/osso.  `.:://oshmmNNmmmdhhhhysssso+///:-.`````.....`` `://///////::::-.`````   `..--`  ```-+o/.``````:/-.````.----::///++++//
.....``````````````````..:sy++shss/////////:::://///++///++syhhdmms+++++ossyys++++osyhddmNNNNNNmmmdddddhhyyysssssso++//+++++++/:/ooo++++////::::-:-..``````..-:.`````-oso:.````.:+/.`  `.-::...........`
//:::---..---:://///++++++ooo+oossssyhdmNMMMNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNmmddhyyso//:-------`````..:::.````-oyo:````.-/+/-`````-//-..`...```.`
soo+oo+++//++oosyhdmmmmmmmmmdhyysssyyyyhdmNNNNNNMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNmhso+/:-.....````.-:/:. ``.:oso:` ``.-/+/-.```.-//:..```````` 
NNNNNNNNNNmmmmmmmNNNMMMNNNNNNNNNNmmNNNNmmmmmmmmmmmmddddmNNNMMMNNmmmmmmmmmNNNNNNMMMMMMMMMMMNNNNNMNNNNNNNNMMMMMMMNNNNNNNNMMMMMMMMNNmmmmNNNNmmmmddhso/:--:.  `..-::. ``.:++/-` ``.-/+:-` ``.-//.````       
//+osssso+/:--------:::--------::--://///////:::::::-----::+oo+::-------://+/::ooosssssssso++++oossoo+++osssso+//:::://///++ooo+/::-::/::::://///::::--.  `.-::.`  `.://:.` ``.:/+-.` ``.-:-```  ``` ```
`````````` `                ```     `.-::+/+/:----...`````.-:/.`.  `` `..-/oo/.++/hhhhyys+/---/ohdmmdy+-++/::----.......`` `                  ````````` ` .----.`   `.---`    `.--.`   ``...`           
///////++///:::---.``       ``````  ```..--:--..-....```   ``` +/ `` ``....-:/--o.+ooo+/:-:/+shmNNmdyo::oo/:::/+:.....-..``   ``                    ```    .....`    ````        `       `              
mmNNNNNNNNmmmmdhhysss/:.``      ```.........```   `            ::`......:+oo++.`s-.::://+syhdmNNNmhs+//+so+///::-...---.``   ``````                  `      ......           .::::---::--..```          
::://+oooo+ooydmmNNNNNmdy+:.``    ``.-::/::-..````              ``:+:.``.:+syy`````.-:+sdmNNNNNmdyo/:/oss+++:.``````````  ```````````````        ``````````  ..`...```````..-///+//////::--.```         
``...---::-----::/+shhdNNNmhs+:.````..-://////:---.``.`         `:`.-.````..--.+.     `.:+syhddhs+:::shyo+os:...```````````````````````````````````````````` `....--.---::::////++//////::-..``         
----://///::----:://:::+osdmNNmho:-....-..........`````       `` `   ```.--.`.sy..--.`      `.--:---ohho/+s+:-.```  `---..```````...........................` `..--::--:://////////////::--..```        
+++++oshyysyyysyhhdddhhyso++syhmmho/:..``......```````        ``     `..-::::/-.:///::-..```       `.::-:/+/:-.``````://:--...`````......--...--------------.  ```..----:///////////::::--..````        
oossyhdmmmmmmmmNNMMMMNNNmmdhyo//+shdds/-.---.```````                  `.::-.``-osyyysoo+//:-..``..``   ````....``````-////::--..````````......--------------.` ``````..--.::::::::::::----..```         
yyhdmmNNNNmmmmmNMMMMMMMMMMNNmdy+:.-/smmy+:..```````                `.::-.`   `-:+oyyhhhhhyso:-../shs/-````  ``````   `:///::::--..```  ``````...----------....` `.``````...----::--------..````         
hddmmNNmdhssyhhdNMMMMMMMMMMMNmhso/-.-/ymdy+-.``                    ``:+o/.    ``-:/+osyhdddyo/-./sys+:/os+.````       -//:::::::--.```       ````............``     ```......----------...````          
ddmmmmmho-.+hdddmNMMMMMMMMMMMNmdhyo/.`-/ymdy/-`                    ```---.      `..-://+osso+/--/+/::+ohhs--::..````  .::::::::::--..```         ````````````````   ``````..............````            
dddddhyo:``:yhddNNMMMMMMMMMMMNmmdyso/.``-ohmho+-`                  `    ``        `..--::::/:...---:oydmds--::-``.`````--------..`````              ```````````````````````````````````````             
hyyyhhs+:-.-:odmNMMMMMMMMMMMMMNmdhys+/:```.oddho:`               ````               ````..-::-````./ymmmh+....````````  ````                                 ``````            `````````                
yyyyyyyssosyhdNMMMMMMMMMMMMMMMMMNmhys+/-.`  .+ys+-`              //...``````   `.-----:://+ss/-...:ohhyy+.`                                                                                             
ooooossyhdmNNNNMMMMMMMMMMMMMMMMMMNhyo/:-.``   `++/-`             -:-`+/.:++-`  `.:+osyhhhhddhs//+oydmy:-. ````````                                                                                     `
--:/+oshddmNMMMMMMMMMMMMMMMMMMMMNNhs+/-.```    `-:/-`           ```..`+o:syo-```.-/oyyhhddddhyssy+-.hh-:`  `...```        ``                                                                        ````
``.-:/oyhdNNMMMMMMMMMMMMMMMNNmmdddyo/:-.```     `.//.`            `...``//os/-.``.:+syhhhhhhys/---..h+.```   ```````````  ```                                                                ````````..-
````.-/shmmNNMMMMMMMMMMMMMNNmdhsoo+/:..````       -+:.`           `....o:-ooso/////+syyhhyys++:-.``o:``    ```  ````````````````                                                     ````````````.....--
----...:shdmNNNNMMMMMMMNNNNdyso+/----..````       `:/..`          `````:y/`:/ossymdssysoyyhhy+++/./+.`  ````.`````````````` `...``                                ``` ```        ``````````````.........
shhhhhyssoosyhhhyhhhyyyysssyo++//:--...``````       --``           `````.:-`/y/:--/ddyyyhhoymdo/`/o.```````.-.........`````  `.....`                                       ``       `````````````````...
hNNNMMNMMNmh+///:--.....--:/+:/:::-....``````        --`       ``` ```..:-` /h+:::-.dy:+/sdo/:/`/s-`````.``.----....----..`    ``..```                                                         `````````
mNMMMMMMMMNNdy/.``````````..------.........```       ./:.    ``.`````..-:-` `dy/::-.oh.:/oyddy:.m:..``.....----------::----.`````..```                                             `````       `````````