$HHHHHXHX        .==,  :HHXHHXHXHXHHHH/-----   XHH:=:::=   =:::::;;:-=-=-====-=-=-==-=-=-=-:;;;;;===-=-=-====-=-=-==-=-=-====-=-=-==-=-=-====-=----         :::H@@@@@@@HX@+                     
         %HHHHXHHX.       .=-,  :@HXHXHXHXHHXHH/--=-=   $XX/=:::=   ::::::;;:=-=-======-=-====-=-===;;;;;;====-=-======-=-====-=-======-=-====-=-====-=-==-=         :::H@@@@@@@HHH+                     
         %XXXXXXH$         =-,  =HHXXXXHXHXHXXH:  ---      =====:-=====:=:;;:-----------------------:;;;;;--------------------------------------------------         ==:H@@@@@@@HXH+                     
:::::::::////;+@@H;:::::::;//;::+M@@@@@@@@@@@@@%::;/;::::::/++++++++++++++%%%////////////////////////+++++/////////////////////////////////////////++%///:;::::::::::+++@MMMMMMMM@M@XX%::::::::::::::::: 
;;;;;;;;;:::::/@M@;;;;;;;;;/+:::%M@@@@@@@@@@@@@%:;++/;;;;;;+%+%+%+%%+%+%+%%%%/+/+//+/+/+//+/+/+/+//+/+/+//+/+/+/+//+/+/+//+/+/+/+//+/+/+//+/+/+/+//%%$++/::=;=;::::;:%+$@MMMMMMMMMMMMM$::;;;;;;;;;;;;;;; 
               $$$%%/      -,.  =X$$$X;,,,..+HH=  .-,      ,==$X%=-=--=-==;;=----------------------------------------------------------------------=;;-,,            ===H@@@H@H@H@@HXH;                  
;;;=-----------==:H@X-----=;:/++;=====://:--$@@/--=:;=-----+/+@M@/+;//////+//;:;:;:;::;:;:;:;;:;:;:;::;:;:;:;;:;:;:;::;:;:;:;;:;:;:;::;:;:;:;//+/+//;;=,-,-,--,-,-,--;//@@@@@M@M@@@@@MX/+:-------------- 
%%%///////////////@MH/////+/+%XX%/////+XX+//X@@%///++//////%%%MM@%%%%%%%%%$%%++%+%++++%+%+%++++%+%++++%+%+%++++%+%++++%+%+%++++%+%++++%+%+%++%%$%$%%++/:/:/;;;;/:/;;/%%%@MMMMMMMMMMMMM@$X+////////////// 
,--               $H%        .;;:::.  ,;;,              ,-,   H@X=:=:====::;:----------------------------------------------------------------:;;;:;=--                  H@@@H@H@@@@@@@$:;,               
:::==:=:=,.,,,,,,,-==;;;;;;;;////++=..=++/;;-...,,...,,,:::,.,@MH;;;;;;;;;//;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;/////;:;=,--,,,,.,..,.,.,......,HM@@@@@@@@@@@@HXX;.,,,,,,,,,,... 
$$$$$$$$$+++++++++//+XXXXXXXXXXXXXX%++%$$XXX%++++++++++%$%///H@@X$$X$X$XX$$$%$%$%%%%$%$%$%%$%$%$%%%%$%$%$%%$%$%$%%%%$%$%$%%$%$%$%%%%$+X$X$$X$%%+;///+;+/+//+/+/+/++++/%MMMMMMMMMMMMMMMMM$/+++++++++++++ 
---------            ;;;;;;;;;;;;;;,     -;;.           ,=-   ==:=:====:=::;=----------------------------------------------------------=;:::::--.                 =====:H@@@@@@@@@@@@@HXH:           .-- 
$$$$$$$$$$$$++++++++%XXXXXXXXXXXXXX$+++++$XXXXXXXX%++++%%%%++/$X$X$$X$X$X$$$$$$$$$$%%$%$%$%%$%$%$%$%%$%$%$%%$%$%$%$%%$%$%$%%$%X$X$XX$$%$$$%+%+%/+/++/+/+/++++/+/++%XX$X$MMMMMMMMMMMMMMMMMH$X$++++++++%$$ 
::=:=::::::=........,//////////////=.....=////////-.....=:-,,,:;/:/:/:;;:;-:==::::=:=:=:==:=:=:=:==:=:=:==:=:=:=:==:=:=:====:=;/////;==:=:-......................,/:/;;/H@@@@@@@@@@@@@HHH%//=........-:: 
=-=-==-=-=--         ;;;;;;;;;;;;;/,        =;;;;;.        %XXHHX==:===     .==-=-=-==-=-=-=-==-=-=-==-=-=-=-==-=-=-==-=-=====:;:;;;=  ,--,                       XHHHHH;=/@@@@@@@@@@@HXH+;;=        ,== 
-=-====-=-====-     .;;;;;;;;;;;;;/,        =/;;;/,        XM@@MX=;=;:=     .=-=-=-====-=-====-=-=-====-=-====-=-=-====-=;;;;;:==-=-:=:,                         .H@@@@H:::@@@@@@@@@@@HXH+;;;;/,     ,=- 
=-=--=-=-=-===-      :::;;;;;;;;;;;-        =::;;;-........X@@@@X======.    .==-=-=--=-=-=-==-=-=-=--=-=-=-==-=-=-=--=-==;;;;;:------==.                         .H@@@@@:=;@@@@@@@@@@@HHH%;;;;/,     ,== 
=:=::=:=:=:==:=........-/////////////////-.....=//$HHXHXHXH@@@@MX.....,:;=..,:=:=:=::=:=:=:==:=:=:=::=:=:=:==:=:=:==:=:=://///;===:=-..........................:;:H@@@@H;:/@@@@@@@@@@@@HH%;////-.....-:= 
XHXHHHHXHXHXHHX$$$$$$$$XHHHHHHHHHHHH@HHH@X$$$$$XHHMMMMMMMMM#M#M#M$+%%%$X@X$$XHHHXHXHHHHXHXHXHHXHXHXHHHH$X%X$XX$X%H%X$$H$H$H$XX$X%H%$%%%+$+$+%%+$+$+%%%$+$+$+%%+HHHM##M#MHX@###M####MMMMMMM@M@HHX$$$$$XHX 
XHHHHXHXHXHHXHX$$$$$$$$X@HHHHHHHHHHHH@HH@X$$$$$H@HMMMM#MMMM#####M$$$$$$XH$$$X@@HXHHHHXHXHXHHXHXHXHHHHXHHHXHXHXHXXHXHXHH@HHHHXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXH#####MHXH#########MM#MMM##@H@X$$$$$XHX 
HHHHHHHHHHHHHHHXXXXXXXXXXXH@@@@@@@@@XH@@@HXXXXXXXX@#MHXXXXX@@H@H@X+$H@HMMMMM@XXXHHHHHHHHHHHHHHHHHHHHHHHXX$H$H$XX$H$H$XXXH$@$X$XX$X+X%$%%$%X+$%$$%X+X%$%%$%$%HH@MMM######HH@#########MMMMMMMMM@@HXXXXXHHH 
;;;;;;;;;;;;=-------------:%++++++++++++%:--------$@@:-=/////////=-=//+@M@@M%--=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++:;;;;:----------------------------=///HM@@@@@M@+;+@@@@@@@@@HHHH@HHHH@@$+%:--:/; 
------------              ,;;;;;;;;;;;;;;,        +HH.  =;=:=::==   :=;@@@@M/   -=---------------------------------;;;;;;=,=-=,                             =::H@@@@@@@H==:@@@@@@@@HHXHXHXXXXHH+:;.  ,=- 
=-====-=-==-              ,/;;;;;;;;;;;;;::::::::=$HH=,,.,.=:=:::=-===;@@@@M%----,-===-=-======-=-====-=-=======:==::::;:---,-.                 ,=-=-=--=-=-:=:H@@@@@@@@XXX@@@@@@@@HHHHHXHXHHHH+;;=,--== 
-====-=-=-=-              ,/;;;;;;;;;;;;;;///////;$HH:=-   :::::::;=:=;@@@@@HHH%  .==-=-=-====-=-====-=-=-===;;;;;:   -=-=--                    -:;=:::::;=;=::H@@@@@@@@M@@@@@@@HHXXHXHXHXHHXHH+;;=====- 
=-====-=-==-              ,/;;;;;;;;;;;;;;;;;;;;;;$HH:--   ==::=:=:=:=;@@@@@HH@+  .===-=-====-=-=-====-=-=---;;;;;:   ---=-,                    -:;:;::::::;=::X@HHHHHH@HHHHHH@@@XHXHHHHXHXHHHH+;;:===-= 
------------..............-;;;;;;;;;;;;;;;;;-,,=;;$HH/::=-=:/;/;;/;/;//H@H@HHXH%,,--=-=-----------------=-...:;;;//$$%=-=:;:=-=-==-=-=-====-=-=-%HXHXXXXHXHX+;//+/++/+/+/+//++H@HXXXHXHXHXXXXXX+:;=----- 
////////////;;;;;;;;;;;;;;/%%%%%%%%%%%%%%%%%/::/%%H@@$%$///$$%X%X%X$$$%M@@@@M@M@@@$:::::;//////////////;::%%%%%%H@@@@@+//$%%+/+/++/+/+/+//+/+/+/HMMM@M@M@MM@$%$%$%///$%$///$$%@@@@@@@@@@@@@@X%%%%%////// 
+%++%+%+%+++;;;;;;;;;;;;;;/$%$$$$$$$$$$$$$$$/;;+$$XH@%++;;;+%+%+%+%%+%%MMMMMMMMM@M;;;;/%%%+%+++++++++/;/%%%$$$@M@@@H;;;++/;;;;;;;;;;;;;;;;;;;;XM@MMMMMMMMM$%%+%+;;;+++;;/%%%@@@@@@@@@@@@@@H$$$$$%%%+%+ 
------------                 .;;;;;;;;;;;;;;.  -+/, .,--=:-:=:==:=:=:=;@@@@@@@@HXH%;;;::=,,----=-=-==-=:::---;//XHXXH$   =--                    -:;%@@@@@@@@HHH=-,      ,=,=-;HXXXXXXXXXXXXH%:;;;;-,,--- 
=-======-===                 ,//;;;;;;;;;;;/,  /@@=  ---:=:=:=::=:=:==;@@@@@@@@HHXHHH%;/=  ,==;;;;;;;;;;;/XHHHHHHXHXHX   -=--=,                 -:=%M@@@@@@@@@@.        -=-  -HHHXHXHHHHXHXH%;;;;/,  ,== 
-=-====-=-=-                 .:::;;;;;;;;;;;-..;$$-  -===;=;=::::=;=:=;@@@@@@@@HXHXHH/=:,  ,==:;;;//////;/HHHHXHXHHHH$  .=-=-=,               . =::+HXH@@@@@@@@=,,      -=,  -HHXHHHHXHXHHHH%;;;;/,  ,=- 
=-====-=-==-                    ,/;;;;;;;;;;:==,     ,,-=::::=:::=:::=;@@@@@@@@HHHHH@/-=,  .-,:;;:=======:XHHHHXHXHXHX   =-=--,              ,:::=::==$M@@@@@@@H@X.  ...-=-  =HXHXHXHHHHHX$$+;;;;/,  ,== 
-====-=-=-==                    ,/;;;;;;;;;/.           :::::::::::::=;@@@@@@@@@@@@@@HH@/     =//,        XHXHXHXHXXH$   =-=-=,              -:::=:=:=$@@@@@@@@@@H   -==-=-  -HHXHXXHXHXH+;;;;;;;/,  ,=- 
======-====-                    -/;;//;;;;;;,           =:=:=::::=:=:=;@@@@@@@@@@@@@@HX@/     -::,.......,XHHHHHHHHH@H...=-=-=,              :;:;:;:;:$M@@@@HHH@@H,..--=-=-  =HHHXHHHHH@@%;;;;;;;/,  ,== 
============                 ,;;;;;:--:;;;;;=--------         =:=:=::=;@@@@@@@@@@@@@@HHH$+%/:::;:%XXXXXXXXXHXHXX/;;;;/XX%  .-=,     ,========%@@H@HHHH@@@@@H:::H@@XH$   ----,;HHXHHXHH%;;;;;;;;;;;;;;:== 
===========-                 ,/;;;/,  ,/;;;;=====-:-=         =:;=;=;=;@@@@@@@@@@@@@@HHHHHHHH@HHHHHHHHHHHHHHHHHX      X@$  .-=,     ,:::=;=;=%M@@@@@@@@@@@@@:::HM@@MX   -=-=-;@HHHHHHH;  -/;;;;;;;;;/:-= 
=-==========                 ,/;;;/,  -/;;;;=------=-         =:=:=:==;@@@@@@@@@@@@@@HXXXHXHXHXHHXHXHXHHHHHHHHHX.  ..,XH$   --,. .  -/;;;;;;;$@@@@@@@@@@@@@H:=:$XX@@X   --=--:$%$HHXHH;  -/;;;;;;;;;;:-= 
-=-====-=-=-                 ,/;;;/,  ,;:;:;=====--,-         =::=;=:=;@@@H@H@H@H@@@@HHHHXHHHHXHXHHHHXH$$$$$$%++  .;;/XH$     ,::=;=%@@@@@@@@@@@@@@@@@@@@@@@:::::=H@X..,--,-,,  :HHHHH/  -/;;;;;;;;;;:=- 
=-====-=-==-                 ,/;;;/,  .=----------            =:::::==;@@@XHXHHXHXH@@@@@HHXHHHHHHXHXHHH/;;;;;     .;;/XH%     .=====+@@@@@@@@@@@@@@@@@@@@@@@;::==:@@X:::        :HHXHH;  -/;;;;;;;;;;:-= 
-====-=-=-=-                 ,/;;;/,  ,=-=-=-=-==-.           =::=:=:=;$$XHXXHXHXHH@@@@@@XHHHHHHHHXHHHH/;;;;;,.,,,,;;;XH$     -+////$@@@@@@@@@@@@@@XX$X$$X$X=--:::H@X=:=        :HXHH@/  -/;;;;;;;;;;:== 
=-====-=-==-                 ,/;;;/,  ,=-=-=-==-=-.           =:::::::::=/HHHHHXHXHHHHH@HHH$%%%%%XHH$%%/;;;;;;///;/+%%XH%     ;MM@M@@@@@@@@@@@@@@@M+===:=:==   =::@@X:::        :HH$;/=  -/;;;;;;;;;;=,, 
-====-======                 ,/;;;/,  .--------=-=.           =:=::=:=:==/@@HHXHXHXXHXHXHXH+:;;;:%HH+:;;;;;;;;;;;;/HHHHH$     :M@@@@@@@@@@@@@@@@@@@+==:=:=:=   ==:H@X=:=        :HH+     -/;;;;;;;;;/,   
===========-                 ,/;;;/,  ,=-=-=-==-=-.           =::=;=;::;=+@@HXHHHHHHHHHHHHH%;;;;;$HH+;;;;;;;;;;;;;/HHHHH$     :M@@@@@@@@@@@@@@@@@@M+::::=;=:   =;=H@H=::        :HH+     -/;;;;;;;;;/,   
============,,.              ,/;;;/,  .--------,  -==         =:=:=:,.=$XX@@HHHHXHHXH$+%+%%/;;;;;/%%/;;;;;;;;;;;;;/++%XH$  -$%X@@@@@HHHH@@@@@+:;;;;:====:..     ..:;:=:===-  .-,;HH+      ..-/;;;;,..-:: 
-=============-              ,/;;;/,  ,=-=-=-==.  =:;.        =::=;=  .HHH@@@@@HXHHHH+:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;XH$  -@HH@@@@@HHHH@@@@@%=::=;=;::;:.        ;=;::::;=  ,::+HH+        ,/;;;/.  -/; 
=-====-=-=-===-              ,/;;;/,  .=------=,..-:=.        ::::::. -HXH@@@@@HHXHXH%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/XH$. =HHH@@@@@HXXHH@HH@/=:===:=:=:=         =:=:=:=:=  .:=/HH+        ,/;;;/,  =/; 
-=-====-=-====-              ,/;;;/,  ,=-=-=-=-+XX/=:=:=   :=;HHHHHHX$XXHH@@@@@@HHHHH+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/XXHXXXHHH@@@H@+..-=-=;:;::-                            ,:=+HH+        ,/;;;;;;;;;; 
=-====-=-=====-              ,/;;;/,  .=-=-=---+@H/=::::   =::@@@HHHHHHHXH@@@@@@@@@XH%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/XHXHHH@@@@@@H@/     .:::::,                            ,:=+HH+        ,/;;;;;;;;;; 
-======-======-              .::;;/,  .----=-=-+HH/=:::=.. =:;XHHHXXHXHXHH@@@@@@@@HHH+;;;;;;;;////////////;;;;;;;;;;;/XXHXHH@@HHXX$$;   ...=====.                            .::+@@+        ,/;;;;;;;;;; 
==============-                 -//,     ,-=-=-+@@+=::::=:=;=:-.=HHHHHHHXHHHHHHH@HX+%/;;;;;;;;=-----------;;;;;;;;;;;/XHHHXH@M%=;-     ..,      .,,,,,                       .,,=;;=        ,/;;;;;;;;;; 
==============-                 ,//,     .=---,%@@/==::=:=:=:=  .HHXHXHXHXXXXHXHXH%:;;;;;;;;;/.           ;;;;;;;;;;;/XXHHXH@@%=:-              ,=-===.                                     ,/;;;;;;;;;; 
-=-=-==-======-                 ,//,     ,-=-=-%M@+=;=::=;=;::. ,HHHHHHHHHHHHHHHHH$;;;//;;;;//,           ;//;;;;;;;;/HHHHHH@M%=;-              ,=:-==.                                     ,/;;;;;;;;;; 
         -====-                 ,//,     ,=-,..+M@/==. ...,.,.  ,HHXHXHHXHXHXHH$++/;/=,,=//=,,            ,,,:;;;;;;;;++%HXHHH%===--.     .,,,,,......                          ,;;=        ,//-  :/;;;; 
         -====-                 ,//,     ,-=.  +MM+=:           ,HHHHXHXHXHHXHH$;;;;/,  ,//,                 :;;;;;;;;;;/XHHXH+=:=;:-     .:-===,                               -//=        -//,  =/;;;; 
         ------                 ,//,     ,==.  ;@H/:;, .        ,XHXHHHHXHXHHHH$;;;//-  -//-                 ;/////////;+@HHHH%;;;::,     .==-==.                               -//:..      ,;;,  =/;;// 
               ,,,              ,//,      ..   -:=$@@=.,---     .HHHHXHXHXHH$%%+;;:--.  .--.                 ,-----------::/%%$@H%..       .....                                .-,,,-.           =/;=-- 
.. . .. . . .  .===..............-/;=,,,,,,,,---:+;@=,-;//-,,,,=HHHHHHHXHXH%;;;;/=           . . . .. . . .               ,;:+HH%,,,------,,,,,------------------------------,,,,,,,,,...........://-   
,.,,,,,,.,.,,,,===--------------=;;;:::::;;;;;;///X@@;::;;;;::::;%%%HXHHHHH@%==://:,----,,.,,,,.,.,,,,,,.,.,,,,.,.,,,,,,.,.-/;%@H$::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::=-----------=::-., 
               ==-              ,//,              %M@:-=;;;         XHX++/==-,,,,,-=-=-=,                                   ,,=;/;==,                                                                    
               ==-              ,//,              %M@+//;;;.        XHX;;=  .==,  .=====,                                     .=-=//=                                                                    
               ---              -//-              %HH;::;;;.       .XHX:;=..,--,  .=====,                                     .=-=:;-                                                                    
                                 ..               ...   ...         ,-,   ..       . . .                                                                                                                 
                                                                                                                                                                                                         
                                                                                                                                                                                                         
              .:;:              =XX=              =;:%X$$$$,        :;:-=,  ,;;=  ,;:::;-                                     ,;:/$X;                                                                    
              .;/;              :@@:              :/;X@HHHH,        ;/;==,  -//:  -/////=                                     -/;+@@/                                                                    
               ;;:              =HH=              =;;%$$XXX.        :;:--,  ,::-  ,;;;;;-                                     ,;:/$$:                                                                    
//////////////+XX$+/////////////$MM$///////;//;+/+%$$+/+@M@+////+%%%$$$%%%$$$++%%%%+%%%%+//////////////////////////////////+%%$XX$/+;;/;/;/;//;/;/;/;;/;/;/;//;/;/;/;;/;/;/;//////////////////////++++// 
--------------=+%+=-------------/@@/-------,--,:=;;++=-=H@@:----=+%+;;;;;/++/;;;;;:----------------------------------------=;;/++/--,--,-,-,--,-,-,----,-,-,--,-,-,----,-,-,----------------------;;/:-- 
               ::=              =HH=           ,=-;;;.  +%%.     ;;;-----=;;:--=-=,                                        .--=;;=         .  .                                  ,....            ,==.   
         =;::;=                 :H@:     -::,  -;;===.          .;;;===;;:===-=-=-===,  .==.                 -=-=-====-=-=-=;;:==-==,     ,::=::,                               :H@%,,.     .-=.  -===-= 
         :/;;/:                 :HH:     ,::.  -//=-=           .;;;=-=;/:==-=-=-====.  ,==.                 -==-======-=-=:;/:---=-,     ,;=:::,                               :@@+        ,==.  ,====- 
         :;;;;:                 :H@:     -:;,  =/;:-=           .;;;===;;;=====-=====,  .==,                 -=-======-=====;;:-=-=-,     .:=:::-                               =XX/        .==,  -===-= 
;;;;;;;;;;;;;;:                 :HH:     ,:====:;;=-----------  .;;;=-=;;:===========-=-====-=.           -=-==============:;;:--,              -=====.                           .         .===-======= 
;;;;;;;;;;;;;;:                 :HH:     ,:;::::;;:-====-=-=-=  .;;;===;;;=-==================.           ==================;;:-=,              -:;:;:.                                     .=========== 
;;;;;;;;;;;;;;:                 :HH:     ,:=:==:;;=-----------  .;;;===;;:-===============-===.          .-===============-=;;:--,              -=-=-=.                          ..         .=========== 
;;;;;;;;;;;;;;:              -$$$HH:  -:=;=;=:::;;:-=-==   =-=;;;;;;;;;;;;;;:===-======-=-======-========-======-======-=;;;;;;;;::;-     .=-=--,                            .==:;/=        ,===-======- 
;;;;;;;;;;;;;;:              =@HHXH:  .::::::=:://=--=--   -==;/;;;;;/;;;;;/:-=-=-====-=-=-====-=-====-=-=-====-=-====-==;/;;;;;;;//=     .==-==.                            .=-=;/=        .==-=-====-= 
;;;;;;;;;;;;;;:              -HHXHH:  -:::=:=:::;;=-=-=-   --=;;;;;;;;;;;;;;:===-====-=-=-====-=-====-=-=-====-=-====-=-=;;;;;;;;;;;=   ..,=-=-=,                            .--:;/=        .=-=-=----=- 
;;;;;;;;;;;;;;:              =HXHX@:  ,:=:=::::,  ---         --=-=-  .;;;;;;;;;=-====-=-====-=-=-====-=-====-=-=-====-=-  ,/;:-=====;;;;;;;;:--=------=-         -----=-=,  .=-:;/=        .==-==.  ,== 
;;;;;;;;;;;;;/:              -HHXHH:  ,::=:::::,  ,==         -=----  .;;;;;;;;;-=======================================-  ,//:=-==-:/;;;;;;/=-=----=-=-=         ----=-==-  .-==;/=        .=====.  ,== 
;;;;;;;;;;;;::=              -HHHHH:  -;=;=;=::, .-,-         -==-=-  .;;;;;;;;;========================================-  .:::=====:;;;;;;;;;==:-:-=-==-..      .:-:-==,=,  ,--:;/=        ,=====.  ,-- 
;;;;;;;;;;;;                 -HHHHH:  .::=:=:==:=:.           -=---------=;;;;;;======================================;/:     ,/;;;;;;;;;;;;;;;;;;/:------=-   --=;;;---        ,//=     ,===========.   
;;;;;;;;;;;;                 -HHHHH:  -;=;=;=:::;=,           -==-=-=-==-:;;;;;;-=-===============-===================;/:     -/;;;;;;;;;;;;;;;;;;;==-==-=-=   -=-;;;-==        ,//=     ,========-==.   
;;;;;;;;;;;;                 =HHHXH:  .::=:=:=::=:.           -----=---=-=;;;;;;=-======-======-=-======-====-=-=-====;/:     ,;;;;;;;;;;;;;;;;;;;;:-=-=-==-   --=;;;---        ,//:     ,=====-=-===,   
;;;;;;;;;;;;                 -HHXHH:  -:=:=:=::::=,           -==-=-=-=;;;;;;;;;-=-====-=-====-=-=-====-=-===.    .===;/:     .==-=-:;;;;;;;;;;;;;;;;;;;;;;;-=--=-;;;-=-        ,/;;;;-  ,====-=-=-==:;; 
;;;;;;;;;;;;                 =HHHX@:  ,:=:=:::::::.           --=-=---=;;;;;;;;;=-====-=-====-=-=-====-=-=-==      ===;/:     .==-=-=/;;;;;;;;;;;;;;;;;;;;;;=-=---;;;-=-        ,/;;;/-  ,===-=-=-==-:/; 

;;;;;;;;;;;;                 -HHXHH:  ,;;;;;::=:::, .         -=--=-=-=;;;;;;;;:-====-=-=============-=======...   ---;/:    .,-----=;;;;;:;:;;;;;;;;;;;;;;;-=-===;;:---.. . ...-/;;;/-  ,====-=-====:;; 
;;;;;;;;;;;;                 =HHHX@:  ;M@@@@/::::=;=:.        -==-=-===;;;=================:;;;;;:=====;;;;;;;;;      ;/:  .::=     ,===-=-=-:;;;;;;;;;;;;;;===;;;;;:   =;=:::;;;;;;;/-  ,==========-:;; 
;;;;;;;;;;;;                 =@HHHH:  :M@@@@/=::=::::         -=------=;;:-==========-====-:/;;;;:=====;//;;;;;;      ;/:  .::-     .==-=-=--:/;;;;;;;;;;;;;---;;;;/:   ==::::;;;;;;;/-  ,===========:;; 
;;;;;;;;;;;;                 ,%%$HH:. ;M@@H@;-=-=-=-=   ......-==-=-=-=;;;============:====:;;:::=,----=::;;;;;;.     =:=..-=;-     .,--,-,-,=;:;:;:;:;;;;;;===;;;;::..,=;==-=/;;;;;;/=  ,========--,=;; 
;;;;;;;;;;;;                    :HHXX$H@@HXH-           --=-----------=;;:-======-===://=     /XX=        ;;;;;;;;;;;:   =:=::-              .--------:;;;;;;;;;;;. .::::==  ./;;;;;;;;;;:-=======.  -/; 
;;;;;;;;;;;;                    =@HHHH@@@HHH-           -=-=-====-=-=-=;;:=-==-=-=-==:;/-     +@@:        ;;;;;;;;;;/;  .;=;=;-              -===-=-=-:;;;;;;;;;/;   ::::;=  ,/;;;;;;;;;/=====-=-=.  -/; 
;;;;;;;;;;;;                  ..;HHXHHH@@HHH=          .-=----=---=---=;;;===-=-=-==-:;;-     +HH;........;;;;;;;;;;;;   :::::-              ,-----===:;;;;;;;;:::   ===::=  ,/;;;;;;;;;;:-====-==.  -/; 
;;;;;;;;;;;;                 -HHXHXHHXH@@@@@=  ,==.  =::-=-=-=-==-=-=-=;;;;;:=-=-=======,  -/;$HXH@@HXHXHX/;;=-=-==;;;  .:=:=:-                 ,==:;;;;;;;;;;;.        =:-  ,/;;;;;;;:-=-====-=-=.  -/; 
;;;;;;;;;;;;                 -HHHXHHHHH@@@@M=  ,==.  =::-=-=--=-=-=-=-=;;;;;:-=-=-======,  -;;$HHH@@HHHHHH/;;==-=-=;;;  .:=:::-                 ,-=:/;;;;;;;;;;.        =;=  ,/;;;;;;;:=-====-=-==.  -/; 
;;;;;;;;;;;;              .-,:HHXHHXHXH@@@@@=  ,==,..=:=,,,-----------=;;;;;:======,-,--,..:+/$HXH@@HXH%%+;;;=-====;;;   =:=--,                 ,=-:;;;;;;;;;;;,.    ...--,. -/;;;;;;;:-==========,..=/; 
;;;;;;;;;;;;              :@HHHHHHHHHH@@@@@M=  ,=-:;;:::   =-====-:-===;;;;;;;;;;/-     -/;$HHHHHH@@HHH,  --------=;;;  .;::                    =/;:-----;;;====:-   ===  .:==;;;;;;;;:---=-=-----:;;;;; 
;;;;;;;;;;;;:::::::::::::=;%%%%%%%%%%%%$$$$$;==:::;;;+++;;;//;/;/;//;/;/:;;;;:;://;=====:;;+%%%%%%$$$%%:==:::=:=:=:///;;;++/;;;:;;;;;;:/;;;;;;/:/;;:=:=:=;;;/;/;/;:;;/;/;;:;/;;;;;;;;/;:::::::::::;;;;;; 
////////////,,,,,,,,,,,,,,;HHHHHHHHHHH@@@@@M;--=::///;;;.,,::::=;=;=:::+///////;:::=====;$%XHHHHHH@H$$$:==;;;++++%+:::-==/;;,.,.,.,,.,.,.,..,.,.:;/:=:=;=/;;:::;;:--=:;;===;:/+/////;/;:::::::::::////// 
;;;;;;;;;;;:              :HXHHXHXHH@@@@@@@@;-=-=-:;;:==   ,-----------;;;;;;;;=  ,/;;;;+HHHXHHXHXHH/;;;;;;;;XHHHH$   =:==:-                    ,--------------;;;=-=;;;;;;;;;;;;;;:---=-=-=--=-=-:;;;;; 
;;;;;;;;;;;;              :HXHXHXHXH@@@@@@MM/=====;;;:::   --=-====-=-=;;;;;;//=  ,;;;;:%HHHXHXHXHHH+:;;;;;;;XXHXH$   =:=::=                    ,==-=-====-=-==;;;=-=;;;;/;;;;;;;;/;=-=-=-====-=-=;//;;; 
;;;;;;;;;;;;              :@HHHXHXHH@@@HH%;/-.,.,.:/;-,-,.,---=--.,.--=;;;;;;:::;;/%%%%%$HXHHHHXH$%%%%%%%%%%%HHHH@X:=:;/;::=...                 ..,.,,,,.,.,--=;;;:::;;;:=:;;;;;;::===-=-====-=-==---:;; 
;;;;;;;;;;;;              :HXHXHXHXH@@HXH=        =/;.  -===-=-=-   --=;;;;/-  =@@HHHHHHHXHHXHXHH+;;$HH@@@@@@@@@@@@@@@@@H:=:=:-                             -=-;;;;;;;;;=--;;;;;:=-==-=-=-====-=-=.  -/; 
;;;;;;;;;;;;              :@HHHHHXHH@@HHH:        =/;   -=-=-==--   =--;;;;;-  -HHHHHHHHHHXHHHHHH+:;$HH@@@@@@@@@@@@@@@@@H:=:=:-                             -=-:;;;;;;;;-=-;;;;/:=================.  -/; 
;;;;;;;;;;;;,,,,,,,,,,,-:=/HXHXHXHHHHHHXH;,,,,,-==;;;-,-==:---======:/:+++++;==/HHX%$XHXHXXHXHXHH$++XHH@H@HH@H@H@H@HH@H@X////;;-:=====-:-====-:-:-====-:-===;:/+++;;;;;;;;;;;;:;:=================,..=/; 
;;;;;;;;;;;;//;========/@HHHHHHHHHHHHXHHH/=====%@@+;;///;;;===;;/%+++++%$%++$@HHHH%;;%HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH@X%$%X%$++++++%+%++++++%++++++%+%++++$%%;;;;;;%$%;;:-=-==============-,,,-,:;; 
;;;;;;;;;;;;;;;======--;HHXHXHHHHXHHHHHH@+-==--+HH+;;;;;;;;=-=;;/+/++++%%++/%HHHHH%::%HHXHXHXHXHHXHXHXHH@H@HHHH@H@HHHH@H@H@X%%%$%$/+++++%+++++++++++++++%++++++%%%;;;;;;%%%;;;=-=-======-=-====--,,,,:;; 
;;;;;;;;;;;;;;;======++%HXHHXHXHXHH%+/+/+:-=/+/$HH+;;;;;;;;:::;;/+%++%/+////%HXHXH$%%$HXHXHHHXHXHHXHXHXHHH@H@H@H@HH@H@H@HH@HX$$+$+%%/%++//+/+/+/+//+/+/+//+/+/+//+/;;;;;+%/;;:-=-=-====-=-=====-,,,,,=/; 
;;;;;;;;;;;;;;:     ,HHHXHXHHHHXHX@:        %@HHHH=        :/;;;;-====-     :HHXHXHHHHXHXHXH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M$=::::===,                          ;;;;;;===;;;=-=-====-=-=-==-=.     -/; 
;;;;;;;;;;;;;/:     ,XHXHXHHXHXHXHH:        +HXHXH=        ://;/;-=-=--     :HXHXHXXHXHXHXXH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M%=:=:==-=.                          ;/;;;;=--;;:-=-====-=-=-=====.     -/; 
;;;;;;;;;;;;;;:     ,HHHXHXHHHHXHX@:     =+/$HHXHH-     ----,,=:=-=-==-,,---;HHXHXHHHHHHH@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$:;:;;=.,.                          ==:=:::::;;;=-======-=-====-=.     -/; 
;;;;;;;;;;;;        ,XHXHXXHXHXHXHH:     /@HHHXHXH-     :::   -----------=:=/HXHXHH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HH@H@%-===:,                       ,-----;;;;;;-=============,        -/; 
;;;;;;;;;;/;. ......-HHHHHHHHHHHHHH:..   /HHHHHHH@:.,..,;/:,,,=:;=;=;:::=;:/+HHHHXH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X:;;:/=...,.,,,,,,,,,,,,,,,,,,;=;::;;;;;;:==============,        =// 
;;;;;;;;;:::-------,=HHHHHXHXHHHHHH/,,:%+$HH$%%%%%/::::;+%+;;;++%;/////+;+$$XHHHHHH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H$$X%X$+%/;/;;;;;;;;;;;;;;;;;;;::::;;;;;;;===-========--,.,.,.,..,-- 
;;;;;;;;;.          ,HHXHHHHHHXHXHH:  :@HHHH=           =:=   ;;:-=-=-=-,;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:,                       ;;;;;:-=-=-====-=,               
;;;//////=----------:HHHH@HHHHHXHH@/--/HXHH@/:;;;;;;;;;/+$%//;;;;/%/++/%/%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$%++;;;////////////////////;;;;/;=-=-====-==-,,,,,,,,,,,,,, 
;;;:=====.        ,,-+++++%$%XXH+::,  :HH%++:==,  --=.  ,,,=,=;;;=======-/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$/+;::--,.             .,--;;;::=-=-====-=-=,               
;;;               ;/:     .:-;HH;     :@H:  =//,  =::      --=;;;-------,;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M+=:               --=;;;==-=-=-====-==.               
;//=--------------;/;;;;;;;++%H@+,---,/HH+:;;;;;;;+++;;;;;;/++;;;++/+/+//%HH@H@H@HHHH@H@H@HH@H@H@HHHH@H@H@HH@H@H@HHHH@H@H@HH@H@H@HHHH@H@H@HH@H@H@H@$/%;;:;;;;:;:;;;;;++/;;;=-========-===-,,,,,,,,,,,,,. 
:::.          .,,,,,,.....-/:/$$;.,,,,-==:;;;;/-..:;;,.....:=::=:=:=:=::=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%//-,-,..........,=::;;;===========---.               
               ;;;        .==,  ,/;;;;;;;;;;;;/,  -:=      ,----,---,---,:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/-=            ---;;;===========,                  
,,,------,,,,,-;;;::::::::;+/+::;;;;;;;;;;;;;;;:::;+%:::::://+/+//+/+/+//%@HHHH@H@HHHH@H@H@HHHH@H@HHHH@H@H@HHHH@H@HHHH@H@H@HHHH@H@HHHH@H@H@HHHH@H@HHHH$;+::=::::=:=::/+/;;;-====-=-===-.......,.,....,., 
..........-----=;;;--,-,-,,=:;:,,=;;;;;;;;;;;;;;;::=/:-,-;;;::::::=-=:::::;HXHHH@H@HHHHHH@H@HHHH@HHXHHHHH@H@HHHH@H@HHHHHH@H@HHHH@H@HHHHHH@H@HHHH@H@HHHH$/$:=-,,,-,-,,-:::;;;====-=-=-,-.. .  . . . .. . . 
         :/;;;;;;;        .;:-  ,/;;;;;;;;;;;;;;:=;=:   ;;;:-=---   =-=--;HHH@@@@@@@@@@@@@@@@@@@@HHX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/=:         -==;;;===-=-==,                     
         :/;;;;;;;        ,::-  ,/;;;;;;;;;;;;;;:::::.  ;;;=-===-   =-==-;HHH@@@@@@@@@@@@@@@@@@@@HHXH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;::         -==;;;==-=-=-=-