::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
:::::::::::::::::::::::::::::::::::::::...........................................................
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::...
::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::...