::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::''`:::::'`::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::',cccc,`' zc,`::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::: z$$$$$$h.-$$$c `::::::::::::::::::::::::::::::::::::
::::::::::::::::::::',$$$$??$$$.`$$$$.`:::::::::::::::::::::::::''````::::
:::::::::::::::::::: $$$$$
c,"?$.`?``" `:::::::::::::::::::::::
`::
:::::`:::::::::::'`, $$$$F,$$h.`?c`<$$c,`:::::::::::::::::::::
,c, `:
:::: `::'`.,,,' z$$
?$$$ J$$$$h."'?$$$$c`:::::::::::::::::::'
$$$ `
: `.:' ,c$$$$',J$$$.<$$$
$$$$$$$c `$$$$$c ::::::::::::::::::
?$" `
. .:: z$$$$$'z$$$$$L`$$$
$$$$$$$$$c`?$$$$c`::::::::::::::::'
`
.:.::',$$$$$$ $$$$$$$ ?$$.`$$$$$$$$$.`$"
"$ `:::::::::::::'.zc
:
::::: <$$$$$$$$$$$$$$hJ$$$
$$$$$$$$" ? ?L :::::::::'``.z$$$c
.`
:::::. ?$$$$$$$$$$$$$$$$$$c`$$$$$$$
. <$ :::::''' c",$$$$$$h..
,J$.
::::::. ?$$$"$$$$$$$$$$$$$$
`$$$$$$. h `? `' ,cr
,$",$$$$$$$$$$$$.?$$$h
:::::::: "?? $$$$$$$$$$$$$$h.`$$$$$h
?".zc' z$$F J$",$$$$$$$$$$$$$ <$$$P
::::::::::.. ?$$$ $ ?"?$$$$$.`$$??$h
,cd$F z$$$',J$$c$$$$$$$$$$$$$P J$$$'
::::::::::::: $$$ " ' J$$$P"".,ccccc,$$$$,J$$$$,J$$$$$$$$$$$$$$$$$'z$$$'
::::::::::::: `$$hc ,$$$Lzc$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P'z$$$'
:
::::::::::::::.`?$$ $$$$$$$$$$?????$$$$$$$$$$$$$$$$$$$$$$$$$$$P
z$P" .::
::''`::::::::::. "? ,$$$$$$P". cchccd$$$$$$$$$$$$$$$$$$$$$$$$$"
`"'.:::::
' :, ::::::::::::. <$$$$$$
c$c "?$$$$$$$$$$$$$$$$$$$$$$$$$P" .::::::::::
.:' .::::::::::::' .`"""""$$$$$c,
""$$$$$$$$$$$$$$$$$??""..:::::::::::::
' `. ::::::::: :::
?$$$.`"?$$$$c, """????????""" ..:::::::::::::::::
.:' ```:::::: .:::.`$$$$$c,"$$$$$$c,
`$$ ::::'`:::::::::::::
:'..::' .::::: ::::: ?$$$$$$c,"$$$$$$c
"$r`::' ::'```:::::::
::'`' ,.::::' :::::::<$$$$$$$$c
$$$$$$c .,..
`?.`: : ' :'
`''``:::
:::.:. `:::' :::::::: $$$$$$$$$c`$$$$$$h
?$$$$c "', ' : :: .:''
.:::
:::::..: :' ::::::::: $$$$$$$$$$
$$$$$$$h ?$$$$$.`$$c `:.:::::.,.
`:::
::::::::. :::::::::: ?$$$$$$$$$.?$$$$$$$h
`"$$$$r`$$c`:::::::::: .:::
:::::::: .::::::::::.`$$$$$$$$$h`$$$$$$$$h.
"$$$$."$$c`::::::: .:`:::
::::::: ::::::::::'
$$$$$$$$$h ?$$$$ ?$$$c,"$$$h ?$$r`:::::::::
:
:::::' :::::::::' zF
$$$$$$$$$h `$$$$c ?$$$$
?$$$c`$$$ :::::::: `:'
::::' :::::::'
.P". $$$$$$$$??.
`?$$$h "?$.<$$$$$$$$r`:::::::.:''
::: ::::::: ,J",c$.<$$$$$P".r",c,"??$??
. <$$$$$$$$L`::::::::..:.
::: :::::: JF
z$$$%`$$$P",J"
z$$$$cc ,.:::`<$$$$$$$$$ ::::::::::::
:: .::::' JF
J$$" . P" ,J",c$$$$$$P"
::::: J$$$$$$$$" ::::::::::::
: :::::
J$ J$$P JF ,cP",J$$$$$$$P
zc`:::: $$$$$$$$P
:::::::::::::
: ::::: ?$c
"""_,r`".zJ$$$$$$$$F z$$h `:: $$$$$$$F
.:::::::::::::
:::::. "???""".zc$$$$$$$$$$P",J$$$$h
`:.`?$$$P" :::::::::::::::
::::::.
$ccc$$$$$$$$$$$$$P",J$$$$$$$h ::.,.`.,.::::::::::::::::
`::::::: "$$$$$$$$$$$$$P"
,J$$$$$$$$$$r`::::::::::::::::::::::::
::::::::' "$$$$$$$$P"",cd$$$$$$$$$$$$$$r`:::::::::::::::::::::::
:::::::',h."""""".,cd$$$$$$$$$$$$$$$$$$$
:::::::::::::::::::::::
: .::::::: J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$L`::::::::::::::::::::::
: ::::::::.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
`:::::'``:::::::::::::
::. .:::::::: J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$L`::::.
..::::::::::::
:::::::::::::::: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
::::' :'' :`:::::::::
::::::::::::'::: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
::: : `' :: .::::::
`: .:::::::: `:: $$$$$$$$$$$$$$$$$$$ $$$$$$$$$$?$$$$.`::.::
: ' .:::::::
' ::'::'::::':: <$$$$$$$$$$$$$$$$$$ $$$$$$$$$$
$$$$> :::::::::.: :' : .::
.: :'`:: `::'`: .<$$$$$$$$$$$$$$$$$$ $$$$$$$$$F<$$$$h
:::::::::: :' :' ::'
::': `: ;,,,.:',h<$$$$$$$$$$$$$$$"??,$$$$$$$$$.<$$$$$
:::::::::: ' . :'.
::.,;,,.:::::: Jh`$$$$$$$$$$$$$$$$h.<$$$$$$$$$><$$$$$
:::::::::: .:::::..:
::::::::::::: J$$ ?$$$$$$$$$$$$$$$$> $$$$$$$$$><$$$$$
::::::::::::::::::::
::::::::::::',$$$r`$$$$$$$$$$$$$$$$><$$$$$$$$$.?$$$$$.`:::::::::::::::::::
:::::::::::' $$$$$."$$$$$$$$$$$$$$$ J$$$$$$$$$,J$$$$$>`:::::::::::::::::::
::::::::::' J$$$$$h ?$$$$$$$$$$$$$F,$$$$$$$$$$.<$$$$$h`:::::::::::::::::::
:::::::::' $$$$$$$$h "$$$$$$$$$$$$ J$$$$$$$$$$><$$$$$h
:::::::::::::::::::