*    .             .       . . . .   .   .  +
   .       .                   .  ..  *  . . .
           .  .   .      +   .. .    .
              +             .     .     . *.    +  .    +
    .            .       .      .      ..  . .
      . .         .   .    .    * . . .  .  +  .. +       .
  .        +      .           .   .      +  . ..    . *
               *     .    +  . .  . +  .+. .   *   .       .
      .         .        .  .  . + .  . .     .      . .
           .     ..    .   : . .   . . .  .  .
        *           .    . .  +    .  . . +   .  +  .    *
          .     .  . .  * ... .  *  .  .  . :  .  .    .
            +  . + .  .  .. +. +  .  .
       .  .  .  *   .  *  .   .  .  .    : .*        .     .
    .       . .  ..  .. .:. . .+  ..  * . ..  +  .  +        .
       .      .   . ...:...: ..... . ..  . .: ..   .     .
   . :. .':. .. '. .. : ..: ..:.: . .   :  . :  .    .       .  .
 .   . .. .:..:::.::::.::.::.:*::.::.:::.::.:+::.:.::..: ..: ..  .
.  .: .  :..::* ::.: :..:  ::.:     :.:     :: :..:: +:.:...:.  .
 .  .  ..  :.:: :.:: ::: ..  :: :::. :: *::. :. ::: .:.:. : .
  ..: .. .::.:: :::+ :. .+:. :. :::+ .: :::' .:. * .::.:.::..  :.:.
 ... .. ..::.:.      :: :::: ::     .::     .:.:. .:.:. :  ..:   +
. : :...:. .::: :.:: .:      .: :.::.:: :::::.:.: .::.:: ..::: :
.: :. :::::::.: ::.: :: :::: :: ::::.:: ::.:...:: :::: ::.:.: :.
 .:. :.:.:..::: :.:: :: ::.: .+ ::.::.: :.:::.::: ::.::.:.:::.:::.:
.:.::::: ::::.:::.::::.:.:.::::::::.::::.:.:.::.::.:.:: : .. :.:.:
: ::.:.::::::::*.:::.:::.:::.::::.::*:::::.::.:.::::::::::::::* :.
 :::.:*     :.: ::     ::     : :::: ::    :::.::  ::+ ::.:: :::.:
::::::. :::  :: :. +::  ::+ ::: ::.: :: +:. :.:: *. ::. ::: .:.:
::: :.: ::: .:: :: ::: .::: .:: :::: :: :::. :: ..:. ::. : .:::.::.
 ::::::     +.: .:    .::.: :::      :: :::: :: :::: :::. .:::.::
::.::.: :::. :: :: ::  :::: :.: +::: :: :::' ::      :.:: ::.::: .:
: : :.: :::: :: :. ::: `::: ::. ::.: :: ::' ::: :::: :::: .:.: ::
:::::::     .:: :: :::. *:: :.: :::: ::    ::.: ::.. ::.: :.: :: :.
.::.:.::::.:::.:.::.:.:::.::::.::.:::::::::.::::::::::.:::::..::. :