:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::...............................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.........................