: :: : :::::::
::::::: :: : : : : ::::: : :::: : : :: |
::::::: :: :: : : ::::::: : :::: ::::::: ::: ::::::: ::: ;; : : : ::; :: : :: :: : ; ; :
:: ::::: : : ::: :: : :::::: :::: :::: :: :: :::: :: :: :::::::: ::: : :::: ::: :::: ::::::: :::::::: : ::::::: :: :::: :: ::::::: :: :::: : :: ::: ::: ::