;%%tt::.       S X 8SX@@@88888888@@XXXSS%%tt;;;::::...   ...::::::;;;;;t;ttttttttt%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%t%tttttttttttt;t;tt;;;;;;;;;;:::::...:.....  .        : : ; ;:;;;;;;ttt%%%%%SSSSSSXXXXX@@@8888888888888X8S8S8tSS%ttt t       .;%%SSXX@@@@SSSSSSSXSSSSSSSSXXXXXXXXX@@X@X@X@X@@@@@@8@88
888XXS%%SS;;:.:... ...     S X 8 8S@8@8888888@XXSS%%tt;;:::... .       ; t t;;;t;ttttttt%%%%%%%%%%%S%%%%%%%%%%%%%%%%%%%%%%%%%%%%t%%t%%t%t%%ttttttt;tttt;t;t;;;;;;:;::::..... .                        %  S S S X XSSSX@@@888888888888888888888888888:8 8. ;. ..;..;..;;tStXSXS@S%S%XSXSXXSSSSSSXSXSXXXXXXXXX
.. ...:;t%SX@88888888@XS8XSXS%%St@tttttt;;;:...@;8:8:8.@.S t8@@XXS%tt;;;::...          tS% t t%;ttt%tt%t%t%%t%%%%%%%%S%S%S%SS%S%S%%S%%%%S%%S%S%%%%%%%%%%%%%%%%%tttttttttttt;t;;;;;;;;:::::......                            %  %  SSX SSXX%S@%@@XX8S8%XX8 XS888888888888 8:8.tt% %        ...:::;;ttS%XS%S%S
      . ..::;::..     .;;;t%%SXX8888@88@SXStt%;t;t:;::8S;8 t;;:8@:888:S8X88@8S8t@:@ @  X X    X%S% %SSSXSS:;S;tS;%St%St%S%%%S%SSS%SSSSSSSSSSSSSSSSSSSS%S%%S%%SSS%%S%%%%%%%ttttttttttttttt;;;;;;;;:.....:....         %  %        %S 8    S SS%     SXXS@ SSXSSXS@XS@@@8SS@8888888888888888;8t8 8 t t t    
          .....           ....:.::;:::   .;t%XX@88@888S888XS@X%t::%tt.;;.Xt.  8;8.8.X.%8SXXS8S8t;8.;.X  Xt..   St:S.:;S:t;tS;t%tSt%%St%%StStS%S%%S%%S%%SSSSS%S%%S%%SS%SS%%%%%%%%%%%t%%t%S;t%%tttt%;t;t;t;;;;;;;;:::...                            %SX@    S 8  SXXS %XXSSXX S SXX S8 8SXXX8@X888888888888888
                                .... .  . ...:::;;::.;   .  .:;t%%SSSX@8888X88S88XX888X:XX8Stt.t. .;.8%88;@:t8t%SSSt8;t:8 ..@ @   X; ;:%.:;;;;;S;tS;tt%tt%t%%t%%t%St%%%%%S%%%%S%%%%%%Sttt%%t%%Stt8S;ttS8S:tS8X.8X.8X.8%8  .          ..                       %    %SX   S    SS % %SSSXS S S%X@XSXSXSXX88S8
                                            .......... .        ....::;;:;; :; ..     .::::t%X@8888XXX8@X%S%; t%tt: 8;.@:.8 %.:X8;%S8ttt;8:8.@ .   X;XtSt@t@ S.S.;;;S:S:tt%Sttt%t%%Stt%%%St%%tt%S 8.%%;.;8S .8S 8  8S   8S8 8%8% 8S 8S 8S    .                    %          %   S  %SS    SSS8  SSSSS    S 
                                               .....              .....::.      .       ....::.:        :;;%S@@888888X@X8@XXXS@t :St.t;:8 S:S.%8S8tSS%%t8;SS%%tt8.8.:.:@SSX.X S.S ;S:X:tttS;tt;;S:%tt%;:;%: ::.t% .8.;%  :   8S  : ::  8%8% 8S .:::::......                            SX SS  S8    SS@S%X
                                                   .                  .       . .        . ....         .....::......       .::;%tt%SS8XX@88@@@X8@8@8888XS8XS%%;:: :88.; %:; ;8SX8@%8Stt8XX.SSS;X; .S S %.S:S:;S:;:;% ;S ;tS;;S  .;;;tS::%   .% :;;S:;S:;S.;S ::%  ...                    %        %   SSS  
                                                                                                          .....        .. .........:;::t;t;:;:;:..... :    .:;tS88S88@@X8888S@@XS.::  8 t ;8%88@88S8X@%t@;X;XSStXS% % S  S  S   % S X .:S  .:% .:S..:S ;::%..:S  ::S :S .S  %  %   S  S      S       SS     
                                                                                                             .    .         . ...................   . .  .....:::;.....  : .::;;t@88S@88S8S88888XtXt;:t:..X8@8888888888@88@XX8%8SX%X%XSttSS%XS X S X  S X  S %  S S  S  S    %   S      S  S   S S %  S %   
                                                                                                                     .             .. .  ..         .. .     ......   ... .....::;:;.::::t. .   .;;t%XS88@@@@88@8@8@8888S8X8X%S;;.:..8:88 8;8.8@888 88888888888@@@X@SX@%S@XS8SX8S@ XS8S8 X 8 X 8 SS S @ XS@ 
                                                                                                                              .                                         ..  .......... .........::;t;ttttt;t;%;;::::;. .. . ..:;%@8@88S8SS8888X888@tt%t::.:.8:8:888:8 X8888 S.88S88888888@8X88@X@8X@X@XS%XXt
                                                                                                                            .                                      ..  . ...  ....  . . ......::;8888@@SS;t:;::::::....:.....:::;t;;t::::tt   :...:tS@8888S88S8S8SXX88SS8@SSStS%t;:t;;: 88:8:@88 @8888@88S@8
                                                                                                                              .                                        .    ..    . ......:;t88X8@888%8S8%::::......... .....::..:.......  .....::;..::::;:.:.. .       .::tttSSX@888S88S8S8888SS8Xt8St8S.
                                                                                                                             .. ..                                   .  .   .  .. . ......:%888@:88S88 8X8@8%:::::....... ................. .......:......::..    .       ..::::;:t:;;t:;:t;..   .   ..:;;t%
                                                                                                                            .                                            . .    . . ......;8888S@88 88888X88X%;::...... ................ .   ......... . ...... .  .       ..::.....:::...... .... . ..::;::
                                                                                                                           .  .                                        .  .  ..    . ....:;88 : 88888%8888 88.@;::.....................     .....:..     ......  ....     ..........:.......  ..........:...
                                                                                                                             ..                                         .  .     . ......::X888:888888XS8S8888%::....................   . .  ........ . ...::..  .....      .... ....:...     .........::...
                                                                                                                            .                                           ....     ... ...:;8% 888888X8@X  .%8t::............... ..   . .  . ...... . .. ..:.... ....     .....   .....  .     ..... .......
                                                                                                                             ..                                        ....          . ...::X8%88 88888X8.8;8@;::.............  .  ...  .  .........  . ..:::.. ......   . ...    .....       .........:....
                                                                                                                            . .       ...                              .....         . ..:.:%8X88S8S88SX 8;888%;.......... ..... . .  .  ..  ...... ..  ..:::..  ....      ....   ..:....     ..............
                                                                                                                            ..       .. .                              ....          . ...::%888 X88@.;888:888S...............   .  . ..     ..... .   . .:::........     ....    .::..       ..........:...
                                                                                                                                         ..                             ....       .. .....:X8:@888888SS888X88::.......... . ..  ..  .  . ... .....  .. ..:::..  ....   ......   .......     .. ... ...::...
                                                                                           ...                             . .      .. ...  .. .                        ....      .   .....:S88@@ 8SSS8t. .::.:......... . .   ..    .. .  . .....  ..  ...:... ........  .....  ...... . .   ..... ........
                                                                                                                            . .      ...                               ... .      .........::SX%@88 88;;..............    . .  . . ..  .    .......    . .:::..  .....   .....   ...... .   . . ... ...:.:..
                                                                                                                            .              .                          ......     .  ........:.:;S88X8%.::............ ....   . .   . . ....  .......... ...::........  .. . .. ........   ... ..... ...:.:..
                                                                                           ...                                .      . . .. .                           ...       . ... ......:::;X8 X::.............    .  .. ..  . .    . .......     ...::.  ....... . ...  . ..:..   .     .... ...:....
                                                                                           .                                ....    ..  ..   ..                       . ....     .  ..........::;:%8 %::................  ..  .  .. .   . .......... . . ..::.........    .... .......     .. ...... ..:... 
                                                                                            .                              ..... ...   .   .. ..                      . ....     .............:.::t@:t::..............  . . .   . .   ..    ........... ..::::. ...... .......   .....   ..  .....  ...:....
                                                                                                                           ....  .    .   .     ....                   ....         ..........:::;S8.8XS;:::..:::........   . . . .. .    .  .......... ..::::..........  ... . .....    .   .... .....:... 
                                                                                                                           .... .   . . ..   .  .  .                   .....     ...........::.:;@.  SS8@.....:........  . .. . .   ..   .. ........... ..::::. ......   .... . .....      .  ....  ...::...
                                                                                                                           ...... .. ... .. . ...   .                 ........  ... ......::::;S8X8888 @8X:..:..............  ....    .      ...::..... ..::::. ......   ..... ......     ..  ..... ...:... 
                                                                                             .                             ..... .....::;::......... .....            ...... . ..........::::t8tX888SS@8:X::.:..:......... . ... .. . .    .....:..... ...:::... ......  ....   .....    .   ...   ...::... 
                                                                                                                          ........:;X888888X%t::.....    .            ......  .  .......::::%@X8888888X8@;8t...:...:.............  .. .     ........    ...::.. .....  .. ... . ....      ...  .  ....:...  
                                                                                                                          ......t@8X8t8@tttX88Xt:.....              ...... . .   ....::::%@S :88S88S @8@8@......:................     . . ...::....   ...::.. ..... . ..... .......    .   .... ....:...  
                                                  ...                                       ..                           . ...:%8St 888  88 8  X 8X:..... .          . ......   ......:::.%8tX888S88  S 8X 8t...::................... .. ... ....:...   ..:::.. ....  ........  .....   ..   ..    ...::... 
                                                  .                                         .                         . ...:;XXX.t88888888S88888 @@8;:.... .         . ......  .   ...:.;S8. 88888888%X8888@t....:.:............. . .    ....::...   ...:::......... ...... . .....     .... ..  ..:::..  
   ..                                            .  .                                      .                         ..  .;8 8S8  8 88888X;  888888t8S....  .      .. ....... .. ......:;@88 88 88@X8@88Xtt8:...::::...............  .   ......:::..   ...:::.......  . ...... ......   . .....  ....:.:....
                                                 .                                                                  .. ..;S8888S 888888@  8%X88888X8t@:.... . .....  ........   . ....::t88888888 888 8:S..X::..::................... . .. ...:::...  . ...:::...... . ..... ........    ....... ....:::... 
                                                . .. .                                                             .. ...@%88%X8S888@888S8888888@888.8%....  .       ..........  ....:::t8@ 888888888t888S8;::::....:...............  ..   ..::.:.....  ...::....... ................     ......  ...::.....
                                                . .  .                                                            ..  . ;Xt8X8%8@S88888888@888S888888 8%......  ..... ...:..........:::%S8 8888888% X@tSS8;;:::.::...................  .  ....:::..... ...:;::.......................    ......  ...........
                                                ..  .                                       .                  ...   ...t8t@8@@tX8 88 88@8888XS t8@88888....... .    ...::........::::tt8S 888 888888@88@X;::.::::::.:.........:.....   .....:::::.... ...::;:......................    ........  ...:::....
                                                  .  .                                     ..                 ..    ....t888X% @8 8888888888@X8 X8@@8888;:...   .  .....::::......::;t%@88888888S88 888S8;:::.:..:::...........:....  ..  ...::::::... . .:;;:......... .... .......      ...........:::....
                                               ... ..                                        .                  . ..  ..;8@ 8888 88888888888@8888 888X 8 ........... ..::::::::::;;%X8S8.88888888888:8X8t..........:.............:....  . ..::::::..... ..:;::...::.................     ......  ....:::....
                                              .     . .                                   .. .. .            .. ..   ...;88X888888888888X8888 88888SX8t8.... ..........:::::::::;tX8XX%88888@8@8 %X88t8;......:.:....:.:........:....   . ..::::::......:t@88Xt;:::.:..............  .. . .....  ....:::....
                                               .. . ..                                     .   .             . .  ......:888S 888X88888888@88@88888888@8. ............:;::;::;t%8S.:%8@88888888XX%@8@%.. .....:....::..................  ...::::::::.;S88SS%%% t8@:..:...........    .  .....  ....:::....
                                                . .                                         ..              .   . . ...::%88%S88@@8888888X88888@888888 8:..........::::;t;;%S8SS X8888@888888888X@8S  S:........:::.................. .  ...:::;:::8@%tt @8@S888@8% :8..:....:.......   . .... .. ...::.....
                                                 .  .                                     ...               . .  . .....:tS@@t%%S:8@X 8@8 888888888 8St8..:.......:;S;t;;%X8:8.88888@888888888X@@8t8%88.......::.....................  .....:;;:::8;::@X S@@@88X8:88:t8.::::.........  .. ...  .....:::.....
                                               .. ..                                      .   .            . . .. ......:;;S8@: .8 888888888888888888.8%::::..::t8XSt:::%t  t8888@888@@88888888X8t@.@8S............................ .  .  ..::;:tS%8@S@S8S888@%  XX88t:8;::..:::.... ..............::::.....
                                                . . .                                      .. ..           ..  .   .....:;;;X%@S 8888 888 8 88888S888.8;:::.;t8St8888X8  888888@88@@8@8888888@8X%8;:;8.....:.:.:.::................ .  ..:::;X%    8%8888888888SS@ SS88...::.:::...............::::;;::...
                                               .    .. ... ...         ...                  ..              .  . ......:::;;88.@S88888888888888888S@8@.:::;;XS 888X  8888888@8888@88888X888%SX8;8;;:.%8X.......:.:.:...............  .  ...::;;S  88888888888@88888SSX88;t::..:.:.:.::......:..::::;;;;::::.
                                               .. .. ...      . .      . .                .               .  .. . .....::::;X@88 88888888888888888S88.;:;t@St 8XS 888888@8@@8@88@8@888888 @@X88%t::..t@.%;:......:.................  . .. .::;%  8888888888888888888S X8.X:::...:::::.....:....:::;;;;;:::..
                                                 ..       ...  . .                        .. .           ..  .  ......:::;t;8 %;888@8888888888888@t.%;;;SX @X.88888888888888888@8888X88 S% 88%;;:::.::@@;:.:.:.:..................... .  ..::;@8X 88@8888888888@8888X88%t@;:..::....::.::::....:::::;:::::::
                                              ...      ...   ..  .     .  .              . .. . ..  . ..   ... .....:;@.@@%X:888%8888888888888888.8StttS8::888888888888888888888@%88@8:%8@;::;:::::::;@@...::....:...............    ..:;t@;X88888@888888888@88SX88;.8;:.::.:::::.::.....:....:::::::::.
                                                 .  ..    .. .  ..        ..             ...  .  .. .  . ..........:8Xt88@8888X8%8X:::X8   8888888:8SS@%t88888888888888888888S88t@: X88;@8;;:;:;:::.:.:8X @....:::.:.......................::;@: S888888888888888SX88888%8;;.:.:::::.::.::::::......::::::::
                                               . . . ....  . .    ...   .  .            .... . .   .    ... ....:.;;:8888%8;8S88S St8@%%@88X88888 :8%St88888888888888888888888@@XS888S@@;.:;;:::::::::..88 %;.....:........................:;t8X8X888 888 88888@88@888888@;.::::::::::::::.....:......::::::
                                              ..   ..    .   . ...   ... . . ..        . ....  .. .  ...  .......t.:888%8;8;88S888tS:St8888X:8  8888 888 88888@888888888888@8XS8 888XX:.;::::::;:::::...:@8:....:...:::............ .......:;;8X.@@ @ 88 :88%88 8@888t@XXt@::::::.::::::::............::::::
                                             .   .. .... . ....... ..  .. .. .         . .....  .  . .    ......t.;88888;888.88t8S88888S@S88X:88888@8888888888@888888888@@8@.;S8t@8;8.::::::::::::.:::::.::88....::.......................::;tX8X%@S88888SX@@%8;88X88 88%8%;::;::::::::::::..::::::::::::::;
                                             . .. ...  .. ..::;;t;;;;;;;::... ..      .  ......  ...  .. ......; :888%8888 88S8S88;8%8t8;SX8X8888888888888888888888 8 88%88X88S88888:::::::::;:::::::.::..t @8.:.......::::...............:;;;88: SSS% 88SSSS88 SX@88@;Xt8;;::;::::::::.:...::..:.::..::::;;
     .                                       . .  ..... ...t88@888@888SS@@S:..  ... . . ... ...  .  .. .  ....:88t88888.88888S8 88.88 8S8;@:888888888888888888888888@88%8 8888S888@t;::::::;::::::::::.:::;X X@.......:::::.::::.........::;;tt@.S888 888S 8S8X888888: 8X::;;;;:;::::::::::......:::::::::;;
     ..                                      ..  .... . .;8@88888XXt8.tX8Xt;:.  ..  .  ..... .   .    . ...::S;%888;888  @:SS8 88 8 8 88%@888@8888888888888  8X88X8;X   88XS@88;tt::;::::::;;:::::::...:.:888@.:...:.:.:.:::....:....:::;;;t;@;8SS%88.88 S8X;@8X8888.t;::;;;;;;;;;:;;:;:::.:::::::::;::;;t
                                               . ......:SSX@888S8@8 888  888@@;:..  .. .. ....  .. .  ......:.t tt%8:8S @.SS@S8.8 8 88 8S8.88888888888888% 8@ 8S8 S88%@8tS%t@8S8S::::::::::::::::::::..:.:.88S8::.:::.::::.::::::.:.:::t;tt%%888 88888;@88;88;8@@@8 %%;tttt%S;ttt;;;;;;;;:::::::::::::;;;;
                                               .. .. ..@X@@8888% 888888@8S 88X@:...    . ...... .   ..  .....:88: tt8X8%8;;t8;8888 8%8  S8S8888@88888%8888888SS8 .St%888X%S%;S88SSS;::::::.:::::::::.:::....::88S8::.:.:.:.::::::::::::::;%S%X%X88 888888X 888X 8XS88@SX8X@%%%%XtSttt;;;;;;:::::::::::::;:::
                                             ..   ...:SSX@888888S888888888SS8@;;:..  .  .......   .  . .......8@;t%S8;88 :t8:8 8%8888S8X..S88888@8888X @.88S@SS 888SS888tS8t;XS@@;8t;::::::::::::::::::..:..:.:8 S8::::::::::::::::::;;ttSS%888X 888 X@8S88%S8 8 @X8X @X88SX::8;@8%%S%ttt;;::::::::;;;;::;;t
                                            .. ......tXt8888888 888%88@8 88t.8Xt;:. . .. ...... .. ..  ......:S:St 8XS8S .8.88888 88 S888S8 888X%@8X8@;SX;8:.X8888888S8S;88;8@ ;@88St;::::::::::::::.:...:.::.:;S %S:::::::::::;;;;tt%@8@;@.%88X;%88@ %8S8X8888@8S@888SS:X%:S@tS8S:X%@Xt%t;;;;::;:;;;;;;;;;t
                                            . ......;8S@8X8@88 8888888@  @S:8@8@t....  . .....  .  .  .....:.:tXX888:@ :88 88888 8 8X88888888SSS88;8@@@@8@8;@.S8888@888%: @8%S:t8@8S;;;;:::::::;::::::.........:t8 t8::::::;;;;tt%S%@:@.8X;.:.::::;%88S88888X8SX%88X8888 .:;.SS;;@@%8.8@t%t;t;;;;;;:;;:;:;;t
                                          .    ....:SX;@StXXX%888888888888888 8S8t.. .. ......   .. .  .....:.S8888  :8  88 8888888@t88@SX88S 8X8@88@8SX88@S88%;X888S88%S  88 : 8;X;t;;;:::::::;:::::......::::::;X.88:;::;;;tt%@8 .XS;%t;:.:::;::::t88SX%XS8 8X:@8 ;8t. ;ttt:8;:%8::t@X. Stttt;:;;;;;;;;;tt
        ...                                ... ...:tX%X888X88 888@888@ 888 X888X88t............. .   ........;;:%t8:8  8 8%8 8 8888@@XX8888@@X8SX@8@@XS8X8S@XS888S;t888   8@.X%888t%;t;;;;::;::;::::..:.::::::::::;8:%X:::;ttXX8 8.:...:;:.:::;:8;:@;t8@@@X@S8X8X 8X;:..;;%8:: 8::t%.;;.:%8X8%tt;;t;;;;;;;t:
   ......                                .    ....:%%X88%88X888888@S%8888XSS888X888;...........   .... .......t% %t8    %% 88888888@%%t%;t@@%X@@@X88XS8X8@@S8SX8@888t888S  :8888@@ttt;;;;;:;;::::::.:...:...::::::::88S8:;;%@t8;:......tt::8;;8t;;;;;:%8@8S%XXX.8%t...::;8t8X8St;8:;:.. ;8;S;;;;;t;t;;;;;;
  ..                                    ..    ...:;88t:8888tS 88888@888888  8%8:%@@S:.............   . .....:::XSS88  8 888 888888XXX8S@XS;t888:; ;8888X8888S88X@88@88X  8 8@8XX88888ttt::;;:::::::::...:.::::::::::;8 X8;%%X8%;...::.;t8;:;;;;:;@;:;:;S8S88@ 8%:..:;;@ttt;t%St::t:;S;t.:..%8 %tt;;;;t;;;;;;
  .                             .       . ... ...:S8S%S 8@88X88@8 8888X 88888 8t%@8S;:.........    ..........:.tS%.  @@XXS    8  %88S8SS%88tt88@XS8t 88888X8@8@8XX88@S88Xt88t 8;8SXX;X@t:t;;;::::.:..:......::::;:::;t8t@@%@8@t::.::::8S;::;8;;8tt;@tX;;%%tSSt;;;;;@ttt;;8%;tt8S:;t;t%%:t;:S;8%;%tttttt;tt;;
  . ...    .  ..            .... .     .  . .....;@@8St88S8t 888888888S@8t8X8.S:S@@X:............. .  .....:..:XS 8;8888888888S  XX88 88S888X88@X;.;8:8S8S8X@8S8S@88888S%S8%8S 8%@t.X;t;;;;;:::::::::::::::::::;:;;8 .S8 ::;::.:8tt;;:8%t;tt;;;;;;;@;:::;;X%;@tt;:@%ttt8S%Stt8t%;tS.S;.8t%S X;;tttttt;;;
  ...  .... .  .           .. .   ......  . ....:t8888X@X@8.8X8888888888 SXX@8ttX88t::.......... ..     .....::%XX%  t  .8@.@8888@@XX88.;t8  t888St%@X;8%8@88X88S@8X8X88SSS8X@@;  ;SS8.8%S;tt;t;:::::::..::::::;:;:;;;t%8@@8::.t;:8;t:tt;ttt;8%t@t;@t:;;;XtXtt%tt%tt@%;:@ttSt%8X%t;;t:tXXt:X@;;8SS;tt%tt;;t;
            ..            ..   ...       .  ....;%8XS8888@@  88@888X88888XX88@;tS@S;:. ....:......  ..........:::: 8.8:;;t%%; 8 X%X8SXS@:;8  8 8%88...X .888t;;8S8@@8%@88S8SX88.S:St;@ ; @;t;;;:::.......::::;;;;;;%t%%88@%:.:%;;.:;;8%;8%t%tt%ttt;8t;;t;t;X%X%t@X%tt%tt;@SSX%%8X;8S%XX;:XS;tS8 t:t%%%%;t;
  . ... ....               .  ..  .   ...  ....:;%8S@8XX8@.888@ 8 8888@ 8888S:;tS@;:.............. .    ........; t88 :;%8:; 8; %%SXS8 8.8 8X 8 88SS8.8S;; 88888;@@888S8888X t 8.t8.%%;8S8S%%%tt;:::.:.:...::;;;:;;;ttS%@88S%..:t%:.::t%;t%t;@St@%@%t%;8t;@%t%tt;t%;t@St@X%%;@SXX@S%t%;88::St%X%8X%8;%%t%ttt
   .  ...    ..      .....  ..  . .. .   ......:;t888X8@X8X8888S8X888XS8 S:@;t%88@t;................ ...........t ::.88;8 : 88 ;8t8;8.XS8  8 888  . 8  8S 888%% .;tt8tXX8X 88t8S :;;;8888 tS;t;;::::::.:.:::;;;;tt%%%@8S8;%:::;t;.8t;8t;8%t%;tttt;@%tt;tt;Xt;@%X%XSSt%S%@X%tt8@S88t8SX%:tS SX;XXS.8ttS%%tt
    .      . .     ...    ... . .   .. .. ....:;t%8@8@X@8@88888888888S@888Stt%@@S@S::......:.:................:.;@;X8t8::.SS  8.8.8.8 @;8 88S8  8 8 t :8@    888%.@8@8X8XXX8t8...... .  8@88;X:;;;;::::::::::;;;;tt%tXX8@%;t8@t::8t:;;tt;;t:@t@%;@%t%;@%@tX%;;t%%%%StXSX%%%t@St%;SX%S%;%;%@X XSt888@St%Xt%S;
   . . ... ..  ....      .      . . .  ....::%XXXX8888@8@@8X8888@888S@8X8ttt%X@X%X8t..........................:::@SS8888 S@S:888 8 8  S8   8%88S888 S88.  8 %8 88 8 88%X8X@88..  ..8 8   8@88S@;t;;:::::::.::;:;;%t%%X88;.;8X 88;t:;t8%:8;;;ttt;t%;@%t%tttt;X%X%tXSt%S%%tXSt%;;XtX%%8@%t8XXS.%;tS:8% 8t%Xt%S
   . ..   .  .       ....  . ............:t@8SXS@888888S88@@SS88888S888X%%%SX8@@@88%::...:::.:..............::::.%8%X8.8XXX;8 888 88   88 8%8%8 8 88X8.8 X 8X88888@S888: :X88:S88888888S88888t%8;;;;::::::::;:;tt%%X%8@8%.;tX@888;:8X%;;;;8;;@t@%;t%;@%;@%;ttt%tt%t@StX%t%tX%;tttt;%XSSXtXS@.;:S8%XS% 8S%@%X
   ..  .  ..  ......   . . ...........::t888S 88S8@S8X88@@@8888 888@88888@X;X88888%...::.::.................:::;X S8;   8 888%88 8 S 8 8S8 888S88  8 88SX 8S8 8 88 88:S %@@88888X8SX% 8 t8X@8S%%;;::::::.::;;;tt%@8S8t::t:8888;:;tSX8t:;;;t%tt;8%;t%;tt;@%X%;@St%%t%%tX%t%;@t;X;X%%88S%%8;8;8@8;;8%8%888XS
  .  .  .   .      ...   ..   ......:;@:88:X;8XX.8@8%8888888:88.888 ..8 @8@@%%8XX888X;::.::::........ .. ....::::.8@%%8 88888 88S88 8X888 8S88 8 888 SX:8   8  8888@  8.  : 8X8888X@@@% S@%@@8888.;;:;:::.::;;;tt%X@8::::.t:8X88 S;@8X%;8t;8t;@%tt;8%;8%;tttt;%%t@St@%tt%tX%tt;;;;;tS88X@t@88;S8@%;%XSS@888%
  . . .  ..  .. .     ...   ......:;@;X%888; .888 888@8S88@S@@8888888888 S.XX:88888@8t;;:.:.::................:::.S8tt8S8 8%88 888 888 88% 8%88 8X888%X 88@ 88S88 8 @ 88@@ .tX8XX888XS%.@ X@8; : 8:;:::::::::;;ttS88 t::;.SS8XS:88St%8Stt:;t;tt;@%t%;tt;8%;@%@%t%%tt%t@Sttt;X%S;:X;;@8888t88X:88Xt;;S%;SX%:t
  . . ....  . ... .. ..  . .....:;tSX%888888888  8S88S8X%8@@88 88@XXS@888 8@X888 @@S8t;::::::...................::;@;%:88888 88888 8 88888S8888  8 8   S 8 % 88S8888@ 8  %  ;888@8XSS8;88S 8tSS.%@::::::::.::;;tS8S@;.:;;.@@S X8SS;@St::@;@;@t;;;;@%;8%tt;ttttt@%X%X%t%;@%ttt;;S;;:tSX888X@Xt8X8tt8;S . tt%;
  ..       .      .  .    .....::;%t@88@8888888888S8S88;8888888XX@@88888 8  .t8%X88 8t;;;::::...............:..::88t88 8888888 88S8 8888  8 88% 888  S 88X8 88S8 8 X8  X S :S8X8888SS8@ S8@t:;.8.:::::.:::;;tSS@ .. :;:SSS8888.;ttt:X;::;;;:@t;;t;t%tt@%t@%;ttttt%tX%tt;Xt;Xt;::Xtt88X;XS8XX88%%;.;S8SX8;t
    ..   .. ..  ...    .. .....:;@8X8@XSX8888@X888X.;@S88888888SXXX%SS888 8X@8X@t 88  8:;;::.:................:.:8t8;88888 8S88 8 88888 8 88888S8888S  88S%8X8%888 @ 8S8 8 t8@@88SXS:88S8X8@8@:;t::::::::::;;tXt8 . ...S8XXX@88.:;;;:.:.@;:;;@t@tt@%;t%;ttt@%t@%;@%t;S;;;X%;::Xtt;X8;:%88@@@8S8X::;88.8;%S
  ...  ..  .  ...   ... .....::;::;88XSXSX8888S%88.88%8SX8  88@88XStX%%%%@888t8X@@8X8%t@t8:::::::............:..::; @8888 88 88 88%8 88 88X8 88S  8 8S8% 8  @ 8 8S 88@    @ 8.S88@8X;::88St88@88%@t;;:::.:::;;t%%SX;;88X@88XX@@@X@t8S;@t;;t;@t;ttt;t%t8%t8%;t%;t%;tt;;;:.XSXS%@XS%%888S.:888@X8@Xt::;SS%8;SS
  .   ..  .  ..   ..    .....:::;XX8XSXX@XX@888%X@88S88888X888S88XtXttt%;t888 8@@;  8X@%@ %t;:;.................::8t8%8 888S8 888 8 88888S 88S888S888  8%8888 8 8 8888S   X @.8X88SS:.888888@88@S%%t::::::::;;tt%;S@8t8888X8@@88X888S%X@@8@%XX88SX88%SX%%S%8St8St@%;Xt:Xt@@8888@@888%  .SS 8X8X%S%8t:;StXtSt
  . .  .  . .   ...   .......::;@S8@XSSX8@8888@8t%8 88.;8t88 @S88SStttt;;%88888S8888888;X.8:;::::::...........::::% S%8888S8 888 8 88%88 8SX8888  8888   88  S 8 8S88@8   X88;:8X8SX.8888S;@XX8XS%8;::::::::;;t;%t%X@X8@X8@8@888X888888888@%:;%;@XXt8S;8%ttt;tt;tt;ttt%8888888@@88   S S%@88X%tt;;:.:;8;S%%;
  . ..  ..  .  ..   ..  ....::::X 8XSSXS@8888888;t;t8S888.8    8St%Xtt%:tX8@88 @8X X 8S;SX%;tt;::.............:..; t8888 88 8888888S88 88   8 88 8S8 8S8X888S@8S  888S.   X88:S88XS;t88888:8@888%%X;;:::::::;;;;ttX@@% S888t888888@8888SX8 S8X%%%;;;t;tt:8%;8%t@St@88888@88XXS@888888 X@%8888S%t@t:t@X:%%%t;
  ..   .. .. ..   ... ......:::; 88XXXSX@@88X888%;;tX888888@.8 8;t%t%S;tttt%S88.X  @ 8XS;@88t;;::..:.......:.::::; ;%8888 88S888 8 8888888X8 88%8S8888XX  88 8  8 888 8   888%8XXtt:88888@X8@@@SXSSS;;:::::::;;;;t8;  888;8X8%8@SS8S 88@@X8S@:@%tt8%;8%t%tt%%ttS%@8@XXttSt;tXt:;tX88 SXS 888@SSX88888@88t%t;
    . . .   .. . .. ........::;@88@SX@@@88S88888%@ttt@8X   8888S;%t;ttStt%t:;8888S   88%t%.8tt;::..:..:.....:::.:t %8S8888X888888 888888S8 %8 888888 8SS 888S8   8888 8X  X8@8S:X:8888.8@88S@88SS%X8t;;::::::;;;t;@X 88X 888888S 8@S 888 88t:;;;@tt:tt;8%;8%;8S%8Xt@t;tX%;Xt%X8;88%   . 8:@8%8X 88.tS8 X%S%X
  . ..   .          ........:::@ 8SSSSX8@8888X88888888XSSX@888X%S;;;;t;%%t;;;tS8888X 88SSt8@;tt;:::..::....::.:.:; t@888S88 888888S8 8888S  888 888888   88 888  8888 88  88X;@S8t8:8@8S88XX8888XSS@%t:::::::;;;;tS8@ S8S@8;888SXtXX@X%8@;88%::;;;:@;;tt;tt;tt;t%;%%tX%t;%@888888.888.XXt@888.8;8;.    S@888
  .   .  .. .... . . .......:::S 8XSSSSSSX88 888@%ttt;tttt%%%tt%%;;%;;;%;t%t;t%X88   88St;8;SSt;:::.......:::.:::t%;88888 888888 8 88 888   8%888 88 8S% 888 8@  88888%8  8t 88@X: 888@@.@tX88XXS8@S8::::::::;;;:t8 X8X888.%88@SSSXX;88:88 @;:@;::;;;@;;8%;8t;8%;@%;tt;;@S%@88;88@8;8@8 88@88X ;;:  S8 S t@8
  . . ..  .    .. . .. .....:::;%@SXXX8SS88@888XttStt;;;;ttt%SSt;;;;::::::;:.:;t@888 88%t%X;8tt;;:...::::::..:::::8%SS8 888888 88%88888888X 888 88 888SX 8 8888  8888 8   8%S88 X.8.888X88SSSX88XSS88;:::::;;;::;;8@8888%88:888S;@%@.S8888.::;;:@;X;:;:;t;tt;;t;tt;Xtt@8888888 8XXX@8 :@S8S8X%S   . 888  %t@
  .. .  .. ...  .      ....:::: @@XSX@SX@X88888t%%tt%;;;;;t;%%tt;;;;;%t:::::::::;X8XX%t;%@@8@%t;;:::::..::..:::::.8%X8888 88888S88S888888    888S8888 8S 888  8  888888t8 ;: %8;88.@8@8@8X%@SSX8XX@S8:;:::::::::;;SS8 88t88@.@88@:%888;888 t;@%t:::.@;@t:8;;8t;@t;;t%@8X%XS88 @tX88 88S8888@8%S    .88.8% %S
       . .    .  .. . ....::::t 8@SSSSS@%X8888Stt%t%;;;;;tS%;;ttt%%;tt;;%;:.%::::;%S;:;t;;@ 8;;;::::::......::::::8:S8.888888 88S8 888888   8%88%8 888S 8 88  8S.8888 Xt8 88 88S888888888@ttS@%%88X@8;:::::::::;:::88t;8S8: @8.8.;t8;888:88S8%tt;@:::;::;;;;;;;t;@%t@%:X;%88@ .8888:: 88888@8@XS  8S  8X  8 
  .   ..  .  ..   ... ......::t@XX%SX8@SS%8888St%t;t;;%%;tt;;;;;;t:;;;;;t;:::::::;tXX;;:;;S%X%;;:::......::...::::S.X888888 888%8S88 888 8X 88 88S8888   8 88X.% 88888Xt8X8..88XS8t888888@;Xt%Xt%8XSXS:::::::::::::%8%888S8 t8X:;;t8S%888t888X..:::@;:;8t;@t;@t;;t;t;::%8X   88Xt%8X8888S8@%8@88X88@@88  S  
  .     .  ..   ..    . ....::;;.%88888@888888S%t%t%%X%ttttttt;;;;:::.:...:::.:.::;XS8%::::%8:;;;::::.:.::...::::::t@S8S88888 88S8 888 88  X 88S888888   88%8 ;888888  888;8 88X8.8 8888 8;%@%StSt8X%8t::::::::::::..tX888888t;;;t;8@S88.88X88X.@t;;;@%t;tt;;t;@t;@t:@X@8X@X@%S8%X8.8t888 :%8X@8@       S XX
  .  ...  ..   ..  ...  ....::t88 XS88@88888 8%%t@%SS%%%%%%%%%%%%%t%t%%tt;;::::.::;8SS8;;t;@X;;;:::.....:..::::::t @88888 888888 8888888 8X 8 88 888 88X S88  %  88888 88888 88XX8 @88888@:S;XtSS;%8Xt8:::::.::::::::::;::::::;;ttt8t888SSS8X8 ;::::;t;;@%t@%tt%;tt;ttt@%;X8X88X@88@ 88888 888%8888@8@:S8S 8
  .  .   .   ..  . .  . ....:::88@ 88888888 X8S@@SSSSSS%%%ttt%tt%%SXSX@@XXStt;;:;t8S@88X@88 8;;;:::.:.:::..:.::::@8@8%8888 8 88 8 8888888  X%88 8%8888S8% 888%@88 8888 888.8.888@8X888888S;tXt8StStS8@St;::::::::::..::::::.:::;ttS@88888t8@8@ ;::@;;:@%%tt%t@%t@%;@t;tt;;S8S  8@SS8 @8@%8  88@X8%88t8888:
  ... . ..  .  ...    ......:::@;  8888X888X88888@%8XSSSS%SSSS%%S@X%XXXSX@%tt%S@8X%88888@8%S@;;;;:::......:.:::::@X888:8 8888 88 8888 8 88S S 88 8S888  S  8 X8@ 88888 X:888 888 .8%8888:8;t%@SXXtSS;X88:;:::::::.:.::::::::::;;tSt@;S;;%8 8:@;:::;;8tt;;;@ttt;tt;tt;@%;@%%8S8X8@8S88 S88X@S 88%S88888S88 ;X
    .  .  ... ..   ...  .....:;XSX88888888888 @S%XX%ttt;;;;;;;:;t;;t%XX88888@@88S@8%88888@ @8;;;::::..::::::::::;8;@S888888888 888 888888  X  8S8888888%  8S  8 8888888S88tS:88SS.@8888.;8tXttX8@8SStt@8t;:.::::.:::::::::::::;tt%8.@St:%X%%88S;;8t:t;;;8tt;;;8t;@t;tt;ttt@88@X 88S88;X; X@S888888%88@t:S;8S
  .  .   .   .   ..    ......::SXX 88888888X88S;:;t;t;;;:;::.:.:... . ..;;;t%@88 %:8@8@X@8888;;;:::...:..:..::::;X.8S8:88888 88 8888 88 88 X@ 88888888 8XS 8  8 888888  8888.888;8888888@@t;%@S@@88XS%tXS:::::::::::.::::::::::;tX8;;;%.;SSt%S;;%tt;:;8%t;;@t;t;tt;@%t8%t%%tt;ttS8 :88 88S88 :888;88S8X;t 8@
  .. .    . . . .   .. . ....::%8S888888 8  88@;;;;;;::::.:.:;t%@88XSt;;;%SSX@@8@888888XS8888:;;:::::....::.::::;t:8S88 8 888 8888 8888888X8  88 888 88SSS   S8 8888888%8 88 888%8%.8888%S;%%S@S88888@tStX;:::::.:.::::::.:::;;tS%@%;.;;..;ttt;8::.8:;;;;t%tt;;@t;tt;t;:@t;;;;:;%SX8 8 888@@X8888  8@8X;t XX
   .  .  . .   .  ...  . . ..::t8 888888888888;;::;;%X8888S 8X@XX@X@XS 8;8S88888 88: @StS@88@%;;:::.....:..:.:::% @8%8 8888 88 8 8888 88 8%8 8 88888888.       88888888 @8%8:8888.t8: 8% 8:tSXtX%@88@88%@St;;:.::.:::::::.:.:;;tS8@t;.:tX; .8;;;;:::..:::@:::8t;;;8%;;:.;:;;t;;t%SS@8S8%8t@  8:t%:8t8S8%S@88
  ..  .. .  .. .  .   ..  ...::tX 8888S888888@;t%888 8888X X  X 8 8@8@8888X8888S @888tt%t%@888tt;:::.::.:.::::::@8XX8888888888888888888888 X8 8 88888888SSS  8 8888888  8:S8 888%8;.8t%S8:ttt%%SSS@88888Xt8t;::::::.::::::::::;tS@8%:...:S; ...:8St::. ..:.:;;:::;;t;8%::@;;8;;t;;;%X8S.88%8S 8@8;8X ;%8S@8S
     ..  .. .   .. . .     ...:%X 88%8888888@88SX8XSS %        8S  S %   8t88     88%tt%%%%8 8S;;:::::....:.::::8%8X8%888 888 8 888 88 88 8    8 888 88  SS   888888888S8t8. 88888%..::t8:;t%%%t%XS@88888@XX;::..:.::.:::::.:;;t%@@t;: ..:t;. 8::;;8t:8...  .... .:.:t;tXXt;:..8::;%S8;8 ;X8S8XX@X88XS88%88%
   ...    .   .. . ..  ... ..::S@ 88888888Xt88X      S  8%8 8 8X8 8S@888888@@88 8X88Sttt%t%%888t;::......:..::.:S.88888888S 88888888888888   8%   888888  SSS 8 888888  @:@ t8888Xt:888;SX%;t%%S%XtX88X@@@%8S:::::::::.:.:.:::;tS;Xt;:..  .8t;.  ..::S@@@@X;8%:...8:::.8%SSSS8Xt;;;;%X88:8S888888888 8X;8888
  .    ...  ..  .    .    ..:.:S8 8888888 X%8S   8S     8 8%8 8S8S8SSXSXS@8S8X88@@8 S;ttttt%8X@::;::..:.:....:::% 8%8 88888 8 8 888 88 8888   8 8%S8 888  %@%  888888 8%8;8X.t88Xt 8t  tS;;%%%%tXtS8@X@S8@X;;:::::::::::::::;tt;XX8@S8%;  X%8X%::tS@8;SS@888@:8%t::::;::t8@Xtt;:;:;tX@88X%88:X  ;@: 8@X8S@
  . .     .  .   . . ..   ....:S: 88 88888@8S  88S 8 888S8S8S8S88X%8SSS      X%8@88;t;ttttt%8S@.::::....:.:.:...;t8888888 88 8888 8888888 88S  8 88888 88SS8 .88 88888%%@X8.S8888 8:%%t; ;S;ttt%%t%XS%88X@S88X;:::::.:...:.:::;;;8SS8@@888St%8888@@8;tS8X8SXSXS88X.88S;:..:;......8...;888%t%X88 8888X8@888@
          ..  ... ..   .  ...::X. 8888888 SXSS  888S  88%8  8S88SSSS    % SX@ %SX8;;ttttt%8S@.:;::..:.:...::::t:8%8.8888 888S888 8888888S 8  8 8 8888 8 S@  %8888 888 SS8 @S8t8.8888888S;t;;t;t%%%SSS%8XXS@8;::::.::::.....:::%8@88@8X%@8@8S@@S::;8%88@8S@@SStS8;888X t88St;:::;t%SS8.88%ttt%8S888 8888XSS
         . . ..     .. ..   ...@8 888888S S8   88X 8S  888SS8888XS 8@   8% SX8@  8 8S;;tttt%8S8;::::...........:; 8888888888888%888888 8 88% 8X8 888 888 8      88888 8 X%8.X;S8.88@8%SS;;;:;;;;tt%@%8XS@8S@@8%;;::::...::::..:;t@@SXXSS@X@@S888XS;;t8@XXS@X88t%8.:88888888@ X8@tt%8@:8 @8ttt;S@X88888X8:X;8
         .     . ..  ..   ....:S;  88888 88  S 8X   %88 XS   8    XSXX  8SXXX  8S8S 8;;;tttSS %;;;:......:::::.:8t88888 8 88 888 888888 8 88  8 8S88888 8   S8@ 8 8S 8SX8@@XX8;88:S88Xt;t;;::;;;;tttSX@XS88XX8S:;::.:..:.......:tXXXX888XSSXX88@@8XS8@@@XX@8%S88.888888;888888@@ S:@888@8t@t;tt88S 8X%88888X
         . ...   .     .    ..:%XX 8S8888@t SXS   S   S8S 88S8X S8% @X  S8@   XS  ;t8X;t;;t@88@t;:::...::......:S:@8888888 8 8%888888 8888888X   8 88% %%8;X@88@XS%tSX8@t:;t%X@@8X;t%%%ttt;:;::;tt;%tt%@88888S8:::::::.......:.:8@8SS88@X@XSX@8@@@8@8%8SX@XX8%%%888t888888tt8888:88888tS%88;t;S@8@S8%8S88SXt
             . ..  ...   . . ..%8X88888888. S@ % %88S     XS  8888SXX8%  %%8S   88 88%:;t;t8X@8:;:::..::...:..::; %S88888888888888 888888S%@88X 88t%S@XS%tX;.::;;;:.::..:..:::::;::;;t;ttt;;:;;;;t;t%t%SXXX@8X@;:::.:...::....:;8XX88XX@XX8SXSX@8S@8S8tSS@XXt@S8;888%888S8;8.%88888%88888X8;t;%8888@88@8S@88
         ... .  . ..  . ..  ...:@8@S888 8;@ X@SXXS8SS 888X  888;88SS88S 8SSS   8S@8X8 ;;;;t88%8;::::........::..t @S88888%8 88 8S88@X.88@%8S@X ;:88X8t;:;;;:::::::::::.:::::;;;;;;;;;;ttttt;;::;:;;tttSt@@%88@S;;:::..:.:......;8@SX@SSXS8@888888X@@X8XS8%8@XXt%88;;X8%X888S88S%S888S8;t%88;;%@888@888:%%tt;
         .  . .  .  . ..  . ...:S;SS88SS@%XX@S@SX%   S88S XS%8 S8@SS88  %8@@S  8 S  .%8;;;%S8S8;;::.........::..S.88S88:8%88S8%;8t%;.%:%;St%%@XS%8888@8t;::::::::::::....:::;;;;:;:;;;;;ttt;:::::;;tt%tX%8888@8t;::............;t%t%S8@88888t .%@@8@8XX8t@S@S88S%%888:888S%SStt888:t888X8S8;t888@88X88%8Xt;t
 ..............................:SSX 888 8;SX8%S@S@S@XS %SSXX    88 S8X@%  S8  SS8@8 888;;;X88t8;;::.::.........::%8.8SSS@@::;: %tttttttttSSSXSS@XS8@S@t;;;:.:....:.....::;;t;;:::;;;;;ttt;;;:;;::;;ttt@@888@X;:::...:........:;;;;tt;.;;S8 ;:tX8.8X8888888.8:.8:;8888888888888;8888:;%%S8%8888@8S88X8%S;tt
...::.::::::::::::;;;;;:::.....:%8@S88% 8:  SX8X@S@SX    S@  S  @8S@8@8 8S@8S 88S X@8; ::;S8SXX;;:::........:..: S;t8Xtttt8S%%%%tttt;tttt%%XtSSXtX@@88SS88%;:::.:::.......::t;;;;:::;;;;ttt;;::;:;:;;;%%%@888@X8:::.::.........::::;;:;::t%88%t;SXSt 8888888888SS88888888888@88888@888@X8@X%88888888@8X8%St@
..:::::::;;;t;;;;tttttttt;t;;:.::88X888888X8 @SSSSS@S% 8X XS   %@88888X  88S SX8X%@88SSX:;X888%t:::...........::@tSXXX8X@@SS@@%St;;;t;ttXSS%SX@t%XXXXS88@8@.:............:::;;;;::::;;;:;tt;;:::::;:;tt%XS88@@X8:;:::...........:::;;:;;ttS@X;:8 ;%@88X88@88888888t;:........::::::::..::tt88888X8S@888SSt8 
..:::.::::::;;;;;tt%%tttttttt::.:88  8S 8.X8SX@X SX S%S 8XSXS   @88888  8XX88 S 8X8%S 88:;X8.@;;::.............:8:;%SX8@X@XSXSX%%t;;;ttS%XX8XSSXXX8%S88@88t;:............::;;;;:::::;;;:;;;;::::::::;tt%S8@@888X:::...::........::::;;;tt%8@;;;:8.tX@%;tS@X8@X@8XStt:.:::.:::::::::;:;.;:;S8@8;X88S.88@8Xt@:
.:....::::::::::;;t;;ttttttt;:.::8:X888X8  X8S@SX@ SSS  S%@S  88@88X88S%  %8XS 88 88:888:;X888;:::.............:@;XXSX88X8SXXXS@%Xt;%XS@S%SStS@SX@S%SXS8X8;:.:........ ...::;;:::::;:;;;;;t;;;::::;;;tSXt@88888@%:::..:........:::;;;X8S@88:.:8 ;%tttSXX8@@88SXXtt;;::::::::::::::;:;::;;;X888: S 8 S888%t8.
..::::::::::::::;;;;;;;;;;;;;::::@%@S8888X SS@ SSS@@X%%%%%XX S SX888@8 88888@ S 8S88 888%;@88@;::........ ......t;SSSX8@8@S%X@S@8SX8SSXtS@SXS@S8S@%;tX@88@;::;88@:......:;;;;;;:::::;;;;;;tt;::::::;tttS%@8888XSt;...:..........::;;@t  ::  8.X8.S@8X%SX88@8SS%;;t:;:;::::::::;:;;;;;;;;;%8888S 888  8888t
.:::::::::::::;;:;;;;;;;;;;;:::.:@tSS% 888@X8S8 X8S%  % S@X@S   88S8@X  8X 8S  8@X8@ @8:.;888X::.........   ...:t%S8@@88XSSXSXXSS@@X%SX%SSXSX8@XX8;;t8888%:..@X8t::....;S8;;;;;::::;:;;;;;;;;;;:::;:ttSSt8888888t:::............::;;8.88.@8@S%%;S8@S88@@8@XStt;;;::;:;;;:::::::;;;;t;;t;;X88X@S8S 888X@%%t;:
.:::::::::::;:;;;;:;;;;;;;;;::.:.@;XSS888888S X8SXX@SXXS888XS S @%88@  8X88@X S8X 88 X@:.t8X88;::........ . ....;8XX@8X@@%SXSS@t%S%tSSSX%StXSXXXXXt;t8@88;:::@88;:::;:tX%%tt;;:::::::;:;:;;;;:::;;:;;%St%@88888X%;:..............::tS. .8:%8S8888%%%%tt%S%%tt;:::;;::;::;;;;;;;;;t%t%tt;t8888S%8X888XS%S%8t.
.:::::::::::;;:;;;;;;;;;;;;;::::.S8@X%S8S888X@X%@8SSX8@8@@XX@XX@8S8S8S S8X @8  8 X88 X88%@88;8;:........  . ...;8S@8S8@XSSSXSS%%SXtSXXSSSSXXXXS8;;;88@X::.;8@:::t8X@%X@%%tt;:::::::;;;;;;;;;:::::;;t%t%888S88%t;:.............:::tX:;X8SSS;;t%tt;;;;;;;:;;;;;:;:::::;;;;;;t%@@X@tXttttX8@X88  %88S88.S;8 .
.:::::;:::::;;:;:;:;;;;;;;;:::..:%88S 8X8S8@8XX8X@X@XXXXX@S@XS@@8S8:8    %@@@X 8S@8@ 888t88:tt::......  ..  . ...:t@88SX%%XS%SXSS%StS%S%SS@8X@8S@8;;t888t:::X8:::tX@@XSS8Stt;;:::::::::;;;;;;;;:::;:;;%X@8X8888X;::..............::;%@X;;;tt;;;::;;;;:::;;:;:::::::;:;:;;t%S8@@@8X8%S%;;;%%t@S 88 88StS%;X :
.::::::::;:;;;;;;;;;;;;;;;;::...:XS@%S SS888X@X8XXXSSX%8 S8 X X@8X%@8  8X8@8X S%@88@XXt8S8 @S:;:.....   .  ..  ..:XXSX@@S%S@SXXSS%S%SS%SS@XSS@@XX8;:;8@@:::;8t;:X8X@XtSXStt%;;::::::::;;:;;;;::::::;:%@8@888@8St;:...............:::;t;;:;:;::::::;::::::::::::::;:;:;;t%X@88SXX8888St;;:;:;88 8@@88X;Stt@  
.:::;;:;;:::;::;;;;;;;;;;;:::...:8 X@888X%8S%8X8SXSX8%@8@SS8SX88 88X8   8SS@XSS  @8X 8888@8:X;:::.... .. .  .  ...;8X@S@;SSSXS@SSS%@S%SSSStSX@XS@%;:;88t;.:tt;t@XSXSXS%SSttt;:::::.:::::;;;;:::::::::;@888SXXt;:..........   ....::::;;:::::::::::::::::::::.::::::;tSS8@8XS888@88888;::::;;@X%8X  88;:t:;@;
.:::::::::;:::;:::;;;;;;;;:::...;S8@XXX8X8888SXS8S8S @8SX@8XX8X888XSS 888SX88  SS@8X 88888%8X;:::.... .  ..  .. ..::88XSt%SXSS%XSSXt@SSStStSXSXXX@;:;88::::;;;XSSXSXXSXSX;tt;::::.:::::;;;;;:::::::::;%8Xt%;::.::::....... .. ...::::::::::::::::::.:::::::::::;:;t88@SSS8X888888888%t:::::;. ..S88%.::;;t  
.:::::::::;:::::;;;;;;;;;;:::...t@88@ @88%X888XX8SXXSSX8SX@XXS88 @8@8  8S S@S%SS%8@XX8.8888 S::........    .. . ...:X8@8t%SSSSSSXS@X%XX@S@SSS@SS8t;::@t::::::XS@8SX8SSS8%tt;;:::::::::::;;;;::::::::::;;;::::...............  ...::::::::::::::::::::::::...:::;;X8@@XS8S8SS@XXS8SX@X;:::::%8;t8X%;:.:;;;.  
.::::::;::::;::;:;;;;;;;;::::...S8888888SX8888@8X8XS8SSXX8X@X888888%S    XS X S%88X8 8@ 88%X8t::.....   ..      . .:;8%8;@@XS%XSXS%@X%SSX%@SXSX@8X::::::...:8SXSS8XS@XX8Sttt;::::::::::;;;;;:::::::::....:.:................ . ..:.::::::.::::::::::::.::::::::;X@St;SXXSS@S88XS@8@%%;;:..::tXXX%::::;;;X 8;
.::;:;;:::::;::;::;;;;;:::;::...Xt.SX88X8888;@8@8X8SX@8XX@@X8X8.S88%S 888S%X8  S888%@8 %@888%@:::..... .. . ... ....;X@8%@@@%SXS%XS%S%@SSSS%X@SX8S;:.:....:S8XSSXXSSXtS8t%t;;:::::::::;:;;;::::::::.............::.........   ....:::.:::::::::::::::::::::.:;;t8S;t;;ttt%%XS@S8X8S%%;::.:....:.::::::;;8   
.:;;:::::;:::::;;;:;:;;;;;::....Xt88%@8%S8@t888@8@@@@XS8S@X8X88.8888S     S @%X@X@S@88 @88@88S:::.....    . . .  ...;X88SSSS%%S@XSS%%SSSXSSXSSX@8@:......:;@S@SXXXSSXS@88X;;::::::::::;;;;;::::::.:.:::.:...:::::.......... . ...:::::::::::;;;;%%%t%tt;:;:::;%S@t%:;;;tt%%@SX8888%t;;:..........:::::;:@8
.:;;;;:;::::::;;:;;;;;:;;:::...:SX888% S8%8@ 888888X8SX8X8X8X888888%S    %S8 X%X888@88 @88t@8;::..... . . .   .    ..;88SS%%SSX;:%@SX%X%XSX%SXXS8t::.....:8SXtS@XSXXS@XSS8S;;:::::::::;;;;::::::.:::.::::::................ .. ...::::::;tS888X@@StX8888%t;;;;%8S;:::8 ;tSX%%S@8@S8;;::.:::........::::;8.SS
.::;;;;;;;;::::;;:;;;;;;;:::....t8@8 8tX@@%8%:8888X8@@@@8S8X@8@ 8@8S8 %  SSX8 S@XX8X@@8 8S8XX;::...   .  .  ...  ....:%@S@S%StStt%SXSS%SX@S@XS8X%t::.....%SSS@XSXSSSX%SS;XX;;:::::.:::;;;;:::::.::::::::..:...:.:..........   ...:::::;t8@S%SSS%t;;t%SXX8;;;;t8Xt..8 88.8;S%%8XSX8X%;::...........::::;;8.:.
.:;;;;;;;;;:;::;;;;:;;:;;::... ..t8%%@888%:;.88888@8X@XX@X8XX88t888t   88SSXX8S88XS@8X8 8 88;;.... .. . .. ..   .. ..:t8XXSS%SS@;tSSS%XSXXSStX88@;:. ...:8SSXX@@SXtXXX8S;S8St;:::::::::;;::::::::::::.:::.:.:::.............  ..:::::;;8%:: ..::ttt;t%888tt;tX88:.8t8.8 :8;8SSS88S8t;::..........::.::;;X88;
.:;:;;;;;;;:;::;:::;;;;;;::.......:88X@8@8t88:888@8XX@@@@8X8S88S8S%SSXX X8XX@8@X88@.:888t::...... .  .   .   .   ..:;8XS@XSSSXXX@SXX%XS8S%S%8X@::.. ..:@XS8XXXX%XSXXXXtSX8t;;:.:.:::;;;;:::::.:::.::::::.::............ ......:::::;t8t  8t.:;t%S%S@8SX%tt%88%. 8:8888;8:SSXXXX88%;...::::.....:.:::;;S...
.::;;;;;;;;;;::::::;:;:::::... . ..;8@S88@.8X:888888@8@X8XS8@8@8@@8  XSSSS X8 @8X@8t88@%X;::......  . .   .  ..  .. ..:8XX@%X%%XXXXX%XSSSSSSSS@%%::.. ...@@XS@X@XStXSXXSSS:tX;::::::::;;;:::::::.:.::.:::.::...:................:::::;;XX  888 ;ttSS%@888%%t%88;:8 8 .888:8;SXS88@8t::.::.......:..::::t% 8;
.:;;;;;;;;;;:::::;::::::;::..    ...@@S@8t8;.8.8888888@@S8S88t88@@@. %SX%X@ XSXX@888X88X;;:......   ..  ...  . ..   ..:8X@SSSXStXSSSX%StXSS%S@@%;;.. . ..S@X8X8SXS8XSS8Xtt:;8;::::::;;t;;::::::.:.:::::::::::..................:.:::;;;;888 :8 t%S%@8S@tt%SSX88t888;8 ;SSS888S8%;::...........:::::;t. .
.:::;::::::::::::;:::::::::..    ..:8t%t.88888888888888X@X88t8S8@X88SX@S@@8XSSX88888;;:.......  . ..  ..   ..  .  .. .:@@X%SXXX@t%%S%S%XXSS@88@X;:... ...tX@SXX@S@XXSSX@@%. tt;;::::;;;;;::::::::::::::::::::::..:..............:::;;:;;%@%t 8S:ttSSXX88@tttS;Stt; 8:8t..8:SX@8SX88S;:...:.......:..:::;t;8t
.:::;:::::::::;;;::;::;:;:..      .:@;:;;888:8;8888888@8@X88S88XtX8% XX@XXSX@X@88@ 8...... ...   ..   .   ..  .  .. ..;XX%S%%%SXStSSSXSS@X@8@88S;:..  ...SXX@XX8X%XSS@88S:  tt;;;::::;;;;:::::::::::::::::..::..:..:...........:::;::;;t;@X;..8.%%SSXX8%%;tt%Xt;;8%;888;8.8%8@8@@8@t;:..:..:......::.::;;%  
.::::::::::::;;::::::;;::....     ..Xt;:88%t88888888888@@8888S88X;888 XSXS@XX@@88tt@:....... ..... . . .. .   . ..   .:X%%SXXX%%SSt%XSSSS@X@@88X;..  ....;8XXS@S%X@SSX8@t.@ @t;t::;:;;;::::::::::::.:::.::::....:.:.............:::::;:;;%@S;:.8.S%%%S8%tt;t%X;t.X88;;.8.8;8X88S888t;..:.:.......:.::::;:@  
.::::::::::::::::::::::::....      .t8tt:888888888.8888888888888S%S@ S X@XXX@@88.;8S::............ .   .    ..  .  ...tSSXSSt;SXX@S%S8X%XSS@@X8St:... ...;8@8XXXX@%S%@8S8 .8t;;::;:;;::::::::::::::.::::.::::.:........... ...:::::;:;;t%X%t;:t%SS@@8tt;t;t8t.t;.8:8:8;:8%88XS@X8;::...:........::.::::88:
..:..:.::.:.:::::::::::::..        .:@S%: .88888888888888888;X8@tSt8 X@X X X8X88888;;..... ....... . ...  ..  .  .. ..;S@SStt%%8@SS8XtXSSt%@888@;..  . ..t88S@XSSSXS%@@S. 88;8:::;:;::;:::::::..::.::::..::::::.................:::::;:;;tt8Xtt%%SXXS@X%t:;t;8S.;88;88888 %888@@X8@;::.:.:......:::..:::;8  
 ...:..:.:..:.:::.:::::::..       ..;@St:88888888888888888888%8StS  X8SX8 @8X888888;:............  ...  . .  .. . . ..SSSXStX@SSt%%tSSSSt%X@XX8t;... ....:8S@X@S@X%S8X8S 8:8XS;;;;::;;:::.:.:::::..:::.:::.::::................:.:::::::;;%SXSSSS@X@8SSt;;;:;t8. ;88;:88;8t8@SXX8X%;:.:..:.........::::;;@  
 .............:.......... .     ....:;8S% 8:8.8t8 8t88888888888StX. X@8SXX8S888888S:.....  .    ..     .   ... . . ...@SXS%XX%St%.:t%SXXS@SSX%%t:..   ...:@@XX@SSXSS@X@8X;8;;;::;:;:;:::::::::::::.::::.:::::::...............:::::::::;t%@@X@8XX888%%:;:;;:;%;;;8 8.;SS@888S8SXS;:::..:........::::::;X  
    .. ...............   .     . . ..;@;S:;88888 888888.8;8t88@t;@%88X@SSSXX@888S8::..     .. ..  .  . . .        . ..;@SSX@@Stt: .;%SSXXS@XSX;;:. ... ..:8SX@X@XStSX8X:@X8:Xt;;;;;;;;;:::::.::::::.:::::::::.:.:::..............:::::::::;:%8SX%SXX@8t;;:;:;::X;tt.: 8:SX@SX88888%t:::.:.......:.:...:::S  
      .......:.:....            . ...:SS%888888888888:88;88888tt:88XX@S@SXX8X88S88;:.... ..  ..   .. . . ... ... . ...:88SS@SX%::.;S@8888@SX88;::..    ...8X8XX@@%%XX88.8%.8.;:;:;;;:::::..:.....:..::::::::::;;;;:;::::::::::::::::::::;tX@S%XX8S8X:;:::;:::%@%%t8;:8%@@88@X8X8%t:.:..:.........::.:::8  
      .....:::::...                 .::8%;8: 88888t88888888:88:;%8 S@S8@X@XX88;%8%;:... .   .   ..   . ..       .. ...;8XSX8XS;;:ttS8888X@88SSt;.. . .. ..tXSXS8XS@S88 8X88t X:;;;;;;::::..:::.......:.:::.::;t%S%%Stt%%%%%%ttS;;::::::::;;;t8%t%;@tt;::::::::;;8%%;;8.;Xt%%8@S888tt;:.:.........::::::;:@ .
        ...:.::....            ..   ..:%t;: 8XX 88888888888888t;t888S8SX8@@88.888::... .  .. . .   ..    .. .....  ....8SS%SXSt;SXSXXX@@SX@@XS@::. . . . :XXX@XSSSS88;@X8888:8:;;t;;;::::....:.......:::::.:;tXtX%XtXS%@XS%SS%%S;:::::::;;:;t8@S@8S%;;;:::.:::;tXtS%. 8;8XXS@888SSSt;:.::..:.....::::::;:X :
        .....:.....              .  ..:%S%;:%..8t88888888;888@;;;8tS8S@S8X@@8888S::..   ..   .  ..  .. .  . .    . . .:S%SX@88@SSXX@88X%SSXSXS8;.. . ...tXXXXXXX88S @.88:8;8:;;:;;;;:::::::.::.....:....::tt%StXt%%StSS%8XStS:;:::::::::;;t@8@88t%;:::.::::::tS%@%t:;@888@X888S8Xt;::..:::....::.:::::;8 :
       .  .......                   ..:;8@t;:88%888;8888t;8S@;;;t888SSXXX8@8.88@%:..  .   .... ..  .   ..   .    .. ...X@8@88@XXt%XS@8SSS%S%SS@t:.   . . .:tXX@8888XX8888:.8::;;;;;:::::::.:::.::...:::::;;%@%Xt@%X%@tXtStS%;;;:::::::;::t;%888XS;;:::::::::;tX%%t::tX88X888@SSSSX:;::::.....:.:::::::;8 :
          .  ..                    . .:;8S%S::888.8@8 .8888SX;;;;8%S8X@@X88888%8%:...  .. .      ...  .  .   . ..   ...:888@@XXX%8X@@XSXSSS@SS@@.. ...  ..:::;;tX%8 @X.88 8.:8tt;;;:;:::::::::::.....::.::;:tSt%XtX%S%%X%%SXtX;t;;;:;;::::;;;%X@@8;;;::....:.;:tStS: 8%S8S88S8@XXS8@;:::::::...::::::::;;S;;
          . ..                      ...tSSX%t:.888.8;88888%Xtt;;t@88S8X8@88 88XX;:.  .. .      . .  ...  .   . .   ....;888S@888@88S8@XSXXS%X8@:..    . ....;X%tS%t%S88 8888:8:;t:;;:;::::::::.:....:::::::;;%XtS@%@S@%S@XX%S;t;;::;;;::::::;t%@8@@;::::::...:;tX;;%S%tX88SXX@SSXSSX%t;;:::::::::::::;;t;t8;
         .. .                        .:8SS%%8.8888%;. 8888XStt;;tS88X@8@888XSS8;:. ...                        .  ..  ..@S8@@8@8X@@88%SXXSS;S8;;..    . .  ..t@@8t@.S %8 8.8;;8t;t::;::;;::::::::.:.:.::::;:;tttX%@SS@X@XS@SX%S;;::::::::::;;;;;@@88X:.:::..:::;;8tt%S@88X@8@8tSXSS%:8;;::;:::::::;;;;;;;t;XX
           .  ..                   ..:%SSt%S::88tt88888.88XXtt;:Xtt@@8X@88SX;88;:..     .                 . ...  .   ..@8888888@8X88S8SXStS8;;..... ..  .  .;S;t88.888.8;..8:;;;;;;;;;:;;:::::::::::::::;;tt%%@S8XXXX8XXS@%tt;::::::::;;;;;;;%XX8t;::::::::;tt@;%%t; .;%S;:%S@@@X%Stt;;;:;:;:;;;;;;;;;;;;8
         .. ..  .                  ..tXS%S%:: 88;888 8:888XS%t;;XS88@@@8888;:S8t:.  .  .                        .   ...8S@888XXSX8@XX@XXSX8t;;...     .  ...::tX %S 8t8 8888XX;;;;;;;;;;;;:::::::::.:.:::;:tS%8X88X8S88XX88888%;;::::::;;;;;:;t88@8t;::..::::;;%t%tttt88%:.:t%%X88888%%t;;;;;;:;;;;;;;;;t;;S
         .    .                    .;88@St%S;8;;;:88;88;88X%S;;t@ 888888888888S;.    .                          .  .. :XX88@@@@8X@@8SXS@8@:;::..  .. ..  .:;t;%SX888:8t8  %St;;;;:;:;;;:;;;:::::..::::::;t8888XXXS8X@X8@8X88Xt:::::;;:;;:;;t;X8X@:::::::.::;;@X;tt%;;8.8.8:%XX8S@%@t;;;;;;;:;t;;;;;;;t;;t;
         . .  .                    .t888S@X%S%t888888888@tSttt;t8:88888888 8%S:... ..   .                  ...  ...  .;%8888@@8@888@@@@8t;:::...   .   . ...::tt%S 8;8888.8.X%t;;;;;;:;;:;;;;;:::::::.::;:;X888@@X88888S888X@XS;:::;;;;;;;;;;;tt8XS;;:::::::;;;%%.;t%t;;;;8 %SXSS@tSX%%tt;;;;;;;;;t;;;;;;t;;
         .. ..                     :%88X8%SXS%;:88888..8XtSXttt;@.88@888888 88;:.                                    .t8888@88888888888S;;;:...  ..  ..   ..:tS 8 888:88:88 @;;;tttt;;;:;;;;;:;::::::::::::S88S888888XXt88X@88t;:::;::::;;:;;;;t@8tt;:::.:::;;;SS;;%%8.8.;:8:%@8@%%;Stttt;;;;;;;;;;;;;;t;;;t
        . .   .                   ..t88XS@SS%S@;;t8S88St%8t;tt%t88888 8:8:88::...                        .       ...@88888888S8S8S8X;t;;:.. . .  ..   ....:;8 8.88 @88888t8%tt%8X;;:::;:;:;;;::::::::::::t8@@88@8@8X88XX8888;:;:;:::::::;;;;;t88@;::.:::::;:t%t;tt::::8.8 tS@XSt%S@tttt;t;;;t;;;;;;;;;;;;;
           .. .                   ..;@8@@S@SXX%8t8 :S88;%S 8;;t%t.8 88888: 88S:..                                   ..@888@8@8X8S8%8@S;%t::... . ..   ..  ..:;8 8.8.8.8888.t8t%tS@@;;:;::;;;;::;::..:.::::;t%@8888@8S888S888X8;:::;:::::::::::;t88X:::::::::;;;S;;tt8 8%8 :8:S@SSSSX%%%%t;;;;;;;;;;t;;;;;tt;
         .  .                   ....;@8888XSSXS%%:.888%XS: 8tttX8S8 8..%SXX%:.                                 ..:@Xt@88X88XXX@StX%%%;:..  .  . ..  ...::t%%X8 8888888.t8%%t%8@%;;:;;;;:;;;;:::::::::::;@8888XS;888S8888S%t;::;::::::::::;;;S8X:::::::.:;;;XS;;:.8t8 8 ;SSX@SXStSttt;;t;;;;t;;;;;;;;;;;;
        ..   .             .........;X888XS8SS%%%SXX88@%;::Sttt8:.8%88888 %88%.  .                               ....;XXXS8S8X%@X%@S%@%X;::.     . . .. ...::;; @88.8888.8 %@tt;X88@t;;;;;;;;;;;;:::::::::;:;8S8X888S88X8@XS8%::;:;:;;::::::::::t8X::::::.:::t;%t%;t::;:;:8;X@88XS%:8tt;tt;;;t;;;;;;;t;;;t;;
        . ... ... ..   ............:;@88@@XS@S88@88X@8XtXt;tt8;.8888888888X:..                               ..  .:@X%8@XX%@S@t8t@%%S%;;:.       .    ..::;t%%S8888;8.@8.S@tt;S88XX;;;;;;;;;;;;;:;::;::::;;@8SXSXS8X8S88@X8tt:;;;::;::::::::::S8X::::::::::;tX%;t;8 8.8.;SX88S8t:%%;;t;;;;;;;;;;t;;;;;;;;:
            .   .. . .. ...........::%888XXSXS8@@8@88St;..8.;;:@ 8888:888.%8;:. .                             .    .:XS%Xt8XXX@XXt@t@%X;;::..      .  ....::;tS 8;88.@88.8.%@t%%88888tt;;;;;;;;;;;:::;;;:::::t88888X8888S888Xt;::;:::;:::::::::;t@t;::.::::::;;@t;t:.8;8.8:8XX88t::@tt;;;;;;;;;;;;;;;;;;;;;;
         ..  ..     ................:%@8@@8S8@88X888S%S:.t@;;:;8S:8.8.888888t:.                              ..  ...:StttX%8XXXXX@t@%XtSt;:.        .. ...::;tSS 8;88.8888:S@%%t@8888Xttt;;;;;;;;;;:;;;;:;;::;@8888@8S@SSX888;t:::::;::::;:::::;;@t;:::.::::;;t@%;tt:.:.8 ;%88S%:.%Sttt;;;;;;;;;;;;;;;;;;;;:
        .  ..   ... ................;%X@X8@8S@888@8@%Xtt:XS;;;t8..X8;888;S@@;:. . .....                   ....  .  .;Xt%%X@@88@@X%@t8t@X;::.    .. ..  ...:;;t:XX.8888 88: t8%t%@8@@88%tttt;;;t;;;;;;;;;;;;;;;;@8@XX8SS8X888SX::::::::::;:::;::;t;%;::.:.::;ttt8%;t;8 8; 8.@88X::;S%St;;;;;;;:;;;;;;;;;;;;;;
        ..  . .   .........        .:;%@X88@888888@%SS@tX8:;;;;@%t88:88;8@8;;. ..      ..... ....       ..      ...:t%Xt%ttSSSSSSXtX%XS;;:..  .. .   ....:;:;@88:8:8888: SXtt8S@@88X@tttt;t;t;t;t;;;;;;;;t;;%t@88@X88888@@S@;:::::;:;;:;;;;::;;S;;::::::;tXtXSt;t:.8;8:.8S8X%::%8Xt%tttttt;;ttttttt;tttttt
         .    ..... ... .        .:tSS@@X888888@XSXSX%8:;;;;t8;;:888.:@@Xt:..   .   .    . .  . . ....  ... ..  .:Xtt%StXtXtXtX;%Xt%%X::..  .   .  ...:::;t@ 8t8.88888:8@8t%t@tX@8@8XXt;tt;ttttttttttttt;t;tt;;:;X8@SX88@XSX::::::;;;;;;:;;;;;;;t;:::::;tttX%X;tt%:.:.8 %8X%::;8;t%t;t;t;;;t;ttt%%ttttt;t;
        .. ...     ..   .          .:;tXtSX%@8@S8888S%X@Stt;;ttX;;8:8888@@St:.  .. ... ..   .    ..      .  ..   ..:tStt%%tSS@X@t8@t@Xt;::..      ......:::;:8 X 88:888 888;t%t8S88@X8SS%%%;tttttt;;tt;ttttttt;t;;t%8SX@XX@XSS%::::;;;;;;:;;;;;;;t;;:::..:;;ttt@tt%t8 88%SX@%;::%@Stt;;;::;;;;;t;ttt%%%t;t;;
      ...... ..  ..  .  .       ....:t%%@t%@SX@@888@SS@8%tt;;;%XX;.X@:;8@88:..... ... .. ................... ......;%S;StSX%XtSSXt@Xt%t;:..      ..  ..:::;;t8 8 8:88888S8%tttt@X8@X@S88X@;tt%ttt;;tttttttt;t;tttttS88S88@t@SS8;.:::;;;;;;;;;;::;;;:....::;tt%SXS%t;.8t8t8%S;::;@X8tt;;;;;:;;;;:tXX88@tttt;;
    ..... . .....  .............. ..:tStt@%XXtSXSS88XX@@%tt;;tt%S.8 .88;X8::....................... ..............:t8;tt%%%%%X;tSX;tt;;:::..   . .  ...:;::t:8 8.88 @ : X@tttS8X88@88888X8StSttt%t%tt%tt%t%tt%%tt%ttt;t%X8@@88St;:::::::;;;;;;;t;;;::::.:;tXXX@XS%t;: ::8X@;::8.@X@S;;;:;;%t%t%XS888XX8@S8Xt
  ...     .... . ..................:;;;t%%SttX;:tt;t%8S@;%ttttttSt%:.88%@8t:.::.:.......:........ ................:t%tSt%XtXttS@t;;t;ttt;:.. .. .  ...::;;t;%8:8888.8X@:%tX%;88888@88888@St%t%Sttt%t%S;tt%%t%%t%%t;ttttS%;:;8t;:::.:::::;;;X@XXXt;t%%%@XXStXXSt;:;888 :X;:88tSXS@@88@88XXSX8XX8888@S@@SX8X
 ...... . ......:....::::::::......:::;:;;;;:::;::;:;:;;t%%XtStSXS%;8t:8S8:;;;;;;;;;;;;;;::::::::::::::::;;;;;;;;;tXtS;t%t%%St%ttt%%XtXt;:.. .    ...:tSX;;;8.% 8.8 8888;%;8t.%888@S888888S8SS%SttStSttt%X%XtX%XtSttSt%XtStt%t%t::::::::;:;S8S8S%888888@@S@@@SXX;t:X;t 8;X:S;SS@X@8@%@@@@888S88X8S8@8@8@888S
 .::::......::;;:;:::::::::::...........::::.:...::.:;::t;;tttXX8S%: :;%88X;tt%ttt%%t%ttttttt%%%%%SttX;tXt%XtStSXtXtX;tS;%Stt%S;%XtXtStt;..   ... ..t@XX@@:@8:888 8X8;t@%.  tX88X8888@8X88@X@@@@SSX@X@SSS@@@@@@8@8@X@8@@@88@t;;;::::;;:;;%@SSSXXS@SS@@8@@SXSt%;:8:8:t;%;8;888@@88Xt%SSSXX@@X@@@@8888@8@8@8
.::::::::::;;;;;;;;;;;:::::....... .......... ...........::;t%;t@8S;t;8:t8;tS%%%%%%%%%%S%%%Xt%Xt%S%%%tXttXtStSX%X%Xttttttt;ttttStSt%S;%;;.. ...   .:8@XS8ttX X 8;888X8tt8; 8t:t%SXX@X@@SX8X8@8X@888888888888888888888888@@XS%:8tt;;;:;;:;;t%8@S@S@X@S8SSS8tXX@%%t.:;:;8.8888@888@@8St8;8;8:%t%t%8;%8t8%XXXXX
.:;;;;;;;;;t;ttt;tt;;;;::.... .    .. ....  . .. .. .. ..:::::;tt88%t. ;%8.t%%%%S%%S%SS%%XttS;t%SXtX%X;@%XSXS8%8@@%%ttt;;tt%t%ttt%Xtt%t;:.. .   ....XXX8%ttt 88t;8@;XX.XX; %8t888S888%88X8%8X8X88X8t8%8%@88@X8X88S8%8;8888%%@::;:;;;;;tX@@8S@SXS@@@t8;%8S8S8%;8;8t8.t@@8X8S8S@@XSt%S8t88@S8X8X88@88@@@@@@8
:;t;tttttt%t%t%tt%tt;:..... .    ..  .   .  ...  .  . .......::;:tX8XSt;%8%%S%SXtSStSStSX;StSXt@S%@S@X@@888@8@@8@8Sttt;;tttttttt%t;ttt;;:...  ... .:8SX8%;:@ %t;8@888S.SXS% t8X88X%@X8@SX@X8X%XX@8@@8S8:888;8t8.@ 88;8;X8:S;8.@;;;:;@8@XSS%%SX%@X@88X8@XX8888888%;88.:;;;;%%%tttSS88X8888888888888888S8XS8X8
:t%Xtt%%Xt@;St%Xttt;:...   .  ..  ..  ..  .     . .  .  . ......:::;8@8X8tXXtXt%SXtXt%XSt@%@%SX@8@8@8888X8@8X88888tt;;tt;tttttt%;;t;t;:::.       ..;%XS8;:;S 8.  .  %tSS 88:8@88888888888888888@@88S8 8X:888 8 888 8:8888@ 88;8::::@%::;t%X8S%%%888888@@88888@@@8X;;888;:;;:t;ttt@8@8@8X8888@8@8888@8@888888
:SttStXt%%%StStt;t;:...  .  ...  .   . .  ... ... .. ..  .  . .....:;S88@%XtXtXSSSX%@S%@XS8X888888@@S888S888S88@@X%ttt;ttttttttt;t;;;;:... ...  ..:;888%;t%.% 8.8 8%%%%88.88@@8X88S8888%@X88888SX%@ 8@888@888888888:S 8.8:@t8@%:::t8St%@S%XSSSSX8@X8S8X88888S88@8S;t; 8%:;t@Xt;t@888888@88@8@8@S8X888S8S8888
;tX;tS;XtSX;%%ttt:....  .. .    ..  ..  .   ..        .  .. . .  ...:;S8@XtStSX%@X@S@X8@88X8@@X8888888SS8S88888888%;;;t;;;;;;;t;;;;;;::....    ...;St%X;t;8 t :.888t8;. 8888@@88888888888@@8t8t@;8.8%8888;8888888@8@8@8@8XXX88:::;X8X@8888X88@%t@@S8X%@SS8X88@@888%:%8@Xt@8888@8@X8@88X88@88@8888@8@X888S888
;t%Stt%%Stt%Xtt;:....  .. .   ...  .. . .. .   .. ...  .. .  .  ....:;tt%@@S8XS@S8X88@8X888888888888@8888X8@8888@%;;;;t;;;;:;;:;;;;;:;;::...  ...:;tXt;;;;8. 8;8;.8t88888 t8SSX@8S%X88%88%88888S8888@8X8%88888888888888@8888@8%::;X8XXXXX@8888@S@S%%XX%@S@8@%8@SX8888XXX@88SXS888@%8S@@SX8X888X8X888X8S8S8X8
;%S;%XtS;S%%tt;:..  . .   ....   . .  .    .  .. .. .  .    ..  .  ..:tt;t88S88S8@@88@@@S8@888888@@8X8X8X8XXX8%St;;;:;:::::::::;:;;;;;;::.....  .:t%ttttt;@%XXt%..;....:t88@;:88888 888:888888@8888%S:tX;X;@%8S8@88@8S8X@S8@88%;;S@X@St8SX8@SSXX%S8tS%S%@XtXtSXX%88@88@88XSX8X@X8@@%@tS8S88S@X@X@8S@8S%S@%XS
:tt%%%%tS;%S:;... . . .          .    . . . ..       ..  ..    .  ....::t%S@888@8X88888S8X88@@8@@8SXXtS%SSSSS%S%t;;:;:::.:::::::::;;;;;;:..  . ..:8@8%tttt%X88@888S%8888X8SX;88%8888 888888XSt@StXtX;XtX%S%XS8X88S88@@88S8X@XSSXS@88X@XXSSXS8@X%XttX;%XttXtSXStXSSS8888X88S8@XX::S8Xt@SXS@%@XS8S@XSX%8S@S@%X
:tStStt%%%%t;:.                     .. .. . .        .  ..    .. .  ...:;ttX88X88888X@@8X8XS%%%%t%tXtt%StS%t%S;S;t:::.::::::::::::;:;;;;:...   ..;; :St%;;;SX8888X%X888S8SXSX8%:8@t;8SX8X%@%X%;%Sttt%%%t%XtS@S8@888@@888@888@8@@X;S@X%@SXSSSt8S%%XttXttXttSt%%Xtt@8@X8XXX8888XXS;;t8X%X%@tXtSXtX%X%XS@S88@8%
:ttttSttSttt;:.                      .                     .   .. .   ...;;tX888X8SXSS%S%%StSt%t%tSSS%S;ttSS;ttt;;:::..:::::.:::::::::::.. .    .;S:Xtt;;;;@8888@SXXX88XXt%S88888@888@S%Xtt%tXtt%%SSSXtS;%Xt%XX88@@88888888X@X8StX%SXX8@XSSSXSX%%%%%t%%%%St%@ttSXS@t%8888XSXS8@XSS..8X@@@88@8888@88X@@S@S8@S
:t%S;tS;tSt;:..                                                 .      ..:;;%@@S8X%t%tS%%ttSStS%S%XXS8X88@888@X8;;::..:.:....:.:::::::::..    ...:;X@tt;;;S8XS%SSXXSX@S@XXSXS;%8;;:t@tStt@%XttXtX;%XtttSt%S%@S8X888@888888@@888X@X@88@SX ;tS8@S%SS%@tX%%X%tSXtXXt;:tS8SS@SS;;tXXX88t%XS8@88@@88@XXX@XX888@
:%%tS;t%%t;;:..                                                        ...:tt@8XSStSX%S%S%SSS88@8S888888S88X8XS@;::............:::::::::.     . ...:t8tt;;8;;;:. :;%88SSXS%%;;.;@ttt;tXSSXS88@%X;XttXt%%Xt%@%8S8@88X888X8S88@S88%S%S%tt 8 t.;XX8S@t@t%@tX%S@SX%@X8:. .:t%X%%;: .:;S@@8X@88XS@8888888S@%t;. 8
:Sttt%t%ttt::..                                                         ..::t@@XSXS88@888@S88@8@8@@88@%8t8:8888X::...............::tX::..       ....;S@S;XS;%SXtt;%SXXXXXSStt;%X8;t;@XSS@@888@@tStS%%@%Xt@tX%@S8X8@88@888888888S;:.     ;t88888X8X8X8@88888888X8S%:.  :tSXXS%;8888S@88888@XSSS88;8:88888888:
:;;ttt%ttt:...                                                           .:;t%XS%@8X888XX8888@8@8@8%8888@;@ 8:8;:... . ..........::;tX;:....       .;tt@8S. 8888888888.8:8%88888@8@SX8St%SSXSX%X%X%@SXS%@%@S8S8@88X8@8@88X88@88%...:t888@8@X88@8@8@:.88888888888888888S 8S@8888@@@@88888S8X8S8888888888@88X8
:;;tt%ttt;:.                .                                           ...:t88888888888X88888X8X8888;8%8888888....  .   ........:.:;:ttt;:...    .:8@SttS88t8XX8X@X8XXXXS@X@88X88X8888888888@88888888888@88888S88888X@888@S;t888@.8t888888888X888t8@@@8888888@888@@XS8S@8X@88888888888@8888888888888888S888
:tt%%t%t;:.                ..                                            ..:%88888@8S8888S@8888@X%888888X888:@;... ..  ............:::;tt;::.......;X8XX88S@S8S88%8X;S88:8%8SSX88888X88888888X88XS888@X@X@8S8:888888888.8888@8888X@88@@@888888888888@@@@@@@8@@@@@@X@@X8XXXX@@88S@S8X@@@@88;8888888%8t8888888
;StXtStt;:.                                                               .:%888888888888888S8@X8@88X8S8888S@X:... .  ..   . . ......::;;:::......:;;%@X8XSSXX8888888@8S8888888888@S888888@888888888888tS88888@@88@@8@88888888888888@@@8888@888888888888888@8@8@@@@@X8X@@@@@@@8888@8888888@88tS%8S%88%8888t8
tXS%StX;;..               ..                                         ... ..;@@8888888@8@8@88888888@XXX@8@888S;:... ..     .  ..  ......::::::.:....:;t;;SX@888888tXttS888X8S8%8XX%8St8:8888@888X8X8S8888S888%8888S8tX888888888%8@888888888888888888888888888888888@@8@888888888888%8S8X8@8S8888888S88888@888
tt%St@:;:. .                .                                           ..:t8@8888888888888888@X8@@8888888@8t:..  .  .. ..  .   .  . ...::::.......::;t%t%S%SXX@S8%@XX8X@S8;@.8:8;8tX;%%8S88 X 8.8 8X:S 888888:88888t888X88;888S88%X88888S88S8S88888X888X888%88888888%S888888888888888.8t8888S:t.888t8t88S88
tXtXtt;:...                                                             ..;@X88@88888888888888@88888@8XS@%X%t::.... .  .   .    ..................:;888888@8@888888888@8XS8%%8:8%8%8%8t8t8888;8t8:8.88.8;t8 888.8:XS8888888888 8@% %S8@88:S8:888.8S8:8 8.888;X 888888 X;8@.88888@.XS8X 88t888t8 8 8:8.@.8.8;
tS%S%%;:.                                                             ...:t888888888888888888X@8S8XSX@@XXSXtt%;::...............................::t@S888X88@888888@X88888X888888X8@8@888X88@8888X8S8%88%8tX@8888X8%@:8:8888;8.88%8 ;@;;888:8.@tt88888;888;@888888.X 8..@  X @.8:8tt8 888X8%8S8%8%8;8t8%8%8X@
tXtX;t;.                                                              ..:;@@888888888888@@88X@@X8SX8XX%@%tSS%Sttttttttt;t;t:;:;:;:::::;:;:;:;:;:;ttSS8X8@888888888@8888X888@@88tSX@XXXSX8@%8X88X@@@X%@@@@%@88@X@@88X8@S88888@8X88@8S@@S@888%8%8888@8888@88888XX8St;t%8;;%88SSX8888S8X88@8888X88888X888888888
;StSt:..                                                               .:;@@888@88888@8@888X8@8X8@@@@S8S@X@S@%XX%@S%X%@t@%XtXtXtStStStStSt%%Xt%StXS%@S@@88@8888@@XX@@XXS8@X888888@@88888888888@888888888@88888@88888XX8888888888@8888@88@8888888@8888@888@8888888888@X8X8888X8XX8@X88@8888888888888888888888
;tX;t:..                                                             ...:SX88@888@8888888@@88888X8@8@X8X88@8@X@8@S8@XXS8XXXXS8SX%8XXSXSXSX@X%@XXX%@@S8@@@8X888XXSXSXXXXSSX@888888888@888888@8X888@88888@888@88888@888888888@888888888888@@888@888@@@88@8@8888888@@@X88XX@8@8SX8@8888@88@8@888888888888@88888