CURRENT PROJECTS:

/zorkfun - Zorkesque Javascript TBAG


TAKE A MOMENT TO ENJOY MY VISAGE
=================================================================================
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,.,..,....,.,..,..,.,.,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::;;:::::::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::;;;;;;;;::::::::::
;;;''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::;;;;;;;;;;;;;;;:::;;;;;;:
;;'''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;::;;;;;;;:
;;'''''''''''''''''''''''';;';;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;::;;;;;;;;;;;;;;;';;;;;;;;;;;;;;:
;;'''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::::::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::;::;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;:
;;'''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;'';;;;;;;;;;:
;;'''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;:
;;''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:
;;''''''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:
;;''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:
;;''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:
;;;''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;'''''''''''''''''';';;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;'''''''''''''';';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::::::::::::::::::::::,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::,::,,,,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:,::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;'''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:,::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::::::::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;''''''''';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;'''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,::::::::::::::::::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;';;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;';;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;:,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::::::::::::::::::::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,:;;;;:::::;;;'';'''':,,,,,,,,,,,,,,,,,,,,,,:,,:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::,,:,,,,,,,,,,,,,,,,,,,,:;;';::;;';;';;';''''';':,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::,,,:,,,,,,,,,,,,,,,,,,,:;;;';:,:;;;;';;';;''';;'':,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,:;;;;';'::;;:;';;;;';'''';;'';:,,,,,,,,,,,,,,,,,,,:,:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,::;:';;;;;;;;;;;;';;';;;';';''''''';::::,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;:::::::::::::::::::::::,::,,,,,,,,,,,,,,,;;';;';;;;;;:;';;;;;;';;;';'''''''''''''';:,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;::::::::::::::::::::::::::::,,,,,,,,,,,,,:';;;;;;;;;;;;;;;;;;;;;;;;;;'';;;';'''+';'''::,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,:;;;;;:;;;:;;;;:::::::;;;::;;:;;;;;'''''''''';;:::,,,,,,,,,:::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,,,,,,,,,,:;::;;;:;;;::::,,,,,,,,,::::,,,:::;;;;;'';;''''''';::,,,,,,,,:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::,::,,,,,,,,,,,,:;::;;;;;;;:,,,,,.....,,,,,,,,.,,,:::;;;;''''+'''++';:,::,,:::::::::::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,::::;;;;;:,,,.,.....................,,::;;;;''''+''''::,:,,:,:::::::::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::,::::,,,,,,,,,,:::;;;;;:,,...........```````````......,:;;;''''''''';:,,,,,,,::::::::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::,::,,,,,,,,,,,,:::;;;;,,...........````````````````.....,:;;''''''''';,,,,,,:::::::::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,:::;;:,,.............`````````````````.....,:;;''+''''':,,,,,::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,::::,...........```````````````````````....,:;'''''''';:::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,:::,,.............````````````````````````...,:;;'''''''::::::,::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::::::::::::::::::::::::,,,,,:,,,,,,,,,,,,:,.................```.```````````````````...,:;;;''''';:::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,..............`....```````````````````````...,:;;''''';::::::::::::::::::::::::::::::::::::::::::::::;;:;;;;;;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,..............```...````````````````````````...,:;;;'''';:::::::::::::::::::::::::::::::::::::::::::::::;;;;;:;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,..................`.``````````````````````````...,:;;'''';::::::::::::::::::::::::::::::::::::::::::::::;;;;;:::;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,...............`.`....``````````````````````````..,::;;'''';::::::::::::::::::::::::::::::::::::::::::::::::;;::;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::::::::::::::::::::,,,,,,,,,,,,,:,,..............`.``.....`````````````````````````...,:;;;'''':::::::::::::::::::::::::::::::::::::::::::::::::;;:;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,:::,,,,,,,,,,,::...............`..``.....`````````````````````````...,::;;'''';::::::::::::::::::::::::::::::::::::::::::::::;:;;:;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;::::::::::::::::::::::::::::::,:,:,,,,,,,,,,:,.................``..`.``````````````````````````....,,:;;;'''':::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,..................``..`.``````````````````````````.....,,:;;'''';::::::::::::::::::::::::::::::::::::::::::::::::;:;;;;;::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,..................``..````````````````````````````.....,,:;;;''';::::::::::::::::::::::::::::::::::::::::::::::::::::;::::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::,,,,,,,,,,,:,....................`..````````````````````````````....,,,::;;''''::::::::::::::::::::::::::::::::::::::::::::::::::::;;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,:,,.......................````````````````````````````....,,,:::;'''+;:::::::::::::::::::::::::::::::::::::::::::::::::::;;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,,,,,,,,,,:,..........................``````````````````````````....,,,::;;'''';::::::::::::::::::::::::::::::::::::::::::::::::;;;;;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,.......................`````````````````````````````....,,:,:;;'''+'::::::::::::::::::::::::::::::::::::::::::::::::::;;;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,...........`...........`````````````````````````````....,,,:::;;;''+':,::,:,:::::::::::::::::::::::;:::::::::::::::::::;:;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,.................``...`````.`````````````````````````....,,,:::;;'''++;:::,,::::::::::::::::::::::::;:::::::::::::::::::;:;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,......................`````..``````.........`````.`.......,,:::;;''+++;:::,,::::::::::::::::::::::::;:::::::::::::::::::;:;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,......................```.....```.............``..........,,::;;'''+++;:,,,,:::::::::::::::::::::::::;:::::::::::::::::::;;;::
:;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,......................```.............,,,,,,...............,,::;;'''+++;:::,,,:::::::::::::::::::::::::::::::::::::::::::::;:::
:;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,,,:,,,,,,,,,,,,.....................``...........,,:::::,,,,.........`....,::;;'''+++':,,,,::::::::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,......................``........,,::;;;::,,,,,,,,...........,::;;''++++;:,,,,::::::::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,..............................,::;;;;;::,,......,...........,::;;'''+++;:,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;:;;;;::::;::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,............................,:;;'';;;:,,.....................,::;;'+'++;:,,,,,:,:::::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,..........................,:;'''';::,........................,:;;;'''++;,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,..........................:;;'';;:::,....:''';,................,:;;''''+;,,,,,,::,,:::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,....................:;';';;;;';;;;;;''''+';,,.............,:;'''''';,,,,,,,:,,:::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,::::::,,,..............,;''''';;::,,......,:;'++''';::,.......,:;'''''+;,,,,,,,:,::::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,::::;;;;;;:::,,,........:;;''';:,,.....`.....,,:'++'+'''';:,....,:;'''''+;,,,,,,,,,:,::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,,,,:::,,,,,,,,,,,::;;;;'''''''';;:,,,,.,';'';::,,,..............,,:++''+'+'''';:,,:;'''''++;,,,,,,,,,:,::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,:::,::::,,,,,,,,,,;;;''''''''''''''''''''';;':,,,,,,.,,,,,.......,,,'+'''''''''''';;;'';''++;,,,,,,,,::,::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::,,::::::::,,,,,,,:;'''''';;;;;;;'''++';;::::;':,,,,,,,,,:::,,::,,,..,,;+'''::;;;'''''''';;;'++;,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,::::::,,,::,,,,,,,,:;'';;;::,.....,,::;'+'::;:;:'':::,,,,,:,,:::,;;;:::,,,:+';,,,,,::;;'''''';;'++:,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;::;;;:::::::::::::::::::::::::::,,,,::,,,,,,,,,,,,,,''':,,,,,.......,,::;'':;;:,:';::::,,,,::,,:::'';:,,::::'+,,,.,,,::::;''++'';'':,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;;;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,:;'',,,,,,,.,,,,,.,,,::'';;;:;'':::::,,,...`.::;';;:..,,,,'',....,,,,,,,:;'''''';,..,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::
::;;;;;;;;;;;;;::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,:;'+':,,,,,,,,,,,:,:,:::::''++''++,,:::,,,,,...,::;::,,...,,';,......,,,.,::;;;'':,....,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,:'++';::,,,,::,:::::;;,...;'';:;'':,:::,.,,,,....::,,,..,,,,';...........,,:::,,,...,::,,,,,,,:,,::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;::;;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,:+++''';;:,,:::::;;;;',,,,;+;...,';,,,,..............,,,....':............,:;:,....:;'':,,,,,::,,::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;;:::::::::::::::::::::::::::::,:,,,,,,,,,,,,,,,,,,,'++''';;:,,:::;::;;;';:::;',....:':................,,,.....',............,:;:,...,::;';,,,,,,:::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,:'+'::,,,,,,:::,,::;;:,,,;;......;;,.............,,,,......'.............,,::,..,::,:;;,,,,,,:::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,:'',,,.,..,:::,.,:,,....;:...`...':.....................`.;.............,,,::,,,;:.,::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,:',,,....,,,,,,.......,',..```..:',....`````````....````:,.....`.......,,,::,,::,..::,,,,,,:::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,':,......,,,,........:',..```...:',..````````````.```.,:.```````......,,:::,,,,...,:,,,,,::::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,......,,,.........;;..`````...;;.`.``````````..`..:;,.```````......,,:::,::,...,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,......,.........`,':..`````....;;.```````````..,::,.`````````......,,::,:;':,..,,,,:::::::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;...............`.;;...`````.....:;,...`.`..,:::,....````````........,,::,'':,,.,,,,:::::::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;;::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;,............```,;:...``````.....,::::::,,..............````.......,,,::,;':,,.,,,::::::::::::::::::::::::::::::::::::::::::::::::::
:::;;;;;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,..,;;,,,...........,;,....```````..........................````........,,:::,:;;,,..,,::::::::::::::::::::::::::::::::::::::::::::::::::
::::;;;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,;;:,........,,:;,.....```````.....```........```````````.``.......,,,:::,:;;:,.,,,::::::::::::::::::::::::::::::::::::::::::::::::::
::::;;::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,..,...,:;;;,:;;::::,.......````````.....```````````````````````.........,,,:::,:;::,.,.,::::::::::::::::::::::::::::::::::::::::::::::::::
::::;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,........,,,................`````````....``````````````````````..........,,:::;::::,..,,:::;;::::::::::::::::::::::::::::::::::::::::::::::
:::::;:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,.........,,............``....`````````....`````````````````````..........,,,::;:,,,..,.,:::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,..........,,...........```.....`.....```...`````````````````````..........,,:::;:,...,,.,:::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::,,,:,,,,,,,,,,,,,,,,,,,,,,,,............,.,.........`..`.............``...```````````````````..........,,,,:;;:,...,..::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::,,:,,,,,,,,,,,,,,,,,,,,,,,,,............,........``````..........,,,......``````````.```````...........,,:::;;::,....,::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,.............,.......````````..,...,,:;'':...,.`````````````````.`........,.,,::::;::,....,::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,............,,......````````.,;;:,,:::;';,.,,.````````````````.........,,,,,:::;;:;;:,..,::::::;::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,.,,............,,.....`````````.,:::,,:::,::,,:.```````````````............,,,,::;;;:;::,..,::::::;::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,..............,,.....`..```````.,,,,,,,,,,,,,..````````````.....`........,,,,,:;:;;;;:....,::::::::::::::::::::::::::::::::::::::::::;::::::::::
:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,.................:......`````````................````````````..............,,,,,:;:;;;';:,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,...................:.....``````````................```````.....................,,::;;;;;'';:::::::::::::::::::::::::::::::::::::::::::::::;:::::::::
:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,...................:,....`````````................````````...................,,,,,:;;;;;';;:::::::::::::::::::::::::::::::::::::::::::::::::;:::::::
:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,.,,...,.................,:....````````................```````...................,,,,,,,:;;;;;';::::::::::::::::::::::::::::::::::::::::::::::::::;;::::::
::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,..,.....................,;.....````````.............```..``...`....................,,,,;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::;;::::::
:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,........................;,....``````..............`````.``..........................,,;;;;;;';::::::::::::::::::::::::::::::::::::::::::::::::::;;::::::
:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,.,......................::....``````...............`.`..```........................,,,:;;;;'';::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,.........................:;,..`````..............................................,..,,,:;';;'';::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,.........................,;,...```................,,,...........................,,,,,,:;;''';;::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::
:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,........................;:....`...........,.,,,,,,,,,,,,,,:,.................,.,,,,,:;'''';::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,........................::,............,,,,,,,,,,:::::::;;;:,..............,...,,,,::;'''';::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,.........................:;,.......,,..,:,::,::,,,,,,,,:;:::,,..,,...........,..,,,,::;'''';::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,.........................,;,.....,,,:::;:,.....................,:.,...........,..,,,::;'';;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,...........................::,...,,,,,:,,.......................,:,,..........,.,,,,,:;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,...........................,;,...,,,............................,,,,,,.....,,,,,,,,,,::;:,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,............................;:,..,,,..............................,,,,.,,,,,,,,,,,,,::::,,.,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,............................,:,.,,,...............................,,:,,.,,,,,,,,,,,::,:,,,.,::::::::::::::::;;:::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,.............................:,.,,,..............................,:,,,,,,,,,,,,,,,::,,,,,,.,::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,.............................,,,,,...............................,::,,,,,,,,,,,,:::,,,,,,..::::::::::::;;;;;;::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,................................,,,,,..............................,,,::,,,,,::,::::,,,,,,,.,::::::::::::::;;;;;:::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,.................................,,,,,.............................,,::::::,:::::::::,:,,,,.,,:::::::::::::;;;;;;;:;:::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,................................,,,,,,..............``............,,,::::::::::::::,,,,,,,.,,::::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,.,...............................:,::,.........``..````..........,,,,:::::,::::::::,,,,,,,..:;:::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,...............................,,::,,.....````...`````.........,,:;::::::::::::::::,,,,,.,:;:::::::;::;;;;;;;;;;;:::::::::::::::::::::::::::::::::;;::::
:::::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,................................,,::::......`.`...````..`......,:::;:;:;;::::::::::::,,,,.,:'::::::::;;:;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;:::
:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................,::;:,...........``````.....,,,:::;;;';;;:::::::::::,,,..,:'::::::::;:;;;;;;;;;;;;;:::::::::::::::::::::::::::::::;;;:::
,::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,...................................:;::,,....................,,:::;;;;''';;;:::::::::,,,,.,,;';::::::::;;;:;;;;;;;;;;:::::::::::::::::::::::::::::::;;;:::
:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,................................,:;;::,................,.,::::;;;;'''';;;:::::::::,,,,.,,;';:::::::;;;;;;;;;;;;;;;;::::::;;::::::::::::::::::::::;;;:::
:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................:;;;;,................,,:::;;;'''';'';;::::::::::,,,..,,;';:::;;;:;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::;;;:::
:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.................................,;;;;,.....,.......,,,,,::;'''''''''';::::::::::,,,..,,:';::::::;;;;;;;;;;;;;;;;;::;:::::::::::::::::::::::::::::;;;::
:::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................:;;;,,.,,.,....,,.,,:,:::;'''''''''';::;;:::::,,,...,,:;;:::::;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::
::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................,:;::,.:,,,,,,.:,,,:,,::;;''+''''+';:::::::::,,,...,,,::::::,::;;;;;;;;;;;;;;;;:;;;:::::::::::::::::::::::::::::;::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................::;;:,,:::::..,,:::::::;'''++'''';::;;::;::,,,,...,,:;;:::::::;;;;;;;;;;;;;;;;;;:;::::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............................,::;;;,,::;;:,,.::,:,:;;;;'''+'';;::::;;;:::,,,...,,::::::::::::;;;;;;;;;;;;;;;;::;::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,............................,::::;:,::,';:,:,::,,,:;'''''+'';:::;:;;;;::,,,,...,:::,::::::::::;;;;;;;;;;;;;;;::;::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..........................:,:,,:;::,::';;,:,;::,:,:';''''';:::;;;;;;::,,,....,,,,:::,::,::,::;;;;;;;;;;;;;;;::;;:::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........................::;::,:;;:,,;'';:;:;;::::;''''''';;:;;;;;;::,,,.....,,,:::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................::::,:.,:;;:,:'';;::;;;;;;;''''';;;;;;;;;;;:,,,.....,:::::::::::::::::;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..........,,.....,,::,:;:::,,::;::,;';;;:;'';;;''''';;;;;;;;;;::,,,.....,::::,::::::::::::;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........,:;;''::::;::;,.,,:;;,;;;;;;;'';;''''';;;;;;;;;;;::,,.....,:,,,:,,::::,:::::::;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,:;'''';:::,::::';..,:;'::;''';'''''''';;;;;;;;;;;;::,.......,:,,,,:::,::,:::;;:::;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::;''''''';,:;:,:;;'+'..,,:''::''';''''''';;;;;;;;;;;::,,.......,::::,::::::::::;:::::;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;'''++'''';;::;;;;;;;'++,..,,:;;;;''''+'';';;;;;;;;;;;::,,.......,,::::::::::::::;;::::::;;;;;;;;;::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;''+++++++++';;::,:;;,:''+++:....,::;''''''';;;;;;;;;;;;;::,,.......,:::,:::::::::,::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;''+++++++++++''::::;:;;;;''++++;.....,:::;;';;;::;;;;;;;:::::,,,.....,,:::,,,:::::,::,::::::::::;;;;;;;::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,::;;'''+++++++++++++++';;;:::;;;;;''+++++',.....,,:::::::::::::::::::::,,,....,,:::::,,::,::::::::::::::::;;;;;;;::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::,,,,,,,,,,,,,,,::;;''++++++++++++++++++';;;;:::;;:,;''+++++++,......,,,,,::::::::::::::::,,,,...,,::.,:::::::::::::::::::::::;'';;;:::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::,,,,,,,,,,,,::''++++++++++++++++++++';;;;:;;:,;;:;''++++++'+:,.....,,,,:,:::::::::::::::,,,,,,,,,:::::::,:::::::::::::::,:::;'';;;;::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::,,,,,,,,,:;''++++++++++++++++++++';;;;;:,;;:;;;;''++++++''+:,......,,,,,,,,,::::::::::,,,,,,,,,:::::,,::::::,:::;:::,::::::;''';;;:;::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::,,,,,,,,:;'++++++++++++++++++++';;;;;;;;;;;;:;;''++++++''+':,......,,,,,,,,,::::::::::,,,,,,,,::::::,,,::,,:,:::;:::::::::::;'+';;;;;:::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::,,,,:::'++++++++++++++++++++'';;;;;;;;;:;;;,;''+++++'';;+':,.......,,,,,,,,,::::::::,,,,,,,,:::,,:::::::,:::::::::::::::,::;''''';;::::::::::::::::::::::::::::::::::::;:::
::::::::::::::::::::::::::::,,,,,:;'+++++++++++++++++++'';;:;;;;:;;;::;;'''+++'+''';'+',,,.......,,,,,,,,,,:::::,,,,,,,,::::,,::::::::::::::::::::,:::::;''''+'';;;:::::::::::::::::::::::::::::::::;:::
::::::::::::::::::::::::::::::,::;'+++++++++++++++++++';;;;;;;;;;;;;;;;''++++'+'';;;'+',,,.......,,,,,,,,:::::::,,,,,,,:,,:::::::::::::::::::::,::::::;:;''''+++''';;;::::::::::::::::::::::::::::::;:::
::::::::::::::::::::::::::::::::;'++++++++++++++++++'';;;;;;;;;;;;;;::'+++++++''';;;'+;,,.........,,,,,,,,,,,,,,,,,,,,:;,,:::::,,::,,::,::::,:::::::::::;''''++++++''';;::::::::::::::::::::::::::::;:::
:::::::::::::::::::::::::::::::;'++++++++++++++++++';;;;;;;;:;;;::;;;;++++'++''';;;;'';,,..........,,,,,,,,,,,,,,,,,,,;::,::::,,,::,,::::::::::::::::::;;'''''++++++++'';;::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::;'+++++++++++++++++++++'''';;;::;;;:;''++++'+''''';;;''+:,............,,,,,,,,,,,,,,,,,:;::::,:::,::::::::::::::::::::::;;;;'''''+++++++++'';:::::::::::::::::::::::::;:::
:::::::::::::::::::::::::::::;+++++++++++++++++++++####++';;;;;';;'++++''+';''';;;;''',,.............,,,,,,,,,,,,,,,,;:::::,,,:,::::::;:::::::,::,:::;;;;'';''''+++++++++'';:::::::::::::::::::::::;::::
::::::::::::::::::::::::::::;'+++++++++++++++++++++####+';;;;;'''''+++'++';;''';;;;'+;,...............,.,,,,,..,,,,,::,,::::,,,::::::::::::,::,::::::::;;+'';''''++++++++''';:::::::::::::::::::::;;;;::
:::::::::::::::::::::::::::;'+++++++++++++++++++++++#++';;;''+''++++++''';;''''';;;'+:,..........................,,:':,,,:::,,:::,,,::::,::,:::::::::;::;'++;;'''++++++++''';;:::::::::::::::::::;;;;;::
::::::::::::::::::::::::::;++++++++++++++++++++++++++++'';;''++++++++'''';;''''';;;'',............................,;;:,,,,,:,,:::,,,:::::::::::::,:::;:;;'++''''''++++++++''';:::::::::::::::::::::;;;::
:::::::::::::::::::::::::;'++++++++++++++++++++++++++++'';'++++++++''''''';;'''';;;'',............................:';,::,::::::,:::::::::::::,,::::::::;;'+++''''''+++++++++'';:::::::::::::::::;::;;;::
::::::::::::::::::::::::;'+++++++++++++++++++++++++++++''+++++++++';;'''''';'''';;;''............................,'',,:::,,,,:::::::::::::,::,,::::::;:;''++++';;'''+++++++++'';;:::::::::::::::;;:;::::
::::;::::::::::::::::::;'+++++++++++++++++++++++++'+++++'+++++++';;;'';'''';'''';;;';............................;;;:::::,,,::::::::::,,:,,:::::::;::;;;'++++++''''+++++++++++'';;::::::::::::::;;;;::::
:::;;;;::::::::::::::::'+++++++++++++++++++++++++'++++++++++++';;;''';:'''''''';;;;';................`.```......:';;::,,:,,,::::,,::,:,,,:,:::::,:;::;:;'++''++++++++++++++++'''';;::::::::::::;;;;;;:::
:::;;;;;;;::::::::::::;'++++++++++++++++++++++++++++++++++++''';:;'''';;''''''';;;;':..............`.`.........,'';;::,,::,::,::::::::::::::::::,:::::::;+''+++++++++++++++++''+'';;::::::::::::;;;;;;::
:::;;;;;;;:::::::::::;'++++++++++++++++++++++++++++++++++++'''''''';;'';;''''''';;;':..............`..`......`.;''':::,,:::::,::::::::::,,,::::::,,:::::;+++++++++++++++++++++++''';;:::::::::::;;;;;;::
::;;;;;;;;;;:::::::::'+++++++++++++++++++++++++++'''+++++++++';'''';;';;;'''''';;;;',..................``....,;'';;,::,,.,::::::::::,,,::,,:,,::,:,,,:::;++++++++++'++++++++++++''''';:::::::::::::;::::
::;;;;;;;;;;;:::::::;'++++++++++++++++++++++++++++++++++++++#+'''''''';;;'''''';;;;',..................`....,:;'';:,::::,,::::,,,,,,:,,,,::::::::::,,:::;+++++++++''+++++++++++++''''';;::::::::;::;;;::
::;;;;;;;;;;;::::::;'++++++++++++++++++++++++++++++###########'''';''';::'''''';;;;',......................,,;'';;:,,:::,::,:::,,,,,,,::,,,::,::::::::::;+++++++++'''++++++++++++'''++';;:::::::;;;;;;::
::;;;;;;;;;;;;;;::;;'+++++++++++++++++++++++++++++############+'';;''';;;''''';;;;;;,.............`.......,,:;'';;:::::::::,:::::,,,,,:::,::,::::::,,::,;++++++++++'+++++++''+++++''+++';;;;;;:::;;;;;::
::;;;;;;;;;;;;;;;:;'+++++++++++++++++++++++++++++++#########+++'''''';;;''''''';;;;;,....................,,,;'';;:''::,::'';;::,::,:,,,:::::::::;;;;::::;++++++++++++++++++'+++++'''++++';;;;;;;:;;;;;::
::;;;;;;;;;;;;;;:;;'+++++++++++++++++++++++++++++++++##++##++++;'''';::;'''''';;;;;',...................:,:;''';::;::,.:'+#++';::,,::,::::::,:;''+++';;:;+++++++++++++++++''++++++''+++++'';;;;;;;;;;;::
::;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++'''''';;;'''''';;;;;;,..................:::;;'';;,,::,,:'+#####+';::::::::;;;''++++++++';;+++++++++++++++++''++++++'''+++++''''';;;;;;;::
::;;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++++#+''';;;;;;;'''';;;;;;,................,::::;'';;;,,,:::'+####++++++';;:;'''+++##++###+++''+++++++++'+++++++'++++++++'''+++++++''';;;;;;::
:;;;;;;;;;;;;;;;;;'++++++++++++++++++++++++++++++++++++++++++##+'';:;;;';;'''';;;;;;,...............,::::;;'';;:::::;'+###+++++++++++++++++++++++###++++++++++++++''+++++''++++++++''''''''''''''';;;;;:
:;;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++++##+''';;;;'''''''';;;;;,.............,::.,::;''':';;;;'+####+++++++++++++++++++++++###+++++++++++++++'++++++'''+++++''''++'''''''''''';;;;:
:;;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++####+';'';;;''''''';;;;;;,..........,:::::::;'++++'';'++++##+++++++++''++++++++++++'+##+++++++++++++++'++++++''''++++'''''++''''''''++++'';;:
:;;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++###++;;'';':;''''''';;;';,........,,:,,:::'+++++++++#+++++++++++''+++''+'+++++++++''+#+++++++++++++++'''+++++''''+++'''''++'''''''+++++++';;:
:;;;;;;;;;;;;;;;'++++++++++++++++++++++++++++++++++++++++++###++;;;;;;;'''''''';;;':,.....,,:::::,:;'+++#####++#+++++++'++''''+++++''+++++++'''+++++'++++++++++'+'+++++''''''''''''+''''+++++++++++++';;
:;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++###+++'';';;;'''''''';;;':,...,:;;;,::::'++++######+++++'''''''+''''''++'''+++++++';'+++++'+++++'''+''+++++++'''''''''''''''+++++++++++++++'';
:;;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++###+++'';;:;;'';;'''';;;';:.,,;+++'+';;++++++##+++++++++++''''''''''''+'''''++++++;;'+++++'++'''''''''+++++'''''''''''''''++++++++++++++++++''
:;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++####+++'';';;;;'''''''';'';,,;'++':;++++++++++#+++++++++###+++++'''''''''''''++++'';'++'++''++''''++++++++++''''''''''''''++++++++++++++++++++'
:;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++###+++++';'';;;''''''';''':,:'';';;++''++++++#++++++++'+#######++++++'''''''''''''';''+'++''+++'''++++++++++'''''''''';''++++++++++++++++++++++
:;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++###++++++;;'';;:'''''''';'':,;'':;'++'''';'++++++'+++++'+#+++########++++'''''''''';''+'''++'+++'''++++++++++'++'''''''''+++++++++++++++++++++++
;;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++###++++++:;'';;''';;''''''',:'''''''';'''''++++++;+++++'+#++++++#########+++''';''';''+'''+''+++'''++++++++++++''''+';''++++++++++++++++++++++++
;;;;;;;;;;;;;''++++++++++++++++++++++++++++++++++++++++###+++++++'''';;''';;'''''';,:'''+'+'';;''''++++''++++++'+#++++++++++#+++++##++'''';;'+++++++++++'''++++++++++''''++''''+++++++++++++++########++
;;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++###+++++++'';;:;'';,:'''''';:;''''+++'+''''++++++++++++''+##++++++++++++++++++++++''''+''+++++++++''++++++++''+'''+''''+++++++++++#+++++++######+
;;;;;;;;;;;;''+++++++++++++++++++++++++++++++++++++++++###+++++++'';;:;;';;;'''''':;;'''''+''+'''+++++++++++++'++##+++++++++++++++++++++++++'++'+++++++++++++++++++''''''''''++++++++++++++++++++++#####
;;;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++####++++++++';';;;;;;''''''';;;:;;''''+'''++++++++++++''+####+++++++++++++++++++++++++++++++++++++'++++++++'++''''''''+++++++++++++++++++++++++###
;;;;;;;;;;;'++++++++++++++++#+++++++++++++++++++++++++###+++++++++;'';;;:;''''+''';;;,:;'+++''''++++++++++++++#####+++++++++++++++++++++++++++++++++++++'++++++++'++'''''''++++##++++++++++++++++++++++#
;;;;;;;;;;;'++++++++++++++++++++++++++++++++++++++++++###+++++++++:;';';:'''''+'';;;;;;;;;';;'++++++++++++++#######++++++++++++++++++++++++++++++++++++++++++++++'''''++''++++#+++++++++++++++++++++++++
;;;;;;;;;;'+++++++++++++++++++++++++++++++++++++++++++###+++++++++''';;';;';'++++:;;';;;;;;,,'+++++++++++'+###+++#++++++++++++++++++++++++++++++++++++++++++++++''''''+''+++++++++++++++++++++++++++++++
;;;;;;;;;''++++++++++++++++++++++++++++++++++++++++++####+++++++++';';;';;;:''++';;;;;;:;;;;'+#+++++++++'+###+++++++++++++++++++++++++++++++++++++++++++++++++++++'''''''+++++++++++++++++++++++++++++++
;;;;;;;;''++++++++++++++++++++++++++++++++++++++++++####++++++++++''':;;;;;;'+++;;;;';:.:;;;'+++++++++'+###+++++++++++++++++++++++++'++++++++++++++++++++++++++'++''''''++++++++++++++++++++++++++++++++
;;;;;;;''+++++++++++++++++####+++++++++++++++++++++++###++++++++++''';;;;;;''+++;;;:;;;:;;;'++++++++''+####++++++++++++++++++++++++''+++++++++++++++++++++++++''+''++''+++++++++++++++++++++++++++++++++
;;;;;;'''+++++++++++++++++++++++++++++++++++++++++++####++++++++++''';;;:;;''++';;:.:;;;;;;'#++++++'+#####+'++++++++++++++++++++++'''++++++++++++++++++++++++++++'+++''+++++++++++++++++++++++++++++++++
;;;;;;''++++++++++++++++++++++++++++++++++++++++++#+###+++++++++++;;';;;,:;'+++;;;;:;;;;;;'#+++++++#######'+++++++++++++++++++++++''+++++++++++++++++++++++++++++'++''++++++++++++++++++++++++++++++++++
;;;;;;''++++++++++++++++++++++++++++++++++++++++++#+###+++++++++++;;';;;;;;'+++:;;;;;:;;;,'#++++'+#######+++++++++++++++++++++++++''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;;;;;'++++++++++++##+++++++++++#+++++++++++++++++#+##++++++++++++'';;;;;;;''+';;;;;;:::;;+++++++####+#+++'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;;;;''+++++++++++++#++++++++++++++++++++++++++++++##+++++++++++++';;:,::;;;'+;:;::::.::;++++'+######++++''+++++++++++++'''+++++++'+++++++++++++++++++++++++'+++++++++++++++++++++++++++++++++++++++++++
;;;;;;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'';:,:::;'+';::::::,::'+++'+####+++'++''''++++++++++++'''+'''''''++++++''++++++''++++'+++''++'++++++++++++++++++++++++++++++++++++++++