... . ...    ...  ......         .... ..         .........      ...........      . .........     ........         .......        .
                      .... ....    ...  ...... .       ....  .         .........      ............     . .........    . .......        .... ....      ...
                      .... ....    ...  .......       ..... . .        ........       ............     ...........    .........        ........      ...
                 .    ... .....    .... ......        ..... ..         .........      ...'....'..  . .............. . .........        .........     ... .
    . .               ... .....   .... .......        ....... .        .........     ...''..'''..... .....'........ . .........        ........     .....
    .                 ... .....   ..... .......        .... ..         ..........   ...'''''''''..........''.'..... .. ........       ..........   . ....
    .            .    ... .....  . ... ...... .        .... ..         ............ ..''~'''~~'~''..'~~~~'~'''.'...............       .........   . ......
     .                ... .....  . ...  ..... .       .... ...         ...............'~~~~'~::;;;;;!!!!+++!>;:'.........'....        ......... .   ......
    ..           .    .... ....    ...  ..... .       .......         .......'.......'~~::::;!!++>>++ccjcccc=>>!~........'.....       ......... .  .......
    ..                .... .....  .... .......        .... ..         ......'''.....''~:;!>++>=+=cjttJ5555Ytjci==+!~...''''....       .........  . .......
    ..                .........   .... .......        ...... .        ...'.'''''...':;;>+=iicctYY55566SSSDS6YJjicci+;~''~'''...      .......... .  ......
    ..           .    ........ .  .... .......        ..... ..        ...'.'''''..':!!>+cccttJY566666SDXQDQDDX5YJJtj+>:~~~''....     .......... . ........
    ..           .    ..........  ..... ......       ..... ..         ...'.''~''.':;!!>=ccjtYYY55666SXXDDDDDQQQDDS6Yt=+:~~~'.....    .......... . ........
    ..               .... ...... ..... ..... .       ..... . .        ..'.'''''..~;!!>+icctJYY56SSSXDQKKKKKQQQQQQDXS6Yi!~~~''...   ....'....... . ........
    ..               .... ...... ..... .......       ...... .        ...'.'''''.;:;!>+=cttttJ556SSSDDQQKKHKQKQQQQDDDDSY>!~~''.... .....'........ .........
    .                ......... .  ..... .....        ........        ...''.'~'':;;!!>=ccttJY566SXXSDDQQKKKKKHHHKKQQDDD6+!~~~'..... ....'...... . ........
    ..               ........... ..... ...... .     ..........       ...''.'''~;:;;!>itYYY56666SXDDDDKKKKKKHKHKHKKKQDD6+>:~~''.........'...... . .........
    .                .... ...... ..... .......      .........        ..''''':;~;:;!!icjjtY56SSSSDDDSDDKKKKKKHHKHKKKQDDSc>;~''.........'........ ..........
    .                .......... ...... ........     ........         ..''.'~~'~~;!;>+cttJtijJ56SDQDXXQQKKKNHHHKKHKKKQDSci:~''.........''...... ..........
    ..               .... ..... ...... ........    ..........        ..''''::~':;>++ijictY5YtjYSXDXXXSXXDKHHNKHHKKQKDD5ic~~~'........'''....... .........
    .                .... ..... . .... .......     ...........      ...'''':;:~;>i>+;;+:;!jjJc=j56XDDS5YJjjY6SXQDKDDDSjcc~~''........'''....... .........
    .                .... .... ....... ...... .    ..........       ..''''';;::>cti+icjjjYYc>i!!5DKHDS55556SXDDSSXDDDXcc=~~''........''..'...............
    .                ... ...... ...... ......  .   ......... .      ...'''';:::=cjttYtjcjttti>+cSQHQDDYtj=>=YYXXXSXDX6ijtY!~'........''..'.... .........
    .                .. .. .... ...... ..... .     ........ .       ..''''';;'!=cjt56655Jjjc===JXKQKDSYJtci+5jjYSDDDS5cJYc+'........''''.''... .........
    .                ...  .... ....... ... .. .   . ........ .      ...'''';:~!+ijJ5SSS5Yji=+=c5QKKQQKS5YY6SXXXS6DDS6S66JY~''.......'''..'.... .........
    .                ... ............. ....  .     ......... .      ..''''''~:;!=t66S666Jc+>+c5QKQQDQDQDDDSSXXDDQDDS5SXYY;~'........'''.'''... ........
    .                ... ................... ..    .......... .   ....''''''';;!itY66665t>+!+JXQKKXSDQDQXXDQDQQDXXS56DYt~~''........''...'... ..........
    .                .. .. ..... ........... ..    ............. .....'''''.';!>itY6YJttc+!!~cY666DDSDSDKKKQQQDQDX5YS6=~~~''........''..................
                     ... ...... ........... ..     .................'''~'''.':!=j5Yjjc=+=+>!=jt5555SDD66DQKHKQQDX6JS6;~~~~'.........''...'... .........
                     . ......... ............. . .....'.............'~~~~''..:!=j55Jc>++=iicYJt555666SS6YSDQDDSS6YSt~~~~~~'.........'...'.... .........
                     . . ....... ........... ... .....'........ ....'~~''....:!=cY65tc!;;>=c6S6SDSSS6S665YXDDSS65!'~~~~~~~'........''........ ........ .
                      .  . ........... ..............''........ .''~~~'''....~!=ctYYtj=>;>++>>iiijjcjtYYYY6XXS65>'''~~~~~'..........'....... .........
                     .. .............................'''.....'~~:~~::~~~''..'';+ijtjtjji!>icjYJJY6XDXXS65SSS65Y>.''~~~~~~'.... ............. ........
                     . . ...........................''''''~~~~:~;:;;:::~''''''';==cccjtttjcicttY6SDDDDS66SSS5Y;'''~~~~~~''...  ............ . .......
                     ..  ...................... ...'~~~~~~~:~::;!!;!!;:~~~~~'''';!+=iccjtcct556SXXDDDDDS6665c'''''~~~~~''....   ........... . .......
                     .  . .. .................'~~~~~~:::::;;!!>+!>!!!;;:~':~~'~'':;>iccijjjtJ66SXDXXXXXS66t~'''''''~~~~''...    ...........  ....... .
                      .  ...... ..........'~~~~~~::;;;!!;!!>>+>>!!!!!!;:~~~::~~'~'';!=ccjctYJ5SSSXSXXSS6c~~'~'''''~~~~''... .   ........... . . ....
                          .... .......'''~~~~:::;;;!!!!++=++>>>>+!>>;!!;:~~::::~~~~~~!>=ccjttJY566SS6=;!;;;~~'~'~~~~~~''...     ........... .  .... .
                        . . . ......''''~~~:::;;!!!>++>+>=>+>+>>>>!!>;;!;~~::;::::~~~~~!icccccjtJ5Xi;!>+!!!!!;:~~~~~~~'''...     ..........   ......
                        . . ......''~'~~::::::;!>++!>+=+>++++>!+++>!!;;;!;:'~:;;;::::~~~~;:;iJYJi;>>>>+++>>>>!!!;~~~:~''...      .........    .. ..
                          ......'.'~''~~~;:!!!+!!>++=+=+>>+++>>!>>!!;;;;!;;;~~::;;!;:::~::~::;;;!++>++++++++>>>!!!;:~~~'...     ......... . .  ....
                          .....''''~~~~::::;!!!!>>>>>++++i>>+>>>>>>!!;;::!!!;;~:~:;;;;!::;;;>>!>+++>+++==i+++>>>!!!;:~~'...     ...... ..     ....
                         ......'~~::::;!:!;;;=!=!>=>+>!+++++=>+>!!>>!!!;::;!>;;!;;:::;;;!;!!!!!+++++++++==+++>>>>!!;;:~'...     . .. . . .    .. .
                        ......'~~~:;:;;;!!!!>;;!!!++>!>>+>+++!>>!>>!!!!>;;::!;>;;!;!!;;!;;;!!>+++++++++++=++>>>!>;!;!;~'...     ..... .. .     . .
                        .....'''~~:::;:!;!+!>!;;!++!+>>!>++++!!!>>>!>!!>!!!;:;;!!>!!!!!!>>>>>>>>>>+++==>+=++>>>+>;;!!!:'...     ..... . .
                       ......''~~~::::!;!>!!:;;;::!!>+>!>!+!>!!!!>;!!!!!>!!>!;;;!;;!!!!!!!!>!>>>!++>+++!!++>!!!>!:;!!!!~..      ....  ..
                        .....''~~~~:~!::;:!;!;;;!;~;!+>!!!!+!!!!!!!!;!!;;!!!>;;!;!;;;;;!;!!!!;!!>>>>>>>!!++>!!!!;:;;!;;:..      . .  .  .
                       . ....''~~~~::;;:;:;;~!:;;;~~~!!!;;!>!!!;!;;!;;;;!;;!!;;;!;!!;!;;;;;!;>!!!>!!>!!;!!>!;;!!::;;;;::..        .    .
                        ......''~~'~:~~:::::~~::::!:~!;!::;!!!;;;;;;;!;;;;;;;;::;;;;;;;;;;;;;;;!!!!!!!!;;!!!;;;;~~:;;;:~'        .
                        .. ...'~~~'~:~~:~;:;~:~:;!;:~~;;;~;:!;;:;;:;;::;;::::;;::~:::;:::;;;;;;;;;!;;;;;:;;;;;;~~::;;:~~'