:::::::::::::----------------------------:-------------------------------------------------------------------------..-..------.-.---.-..........................................................................................................................
oooooooooooooooooooooooooooooooooooooooooooooooo+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++////++/+/////++++//+++++++//++/++/+++/////////+////////////////////////////////////////////////////////////////////
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssoosssssssoosssssssoooo+++++////+/+++++++oooosossssssssssssssossooossooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
yyyyyyyyyyssssssssssssyyysyysyyyysssssysssssyssssyysssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssooo++/+///::::::::::::::::-----:::/++oossssssssssssssssssssssssssssssssssssssssssssossoosoooosoooooooooooooosooooooooooooo
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssyysyyyyyyssssssssssssssssssssssssssssssssssssssssssssssssssooo+//////////:::::::::::::::::::----------::/+osssssssssssssssssssssssssssssssssssssssssssssssssssssosssssssssssssssssssssoooo
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyssssyyyyyyyyyssyyyyyssssssssssyyyyyyssooo+++/////////////:::::::::::::::::::---------------::+oossssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssso
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssoo++++++++///////////////::::::::::////::::::----------------:+ossyssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysso++++++++++++++//////////////++oosyyhddmmdyo/::::--------------...-:/ossssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysooosyhyyyysoo++++++///////+osyhdmmNNNNNNNNNNNNNNdyo/:---------------.....--/ossyssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
yyyyyyyhhyyyyyyyyyyyyyyyhhhhyhhhhyhhyyyyyyyyyyyyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssoooohdNNNNNNNmmdhyso+//++oshdmNNNNNNNNNNNNNNNNNNNNNNNmds+:--------:oyyo/-......-:+ssyssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
yyyyyyyyhyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysoooshmNNNNNNNNNNNmmmmmdhyyddddmmmmNNNNNNNNNNNNNNNNNNNNNNNNNmyo/:--:/ydmNNNmy+:-......-/osyyyyyysysssssssssssssssssssssssssssssssssyyyyssssyysyssssss
yyyyyyyyhyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssoooydmNNNNNNNNmmmddddhhhhhyyyyyyyyhhdddmmmmmNNNNNNNNNNNNNNNNNNNmhsoohdmmmNNNNNmhs/:-.....-/osyyyyyyyyyyssssssssyyyssssyyssssssssssyssysyyysssssyyyyyyy
hhhhhhhhhyhhhhhhhhhhhhhhhhhhhhhhhhhyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyhhyyyyyyyhhhyyyyyyyyhyyhhhhhhhhyyssosshdNNNNNNmmmddhhhyysssssoooooooooooosyyyhhddmmmmmmmNNNNNNNNNNmmmmddddmmmmmmmNNNNmdyo:-.....-/osyyyyyyyyyyyyyyyyyyyyyyyyysssssssssyyyyysyyyyyyssyyyyyyy
hhhhyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyhhhhhhhhhhyysyhdmmNNNNNmmddhyysssooooo+++++++++++++++++++ossyhhddmmmmmNNNmmmmdddddddddddddmmmmmmmmmmmds/-.....-/oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssyyyyyyyyyysyyyyyyyyyyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyhyhhhhhhhyyyddmNNNNNNNmmdhysssooooo+++++++++////////////////++ossyhhddddmdddddddddddddddddddddmmmmmmmmmmds/-.....-+syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyhhhhhhhhhhhhyyhdmNNNNNNmmmddhssooooo+++++++++/////////////////////:///+ossyyyyyyyyyyyhyhhhhhhhhhhdddddddmmmmmmmds/-.....:+syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNNNNmddhyysoooo+++o++++++++////////////////////::::::///+++++/+++++o+oooossssssyyhhhhdddmmmmmmmdy+//:---:oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyhdNNNNNNNNmdhyysooooo++++oo++++++++////////////////////::::::::::::::---------::::::///++ossyyhhdddddmmmmmmddhy+::/syyyyyyyyyyyyyyhhhhhhhyyyyyyyyyyyyyyyyyyyyyysyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdmNNNNmmmmdhysoooo+++++++ooo+++++++//////////////////////::::::::::----------.-----------:://++osyhhhdddddddmmmmmh+-:oyyyyyyyyyyyyyhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdmNNmNmmmdhyssoo+oo++++++o+o+++++++++//////////////////////::::::::::---------.-......-.-..----::/oosyhhddddddddmmmdy/:+yhhyyhhyhhhhyyyyyyhhhhyhyhhhhhhhyyyyyyyyyyyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdmmmmmmmmdysooooo++o++o++o++++++++++++++////////////////////:::::::::::--------------...........---::/osyhhhdddddddmmmho:/shyhhhhhhyyyyyyyyyyyyyyyyhhhhhhyyyyyyyyyyyyy
hhhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdmmNmmmmdhysoooo++++++oo++++++++++++++/+++///////////////////:::::::::::::--------...................--:/+syhhhhddddddmmdy/:ohhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
hhhhhhhdhhddddddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdmmmmmmmdyssoooo++oo+++++++o+++++++++++/+++//////////////////::::::::::::::-----------...................-:/oyhhhhhddddddddho:oyhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyh
hhhhhhhhhhhhhhhhhhhhhdhhhhhhhdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdmmmmmmdhysoooooooooooo++++++o+o++++++++/+////////////////////:::::::::::::::----------....................-:/+syhhhhhhddddddds/+yhhhhhhhhhhhhhhhhhyyyyyyhhyyyyyyyyyyhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddmmmmmmdyysoooooooooooooooooooooooo+o+++++/+///////////////////::::::::::::::::---------..-..................-:/+syyhhhhhhhdddddyo+yhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyy
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhdhdhdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdddmmmmmdhyssooooooooooooooooooooooooooooo++++++//////////////////::::::::::::::::------------....................-/+oyyhhhhhhhhhdddhyshhhhhhhhhhhhhyyyyyyyhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddhddddddddddddddddhdhhhhhhhhhhhhhhhhhhhhhhhhhddddmmmmmdhyssooooooooooooooooooooosssyyyyyssoo+++//////////////////:::::::::::::::::-----------.....................-:/osyhhhhhhhhhdddhsyhhhhhhhhhhhhhhyyyyyyyyyyyyyyyhyyyhhhh
hhhhdddhhdddddhhhhhhhhhhhhhhdddddddmmmdddddddddddddddddddhdhhhhhhdhhhdddhhhddddddddmmmmmmdhyssooooooooooooooooooosyhhhhyssooooosso++++///////////////::::::::::::::::------------......................-:+syhhhhhhhhhhhhhyhhhhyyyyhhhhhhhhhhyyyyyyyyyyyyyyyyyyyy
dddhddddddddddhhdddddhdhddddddmmmNNNNNNmmdddhhddddddhdddhdhdhhhhddddhdddhhdddddddmmmmmmddhysooooooooooooooooooosyhhyyso+////:::/+oso+++/////////////::::::::::::::::------------........................-/osyhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
dddddddddddddhddhhdddhdhddddmNNNNNNNNNNNmmddddhhdddddhdddddddddhdhhhhhhhhhhhhdddmmmmmmmdyssoooooooooooooooooooyhhysssoo++/::-----:/os+++++/++////////:::::::::::::::-------------........................-:+osyhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhhhhh
ddddddddddddhhdddddddddddmmNNNNNNNNNNNNNNmmddddhddddddddddddddddddhhhhhhhhhhhddmmmmmmmdhysoooooooooooooooooooyhysssyyhhhhys+:------:+s+++++++////////:::::::::::::::-------------.........................-/osyhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhhhh
ddddddhhhhhdddddddddddddmNNNNNNNNNNNNNNNNNmmdddhhhddhdddhdddhdddhddddddddddddmmmmmmmmdhysoooooooooooooooooosyhyssyhdmmNNmmdhs/-...--:os++++++////////://::::::/:::::::::---------.--......................-/+oyhhhhhhhhhhhhyso+++++++++/++///////////////+///+++
hhhhhhhhhhhhdddddddddddmNNNNNNNNNNNNNNNNNNNmmddhhhhdhdhhhhhhhhhhhhhdddddddddmmmmmmmmddyssooooooooooooooooosyhyssyhmNNNNNNNNmhs/```.--/sooo++++///////////////////++oo+o++++/::----.........................-/osyhhhhhhhhhhhys+:-................................
ddhhhhhhhhdddddddhhddddmNNNNNNNNNNNNNNNNNNNNmmdddddhdddddddddddhhdddddddddddmmmmmmmmdhysoooooooooooooooossshyssyymNNNNNNNNNNdys-.----:ssoo++++//////////////+osssso++//////++++/---........................-:/osyhhhhhhhhhhhyo:-................................
dddddddddddddddhdhdhhdmNNNNNNNNNNNNNNNNNNNNNmmmdddddddddddddddddddddddddddmmmmmmmmmdhysooooooooooooooossssyhyssyymNNNNNNNNNNdhs:----:/ssoo+++////:::///////osyyso+/::--......-:++/:-........................-/osyhhhhhhhhhhhys+--...............................
ddddddddddddddddhdhdddmNNNNNNNNNNNNNNNNNNNNNNmmddddddddddddddddddddddddddmmmmmmmmmdhyssoooooooooooooooossyhhysyyyhNNNNNNNNNmhy+-----:/ssoo++///::::::////+syysooo+++/:--..`````.:+o/-.......................-:+syhhhhhhhhhhyyso:-...............................
ddddddhhhdddddddddddddmNNNNNNNNNNNNNNNNNNNNNNmmddhhhyyyyyssssooooo++++oshdmmmmmmddhyssoooooooooooooooooosyhhyssyyyhdmNNNNmdhyo/:::::/oysoo+///:::::::://+yysssyyhhhhhys+-.```````./o+-.......................-/oyyhhhhhhhhhyyyo/-...............................
hddddhhdddddhhhhhhhhhhdmNNNNNNNNNNNNNNNNNNNNNmmhs+//:::::::----------:+shdmmmddhhyyssooooooooooooooooooooshhyyssyyyyyhhhhhys+//::://oysoo+///:::::::::/+syssyydmmNNNNmdhs:.````````:o+-......-...............-/+syhhhhhhhhhhyys+/-..............................
yyyyyysssssooo++++++++oydNNNNNNNNNNNNNNNNNNNNNmds+/:----------------:+shmmmmdhysssoooooooooooooooooooooooshhyyyssyssyysssoo+++////+ossoo+///::::---:::/syssyymNNNNNNNNNdy+:````````./s:-.....................--/+syhhhhhhhhhhyyo/-..............................
/////::::::::::::::--:/ohmNNNNNNNNNNNNNNNNNNNNNmho/:--------------::+shdmmdddhysooooooooooooooooooooooooooyhhyyyyyssssssooo+++++++sssoo++/:::------:::+ysssshNNNNNNNNNNNdyo-````````-o+-.....................--/+syhhhhhhhhhhyys+:-.............................
:::::::::::::::::::--:/+shNNNNNNNNNNNNNNNNNNNNNmdy+::------------:/+yhdmmdhhyssooooooooooooooooooooooo++oooshhhyyyyysssssssoooossssoo++++//::------::/sysossdNNNNNNNNNNNdho-````````.++-...-.--...-.........--:/oyhhhhhhhhhhhhyyo/-.............................
:::::::::::::::::::-::::+sdmNNNNNNNNNNNNNNNNNNNNmds+/-----------:/oydmmmmdhysooooooooooooooooooooooo+o++++oosyhhhhyyyyyyyyyyyyyssoo++++o+ooo+:-----::+ssooooymNNNNNNNNNmhy/.````````.++-...-.-----...........-:+syhhhhhhhhhhhhyyo+:-............................
:::::::::::::::------:::/+sdmNNNNNNNNNNNNNNNNNNNNmho/:---------::oydmmmmdhysoooooooooooooooooooooooooo++++++ooosssysssyssyyssoo++++++ooooooooo/-----:+sysooooshmNNNNmmdhy/-.````````-o/-.---------..........--:+syhhhhhhhhhhhhyyso/-............................
:::::::::::::-----------:/+shmNNNNNNNNNNNNNNNNNNNmds+::-------:/+shdmmmdhysoooooooooooooooooooooooooo+++++++ooo+oooo++++++++++/++++ossooooooooo/----:/oysoo+oossyyhhhhyo:-......`.../s/-----------...........-:+syhhhhhhhhhhhhyys+/-............................
::::-::::----------------:/+shmNNNNNNNNNNNNNNNNNNNmhs+/------:/sydmmmmdhysooooooooooooooooooooooooo+o+++++++++o++++++++++++/////+syyssoooooooooo/----:/sysso+++oosooo+/:---........:o+:----------...........--/+syhhhhhhhhhhhhyyso/-............................
--------------------------::/oymNNNNNNNNNNNNNNNNNNNmhs/:----:/shdmmmmmdysoooooooooooooooooooooooooo+o++++++++++++++++++++++osssyyyyssoo++ooooooo+:----:/osssoo+++++///::----......:oo/:::-----....-........--:/osyhhhhhhhhhhhhhyys+:......................`.....
----------------------------:/+ydNNNNNNNNNNNNNNNNNNNmho/:--:/ohdmmmmmdhysoooooooooooooooooooooooooo++++o+++++++++++++++oooyddddhhyysso+/oooooooooo/-----:/osssoo++++//:::--------+ss+:::-------...-........--:+osyyhhhhhhhhhhhhyys+:......................```...
------------------------------:/oydmNNNNNNNNNNNNNNNNmmdy+::/oydmmmmmmdhysoooooooooooooooooooooooooooooo+++++o+++oooo+oooohddmmmmmmmmdhysssooooooooo+/:-----:/osssssoo+//::::::/+sso/:-::-----..............--/+oyyhhhhhhhhhhhhhyys+:......................`.....
-------------------------------::/ohmNNNNNNNNNNNNNNNNNmdyo++shdmmmmmmdhyssooooooooooooooooooooooooooooooooooooooooooooooohhhdmNNNNNNNNNNNmmdhyyssssoso/--....-:/+oysssssooooooo+/:--------................--:+syyhhhhhhhhhhhhyhyys+:...........`..``````````````
----------------------------------:+ydmNNNNNNNNNNNNNNNNmmhyyddmNNmmmdhyysoooooooooooooooooooooooooooooooooooooooooooooooshhhdmNNNNNNNNNNNNNNNNNNNNmmdys/--......--::/++o+++/::--......--..................-:+syhhhhhhhhhhhhhyhhyys+:........````````````````````
-----------------------------------:/+sdmNNNNNNNNNNNNNNNmmddmmmNNmmmdhysssooooooooooooooooooooooooooooooooooooooooooooooshhhhdmNNNNNNNNNNNNNNNNNNNNNmys/----..........-----...............................-/+syhhhhhhhhhhhhhhhyyyso:.......`````````````````````
-------------------------------------::/ohmNNNNNNNNNNNNNNNmmmNNNmmmdhhysssoooooooooooooooooooooooooooooooooooooooooooooooydhhhdmNNNmmmmmmmmmmNNNmdhsoo+------.............................................-/+osyhhhhhhhhhhhhhhyyyy+:......``````````````````````
------------:--------------------------.-/oydNNNNNNNNNNNNNNNNNNmmmmmdhyssooosooooooooooooooooooooooooooooossssoooooooooooshddhhddmddhhhhhhhhhhysooooo/------....-................-........................--:+osyyhhhhhhhhhhhhyyyso:......``````````````````````
-------------------------------------------:+ydNNNNNNNNNNmmmmmmmmmmdhyyssssssoooooosssssoooooooosoooossssssssssssssssssoooshdddhhhyssssoooooooooooo+/-------................................................--:/+syyyhhhhhhhhhyyyyo:.......`````````````````````
---------------------------------------------:/sdNNNNNNNNmmmmmmmmmmdhyssssssssssoosssssssssssssssssssssssssssssssssssssssssshmmddhysooooooooooooo+/---------.-..-..............................................-:/oyyyyhhhhhhhyyyso:.......`````````````````````
:----------------------------------------------:/sdmNNNNNmNNmmmmmmmdhyyssssssssssssssssssssssssssssssssssssssssssssssssssssssydddddhsssooooosso+/:--------------------.........................................-:/osyyyyyyhhyyyyyso:-......`````````````````````
:------------------------------------------------:+sdmmNNmmmmNmmmmmdhyysssssssssssssssssssssssssssssssssssssssssssssssssssssssyyhhddddhhyyso+/::::::-------------------.........................................-:/+osyyyyyhyyyyyyo/-.....``````````````````````
:::-----------------------------------------------::+ydmNNmmmNmmmmmdhhysssssssssssssssssssssssssssssssssssssssssssssssssssssssyyyyyyssoo+///::::::::::::::----------------.-..-..................................-:/osyyyyyyyyyyyys+:....```````````````````````
::-------------------:::--------------------------::+shdmmmmmmmmmmmddhysssssssssssssssssssssssssssssssssssssssssssssssssssssssssyysssooo+++/////:::::::::::::::::----------------......-..........................-:+syyyyyyyyyyyys+:...````````````````````````
::------------------------------------------------:/+shdmmmmmmmmmmmddhysssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssooooo++++//////:::::::::::::::----------------.....---.........................-:+syyyyyyyyyyys+:..`````````````````````````
:::----------------------------------------------::/oydmmmmmmmmmmmmdhhysssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssoooooo++++////////:::::::::::::::--------------..-.----.........................:/osyyyyyyyyyys+:-..````````````````````````
:::----------------------------------------------::/oydmmmmmmmmmmmddhyysssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssoooooo+++++////////:::::::::::::::-------------...-------......................-:/osyyyyyyyyyyso/-.`````````````````````````
:::-:--------------------------------------------::/ohdmmmmmmmmmmmdhhyysssssssssssssssssssssssssssssssssssssssssssssssssssssssssssoooooooo+++++/////////:::::::::::::::----------------------.....................--/+osyyyyyyyyyyso/-..````````````````````````
:::::::------------------------------------------::/ohdmmmmmmmmmmmdhhyyssssssssssssssssssssssssssssssssssssssssssssssssssssssssssoooooooooooo++++////////::::::::::::::-----------------..........................-:+osyyyyyyyyyyyso/-..````````````````````````
:::::::------------------------------------------::/ohdmmmmmmmmmmmdhhhyyssssssssssssssssssssssssssssssssssssssssssssssssssssssssoooooooooooooo++++/////////:::::::::::::----------------..........................-:+oyyyyyyyyyyyyso+:...```````````````````````
:::::::------------------------------------------::+shdmmmmmmmmmmddhhhyysssssssssssssssssssssssssssssssssssssssssssssssssssssssooooooooooooooo++++++//////////:::::::::::-:---------------........................:/osyyyyyyyyyyyyso+:-..```````````````````````
:::::::::::::---::---:::----:----:--------------::/+shdmmmmmmmmmdddhhyyysssssssssssssssssssssssssssssssssssssssssssssssssssooooooooooooooooo+++++++++//////////::::::::::::----------------......................-/+osyyyyyyyyyyyyss+:-...``````````````````````
:::::::::::::::::::::::::::::::::::::::::-::::-::/+oyhdmmmmmmmmdddhhhyyysssssssssssssssssssssssssssssssssssssssssssssssoooooooooooooooooooo+++++++++///////////:::::::::::::-----------------..................--:+osyyyyyyyyyyyysss+:-..```````````````````````
::::::::::::::::::::::::::::::::::::::::::::::::::/oshddddmmmmmdddhhhyyysssssssssssssssssssssssssssssssssssssssssssssssoooooooooooooooooooo++++++++////////////::::::::::::::----------------.................--/+osyyyyyyyyyyyyysss+:-..```````````````````````
::::::::::::::::::::::::::::::::::::::::::::::::::/oyddddddmddddddhhhyyysssssssssssssssssssssssssssssssssssssssssssssssoooooooooooooooooooo+++++++++//////////:::::::::::::::--------------...................-:/ossyyyyyyyyyyyyssss+:-...``````````````````````
::::::::::::::::::::::::::::::::::::::::::::::::::/ohddddddmdddddhhhyyyyssssssssssssssssssssssssssssssssssssssssssssssssooooooooooooooooooooo+++++++//////////:::::::::::::::----------------................--:/ossyyyyyyyyyyyyssss+/-....````````````````..`..
:::::::::::::::::::::::::::::::::::-::::::::::::::/shdddddddddddhhhyyyyyysssssssssssssssssssssssssssssssssssssssssssssssoooooooooooooooooooo++++++++///////////::::::::::::------------------..............---:/+ossyyyyyyyyyyyyssso/:-...`````````````.`..`````
:::::::::::::::::::::::::::::::::::::::::::::::::/oyhdddddddddhhhhhyyyyyssssssssssssssssssssssssssssssssssssssssssssssssssossooooooooooooooooo+++++++///////////::::::::::::---------------------.........---:/+osyyyyyyyyyyyyyyysso+:-.....````````.`.`.`..````
:::::::::::::::::::::::::::::::::::::::::::::::::/oyddddddddddhhhhyyyyyyssssssssssssssssssssssssssssssssssssssssssssssssssssssosooooooooooooo++++++++++///////////::::::::::::--------------------........---/++osyyyyyyyyyyyyyssssso/-....`````````..``..``````
:::::::::::::::::::::::::::::::::::::::::::::::::/oydddddddddhhhhyyyyyyssssssssyssssssssssssssssssssssssssssssssssssssssssssssosoooooooooooooo+++++++++////////////:::::::::::-:--------------------.....---:/+oosyyyyyyyyyyyyyyyssso/-.....```````.``..````````
:::::::::::::/:::::::::::::::::::::::::::::::::::/shddddddddhhhhhyyyyyysssyssssysssssssssssssssssssssssssssssssssssssssssssssoosoooooooooooooooo+++++++++//////:///:::::::::::-----------------------------:/+oossssyssssssssssyssso+:-............`````````....
::::::::::::::::::::::::::::::::::::::::::::::::/+yhdddddhdhhhhhyyyysyyssyyyssysyssssssssssssssssssssssssssssssssssssssssssosoossooooooooooooooo+++++++++//////////::::::::::::----------------------------:/+oossssssssssssssssssso/-...........`..```````.....
//::::/:::::::::::::::::::::::::::::::::::::::::/oydddddhhhhhhhyyyyyysyyyyyyyyyyyssysssyssssssssssssssssssssssssssssssssssssoosssooooooooooooooo++++++++++//////////::::::::::::--------------------------:/++oossssssssssssssssyso+:-.............`````````....
////////////////////::///////:::::::::::::::::::+shdddhdhhhhhhhyyyyyyyyyyyyyyyyyyyyyysyysyssysyssssssssssssssssssssssssssssssossooooooooooooooooo+++++++++++///////////:::::::::::-----------------------:/+oooossssssssssssssyssso/-................````..`....
///:::/:::://///////////::::::::::::::/::::::::/+shddhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyysyssssssyssyssssssssssssssssssssssssssssoooooooooo++o+ooo++++++++++////////////:::::::::::-----------------------::/+ooossssssssssssssssso+:-..................``.......
///////:/://////////////::::::::://:://////////+oyhdhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyssysssssysysyysssyssssssssssssssssssssssooooooooooooooooo++++++++++///////////::::::::::::------------------------:/++oooossssoooossssssso/:............................
::////////////////////////////////////////////+oshhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyyyyyyyyyssyssssssssssssssssssssssossooooooooooooo++++++++++////////////::::::::::::------------------------://++ooooooooooooossssso/:............................
:////////////////////////+/////////////////////oyhdhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyysyyyyyyyyyyyyssyysyyyyssssssssssssssssssssssssooooooooooooo++++++++++///////////:::::::::::::::------------------------://++ooooooooooooosssso+:............................
///////::::/://///////////////////////////////+sydhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyyysssssssssssssssssssssssoooooooooooooo++++++++++///////////:::::::::::::-------------------.----:://++oooooooooooooossss/-.......`....................
//::::::::::::///////////////////////////////+oyhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysysssssssssssssssoooooooooooooooooooo+++++++++++///////////::::::::::::----------------.-------::///+++++oooooooooossss+:............................
:::::::::::::://///////////////////////////+++oyhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyysssssssssssssssoooooosoooooooooooo+++++++++++++//////////:::::::::::::------------------.------:///+++++++ooooooossyso:............................
////////////////////////////////:::::///////++syhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyysssssssssssssssssoooooosooooooooooooo++++++++++++//////////:::::::::::::::--------------.---------::///+++++++++ooosyyyo:-...........................
+++++++/////////////////////////:::::::://///+syhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyssssssssssssssssssssoooooooooooooooo+++++++++++///////////::::::::::::::::------------------------:::////+/++++++oosyys/-...........................
/////////////////////////////////////////////+oyhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyssyyssssssssssssssssssssssooooooooooooooooo++++++++++/++/////////::::::::::::::::------------------------:::///////+++++osyys+:...........................
////////////////////////////+++++++/////////+osyhhhhhhhhhhyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssssssssssssssssssoooooooooooooooooo+++++++++++++/////////::::::::::::::---------------------------::////////+++osyyyo/-..........................
////////////:/::////:////////++++++++++++++++osyhhhhhhhyyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyssssssssssssssssssssssssssoooooooooooooo++++++++++++//////////////::::::::::---------------------------::::://////++osyyys/-..........................
:::::::://///////////////////+//////////////+osyhhhhhhhhyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssyyssssssssssssssssssssssssoooooooooooooooo+++++++++++//////////////::::::::::::---------------------------::::://///++osyyso:-.........................
/////////////////////////////+++////////////+oshhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyysssssssssssssssssssssssssooooooooooooooo++++++++++//////////////:::::::::::::::::-----------------------::::://///++ossys/-.........................
++++++///////////////////////+++++++++++++/++oyhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyyyssssssssssssssssssssssssosoooooooooooo++++++++++++//+//////////:::::::::::::::::-------------------------:::://///+ossyy+:.........................
+++++++//+++++++++++//////////+++++++++++++++syhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyyyyssssssssssssssssssssssssosoooooooooooo+++++++++++///////////:::::::::::::::::::::--------------------------::::///++ssyyo:-........................
++++++++++++++++++++++++//+++++++++++++++++++oyhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssyyyyyyysssssssssssssssssssssssosoooooooooooooo++++++++++////////////:::::::::::::::::::---------------------------:::::://+syyys/-........................
++++++++++++++++++++++++++++++++++++++++++++ooyhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssssssssssssssssssssssooooooooooooooo++++++++++////////////::::::::::::::::::----------------------------::::://+syyys/-........................
++++++////////////////+++/+////++++++++++++oooyhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssssssssssssssoooooooooooooooooo++++++++++/////////////////::::::::::::::::----------------------------:::/+osyyhs+-----........------------
++///////////:://////////////+/++++++++++++oooyhhhhhhhhhhhhhhhhhhhhhhhyyyhhyyyyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssssssssssssssssssoosoooooooooooo+oo+++++++++/////////////////:::::::::::::::::---------------------------::::/+syhhyo:-----.---.....----------
+++++++++//////////////+++++++++++++++++++++osyhhhhhhhhhhhhhhhhhhhhhyyyhhhhyyyyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssssssssssssssssssooosoooooooooooo++o+++++++++/////////////////:::::::::::::::::::::::::::::::-:------:----:::/+syyhy+:::::--------.......-----
+++++++++++++++//////++++++++++++++++++++++oooyhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssssssssssssssssoooosoooooooooooooo+++++++++///////////////:::::::::::::::::::::::::::::::::::::---:::::::::/+syyhy+:---::::-----------......
++++++++++++/++++++++++++++++++++++++++++++ooosyhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssssssssssssoooooooooooooooooo+++++++++++++/////////////:::::::::::::::::::::::::::::::::::-----::::::::/+syhhy+:----------------------..
/////////++++++++++++++++++++++++++++++++++ooosyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssssssssooossooooooooooooo++++++++++++++++/////////////::::::::::::::::::::::::::::::::--:---:::::::/+shdhy+:------------------------
//////++++++++++++++++++++++++++++oooooooosssyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssssssssooooooooooooooooooo+++++++++++++++/////////////::::::::::::::::::::::::::::::::::::::::::::/oyhhhy+:------------------------
//+++++++++++++++++++++++++ooooosssyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssssssssssoosssooooooooooooooo+++++++++++++/////////++++++//::::::::::::::::::::::::::::::::::::::::/oyhhhy/:--------:::::::::-------
///++++++++++++++oooooossssyyyyyyyyyyyhhhhhhhhhhhdmmmmmmmmmddhhhhhhhdmmmmmdmmmhhhhydmmmmddddmddddmmmmmdddmmhyyyydmdddddmdsssssssssssssssssddddddddhsooooo++++++++++++++//++syhhhyyyyyyhhys+/::::::::::/shhyyhhhy/:::::::::::::/oyhdhho:--------:::::::::::::::::
+///+++++++++ooossssyyyyyyyyyyyyyyyyhhhhhhhhhhhhhmm/----/dmddddddddddNy-----smhyhhydmo-------------------sNhyyyhNs-----hdsssssssssssssssssmh-----ymsooooooo++++++++++++oyhy+:-.```  ```.:/syyo/:::::::/hh:----od+::::::::::::/oyhddhy+:-------------::::::::::::
++++++ooossssyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhddmm:    -dmdhdhhhddddNs`   `smhhhhydm+`                 `+NhyyyhN+    `ydyyyssssssssssssssmy`   `odsooooooo+++++++oo+oyho-`      ````     `./yho/:::::/hy`    /d+::::::::::::+yddddhy+:::::---------::::::::::::
ossssyyyyyyyyyyyyyyyyyyyyyyyyhhhyhhhhhhhhhhhhhhdmNm:    -dmhhhhhhhhddNs`   `smhhhhhdm+`   `+ssssssssssssshNhyyyhNo    `ymysyyyysssssssssosmy`   `odsoooooooooo++++o+sds-`    ./oyyyyys+-`    `/hy/::::/hy`    /d+:::::::::::/ohmddhyo/::::::::::::::::::-:::::::
yyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhdmmNm:    -dmhhhhhhhhhdNs`   `smhhhhhdm+`   .hmdhhhhhhhhhhhhhyyyyhNo    `ymyyyyyssssssssssssmy`   `odsooooooooooo++ooyd+`    -ohysoo++osyhy/`    :hh+///+hy`    /d+::::::::/:::+yddhhs+::::::::::::::::::::::-----
yyyyyyyyyyyyyyyyyyyyyyyyyyyhhyhhhhhhhhhhhhhhhhhdmNm:    -dmdhhhhhhhhdNs`   `smdhhhhdm+`   .hmhyyyyyyyyyyyyyyyyyhN+    `ymyyyyyssssyyssssssmy`   `omsoooooooooooooosmo`    :hho+++++++++oyd+`   `:ddhhyymy`    /d+:////////////+yyso+/:::::::::::::::::::::::::-:
yyyyyyyyyyyyyyyyyyyyhyyyyyyhhyhhhhhhhhhhhhhhhhhhdmm:    -dNNNmmmmmmmmNs`   `smddhhhdm+`   .hNddddddddddddhyyyyyhN+    `ymyyyyyysssyysssssymy`   `omsssoooooooooooodd-    .hdooo+ooooooooohd/    `oNddhhmy`    /ds++/////////////////::::::::::::::::::::::::::::
yyyyyyyyyyyyyyyyyhyhyyyyhyhhhhhhhhhhhhhhhhhhhhhhhmm:    `:////////////-    `sNdddhhdm+`   `:///////////omdyyyyyhN+    `ymyyyyyyyyyyyysyssymy`   `smssssoooooooooosms`    /myooooossssssssymy`    :dmdddNh.   `+mdyso+///////////////::::::::::::::::::::::::::::
yyyyyyyyyyyyyyyyyhyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhmm:                       `smdddhhdm+`                -ddhhyyhhN+    `ymyyyyyyyyyyyyyyysymy`   `smyssssoooosoooosmo`    omyoossssyyyyyyyhmh.    -dmdddNd-   `smdhso+////////////////::///::::::::::::::::::::::
yyyyyyyyyyyyyyyyyyyyyhhyhhhhhhhhhhhhhhhhhhhhhhhhhmm:    `:::::::::::::-`   `smdhhdddm+`   `:+++++++++++ommhhhhhhN+    `ymyyyyyyyyyyyyyyysymy`   `omysssssssssosooymo`   `omyssssyyyyhhhhddNh.    -dmdddmm/   .yNdhys+///////////////////////::::::::::::::::::::
yyyyyyyyyyyyyyyyyyyyyyhyhhyhhhhhhhhhhhhhhhhhhhhhhdm:    -dNmmmmmNNNNNNs`   `smdhhddmm+`   .hmmddddddddddddhhhhhhN+    `ymhyyyyyyyyyyyyyyyymy`   `omysssssssssssssyms`    /mhssyyhhddddddddNs`    :mdhhhdm+`  -dmhhs+/////////////////:::::://///::::::::::::::::
yyyyyyyyyyyyyyyyyyyyyyhhyhyyhhhhhhhhhhhhhhhhhhhhhdm:    -dNmmmmNNNNNNNs`   `smdhdddmm+    .hmdhhhhhhhhhhhhhhhhhdN+    `ymhhyyyyyyyyyyyyyyyNy`   `omyssssssssssssssdd:    `smyyyhdmmddddhdmd:    `sNdhhhhmdoooymdy+////////////////::::::::::::::::::::::::::::::
yyyyyyyyyyyyyyyyyyyyyyhhhhhyhhhhhhhhhhhhhhhhhhhhhmm:    -dNdmmmNNNNNNNs`   `smdddddmm+    .hmdhhhhhhhhhhhhhhhhhdN+    `ymyhhhhhyyyyyyyyyyhNy`   `omyyyyyssssssssysymy.    .sddhdmmmdddddmh:`   `/mmhhhhhdmmmmmds++++///////////////:::::::::::::::::::::::::::::
yyyyyhhyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhmm:    -dmddmmmNNNNNNs`   `sNmddddmN+    .hNmmmmddddddmdddmhhhdN+    `ymddddddddddddddhyhNy`   `omdddddhhhdhhhddyyhds.    `/ydmmmmmmmdh+.    `/dmhhhhhmmyo++shho++//////////////////:::::::::::::::::::::::::::
yyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhmm:    -dmddddmmmmmNNs`   `sNmddddmN+`   `-//////////////sNdhhdN+    `-::::::::::::/yNhhhNy`    .::::::::::::/yNhyyhmh/`    `.:+++++/-`    `-smdhhhhhdmo`   `:dh+++++////////////////::::::::::::::::::::::::::
yyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhmm:    -dNddddddmmmmNs`   `sNNmmmmmN+`                   /mddddN+                  `+NhhhNy`                 `+Nhhhhhdmy/.`             `.:sdmdhhhhhhmm/`    -hh+++++++/////////////////////:::::::::::::::::::
yyyyyyyyyyyyyyyyyyyyhhyhhhhhhhhhhhhhhhhhhhhhhhhhhdmo////ommdddddddddmNh/////hNNmmmmNNy////////////////////sNmdddNy///////////////////yNdhdNh///////////////////yNdhhhhhddmdho/:-.....-:/+shmddhhhhhhhhhdh+-.-/sds+++++++++++++////++////////////::::::::::::::::
yyyyyyyyyyyyyyyyyyyyyyhyhhyhhhhhhhhhhhhhhhhhhhhhhdmmmmmmmmmdddddddddmmmmmmmmmmmmmmmmNmmmmmmmmmmmmmmmmmmmmmmNmmmmmmmmmmmmmmmmmmmmmmmmmmmdddmmmmmmmmmmmmmmmmmmmmmmmddddddddmmmNNNmmmddddmmdddhhhhhhhhhhs+:+syhyyso++++++++++++++++//////////////////////::/:::::::
yhyhhyhyyyyyyyyyhyyyhhyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhdddddddddddddddddddmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmddddddddddddddddddddddddddddddddddddddddmmmmmmmmmmmmmmmmddddhhhhhhhhhhhhdhyo+/:://++++++++++++++++++++////////////////////////////////
yhyhhyyyyyyyyyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdddddddddddddddddddddddddmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmdmmmmmmmmmmmmmmmmmdmdmmmmmmmmmmmmmmmmdddhhhhhddhdddddddddyso+/+++++++++++++++++++++++//////////+///////////////////
yyhhyhhyyyyyyyyyyhhhhhyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhdddddddddddddddddddddddddddddmmmmdmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmdddddddddddddddmmmmmmmmmmddddddddddddddddddddhyo++++oo+++++++++++++++++++////+////////////////////////
yhyyyyyyyyyhhyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhddddddddddddddddddddddddddddddddddddddddddddddddmmmmmmmddddddddddddddmmdddmddmmmmdmmmmmmddddddddddddddddddddddddddddddddddddddddddddddddddhyysooooo++o++++++++++++++++//////////////////////::::////
yyyyyyyhhhhhhhhyyyyyyyyyhyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddhyssssoooooooo+++++++++++///////////////////////////////////
yyyyhyyyhhhhhhyyyyyyyyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddhdhhhhyyyssssooooooooo+++++++++++++//////////////////////////////////
yyyyyyyhyhhhhhhhyyyyyyhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddhyysssoooooooooooooooooooooo+++++++++++++++/////////////////////////////////