1                       )  --  -- --   ----  ------=--)=)+)1+=+1=+)+=))=+)11)11))1+)=+))11)++ZXZ1)X1)1111)1)+))))M++=++++A++1+=+
                              - ---   -----  -=-------X=-+)+-=O++=++=+M=+)++)1X)))++=++)1)+=+AZZZ1111X1+)))+)Z11+)++)+++=)+=Z+=1
+                                                             =
                           -          - ---  ----  +--+==+)M-==+-=+++)===++++1Z)1)+Z==)+1)+=+1ZZZ1MZ11)+))M+)11)++A==+==-=+===-=
                                  - +-  ---  ----  -=+====1===-=-=+-)+=+-)))))))))+))+)1ZZ)+=1XZZ11M)11+)111+)1))=+++=====Z=-=--
                            -    --     --   -=--- --+-=-+1=+)---X=-)))++1++)))))1++==+)1Z1==A11M111111)1)))+++++==)+++++--)----
      -                          -+     --   ----  --===--)1-==--))=)+=+++1Z))+1)+1++)++11X+=Z1XZ)O11)+)))Z)))++-=M++++++++=--)-
+                                                                                                 =
                               =  - -  --    ---   - -=1--+----=-)=-++++++))))1Z+++=)))))))+=)Z1)11))+1+))))+)+++=))=M++=++-=+-=
        - -                   -   -   - -- -  =  =-- -)--=++--+--+--)+1=+++)))X))+++))Z))+)=+)X11))))X1)))1)+X=+)11)+1++=++=+)--
                            -                 - -    -=+--)=--===+-=+)++)+))+)+))))1)++A)+)-=++M1)))++)1))))++1)))))++M=-)-=+-)-
                            -  - -     - -      -    +=- -+--1==+)--++==++++1++1))))1)++1+++)+)1Z)+))))+)++1++=+)+)Z+++-=+=Z+=--
                            -                       -=-- -+--A=-=+-=)Z+++++=+)++++)+1)+1))+-=++)++++Z+)++++=A+=+++)+1++==+==1)-=
                            -           -           ------)=----++=+)1+))+++++++++))))+AA))--==A++)+)++Z===+++++++++++1A==+=+++=
                                                  ------ -1=-----1-+)+++=O++)++++1+++++))X)--==+)1+++++=1++)++++M++++))))+++==-1
+                                                                        -
                            -    -                 ----- -=--=---=-=)Z+++=)+))+++1++)++++)=--=-+=Z+)1)+=1))+++=+)1))+1111))Z)+++
                            -    +              -  ----  -=------- =)+=+++++1)+1)1++1++)++-)---++))11++++)+))+++11ZOXMAMAAOOMA1Z
+                                                                                                                  -      =-
                                       - +           --  -=- =---- -+)=+++++1)++=1))1++++)+++--=++1))+++-)))Z1)1MOOOOOOOOOOOOOOO
+                                                                                                                -+++++++++++=++
+                                                                                                                 .... ...... ..
+                                                                                                                       =   = =
               -                        -     -    ---- --=-----+- +=+++)++++++1)+))++=+=++=-=-Z++++++1O+1MMOOOOOOOOOOOOOOOOOOOO
+                                                                                                      -    -=++++++++++++++X+++
+                                                                                                             ..'..''.'.........
+                                                                                                               .  ..=.= =  H= =
+                                                                                                               =  == =     C
               -               -  --          --   ----   =+ -- ==-1=+++++)1++==++1++=---=O=-==+-=++++XXMOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                         +              =)+++X++XX++++++++X++++
+                                                                                                          ....'.....'.''. .....
+                                                                                                          =  H.=HH =. ..  H= ==
+                                                                                                             B= CC  = ==  C
                          -               +   =-   ----+ -=- --+=--+++=A+++===-)+++++--1-==----+-+))11OOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                                     +++++X++++++X+XX++++++++++
+                                                                                                      .......'..'............'.
+                                                                                                         =H =.= .H HH ==  =  .=
+                                                                                                          C  =  =C CC        =
              -                 -               --   ---- -- -- +)-+=+==+++=-+==Z+++=--=+--- ---1)1ZMOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                                    +X+X++++++X++++X+++++)++)++
+                                                                                                    ......''.'..''..'.''. '. ''
+                                                                                                     H H  ..=.H=.. H. ..= .= ..
+                                                                                                     C C  == =C == C= ==  =  ==
                                              + =     --   - ---=--+=+==+=+)+=-=++)+=---==A- --=)AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                                  ++++X++++++++++++++XX++++++++
+                                                                                                  .'.'......''.'....'...'.'.'..
+                                                                                                   .=.H ====..=.= ==.HH . .=.
+                                                                                                   = =C     == =    =CB = = =
                                                      - -  - )--Z--+=+=+)=++)1==++)+=---1==- -=)MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                                ++++X++X+++++++++X+XX++X+)X++++
+                                                                                                .....''......''.'.....'.. ...''
+                                                                                                   =H..H = ==.. .H=HH .H= H =..
+                                                                                                    C==C     == =C CC =C  C  ==
                             -    =    -     - -  -   -  -+  - ---+-=+---=Z)===-=+)+---==+)--))AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                               ++XX++X++++++++XX+X+++X++++++X++
+                                                                                               .....'.'....'......'.'...'..'...
+                                                                                                 HH .H.==  .= HH H. .H==. =.H =
+                                                                                                 CB =C=    =  CC C= =B  =  =C
                                              -   -   -- -)  =  - +--=---=Z+=----++=-=+=-+)+=1AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                              +X+X++XX+++++X+XX++++++++X++XX++X
+                                                                                              ..............'....'..'...'....'.
+                                                                                               H=H= HH=== =H.HH =.==. =H. HH .H
+                                                                                               B C  CC     B=BC  =  =  C= CC =C
                                                   -- --  --    --=-=---===++----===+==--=+)AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                            -++XX+X+++++)++)+++XX+++X+X++++++++
+                                                                                             '...'.''... .' ''....''......'..'.
+                                                                                             . HH.H.. ==  . ..=HH=..H=H  =.==.
+                                                                                             = CC=C==     = == CC ==C C   =  =
                                      -       -      --  ==-  - --+----===)=--=--=)===---+)AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                            ++XX+X++XX+++++X+XX+++++++++++X+)X+
+                                                                                            .'........... .......'..'..'.... ..
+                                                                                             .HH=H==HH =  =H=HH =.= .==. =H= H=
+                                                                                             =CC C  BC     C CB  =  =  =  C  C
                              -             -        --  =+-   ---=------+==------)-==-=+ZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                          ++++X++X++X++++++X+X+++X+XX+++++X++++
+                                                                                          ...'..'........ ....'.'......'.....'.
+                                                                                             .H=.H =H     =H=H. .H=HH =. =H= .=
+                                                                                             =C =C  C      C C= =C CC  =  C  =
                                         -           ------- -----=---)-=-----=-------M+1AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                         =++++++++++X+++++++++XX+XX+XX+++++X+++
+                                                                                          '...'..'...' ......................''
+                                                                                          . ==.  .==H. =   ===HH HH HH==  =H ..
+                                                                                          =   =  =  C=        CC CC CC     C ==
                                                 -   -+----- - - ---=)1---=+--+-------+)MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                        )+X)+X+++X+++++++++++++++X++X++X+++++++
+                                                                                         .. ..'.'...'... '......'.........''.'.
+                                                                                         =H  H. .H==.    .== == .H  H  H =.. .=
+                                                                                          C  C= =C  =    =      =B  C  C  == =
                                              -    -----=--- - -- =)1-=-------------+-=XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                       +++++++++++X++++)++++++X+++X++X+++X+XX+X
+                                                                                        ''....''.'...'. .. .'..'.'.............
+                                                                                        ..   =..=.H =.      .=H. .H =H===H=HH H
+                                                                                        ==    == =C  =      = C= =B  B   C CC C
                                              -    -  -  --- - -= -Z-=-----+-------+--ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                      -+X+++++++++++++++++++X+++++++++X++X+XX++
+                                                                                       ........'..'...  .......'..''.'.........
+                                                                                       =H== = =.  .= =  ==  H==. =.. .H =H=HH =
+                                                                                        C      =  =         C  =  == =C  C CC
                                                      =  --= ---  ----=--=----=- ----=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                                                                                     +++++X++++++++++)+++++X+X+++X++X++X++XX+++
+                                                                                     ....... '....... . ..'...'..............'.
+                                                                                      == =H= .=======     .H H.==H==H==H= HH=.=
+                                                                                          C  =            =C C=  C  C  C  BC =
                                                      ----- -- - -------=------=-- --ZOOOOOOOOOOOOOOOOOMXOMOOOOOOOOOOOOOOOOOOOOO
+                                                                                     ++XX)++-+++++++++  - +++++++++++++X++X++++
+                                                                                     .... .. .'..'...     .......''..'..'..'..'
+                                                                                      =HH =   .  .=           == .. =.=H. H. =.
+                                                                                       BC     =  =               ==  = C= C=  =
                 -                                    -  -1      -- -- ---- -- -  )-+OOOOOOOOOOOOOOOOOOM1)1MMOMOOOOOOOOOOOOOOOOO
+                                                                                    =+++++++-++++)=+=+      - +)=)+++++++++X++X
+                                                                                     ..'..'' '...                 ......'...'..
+                                                                                      =.==.. .= =                    =  .= H. H
+                                                                                       =  == =                          =  C= C
                                       -                 --  - - --- -----  --  ) -=MOOOOOOOOOOOOMAZ1A)))++))M1AXXZAMOOOOOOOOOOO
+                                                                                    ++++X+++)++)                    -=+++++X+++
+                                                                                    ........ ..                         ..'....
+                                                                                     ===H==                              =.H= =
+                                                                                        C                                 =C
                                             -      -     -      -- ---- +   -  ---)OOOOOOOOOMMOZ1)=+==)=--=+))M1))11AOAOOOOOOOO
+                                                                                   +++++++)=  +                      = -+++X+++
+                                                                                     '....    .                           '..'.
+                                                                                     .= ==                                .H .=
+                                                                                     =                                    =C =
                                                     -    -  -   ------      )   -)OOOOOOOOMZ)+++==-----=---==+))++))Z1OXMOOOOOO
+                                                                                  =+)++)+=                            -  -=++++
+                                                                                   . .' .                                  ...'
+                                                                                     =.                                     = .
+                                                                                      =                                       =
                            -                        -    -  -    +--=  -    -   -MOOOOOOMZ)O=----- )-- -)--)++++++1M1Z1AMXOOOOO
+                                                                                  +++++=   -                              +++++
+                                                                                  .....                                   .....
+                                                                                    =
                                                          --  -- ----           -=OOOOOOZA+=-- --)- --- -=----===Z+1111ZZMMOOOOO
+                                                                                 ++++)=                                   +=+++
+                                                                                 ....                                       ...
+                                                                                   =
                                                         --   -  -- -         - -ZOOOOOOZZ++-=----   =-  -- -----)=+)))1MAXMMOOO
+                                                                                 ++++)=                                     )++
+                                                                                 ...                                          .
+                                                                                  =
                                  -                  =    -      --  =  -    - -=MOOOOMM)1)++-   -      -   -- ----=)+++))ZXOOOO
+                                                                                 ++++                                      +=++
+                                                                                 ....
+                                                                                  =
                                                     -    -  --               --1OOOOOXZ))==                 -  ---=-)===+1ZMMOO
+                                                                                )++++                                        ==
+                                                                                 ....
+                                                                                  =
                           -                 -       -   =        -           +)OOOOOOZ++=-  -  -    -       -   ----=-=++XAZOMO
+                                                                               )+=+)-                                       + )
+                                                                                . .                                         .
                                                                 -    -      -=ZOOOOOM1=+--         -            -------+Z+)A1OO
+                                                                               ++++-                                         -=
+                                                                               ....
                                                                            -X1OOOOOMA+--       -                 ---+-=+=+)1OOM
+                                                                              -++++                                         =-
+                                                                               . .
                                                         -=   -   -  -    - -+ZOOOOOA)=---                        -----==+)+)1XO
+                                                                              )+++=                                           -
+                                                                               ..
+                                                                                =
                                               -          -     -    -  -   -)OOOOOXZ+=+    -       -              - ---1==))1AA
+                                                                             +++++
+                                                                              ....
                                                                           --MOOOOOMZ+-)=                          - -----++)1AM
+                                                                             +++++
+                                                                             ....
                                                                           -AOOOOOMMZ+--)                        -   ----M+)11XM
+                                                                            -+++)
+                                                                             ...
+                                                                             =
                                                          =      -         -AOOOOOMX)+)--=       -               --  --)-=++)1XO
+                                                                            )+)++                                             =
+                                                                             . ..
                                                             --            1MOOOOOMA++=++                       --  ----+=))Z1ZA
+                                                                            ++++=
+                                                                             ...
                                                                          =1ZOOOOOMZ++=)---                     -   ---=1+))11XM
+                                                                            =++++
+                                                                             ....
+                                                                               =
                                                          =              -)MMOOOOOOZ+=---+        -            -  -----=++A))11A
+                                                                            )+++++
+                                                                             ...
                                                      -  --   -          +)1ZOOOOOMZ)=-+--     -  =           -- - ---=++)))1)1M
+                                                                            ++++)
+                                                                            ....
+                                                                              =
                                                     -  -    -    -     =11MOOOOOOOZ)1--     +       -        -  - --))++)1))XZ1
+                                                                           =++++--
+                                                                            ....
+                                                                               =
                                                                       -Z1AOOOOOOOM11==--   +       -  -         ---=)+++)))11)Z
+                                                                          -+)++++
+                                                                           . ..
  -                                                                   -1)ZOOOOOOOMM1+=- - =-          =    -  =-  -=-=+=++)1+)11
+                                                                         -++++))
+                                                                            ..
                                                         =-          -1X1MOOOOOOOAZ1)+-       - - -     --=   -   =---Z=+)+)+)Z1
+                                                                         )+)+++)
+                                                                          . ...
  -                                    -                           - =11OOOOOOOOOX)1+=--    -  -  - - -           ----=)=+1+=+)Z
+                                                                       ))))+++++
+                                                                            ...
                                                                  -  A11MOOOOOOOOM1+1-      -  -       -        =----+---==+1)++
+                                                                        +++++++-
+                                                                         . ....
 =                                                       =          -ZXAOOOOOOOOO1)+=1-       =          -    -   ----+---=-==Z=
+                                                                       ++)+++++-
+                                                                        .  ....
+                                                                              =
     -                                        -                   - =1ZAOOOOOOOOOZ++=+- ---  -   -            -  -----=------=)+
+                                                                       )+)+++++=
+                                                                        . .....
                         -                                   -      ))1MOOOOOOOOO1)=---   -   -     -          - ------1--=-==+Z
+                                                                       ++++)+++=
+                                                                       ...  ...
 -=                          -                                      +11MOOOOOOOOO1)+--     -   -          - -  -----===)-===+++Z
+                                                                       +))+=+++-
+                                                                       .    ...
+                                                                       =    =
 -  -                                                        -    ==111OOOOMOMOOMM)+---  -            -        -=)+))++++Z++)==+
+                                                                      ++++ + ++
+                                                                      .. . . .'
+                                                                              .
+                                                                              =
                      -      -                                     =MX1OOOOMOOOOOX)+=-- ------+- = -  --     -+=+))111AZ+++))+M+
+                                                                      )+++ +++++
+                                                                       ... ....
 - ---                                                             1ZZMMOOOOOOOOOM1==-----=--=--  -         -==+1MOAXZ1))Z11X))1
+                                                                       ++++++++=                                 )
+                                                                       ...... .
 ------  =             -   --  -                                   XZAAMOOOOOOOOOMO-==---=)=====--- -- =    =)1AMOOMMAMXXOAAZAZX
+                                                                       +++++++++ -                              --      +
+                                                                       ...  . ..
+                                                                              =
 - ----  -                 -- -  =--                  -     -    --1AMMOOOOOOOOOOX)+=--+=+)))11A=-+ -- +  -=+1MOOOOOOOOMOMOOOOMO
+                                                                      =++++=++)+                              -+)===+= = )+-+ =
+                                                                       .... .. .
+                                                                             =
 - --   --   =      --    --- - -+==- ----                        -1AOOOOOOOOOOOOM1)11+++1ZXMAMM1+--------=)1MOOOOOOOOOOOOOOOOOO
+                                                                    -=-)++++++++                             =++++++)-+=+=)++++
+                                                                        . ......                               . . .    .  . ..
+                                                                          =   =                                               =
 -+---- ----  - - --- - ---+- +-=---- ====-                    -  ZAMOMOOOOOOOOOOOXZ1)AMAOMMMOOOOZ+------=+)AOOOOOOOOA1)))1OOOOO
+                                                                    = =)+)+=)+++-       -   -+=-            )++)++==      --+++
+                                                                        . .  ..                              .. ..           ..
+                                                                          =                                                  ==
 --+--=-- -+    - -+- - ---)- --==-+  -==+--          -         - +OMMOOOOOOOOOOOOOOOMOMMM)+11MMOMX=----=-)1OOOOOOMM1)O+=)+ZMOOO
+                                                                  +  +-)++)=++++)-=- )         =           -+++++    =      =++
+                                                                        ..   ...                            .....             .
+                                                                        =
 ----   --  -- -----)-------=--=+=--=--)+1=-1  -    =           --)OMMOOOOOOOOOOOOOOOOM1+===)1)ZMMA++----=)XOOOOOOAM11OMMOOOOOOO
+                                                                  -  +=)+++-++++=-)++                      ++++++    -  ==+++++
+                                                                     .  ..  ....   ..                      .....          ..  .
+                                                                              =
 Z----- -= ------=--=-=--)--+-=++Z=+---++1=-1=-                + -AOMOOOOOOOMOOOOOOOOOMMZZAXOOOOMMMX=----=)MOOOOOMXAMOOOOOOOOOOO
+                                                                  = -=)++++ ++++=++++      -=-+            +)+++    ==+++X++X+)
+                                                                        ...  ... .. .                      . ...      '.......
+                                                                             ==                               =       . =H= H=
+                                                                                                                      =  C  C
 =)--)-    - ------===)-++==+++=)+=+---=+===+)                 ---)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMM+----=1OOOOOOOMMAX1OOOOOOOOO
+                                                                  )-))-+++++)+++++++++=+-++++++-          +))++--     ++++++XX+
+                                                                        ...  ... ...   . ......              .        ...'.'...
+                                                                              =            ==                            .=.HH=
+                                                                                                                         = =CC
 -=+)=--- -=--=-=--+=-=-=+++)==++==)----+==X++                -- -+OOOOOOOOOOOOOOMOOOOOOZZMOOOOOOOXM1= ---AOOMOMMMZZ1=+MOOOOOOOO
+                                                                  +=+)=++++=)+++ -)+++=   ++++++-         =+ +         ++++++++
+                                                                  .    ....  ...   ...    '''...           . .         ........
+                                                                              ==     =    ... =                          ===
+                                                                                          ===
 +-)==--+--+---===-1-=+=++=M)++)+=+M----++)M)+               ---)=+ZMOOOOOOOOOOOO1ZMOOOZ++AOOOOOMM+11  --+XOOOOZZ))+-==)OOMOOMAA
+                                                                    ++++)+++++++   ++=    +++++           =)++         ++ -=
+                                                                     . . . ....           .. ..
+                                                                            = =
 +=----------+=+M=---+++1==+))+1Z++1- - 1)1))+        --     -----=ZOOOOOOOOOOOOO)+)MM))-=+1OZZM1)+M+ ---+ZOOMMA1++=-=)=)1MZZZXA
+                                                                   -)++))-+++++=           =              ++
+                                                                     ..   .....                           .
+                                                                            = =
 )=+=-=--===--1++)--==)=))-+))M++)))--+-11Z)-        -A==--=------=1OOOOOOOOOOOOX)-=M1+----=)+11)+)1+  =-)XOOMAZ)+)++++++1Z)ZZAA
+                                                                   ++++)=++++++                           =-
+                                                                    ...  ......
+                                                                             ==
 ===+--====++=+)+==-==-)))+=Z))M+)))---)1ZM=-        )ZZ1==-== =---ZOOOOOOOOOOOOM)--Z1+=-===1ZXX1))+)   -+XMMMAZ)))X)))+)ZX1AMMZ
+                                                                   +++)+==+++++
+                                                                   ... .  .....
+                                                                              =
 ====--)-+=)+++1+=+==-=ZZX1+)))1))))--)+MMX-   -  ---XM1MM1-+-+ --=MOOOOOOOOOOOO1+-++++++)1OMOMZ)++M-  --+XOMAXZ)+1))11XZXOXMAZ)
+                                                                   =++)++++++++           - -             =              )
+                                                                    .. . ......
+                                                                             =
 +))=----++)++=+=-+==-+1XAM)1++))1A+-==+MOM- -   ---+AA1MOA+)+----)MMOOOOOOOOOOOZ+----X++))AZXA)+)=---  -+ZAAOM11+=++XZ)))1)+M=-
+                                        =               +           ++++)++++++                             +
+                                                        .            . . ......
+                                                                           ====
 1)=)----1++A+=+=-=+==+ZXX)M)++))))M-=+=MOZ- +-  -=1ZO11XMOZX)---)MMOOOOOOOOOOOOM=- - ---=-+++=-++==-- -=Z1XAZZ))=--=-------- --
+                                        -           -    -         =++++)+++)++
+                                                                    . .. ... '.
+                                                                             .
+                                                                             =
 =+1+---=)1Z))+++=+1--+1AZ1))++111Z=++++MOM--1)--11)ZMZ1ZOMXAA--1ZXMOOOOOOOOOOOOA=-   -   ----=---==-----+1XAXA1+=---=-   -  ---
+                                        =               )          -)+)++++++++
+                                                                     . ........
+                                                                         =   =
 =++Z==)+))1O1+1))++1=+1Z1+X1)11A)1M+1))MMX+)OZ-+)A1AOA)XMOMMM==1OAOOOOOOOOOOOOOX=---     = - ----+--- --=))1)Z)=+-   -   -  - =
+           )                                -       =    )      = =+++++++)++++
+                                                                    ...... ...
+                                                                             =
 +++++)=++))XM))ZZ1)=1)Z11)11M11ZZA1MAZ1ZMM+MMM+)111OOX1ZMOOMO)+XZOOOOOOOOOOOOOOO+=--  --   =   ----=- -++))))))+=- -        - -
+                                                   --    == -    +=--++))++=+++-
+                                                                 .    .  .. ...
+                                                                          = ==
 Z+=1=+++Z))Z)))MZ1Z+)Z1Z)ZZZ11XXMMZ1XZOXMM1MMO1Z1)XAOA)MAOOOO+1MXAOOOOOOOOOOOOOA+M--          ---+--  -=+M))1+)+-1       - ----
+                                      -      -      +    =-=+     =+=)+)+++++)+
+                                                            .         . ..... .
+                                                                        =   = =
 )X+=)+)++M11))XZ1MZ1Z1))XA11))11OMAXAA1AOOAZMZXO1AAMOXMXMOMOO+OMAAMMMOOOOOOOOOOM)+=X---    -- --+---  --)))X++++=--        ----
+                                =       =-     =    -    - =- =      )+++++++++
+                                                                      .........
+                                                                          == ==
 ))+)))++)1AZ1Z11)1OXXZX)ZZM1)11XMOXXMMXXOMAAMAMAOMMMMMZOMOOMM)OOXMAMMOOOOOOOOOOOX+=)=- - - -=  --=--- -=+++))+++---==    -  +--
+                  +              =      -       =      - --   --     ++++++++++-
+                  .                                                  ..........
+                                                                           ====
 ++)+)O++ZZMZAX11+)XXOX11ZZ1X111ZAMXOMZAAMAA1MOAA1MMAMZMMOOMOM1OOOMAMOOOOOOOOOOOOM+==-=       =-----  ---=))))A+==-----  =  --)-
+     =              +              +         =          -+ =  =+-   -))++)++++++
+                    .                                                  .. .....
+                                                                        =     =
 =+=+11)Z11ZZA1)O)1ZAOXMOZ1Z111MMMOZMM1OAMAAAMOA1ZZMMOAXOMOOOMAOOOOOOOOOOOOOOOOOOZ+=--  -   - --=- - - -1+))1))+1------ =-  -+--
+               -    -  +         -    -      +      )  - +=+  -++=+=+=+)++++)++)
+                                                           .        . . .... ..
+                                                                         = = ==
 )+)=)1)XAZMXXA)))ZOZAXAAAM1ZZZAMOOAZMAAMOMMXMOMM1AAMOAAMOOOOOMOOOMOOOOOOOOOOOOOOM)+=-  -   - -=--     -=++)111+=---=----  -=---
+                  +             =-      )    +      +   -)=+- )+= +-+)++++++++++
+                                             .                    . . .. .......
+                                                                             =
 Z1A)+111AMOXA1))1MXZMXAMXXZAMMMMOOAMAMMMOMMXMOMOMMOMOMOMOOOOOOOOOOOOOOOOOOOOOOOOA)M---=-   -------=- --+++ZM11+=--+-----  )-=-=
+          =                     -+      +    + )  - + ) ++-)=+++==+=+)+++++++++)
+                                             .      .    .   .    . . . .......
+                                                                             =
 OXX1)11MMMMXAZ)M1111ZMMMX1XMMMMMMAMMOOMMMMMXOOMMMMMOOOMMOOOOOOMOOOOOOOOOOOOOOOOOMZ++-----   ---1=---  -)+))1XZA+=------- --+==1
++                                   -)      +-     )+=  +++++- ++++)++)++)++=+++
+                                            .                   .      .. .. .'.
+                                                                             =.
+                                                                              =
 AXM1OZZ1MMXOA1)1Z1)MAXAXX1OOMOXMMOMAMAMMMMZAMOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOZ1--==---- ---+=-+   -=+)A1AZM)-=------ -====+
+    =      =              -= -   -           =-=)-+-)+-++) ===+)+-+)++)+++++++++=
+                                                        .     . . . .. .........
+                                                                            =  =
 MMMOXZX1AMOZAA+Z1ZZZZZXAZMMMAAMAMOMMAMMAOMAAMOMOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)+=-- -=----=++=    -=)M1)1AM1-+---=---+-==++
+   +      +                      -      -    = = - =++=+)==++++)-)++++++++++++++))
+          .                                          .      . .   .... ...... .'
+                                                                            = =.
+                                                                               =
 MMMZ1AZMMMXZZ1)Z11Z1ZAMAZMZZAXOAMMMAAMMMMAAXMOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ+=--- ----=+M=-  - -1)1Z1Z1ZM-  ----)---=+))
+                              )              +==  ==)+)+=+=)++=++)+++))++++++++++
+                                             .           .  .. .. ...  ....'.....
+                                                                       =   .  ==
+                                                                           =
 OMMMAAAOMMMXXZ1M)1AZXAAMXZZZXMOMXMAXAOAMZZOAMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMM1)+=- --=-++)+-   --+ZMMZ1OMM=  --+--=-=++Z1
++      =                      -      +    -  -=- =)++++=++=-+)=)+)=+)++++++)+++++                            )
+                                                        ..  .   .  . ...... '....
+                                                                            .===
+                                                                            =
 MOOAMXMMMAMOMXZZ11ZMXXZM11MAMAMMMMOXZMMAZOMMMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMO1)1----+--1+1)----=+XOOOMMMOO=-  -----+=+1)1
+ ==        +                      =      +    - )-==-=-+)+-=++)++=++++)+)++++++++ +                     +-=   +-
+                                                       . .   . .. .... . ........ .
+                                                                          == =  =
 MOOMMXMMMMMOMAAMAZMMMA1MZZMAAZMMMOOZZAMAZOZAMAMOOMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)+-=--))=-=ZA)+--)ZOOOOOOOOO1) ------1+)+)X
+ +-        +                     --      )     =) -+- -+=+==++++++++++++++++++++++=                    +++)++++)
+                                                         .  ... .  ..... .....'..                       .. .. .
+                                                              =    ==     =  =. =                       =
+                                                                              =
 OOOMMAZOMOMMMMOMMAXMMOAAAMZXXMMMMAXXMMMMMZAAOOOOMMMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOMX1Z+==-+==+-+XZ)+)OOOOOOOOOOO)-=------+1))ZZ
+++=    - -    -      -                      +-)-   =)- ++++++++))+++)++++++++++++=                   -)+)++++++-
+                                                         .. . .   .. ..........'.                      . .....
+                                                            =           ==   ==.=                          =
+                                                                               =
 OOOMXM1MOMOMMMAOMMMMOXMAAXMMAAOAMAMZAOMMMAMAMOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMXM)++=+=----+)XAMOOOOOOOOOOM)--)--+==++M1XA
+++-     = -    =    =         +      +       ==+  -+-=-=+++=++)+++++++++++++++++++                   ++++++++++
+                              .                         ... .. .. ...........'....                   ..........
+                                                                       = =  =.===                        == ==
+                                                                             =
 MOMOMAZAMAOMMMAAMMOMOZXMMOOMXXMMOAAZMMMOMAMAMOOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ1))+))=---- -AMOOOOOOOOOOOAZ=--+1++))))XOM
+ = )      =       + -    )-     +      =     -== + ===++)=+++++++=++++)++++++++++++                 +++++++++++              -
+                                                      ..  ......  .... .'...'..'..                  ..........
+                                                                        . ==. =.                     =     =
+                                                                        =   =  =
 MOMOOOMOAAXOMMMAMMOMMOMMMAOAMAMOMMMXOMMAMAMMMMMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ+Z)+))=-+=  -ZMOOOOOOOOMMZ)M=-++)++1))1AX
+ - -+) -   -      -  =    -    +    =          =  +==+++++++)++++==)+)+++)++++++++==                 ++)+++++
+                                                  .    ....  ...    . ... ....'...                   .. .....
+                                                                       =  ====.=                          =
+                                                                              =
 MMMMOOOAMMMOMMAMOMOMOOMOMMAMMZMMMXMAAAMOOMMAMMOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXZ)O)+1+=--)   -ZOOOOOMMMZA+++=+)111)1)))MA
+    )=+    )    - = -= -               -+     -) = ++)+++-++)+++=++++++++++++++++++    -             =++++
+                                                      ... .  ... ..............'.'                    ....
+                                                                        ===== =. .
+                                                                               = =
 MMOMOOMAMMMOMMMMOOOOMMOOMZOAXZAOOOMMAMMMOMAOMOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1ZZAA)+=---=---+AMMOOMAAZ1MZ)1)1ZZM))))Z1Z
+  - +=     =    ==+-  -=  +    -=+      )  - -=+-)) +)+++)=++++++)++++++++++++++++)=                    +-
+                  .                            .      . .  ...... ................                      .
+                                                                  =   =  ====  ==                       =
 MOMAOOOAAMMOOOOMOMMMOOMOMZAMOXOOMMOMMAMMMMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXZA111)M++---  ++1Z1AMOMZ11Z1ZOAMMA1)1))))Z
+ -  +=-    -+== +   -+ =    ) =+  -        + +---=))+=)++))+=++++++++++++++++++++++                       -       -
+                                           .           .   . ......................
+                                                                       =  =    = =
 OMMMOOOMAMOOOOMAOOOOOOMMMMOMAZMOMOOMAMOOOMMAMOMOMOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZZ1Z11)1Z1+)=- -=))1AAMXAXZOAMOOOAO))Z)Z)ZX
+=   +-)   ++--  +)+=-=    =    - +-   --)    + = ) ) =++++))+)+++++++++++++++++++X+=                           -  ==- +
+           .                     .                    ...   . ............... ....'                                   .
+                                                               =        =      = H.
+                                                                                 C=
 OMMMMOOAMMOOOOMMMOOOOOOMOMMOMMOOOMOMOOMMMOOMMOOMOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)))+M)1XMX))1=+1=)ZOMOOMMOOOOOOM11X+))+)1O
+=    -=   -==+   -=-++= -  +  =-= + -+   =)  =- =)+= +)++++=+)++++++++++++++++)++++)                    - --  ==+++=          +
+             .      .             .               .  . .... . ... ...... ..... ..'.                              ..
+                                                              =       =  =   =  =.                                =
+                                                                                 =
 OOMOOOMOMOOOOOMOMOOOOOOMOMMMMOMOOMOMMMMMMOOMMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA11))+)XXOOOXMZ1Z1XOOOOOOOOOOOOOX)+++)+))Z1
++= ==- - ==++= - -+=-=- -    - -= )      +-  ==+ +)=+)+)+))++++++++++++)++++++++++++         =-+       =)+=++)+++++-
+                                                 .  . . .  ..... ... .. ..........'.           .         . .. ... .
+                                                        =         ==              .                         =
+                                                                                  =
 OMMOOMMOOMOMMMMOMMOOOMOMMAAMMMAMMOOMMMAOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ))Z++)1XZ+M11ZZAOOOOOOOOOOOMZZ)))+=++))XM
+-  ++  =+ -    =  --= =          ==    --=--=-=) ++=+++++)++)+++++++=+++++++++++++++                  -=))++++=++
+        .                                           .....  . ... ... .............'.                      . .. .
+                                                        =     =      =   =      ==.
+                                                                                  =
 MOMOOOOMOOOOMOMOMMOOOMMMMXAOMMMMOOOMMMOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1++A=-))=-----++Z1ZXMMMOMMMZ)))1+1=++)11X
+ - -+)- =-+= = =  =-+      +    -=)   -+++- =-+=))+++++)+++++++++)+++++++++++++++++++                        =
+                    .      .             .          ... .. ...... .'.... ...........
+                                                                  =.     =       ===
+                                                                   =
 OMOOOOOOOOOMOOOMMMMOMOOMAMOMOMMOOOOMAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO11+++-+=-+------+++)11AMAOZ)1)))+)+)))1ZO
+= +=++++==- ==+    + --   - -  +=-=   +)+)+==+-)=)-++++++++++++++++++++)+++++)+++++++-                         -              )
+  .  ..            .                    .           .....  .. .. ...... ..... ......
+                                                                     =  ==        =
 MOMOOOOOOOMOMOOMMAMMMMMOAMOOOOOMOOOMAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1+++-=-- -=-===+=+Z1XZMMAM)))ZZ++M)))1AX
+ = --++==+ = -=        -  +==-- )++   =--=)=)==+)))+=+)+)+)++++++))++++++++++++++++X++-
+     ..                                        .     . . .  . ...  ..... .'..........
+                                                                   =     =.===  =  H
+                                                                          =        C
 MMMOOOOOOMMOOOMAMMOOOOMMOOOOOMOOOOOOMOOMMOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ))1+=-) -==))1O)1MMMMOMMZ1Z1X)))Z))1MAM
+   -+=+=-  )--    +)-+  =+++= =+-))- =-  -+-+))))+=+)+++=- =++++++++++=+++++++++++++++-               -      +
+                          ..   .          .      .     .    . .  . ... ....'..........
+                                                                     =    =.  =  =  =
+                                                                           =
 OOOMMMMOOOMOMMMMMOAMMOMMOMOOOOOOOOOMOOOMMMOOOOOOMOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOMX1))++---==)XOOOMOOOOMMXAZZO1)1)1)1MAMM
+==-    --+ =     -   +  + +)--=)=++ =++   =+++++ ==+)-+-+)+-  )++++++++++++++++++++++++              =-= )+==      =
+         .              .        .    .     ..                 ... .. ..............'.                    .
+                                                                      =   = ===    =.=
+                                                                                    =
 MMMOOMMMOMOOMMAMAAMMOOMMMOMOOOOOOOOOMOOOOOOOOOOMOOOOOOMOOOMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOMX)Z++-+---11AMMMMOOMAAAZ1OAXZX11MZMOAO
+   +=   + =+        --   + -=+++++++ =++==+=)=+ ==+++= =-- -  +)++++++++++)++++++)++++++                  =-      -         = =
+                         .      .      .                      . .... ..... ...... '....
+                                                                            = === .= ==
+                                                                                  =
 OMMMOOOOOOOMOOOOMMMOMOOMMMOOOMOOMOOOMOOMOOOMOOMOOOOMOMOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1)+---+-=++)1)MZZZ11ZMMZZMM11OZXMAOO
+-   =+=+=== =--=   - +-   =-+ -- +)+ =) ==) =- =++= - =++=+ =-++++++++++++++++++++++++++++                              -    -+
+       .                    .      .            ..      .     .... ...... ..........'....                                     .
+       =                                                           =       == =  == .=
+                                                                                    =
 OOOOOOOOOOOOOMMOOMMMOOOOOMMOOMMOOOOOMOMOMOXMOOOOOMOOOOOOMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ11=------===-=++X1))11ZZMZZZZAMMOOO
+===)++=-)+)=+  --   --+++  --  -+-+- - + +  ==++) -=+=++ +== ++)+++++++++++++++++++++X+++=                                  =++
+                                                         .    . ............ ....'.......                                    ..
+                                                                 =        == ==  .= =H =
+                                                                                 =   C
 OOOOOOOMOOOOOMOOOOMMMOOOOOOAMOMOMMMOOOOMOMMMOOOOOOOOOOOMMOMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMA)+=---  -  ----+1++1111OAZZXOMOOOO
+=))++)= =+=== =+==   -=++=-  - -   =--+ =   ==---=++=-=  + =  ++++=++++++++)++++++=++++++)+                         =    - =+++
+   .                    .                                      ... .. ..... ...... '...'. .                                   .
+                                                                             ===== .== .=
+                                                                                   =   =
 OOOOOOOOOOOMOOOOOOOMOOOOOOOOOOOMMAMMOMOOMOMOMOOMOOOOOOMOMOMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ)+---   -)  ++=++))1OZZMZMAMOOOOO
+)=+)++=++)) +==+++- ==+))-+=-+=     ) -- - + -+ ---=+= = +    +++++=++++++++++++++++++++++++=                     -       )+)=+
+  .            . .    .                             .         ..... ..................'.....                               .  .
+                      =                                         =      = =      =  = =.
+                                                                                      =
 MOOOOOOOOOOOOOOOOOOOOMOOOOOOMMOMOMMMZAXOXMMXMMOMMMMMMMMMMMAAAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM+=--    -  --=++A)1A1ZAOAOOOOOOO
+ -++)+=+-+++=+--+==-) +)=+--  = -      -      )               -))=+++++++++++++++++++++++++++=                        = ---)+++
+  .      ...                                                      ... ...................'...                               ...
+                                                                               === =  == .= =                               =
+                                                                                         =
 MOOOOOMOMOMOMOOOOMMMOOOOMMMMOOOMAMMMA1+1XMOAMMAMAMOZMAMXXM)11)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1+-)     - -==+1))ZOZMMMMOOOOOOO
+ )+=-+ + + + -=)+   -+=)    +=-           =       +           -++=)=++)+++=+++++++++++++++++++                    -     )+++)++
+  .                                                             .   .. ... .. ... .'.....'....                             . ..
+                                                                       =       ==  .  =  .= =
+                                                                                   =     =
 OOOOOOMMMOOOOOOOOOOOOOMOOOMMMMMOOOOOAM)1OMAZXOMMOAAXOMMMXA)X11OOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ=--- - 1--)+))ZAZXAMOOOOOOOOOO
+-+)-+-   =++==+=+=+-++ -++     -)---    )    =  =   -         )++ =)+++++++))++++++++++++++++++                      =-+++=++++
+              . . .                                            ..   .... ..  .......'...'......                        . . ....
+                                                                             =    ==.  =.=== =                              ==
+                                                                                    =   =
 OOOOOOOOMOOOOOOOOOOOOOOOOOOOMOMOMMOOOMAXMOXAMOMMOMOMMOOOOOZXMZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+=-------=+))1ZMAOMOOOOOOOOOOO
+=-+=--=- ==+-+=)+-)-+++-===+ - -  +=-    -   =  + -  +-=-=    +)++)+++++)+++++++++++++++++X++++)-                 - =+++)++++++
+                     .                                          .  ..... ...........'..'...'...                        . . ....
+                                                                              =  ===.  .= H. ==
+                                                                                    =  =  C=
 OOOOOMMOOOOOOOOOOOMOOOOOOOOOOOOOOMOOMOOOOMMMOOOOOOOOOOOOOOOOAOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX1==)-==+)+1X1ZAMOOOOOOOOOOOOO
++-=))  -++)=)=-==- +=+=+)+=-=-+-+ -= -==+   =-))=--+)))=)==- = +)++++++=++++))+++++++++++++++++++                 =++)++++++++)
+.                             .                                .  ..... ....  ..........''..'..'.                  .. . ......
+                                                                               =     ===.. =. =.                             =
+                                                                                        ==  =  =
 OOMOOOOOOMMOOOOOMOOMOOOOOOOOOOOOOMOOOMMOOOOOOOOOOOOMOOOOOOMMAOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZX)+))+111ZMMMOOOOOOOOOOOOOOO
++) ++=+-+  +=+)+ =+ ))+-==+=++=-= +=-  ))=+=+=)--=+ +===-=   + ++=++++++)+++++)++++++++X++X+++++++              ++)+++++++++++)
+.            . .      .                             .          .. ...... ..... .......'..........                  ...........
+                                                                                =   = .H =H=== ==                            =
+                                                                                      =C  C
 OOOOOMMOOMOOMOOOOOOOMOOOOOOOOOOOOMOMMMOOMOOOOOMOOMMMOMAZMMXZZZZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXM+1MZAXMOOOOOOOOOOOOOOOOOO
+++++=  -= -- ++)--== -==+=)+-+==+ =   -- =-=-= --   =           +=+++++)+++++++++++++++++X+XX++++)=          -)+=++++++++++++++
+....                                                            . ..... .. ....................'.              . . ...... .....
+                                                                                  =   = =H HH  .=                      =      =
+                                                                                         C CC  =
 OOOOOMMMOOMOMOOOOOOOMOOOOMOMMOOOMOOMOMMOMOMOMOXMXAO1XZ)1ZA1)1)1AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMMOOOMOOOOOOOOOOOOOOOOOO
++)++=   += = ==++=-= -))+ =  ==+ =+ +  - - - =    +             -++++++))+++++++++++++++++X++X+++++++=   =-) ++++++++++++++++++
+. ..    .                                         .               .. ..  ..........'.... '..'........         . ...............
+=                                                                 ==           == =. === .H=.H ==                     ====  =
+                                                                                   =     =C =C
 OOOOOMMMMOOOOOOOOOOOOMOOOOOMOOOOOOMMOOOMMOMMAAOXXZAZ1AA)1))))Z)1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++)+++    =++-=--=))== ==++= =+)-)=  -)-  =    -                 +++))+++=+++++++++++++++++++++++++++++++)+)+++++)++++++++++++)+
+. ..                                                              .  ... .............''.....'..''.... .   ..... ............ .
+  =                                                                      =         == ..=== =.==..  =
+                                                                                      ==     =  ==
 OOOOOOOMAMOOMOOOMOMOOOOOOOOOOOOOOOMMOMMMOMMMMOAMAMX1Z1)Z++1++))XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++==   =+ -=- - =++)-++-=+=-+-+  )   )    =                  ++)+++++++++++++++++++++X++X+++++++)++)+++++)+++++++++++++)+++)
+..                      .                                        . .. ... ...........'......'..'..' ..  .... ............. ...
+                                                                           =  =  = ==. =H =H. =. =.        =   =         = =
+                                                                                     =  C  B=  =  =
 OOOOOOOOMMOMOOOMOMMOOOOOOOOOOOOMOOMMOMMMOOOOMOMMMMMXMAX)+11)+)11MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++)+=+++=  - +== =  +=+-)=-+=++= --  -   ---- -                   ++++++++++++++++)+++++++X++++++++++++++++)++)+++++++++++++++++
+. .                .        .                                    ... ... ......'' .'.''.....'..''.'....... .. .................
+                                                                         == == .. =. .. =H= .= .. .=  =  =     ==  ==      =
+                                                                               ==  = ==  C  =  == =
 OOOOOOOOOOOOOMOOOMOOMOOOOOOOOOOMOMMMOOXOOOMMOOOOMMAMOXXZ))11+)1)AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++)=--+++= --= == +-+=+=+-== =   -+ -=-  +==+    +            ))+++)+++++))+++++)+++++++X++++++++++++++++)+)++++-+++++++++++
+.....                  .                       .                   ... .....  ....' ....'.....'....'.'...... . .... .......'...
+                                                                              =   . ====.  H==.====. . ==  =   = ==        .= =
+                                                                                  =     =  C  =    = =                     =
 OOOOOOOOOOOOMOOOOOOMOOOOMMOOOOAMMMMMOA1AMAAMZAMXZZMZX1)X))M++))11OOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++=+=+=== -=+--= ==+=  =)=)      -                            +))) ++)++)+++)+++++++++++X+XX+++++++++++++=++++++++)+++++++++
+..... .                                                          .    .. .. ... ....'.....'.....'..''..'.... . ..'. . ... ....'
+ =                                                                           =   =  .= == .H=HH .= .. =.  =  = = .     == ====.
+                                                                                    =     =C CC =  ==  =         =            =
 OOOOOOOMOOOOMMOOMMMMMMOMMMMOOOAAA11X1O)11111XZZ1)+))1)+)+)++Z++)+MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++-) ===-  =-      -    +-=       -                            +=++++++++++++++++++++++X++X+++++++++++++++++++++++)+++++++++
+.....                                                               ... .................'..'..''.''.......... ...''. .........
+                                                                         =   =  = =   == .H .H=.. .. ==  =   = == ..   = ==  ==
+                                                                                         =C =C == ==              ==
 OOOOOOOOOOMMMAMMMZXAAMAMMAMAXZ1M)1)1)1))+))))+X++++)))1==)++=+A)+AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++=+=-                                                        =+=)+++++++++)+++++++++++X++X++++++++++))+)++++++++++++++++++
+... .                                                              .   ........ .........'..'..'..'..'...  . ..................
+                                                                          =      == =  ==.=H. H. =.= .            ==  = == = =
+                                                                                         = C= C=  =  =
 OOOOOOOOOOMMXZXOX1XZZXXO1ZZ111MZ)X11)1X)+1)+++)++=+))M+=+)1)+1+111OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOO
+++)+-++--=     =       -                                          +)+++)+++++++)++++++++++X++++++++++++++ =-=+)++++++++++++++)+
+ . .                                                              . . .  .....  ..'.. ........'..'.....'.    . .. ...'.....'. .
+                                                                                = .==  ===H= =.==. ==  .          = =. ==  .=
+                                                                                  =       C   =  =     =             =     =
 OOOOOOOOOOMMAOXZZZ1Z1MZX1ZZ1OX111XX1M11Z)11)))++++)Z)+++)1)1)1)11ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMOOOOOOOOOOOOOOOOOO
+=)+++)++-+   +              =                                     ++++)+)+++)++++++++++++++++++++X+++X+++ -  +=))++++++++++++++
+  .   .                                                           . .  . ... ...........'..'...........'.        ... ..........
+                                                                                 =  ====.==.==== H=  H .             =  ==  ===
+                                                                                        =  =     C   C =
 OOOOOOOOMOOMMXXMAZXMXMXZZZO1Z11Z1MX1)))1))Z+===++Z+=++++)M)))))1MXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXZXMOMOOOOOOOOOOOOOOOO
++++++))= -=               =                                        +=-+++++=+++++++++++++++X++++X++++++++    - +))+=+++++)+++++
+.  ..                                                              .  ..... ........................'....      .  . ..... .. ..
+                                                                            =   =    === ==H====H===. =                 =    =
+                                                                                           C    C   =
 OOOOOOOOOOMMMMMMMAAXAMMMXMXZ11M11)))=+1=+==+==Z+++++))Z+)1)))Z111)ZOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX1ZAMMMOOOOOOOOOOOOOOO
++++++++++=                                                         - +++++++)++++++++++++++++X++++++X++++       -+++)++++++++++
+ . .. .                                                              ....... .  ........'..'.....'.......         .. .. .......
+    =                                                                            =     =. =. H= =.  H==                 ==
+                                                                                        =  = C   =  C
 OOOOOOOOOOMMAOMOMAMXMMMXXXZ11)A))++)=)====++=1X))+++1Z)+)1)))A11Z1ZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA11AMXMMOOOOOOOOOOOOOO
+++++++++)=   = +                                                    =+++++++=+)++++++++++++++++++++++++++        --=+++++++++++
+ .......       .                                                     ... ...   .........'....'..''..'...'            .. .......
+    =                                                                               = ==.== =.= .. =. ==.
+                                                                                        =    =  ==  =   =
 OOOOOOOOOOOMMMOMXOXAXMZZ1X11))))11++=Z+=1+)11+)+Z+++)1++A))++1111111MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1)Z1ZAMMMOOOOOOOOOOOO
+++++++=+=+-   -  =                                                   +++)++++)))+++++++)+++++++X+++++++++=         +=+++)+++++)
+......   .                                                           ... .      ....... ........'.....'..            ..   ....
+                                                                                    ===  =  == H. ==  .==                  =
+                                                                                               C=     =
 OOOOOOOOOOOOOOOMX1XZZA1111111M)))+))+Z+-+=))+)+++++=+)++111)ZA11XZ1ZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM))+1)1MAAMOOOOMOOOOOO
+++++++++-++====                                                      +++++++)++=++++++++++++)++++++)+++++           =+++ )+++++
+......   .                                                           ... ..   . ........'..' .'.... .....              .  . ...
+  =                                                                                     .==. =. = = == ==
+                                                                                        =  =  =
 OOOOOOOMOOOOOOMMXZO1111Z1Z1)1)1))ZM)+++--+)11-++)1)+++++)A))))111MXZXOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)+++))AMXMMMOMOOOOOOO
+++++++) +++)=-    -                                                  =+=+)+ ))+=++)+++++++++++X+++++++++++            = =+)+++=
+......   .                                                            .   .   . .. ...............'.'....                   ..
+  ==                                                                                = ==  == =H ==. .= ==
+                                                                                              C   = =
 OOOOOOOOOOOOMOXAXZZ1ZM1111))1))+)+++1++=+=+)M-+)+===A=++)1))X)1))XXOXOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ++++))111MXMOOOOOOOM
++++++++=+=-= +                                                     - ++ ++++++)+++++)++++++)+X++++++++++++             ---=+++
+..... . .    .                                                        . .....  ..... ... .. ..............                  ..
+ =                                                                             ==  =  =  ==  H  == ==  =
+                                                                                             C
 OOOOOMOOOMOMMMXOXZX1ZZ1M1Z))))+A)+))++=)+=+1)=+1)===++)Z)1)1)1MA1M1XAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)++Z+)11ZZMAMMOOMOMO
+++)++ +-= =    -                                                     +)-+=++++==++)+++++++++++++++++++++++               -+ + -
+'. ..                                                                .  . .  .  .. ........'.........'....                  .
+.                                                                         =         =  === . ==  =  =.=
+=                                                                                          =         =
 OOOOOOOOOOOOOMMAOXAAZX1A111Z1))1))))++=Z++11)++Z)++++))1)1))))ZAZZ1ZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)++Z+)))111MAMOMOMOO
++++)+-=--)++-   -                                                    +)-++++++)+)+++++++++++++++++++++++++               = = -=
+... .                                                                .    . ..   ...........'.........'...
+                                                                     =    =        =    =  =.  =     =.  =
+                                                                                            =         =
 OOOOOOOOOOOOOOMAAZXAAM1XZ111ZZZX)Z)11+=+=++1M++)1)))1)+)1Z)X)1ZMO11AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1A+=++11)X1ZXMMMOMMM
+++)=++)=++-)-+                                                  =    ++=)+++=)))++++++++++++++++++++X+++++=                +
+    .   .    .                                                       .   ..     .... .......'.........'...
+                                                                                =    =   == .= === =H .=
+                                                                                            =       C =
 OOOOOOOOOOOOOOAAAZOMMXXAXAA11MMMAM1Z)+=-=)+1)+))Z)1)1)))AM))))MOOZZXAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1++Z++)+)11OXXAMMMO
+=++++=+-=+=+==    )                                            ++    +)+)+=))++++)+++++++++++++++++++)++++=            )      =
+    .                                                                .   .   .... ................... ....
+                                                                                   =     = === =   =  =
 OOOOOOOOMMOOAAA1AOMOOAOOOMZX1MOMOAZMX1+)=++))+)11))X)111111)))OOOXZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1M+)++)=+M11AZMXOMM
+)+++)===  =-     + ++ --=     - =                             +++    +++++++++++++++++++++++++++++++++++++=                 -
+ . .             .                                             .     ...  ..... .........................
+                                                                             =         = === ===    =
 OOOOOMOOMAAZX))OAAMOOMOOOO111OMMOOMOOO)+=))ZM))11ZZM))++AAMM)ZOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMO))))+++++)))1ZM1ZMA
+-)++= --       -   += +=-+   +  -+ =+=                        )==+ -)+=+++=+)+++)++=++++++++++++)++++++=-  -
+                      .             .                                .     . ... .. ...........' ......
+                                                                           =     ==     =   =  .
+                                                                                               =
 OOMMMXMAZA11++1MM1AMMMMMMOXZAOOMMOMOOOM1)11ZOZ1AAMMOM1))XMOOZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMAMM))++))+)+)))))M11AZ
++)                       +   )+  - =++      +      -      +)  -++==++++++)+))+++)+++++++++++++++++++++
+                         .                                .         . .   .  ... .. .......'..'. ....
+                                                                             =         ==  .= .=
+                                                                                           =  =
 OOOMMXMXZXZ1Z1MAAMAAMMMXMOOOMOOOOMMMMOOOAMMAMMOAXMMOOMMZOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXAZZZ1A)++)+++))+)+)++M11
+=-+                      )=+ ++-+    )++      +    ++   + +++==+-=+=++)=)++++==+++++=+++++++++++++++++
+                                .                       . ..        ..   .. .  ..... ................
+                                                                                        ==  ==
 OOOMMMMMOZXAMOMOAAZMMAOXOOOOOOOMAAMOOOOOOOOMMOOMMOOOOOMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAA1)M)))+)=+X+=++1+)Z++1)1
+-=-     =    = +      + =)-))+=    -+=+=-+=  --  --))+  ) )+)++-+-)-)++++)+)++)++)++++++)++++++++++==
+               .      .      .      .                .     .    .    . ..   .. .. .. ... ..........
+                      =                                                =              == =
 OOMOOOMMMZOMOOMXZOXMMXMMOOOMMOOMAZOMOOOOOOOOMOOMOOMOOOMOOOOOOOOMOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOX1)+=+))===+=++++++)++1=)1
++= -+=    + =-   +      )=-  --   = -==))+-- -+ ++ +++ --=+++)+ ==+-)+ +++)=++++++++++++++++++++=== +
+                                                     .    ...          ...    ..... ....'. .....
+                                                                                 =      .   =
+                                                                                        =
 OOAMMOOMOZMOOOAXXMMOOMOOOMMMMMMMXZOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMA1)+1---=====+-+=+++)+)+++++
+==   =) -  ++=     -+ ==)         + ==--+)-))=+=+)+==+=-++++++)-)-=+++=)+++=+++++++++++++++++++)+
+                    .             .     .     . .    .    . ..     . .  . . ... ...... ........ .
+                                                                                         =    =
 OOMMAXOMMAOOMOAAMMMMOOOOMMMOOOMMZXOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAZM1)++)- ----=Z--=+=++A+++=+++
+--    =   =) =      )-==   ++-    + ===+++=++)+)+)+==)+-=++)+++++ =+-))+)+++)++)+++++))++++++++
+                                        .  .. . .            .. .  .   . . . .  .....  ..... .
+                                                                                    =
 MMMZXZMMOMOOOMMMMMMMOOOMOMMMOOOAMAAOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZAX11+==--  +-======++1++1++++++
+        - =+-       +-+ =   -=+    = =-++)=++++++==+=++)++=-++)+++++=))+==)+))+++++++++++++++-
+                    .                  ..  .....     ..     ..  .  .       .  ........ ......
+                                                                                  =
 OMOAMMAOOOOMOMMMOOMOOOOOMMMMOMOMMOAMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOAOOOOOOOOOOOOOOOOMOZZ1)+===- =  -===---=+))+)+=++))
+) =    )=== =   =- +=+--    = +  +    ++))++++)++++=)+++=-++=++)=+)+ )++))+) +++++++)++)++)=+ )
+                   .          .       ..  . .. ...    .    . ..    .      .   ...... .. ..
+                                                                                     =   =
 OOOMMMOOOOOMMMMOOMMOOOOOMMMMMOOMMMMMOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOMOZZZZZ)+1=--- - --=-----Z+=+=+++1--
++++   -+-+-    -+  ====+     -=     -++)+=+)+++-)+)+=+-- =+))=++))++=-+++++- +++++)++++++++ +
+.      . .             .             .  . . ..   . . .    .   ..  ..  .....  .. .. ..... .  .
+                                                                        =
 OOOOOMOOOOOOMMOOOOOOOOOOOOMMMOOMMMMMOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXM))1)1+=)---------------+-=-==+=A---
++)=++ ++++-=  -++====+--++   =+     =++++)++++=+)+++++== +)+=+++++++-+++++=+++)++++++++)+
+.  .  . .       .             .      ...  ....   .....   .   .. ...   .... ..  .. ..... .
+                                                                       =
 OOOOOOOOOOOOOMOOOOOOOOOMOOOMAOOOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)))++)+=--=---- +=+---=------=)===---
+++-)++=)--)=+ -=-+))=+) )=-  )=-- = ==+++)+++++++++++++=-=+++++)=+++)+)++)++++++)+++++++-
+..  ..                                ... .  ....... ..   . ...  ...    . ...    .......
+                                             =                            =
 OOOOOOOOOOOOOOOOOOOOOOOOOOMMMOOMOMOOMOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1))+==+--------   ----=-------+--=----
++++)++++-+++====-++=)+==+-   =+ - -= ++++++-++++++)+++) -++)+++++)+++++++=+++=+)++++++=+
+.   .. .         ..                  ...... ...... . .    . ... .  ...... ... . . .... .
+                                          =        =
 OOOOOOOOOOOOOOOOOOOOOOOOOMMMMMOMMAOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ1+))--------- -    =-------==---=-----
+++++++)+==)+=--)+))=+=+)+     -   +=)+++++++++++++++++) +++++++++)++++)++)))+++)+++++)=
+.....                 .              .......  ........   .... ... .. . .    ... .....
+                                          =                                        =
 OOOOOOOOOOOOOOOOOOOOOOOOMMMOMMMAXMOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1A)++-----       -  - - ---------)------
+++=)+++=--+)=+)+==+++++=   +      +)++++++++===++++++)) +++++++))+++++=+++)++-++)++++=
+..  .        . .      .             . .....    ......   . .....  ..... ... .. .. ...
+                                                    =                      =       =
 OOOOOOOOOOOOOOOOOMMOMOOOOMAMAAMOXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOM)+++=--=-      -  --- ---------+---+---=
+++)))++)=+=+--+++  = =++=      -  -+))+++++++=+++++++++-+++)+)=++)+++ ++++)+++++++)++=
+..   .   .      .                  .  ... .    ........  .. .  ..  .. ....   .....  .
+                                                 ===            =                =
 OOOOOOOOOOOOOOOOOOOMOMOMOAMMAOMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)++=-=- -        - --+-   -- -=--- ---+--
+++)+=++=+)+++==+++- - + -    +    -+++)+)++=)++++++++)+-++++=)+)++++++))+)+))+++)+)++
+.. .           .             .     ..  . ..   ......'    ...  . ... .   .    ... . ..
+                                       =        =   .           =
+                                                    =
 OOOOOOOOOOOOOOMOOOOMAAAOMAMZAMMAMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1+1---              -+=   -   --------=--
++++++)==++++== =--+    =         + ++)++++++-++++++++++=)-+++)++++)+-++)+)+)+=++++++-
+. ...     .                           ... .   ........    ...    . . .  . . . ......
+                                                =    =                        =
 OOOOOOOOOOOOOOOOMMOMOAAOXZAAMMOMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ1+-+- - -       -  ---  -  -  -----=-- --
+++++++++)=)+====  = -  =      =   =+)+)++++++-++++++++-+++-++=+)+++++++=))++)++)++++
+.. ..                              . . ..     ........ . .    . . .. ..   .. .   ...
+                                     =                                       =
 OOOOOMOOMOOOMOMMOOOMXMAOZ1OZMMOOOOMOOOOOOOOOMOOOOOOOOOOOMOOOOOOOOOOOMOOOOOOOOOOOOOOOM1))--- --            --    -  -----+--+-
+++))+ += +++ -  +++    -  +   -==) +++++++++ )+++++++++) )+)+)+=++)) +)+)+))++++-++=
+.   .    .      . .       .        . ....     . .......   . .   ..   . . .  .... ..
+                                                =                             =
 OOOOOOOOOOOOOOOOOOMOMMMMXXOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1+--=  --=          =        - -==---+-
+++=+==+)+=++=-==-= =      - -+-=+=-+++++++++=++)+++++++))==+=+)+==+)++)+=+++++=+)++=
+..                           .     .. .....     .......      . .  . ..    ....
 OOOOOOOOOOOOOOOOOOMOMOOOXXMAOOOMOOOOOOOOOOOOOOOOOOOOOOOOMOOMOOOOOOOOOOOOOOOOOOOOOOOM1)=---   -- =  =       -     - -=---- --- -
++)+)=+))=+=-++)=+= = =-=    ++= -)++)++++++)+=+)++++)+)+ += ++++)+=++)))=)+)++)+++=
+.    .      .                      . .  ...      ... . .     ... . ..     . .   ..
+                                                  ==               =
 OOOOOOOOOOOOOOOOOOOOAMOOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOM)1)1 -- - --            -  ---- ----+- - - -
+++=+=+======-=++)+=-  +)- + -+++++=)+++++=)+=++==+++++=  )+-+)=+)+++-++=+++)=+++++
+.  . .                .      .   .  .  ..    ..   ....      .  . ... .. ...  .....
+                                                  =                     = =
 OOOOOOOOOOOMMMMMOMOMAMOOMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ)M-   -  -           -    ---- ---= -+  - -
++++)==-=++-     ) -   =)     ++====-)+++-+++=))=+++))+ )-+--)-)+)++++))+++)++++++-
+..       .                    .       .  .      . .      .     . ...   ...    ..
+                                                                   =
 OOOOMMOOOOMAMMOOMOOAZXOMMMMMOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMX11=-- -     -        -   -=- =   -=--+ -  -
+++))  -=)=    -= =+   +     -+++--= +++=)+=-++=-+++++-++++++-)+++++)))+++++=++++
+..                    .      . .    ...  .  ..  .  .      .   .....   ....   ...
 OOOOOOMOOOAAOMMZOOOMZAAOOMMMOOOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOA1)-)----                - --=     --=
++++=== =))  =   -)+    =-   -=+) = =+)+++==+++++)+++=)+==)+=+))+))+)++)+++) ))+==-
+...                           .       ...   ...  . .      . .     .  .   .    .
 OOOOMMAMOOMMMMOMOOMMXZOOOMMMMOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMA)+=-         -            --  - -  +-- -- =
+++++    =-    = -=    -==    +++  =+=)++=++=+)-)+++++-))++++++++++++)+=++)==+)+-=
+....                                  .         . ...    ... .. .... . ..
+  =                                   =
 OOOOOMZAMMAOOOAMMOMO1ZMOOMOMOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOMMOM)+=-                -           =- --   -
++=+++      -+-   = )   -= ) =--)++)+==++=)+= =-+)++-++)++)+++++++++++++=++= -+-  -
+. ...       .                    .    .        . .  ..     ...... ..... .
+                                                           = =
 OOOOOAO1ZMXMMOOMOAMXZOMOOAMMMMMOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOMXOMOMMM+A+-- -              = -  =   --  = ---   +
++++++ -      += -    + --      =-+)+)++==-+--= ++++++++))++)+++++=)++++)--  + =
+.. ..        .                       .          .. .  .  .. .....  ....     .
+                                                         =    =      =
 OOOOOO)1ZXXAMMZZAXAXMMAOMXXMMMOOOOOOOOOOOMOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOMOAOXMAMO))+--    -        -       -  + =     --=  -
++++++)                 +      -=+=-+=+--+ +-=  =+++=+++++++++++)+=)+++))= = +    =
+.. ..                              .      .     ...  ...... ... .  ...      .
+=  ==                              =                        =      =        =
 OOOOOO)1AMZMA111XZZOXAMMMAOXAMMOOOMMOOOOOMOOMMMOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMXZAMMX+-- -  +  - -           =  =-      - =  -
+++++++             +      =    )=+  ==)-= ==   +++)=++++++++++++-)))+++-- +
+. ...              .                           ...  ............     ..
+=  =                                                 =
 OOOOOOAOOOMM11M)1Z1AXMMMMAAAAOMOOOOOOOOMOOOMOOMOOOOOOOOOOOOOOOOOOOOOOOOOMMMXOAZAXO+===--    +        -          = -  -- --   =-
+++)+++ ---                   - -==--++) )+= -- )+))+++++++++++++)++++)=-    +    -
+.. ...                                             .............   ..
+ =
 OOOOOOOOOOOA11111XZXX1XMAAXM11AMOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ111ZMA)=-- ---   -      -       -         -  )-  ---
+)+++++==)++                     ==)-)++)=+  =-)=++++++++)+++++++)+++)---+
+ .....   ..                          .   .      . ...... ..... .  ..
+     =                                                =     =
 OOOOOOOOOOOOMXZ11Z1Z1)1XMAXMXZZMMMOOOOOOOOMOOMOOOOOOOOOOOOOOOOOOOOOOOOOOMM1ZZ1Z1)=---  -    =  -       - -  --      -    -  -)-
+++++++++=)+=                      =+)+==++ -= +++++++++++++)++++++++)++=
+.. ... .  .                        . .   .     ............ ..... ..
+=  =                                                  =  =  =
 OOOOOOOOOOOMAXXXZ11ZM11MMZXOXAAMMMOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOMM11O1)1+=--+-  --   =  =       -    -    -  +-  -   ---
++++++++++)+                -      +++++)==+= -+)++++++++++)+++)+++++)=+    +
+......... .                         .         . .......... ... .....
+== ==                                                          =
 OOOOOOOOOOOOOOMAMZ11XXZOMAMZMOAOMMMOOOOOOMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOMM)11))++--+-   --  -=-  =   --               -  --  ---
++++++)++++++-=         +     - -   =+++== === +)++++++)++++)+)++++++-+=
+..... . . ..                         .        .  ..... .... . ...... .
+                                                        =       =
 OOOOOOOOOOOOOOOOOMZZ11MZOMAAMOAOMOMOOOOOMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1))=++Z----   -    =  =   - =  -    -     -    --  --
++++++)++++++++++-       -    - - - -+=+)   =)=+)+++++)++++++=++)+++=+=+
+..... . ..'.....                    .         . ..... ...... .. ...
+          .                                                     =
+          =
 OOOOOOOOOOOOOOOOOOAMXAOXMAZAMOAMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ1))--++---   +        -  =    -               --   -  -
++++++)+)+++++++++)    =      )  +  ++-++=--))))++++++)+++++)++++++++++
+..... . .........                   .          '....  ..... ... .....
+=           ==  =                              .       =         =
+                                               =
 OOOOOOOOOOOOOOOOOOOOMZOMAX1ZZOMMOAMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ)+=-- Z--  -  -        -    -  =                -
++++++=++++++++++++)=  =      -  -  + +=)--==+++)+++++++++++++)+++++++--
+. ... .......'...                           ... ...... ...... .....
+  = =     == .                                =     =
+             =
 OOOOOOOOOOOOOOOOOOOOOOMMMZAMMMMMAMOOMOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOMO1+==---A- -    -       -   +-  -                -- - -
+++)+)+++++++++++++=++)            -- -- - ))+++++++++)+++)+++++++++++ +
+ . . .......... .  ..                       ...'..... ... .........   .
+     =      ==                                 . =    =         =
+                                               =
 OOOOOOOOOOOOOOOOOOOOOOMMOMAAAMAOMAAXMMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOMMZ)Z==--=- -             - --    -  -           -   --   =
+++)++++++)+++++++++++-  -      )      +  --+++++)+++++++++++++)++++)
+ . ...... ...........                      ..... ...... ...... ....
+          ==  =                                       =
 OOOOOOOOOOOOOOOOOOOOOOMXOMOMAMMAOZX1AMMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOA11+=+--)--      -   --  =    -  =                +-+  --
+=))++++)+++)++++++++)+  ) -     -      =  =++++++++++)++=++)+++)++=+=
+    ... ... .. ... .                        .....  .. ..  . ... .. .
+          =                                 ==
 OOOOOOOOOOOOOOOOOOOOOOAMMMOOOOMXMZM1ZZAAMOOOOOOOOOOOOOOOOOOOOOOOOOOOMO11+==---       -       -   = -  -                       -
++++=+++++++++)+++))++=    ----           -+++)++++++)++++++=+++++=++ )
+... .. ... ..      ..                     ... ...... ...... ....' ..
+                                            =                   .
+                                                                =
 OOOOOOOOOOOOOOOOOOOOOOMOOMMOOOOMOMM1ZOZAOMOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ1Z+-+     -       --      -   -                        -
++++)+=++++++))++)++++= )-  )++= -    -  - +++)++)++++++++++++++++++)=
+... .  ... .  ..  . .                     ... .. ...... ...........
+  =                                            =
 OOOOOOOOOOOOOOOOOOOOOOMOMMOOOOOOMMXOZZAXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ+=- -            -=  -  --   -  -                -    -
+++++-+=++++=++=+++)+++ +  +)+)=-   -    )++++++++)+++++++++++++++++)=+
+....    ... ..  .. .        .            ..... .. .. ............    .
+                                          =            =
 OOOOOOOOOOOOOOOOOOOOMOOOOOOOMOOOOOAXZ1XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX)1---    -       --- -)--=    =                  - -  -
+-+++=+==+)+)++=+++== -)=+=)+ +===-     ))++++++++++++)+++++++++++)+=+-=
+ ... .  . . ..  ..                       ........ ... .. ........ .
+                                                                =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMZMXZXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)+---             =- ----    +  -                     -
++))-+)=)++=++++)+=)-++)++-=-+          =)++++)++++++)+++++++++++++=)=+=
+.   .      ..   .      .                 .... ...... .. ... .....    .
+            =                              ==  =          = ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMZXZZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)=---   -      =  - ------  -
+)++-++=+==-++++=+==++==+=-==+          =++++++)+++++=++++++)+++++)=))+==
+ .  .      ...     ..                   ...... ..... ... .. .....    .
+                                          ==                ===
 OOOOOOOOOOOOOOMOOOOOOMOOOOOMMMMXO1ZZAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMM1=-+-+--        -- ---- =  -
++++=+++--=+))+ +==+)) =+=++     -     =+++++++++++++++++)++++++)+)))====
+    .        .    .      ..            ................. ...... .
+                                            =   =    =
 OOOOOOOOOOMOOOOOOOOOOMMMOOMMAZ11X1ZOXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMX))-----  =    -  -+-+-                            -
+))-==++-+- -)++=====+   --         =  ))+++++)++++++)++++++++)+++=+))==-=
+      .      .      .                   ..... ...... ........ ... .
+                                           =  ==     =   =     =
 OOOOOOOOMMMOOOMMOMOMMOXMXXM1))11ZM1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOX)+=----    - -- ----  -
++-++)-+-   +-=  = -  -              )=++++++++++++++++++)++++++)+)++++)-- =
+.                                     .................. ...... .    .
+                                      ===    == == =       =  =
 OOOOOMOMOAXMMMMAOXZZZ11A1)+)1)1OXAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOMMMAZ)+=-+- -- -----)--         -            =
+++++- - )       =              +    ++++++++++++)+++++++++++++++++++ +=+--
+..                             .    ..... ....'. ..... ...... ....
+                                     = ==     .  ===      =    =
+                                              =
 OOOMMAXXZOXMMAMXAMZ1Z))1A))A1ZMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOOMOMMAMMOMX)+=--=----=+==--     =                   -
++-+      +                     -  ))+++++))++++++++)++)+++++++++)+++ == -     =
+  .                                 .....  ........ .. ...... .. . .
+                                    ==     =  == =      =   =
 OOOXXMMAAOMMMOMMOZXZXZ1MMZZZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOMOMMMMOOOOAX1)1+----+)X--+-                           --
+-+=      =   -  =             ===))++++++)++++++++++++)++)+))++++++=  = -    --==
+ .                                 ...... ............ .. .  .....
+                                    =  =   = ==  =     ==     ==
 OOOZXMAMMOMOMMMOOOMXAMXMOMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOMMAOMOOOOOOZ1)+++)Z==--+                          -=-
+--+      + -   -)=      +    ==+++++++++++++++++++++++)+++++)+++++++ -=++=   = -)+---
+                               ....................... ..... ... .
+                                 =    ===  = ==  =     ==    ==
 MOXMAOOXOMOOMOMOAOMAOMMMMMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOOOOMMOMOOOOOOOMMXZZX)+X--+-                 -     =-=-
+ =   -- - += - - =  +      = -==++++++++++++++++++)+++++++++++++++++ - ))=+-  = +)=++)-
+          .         .           .................. .......'....... .            .
+                                = =   ===       =    = =  .= =
+                                                          =
 MMMMMOMMOMOOOMMMMMMMOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOXM1==-- --  -            -    - -=
+     =  - =--       ++-  --++==+++++++++++++++++++)++++++++++++)++)+--+=)=++=-=+=-=  -++)+=--
+                    .          .'........... ...'. ............ .         .            .
+                                .====        =  .   = ==     =
+                                =               =
 AMMOMMMMMOOOOAMMMOOMMOOMMOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOMOMOMOOOOOOOOMMX111+)-=---=--+-   - --== -----
+   +     =+--    )-  ++  =- ++++++)+++++)+++=++)++++++++++++++++++=== ++++-++=++= = = =+++)))+
+          .                   .... ..... ... .. .......'.........     . .   .            .
+                                =  ==    ==   =        .= =   =
+                                                       =
 XOMOOMOOOOOOXAMMOOOMMOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOMOMOOOOOOOOOOOOOMOMA1ZM))1++=-)=- -=--Z----=+
+ + =+ =-+=+-    ==+  -++++- +)++++++++++++++++++++)++++++++++++++)-)==+++- =+++)== + =+=++++++-+=+ =
+ .                            .................... ........ .. ..     . .    ..       . ... ..
+                              ===     =  = =    =     =
 XOMOOOOMOOOOAAMMOOOMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMXZM))M+=)+++)X=+++)
+ - +-+- ))+-    -+-  -==++=--+++++)++++++++++++++++++++++++++++=++- =+=))+ =++++=-=+=+)+-++++))=++-)++++=
+                 .      .    .'... ........'...........'..... . .    .   .  ...      .   ..          .
+                              .= =   ==== =.=    == == .==
+                              =            =           =
 OOOOMOOOOOOMAXMMOOMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOOOMMMXMMZXXA1ZAAXM
+)-=+ )=+)=+     -= -  =-===-++++++++++++++++++++++++++++++=+++++-+)++)+)+)+)++ )+))++++)=)++=+)-+=  =+++++-==+=
+                             .............'' ............. . ..  .  . . .   ..  .  ....   ..         .....
+                             ==  ==      =.. =   =  = ===                   =       =
+                                          ==
 XMOMOOOOOOOOMOMMOMOMOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMOOOOOOOOOOOOOOOOOOOOOOOMOOOO
+  - ++)++)=- +  - = =- = )=++++++++++++++++++++++++++++++++++=))-)+)))+++)++++)+)+)+=++)++++++++   =++=+=+)+-)+=)-+-+--++) -==+
+     .  .                   ................................      .    .. ...  .     .. .. .                      .           .
+                             == ==      = == ==     = ==
 AMMMMOOOOOMOOOOMMMMOMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOMOOMOMOOOOMOMOOOOOOOOOOOO
+     +=--+ -=--    = +  =-+++++++++++++++++++++++)+++++++++++++))=+++=+)++++++++++=+++++++)++))==+ + ) -+ + +)-+ ) +)++++++++++
+                          . .............'....... ............    ... . .......... ..... .  .             .        . .. . . .
+                               =   =  = =.= ==  =  =  =  =                =
+                                         =
 MMMXAMAMOOMOOMMMOAMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOMOOOOOO
+        -= -=   +    --=--+++++++)+++++++++)+++++++++++++++=+++++++++++++)++++++)+++++=++++-+=)+)=+=+= ==--==+-+==++++++ ++++=+
+                .           ..... .'....... ...........'... .. ... .. ... '..... ..... . ..    .             . .   ....  ..   .
+                            === =  .=  = =   =  =  =  =.=               = .=  =     ==
+                                   =                   =                  =
 MOOMAMAMMOMMMMAXOAAOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOMOOOOOOOOOOOOOOOOOO
+ ==      -      =  )  -+)-+)++++++++++++++++++X)++++++++++++++)+++++=++++++++=++++++++++++)+)++==++))+=+  =+ +)++++=)+)=++=)+++
+                          . ...... ............ .....'.... ... .....  ...'... ... ...... . . ..   .            .. .  .   .   ..
+                                ==  ====     =H ==  =. ===               .     =                                             =
+                                              C      =                   =
 MMMAMMOAMAZMAMMZXZXMXOZZZ1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      -              -    =+++++++++++++++++++++++++++++++++++++++++)++)+++++ ++++++++)++++ +)+ =)++++)+-=)))))+)+++++=++++++++
+                           ...'........................'.. ..... .'. .. .'... ........ .      .   .... .         ..... ...  . .
+                              .        == =   = === =  .=    =    .=    =.      =    =
+                              =                        =          =      =
 OOMAMOMAMAAAOAXAXMXZA))))ZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+--   +      +              ++++)+++++++++++++++++++++++++++++++++++++++++++++)++++++++)+++)- + +)+)+++=++-)++++)+)++++=+++++)++
+            .              .... .................'.................... .'.... ........ .     .   .  ..  .   ... . .... ... . ..
+                                   ==  == =  =  =. ==        ==  =      .==      = =                         =                =
+                                                 =                      =
 MMMOAAAAMMOMAAXAAMAXX1X11XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOO
+   -      +               -+))++++++++++++)X++++++++++++++++++++++++)++++X+++++++++X++++=+++-+ ==+)+++ ++++=+++++++=++++++)++++
+                              ............ ..........'.............. ...... ............ ..      . ... ...  ......  .....  ...
+                                 =      == H ===  ===.=        =   =   ==H   =   = H                    =               =   =
+                                           C         =                   C         C
 MMXAMXAAOAMMXAAAOMMXZXZAAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+        -       +         +++++++++++++++++++++++++++++++++++++++++)++++X++++++++++++)++)+) + +=++++=)-++)=++++++))+++++))+++++
+                            ..................'.'........... ...... ...'............. .. .  . . .. .   ..   .....  .....  ... .
+                              =    =   =    ==. .  == ==  =   == =    =.H ==  == =  =                                 =    =
+                                              = =                      =C
 MMAMMMOXXAAMAOAAAAMAOXZZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOO
+      +      =      -     )++++++++++++++++++++++++++++++++++++++++++++XX+++)++++++++++)))+++++=))+)++ -++)++++++++++)+++++++++
+                           ..................'..'...'.... ...........'.....' ....'.....     . .   .  .  .. . . ...... '....  ..
+                                === =        . =.=  .===     ==  =   .=HH =.   ==.  =             =  =           =    .====   =
+                                             =  =   =                = CC  =     =                                    =
 OOMMMMMMMAMAAOMAMMMMOOMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++-           +      )=   =+++++++++++)+++++++++++++++++++++++++++++)+++X+++++++++++++++)++-+++++++++)+=)+=++++=++++++++++++++++
+             .             .......... .....'.....'..'.'............ .'..'..'........... .. . ......  .  .  ... ..... ..........
+                            =   =  =    = =. =  =.  .=.=  =  ==     =.=H. =.  == ==               =               =   ====   ==
+                                           =     =  = =              = C=  =
 OOMMMMOAMAAMMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+==    =      -=- ==++=+==)+++++++++++++++++++++++++++++++)++++X++++)+++++++++++++++)+++=++++=++++++++++++=++++++++++)++++++++++
+                          ......'............'.........'. ......... .'.''.'........ ... .  .  .  .. ..  . ...... ... '..'......
+                           =    .=  = === == .= ==  ===.  =  =H ==  =. ..=.== ====                   =               .= .
+                                =            =         =      C      = == =                                          =  =
 OOMMOOOMMMMMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++  =-=     +=+ -+-)++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++))++)++++)+=+=+++++++++++++++++++=+++X+
+.                   .   ....................'...'....'...............'''.....'.'.......    . .... . . ..... .'......'.... .....
+                               =  == == ==  .= =. ===.=  =  = ====   ...==  =.=.= == ==      =               .   = =. ===  ==H
+                                            =   =    =               ===     = =                             =      =        C
 OOOMMOOMOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=)-  =- + - -)+=+=--+-)++)++++++++++++++++++++++++X++++++++++++++++++X+++++++++++++++++++)++++++++=+++++))+++++++++++++++++++++
+        .                  ...........'.''..'..'...'........'.... .''.'..'..'..''........ . ... ..  ....  '....................
+                            =  ==     . .. =.==.= H. =      .==== =..H.  .  .= .. ==    =    =      =     .  ==  =  ==  =  =
+                                      = ==  =  =  C=        =      ==C=  =  =  ==                         =
 OOOOOOOMMOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++=+--+=  +--+-+=+-+  -++++)++++++++++++++++++++++++++++++++++++++++++XX+++++X++X++++++++++++++)+++++++++=++++++++++++++++++++++
+  .  .                  .. ...''............'...'..'...............''.............'........  . ..  ..... ..........'........ .'
+                           == ..  ==  =  = =.  =. =. ==     ====  =..HH  ===H= H =.= = =               = == ==  == .     ===  .
+                              ==            =   =  =               ==CC     C  C  =                                =          =
 OOOOOOOMMOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++=++-=-  +++==+-+ ----)))+++++++++++++++++++++++++++++++++++++++++++X++X+++++X+++X++++++++++++)+++=++)++++++++++++++++++++++++X
+         .               ...........................'.'............'..'...''....'...'....... . ... .. .....'..'...'... .'......
+                              ==  =   = ==  == === =. .=    ===  = .H=.H =..=H= .H  .  =  ==        =  == =.==.= =. =   .=  = H
+                                                    = =            =C =C  == B  =C  =                      =  =   =     =     C
 OOOOOMOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)++=+ =--=++-= +-=--=+==)-++++++++++++)++++++++++++++++++++++++++++X+XX+++++++++X+X++)+++++++))++=+++++++++++++++++++=+++++)+X+
+               .          ....'..'.... .'.'...''.''...........'.............'..'..... ....' .  .. ........'.....''... ...'. ..'
+                           =  .  .  ==  . .== .. .. ==== = == .= ==H HH == =.= .H H=   = =.        =   = =.===  ..     ==.  =H.
+                              =  =      = =   == ==           =    C CC     =  =C C       =               =     ==       =   B=
 OOOOOOOOOMOOOOOMOOMOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++=-=+== )=+=- =+ +=+= -++++++++++++++++++++++++++++++++++++X+++++++++++++++XX+++++++++++++++)++++++++X++++++++++++++++++++++X
+...                . .    ................'..'...'..................''.''..'....''........'..  .........'..'.....'. ...'....''.
+                          ==  = ==  =  == .= .===.  === = == H   ===.. .. =. HH ..  =     .         =  H. =.   = .  =  .= ==..H
+                                          =  =   =           C      == ==  = CC ==        =            C=  =     =     =    ==C
 OOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++)+++-))===  +-+-==-====+++++++X++++++++++++++++++++++++++++++++X+++++X+++++X+++++++++++++++++++++++++++++++++++++++++)++++X++
+ .                       ....................'...............'.....''.'.'.''..'.''........... ..........'.....''....... .......
+                          = ==  H   = == == =.= == == =   =  .= =H ..=.H. ..=H. ..= =  = == =     =  ===.= == .. ==  == ====H =
+                                C            =               =   C == =C= == C= ==                      =     ==            C
 OOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)++-++++++ +=-===-==+=++-++++++++++++++++++++++++++X+++++++++X+++++++++++++++++++++++++++++++++++++++++X+++++++++++++++++++++++
+  .   ..                 ....'...'.......'..'.......'.....'.... ''.''..'..'.....''.'...'..... ........'...'.'............''.'.'
+                          =  .  =. =  == .= .===== H.===  .==H= .. .. =. =. ====.. .=  . ===       =  .H =.=.== =  = = = ..=.=.
+                             =   =       =  =      C=     =  C  == ==  =  =     == =   =              =C  = =            == = =
 OOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=+ =+++-==+=+--==+=++++++++++++++X)++++++)+++++++++++++++++++X+++++++++++++++XX+++++++++++++)++++++++++++++X+++++X+++++++++++++
+          .      .    ............ '..... .'.'...'.''...........'...''.''..............'.... ...........'.'.............''''..'
+          =             ===    ==H .= === =. .   .=..  =  == H =.=  .. .. == HH ====== .   =  ==    == =. .H === H=  =  ....= .
+                                 C =       = =   = ==        C  =   == ==    CC        =                = =C     C      ====  =
 OOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=--= +++-=====+-=+-+)+++++++++++++++++++++++++++X++++++++++++++++++X+++++X+++X++++++++X+++++++++++++++++++X+++++++++++++++X++++
+       .           . ... .....'..'..'.'..........'.'''.......'..''..'.''......'.''...'....'........'...'....................'.'
+                         =    . =. =. . ===  == H. ...==  == .= .. H. ..=H= =H. .. = .H=  .     == .  =.= H= =   =  ==    H=.=.
+                              =  =  = =         C= ===       =  == C= == C   C= ==   =C   =        =   =  C               C = =
 MMMOMMOMOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+   -  = ===+-+  -)=)++++++++++++++++++X++++++++++++++++++++++++++X++X+++++X++X+++X+++++X++++++++++++X++++++X+++++++++++++++++++
+                    . .......................'..'..'......'...'...............'.'.......'..'..'..'....'...'..'......'..'......'
+                         ==  = ==  == H= ====.  .==.=  = =.= =. =H==H==== H= H. .H ==  H.==.  . =. =H=.== .H .= == =.  .=  = =.
+                                      C      =  =  =      =   =  C  C     C  C= =C     C=  =  =  =  C =   =C =      =  =      =
 XMMAOOMMMMOOMMAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+    =-    =+     -)=++++++++)X++++++X++++++++++++++++++++++++X++++++X++++++X++++X++++++++++++++++++++++++++X+++++++++++++++++++
+                    ........ ..........'........'...'.....'...'.''....''..'..''..'..'..'...'.'......'..'..'...'...'.....'..'..'
+                       =  =  H  =   H= .= =  == .=  .  == .= H.=..= H=..  .H .. H.= .  .= =. .= ==  .==.= .H==.  =. == =.  .= .
+                             C      C  =        =   =     =  C= ==  C ==  =B == C=  =  =   = =      =  =  =C  =   =     =  =  =
 OMMAAAMOXAMAXAOMAAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=      -      -    -++++++++++++++++++++++++++++++X+++++++++++++++X++++++++++++++X++X++X++++++++++++X+++X++X)++++++++++++)+X+++
+                    . ....................'.........''..'..''.''.'..''.''..'.''.'.........''..'..'...'...... .'.......... ...''
+                           =     == == == .== == =H .. =.= .. ..=.H=.. .. =. ..=.H==H= H= ..==.= .= H. =H==H  .===  =   =  H ..
+                                          =       C ==  =  == == =C == ==  = == =C  C  B  ==  =  =  C=  C  C  =            C ==
 AMMMOAMMAAMMMXMZZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+    +              +==+)++++++++++X++++++++++++X+++++X++XX+++++X++X++X+++++++++X+++++X++++++++++++X+++++XX++++++++X++++)+X+X+++
+                   .    ....'.'.........'..''..............''...'.....'.'''''...'.'...'.''.''.........'........'....... ......'
+                           =. .= =H ====.= ..  H === H  HH .. =H.=H==H.=.....= H. .==H. .. .. ====H= =. HH  =  .  H= =  =H=H==.
+                            = =   C     =  ==  C     C  CC ==  C= C  C= =====  B= =  B= == ==     C   = CC     =  C      C B  =
 MMMMMMMOMMOAXXMM1AMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+       -  -         +-++++++++++++++++++++++++++++++++++X++X+++X++X++X++XX+++++X+++++XX++++++++++X++++++++++++++++++++++++++X++
+                      ...........'......'.........'.........'.'..'..'......''.'..''.....'..''.'...'.''..'''....'.'..'....'.'..'
+                        =  = ==  .= == =.== = == =.  = =H= H.=.H .H .H= HH=.. .H=..==HH .  .. .= H. ..  ...= ==.=.= .  ==. .H=.
+                                 =      =         =     C  C= =C =C =C  CC == =C ==  CC =  == =  C= ==  ===    = =  =    = =C =
 AMOMMAMMMOAXAAMMMMAAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+  -      -          ++++++++++++++++++++++++++++++++++++++++XX+XX+++++++++++X++X+++++X++++++++++++X++++++++++++++++++++++++++++
+                      ..... ....'........'...'........'..''.......''.''..'.'.....'.'..'.''.'.'.'...'.'...'..'.'...'.....''..''.
+                         == ====.  == == .= =. = ==  =.= ..=HH HH=..=.. =.=.H==H=.=. H. .. .=. .= H. .= =.  . .===.  ===.. =..=
+                                =        =   =        =  == CC CC == ==  = =C  C = = C= == = = =  C= =   =  = =   =     ==  ==
 XAOMMAXAAXO1XZXMAOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+  =       =      =- +-)++++++++++++++++++)++++X+++++XX++++++++X++X++X+++X++++XX+++X+++++++X++++++++++X+X+++++++++++++++++++X++X
+                    .  .............'...' ........'.....'..'...'.....'....''...'.'..''..'.....'.''..'..........'.....'.........
+                         ===  ====  .= =.  = =H  =. HH =. =. =H.=H= H. =H ..=HH.=.H=.. =. H= =.=..= .H=H=  = ==. = ==. == =H==H
+                                    =   =     C   = CC  =  =  C= C  C=  B == CB= =C ==  = C   = ==  =C C       =     =     C  C
 1OZAMZAXXOXZZXXAOAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+ +       +      +   ++++++++++++++++++++++++++++X++++++++X++X++++++X+X+++XX+XX++++X+++X+++++++++X++X+XX+++++++++++++++X+++++X++
+                .    .............''.....'..'.....'..''''.........'...'........''..'.....''.''.'..'.........'..'.....'........'
+                          = ===== .. == =.==.= =H .= ....H==H=====.H=H. =HH=HH ..=H. =H==.. ..=.H .H=HH ====.= .=  = .H= == H=.
+                                  ==     =  =   C =  ====C  C     =C C=  BC CC == C=  C  == == =C =C CC     =  =     =C     C =
 AMMMOAMMAAMMMXMZZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+    +              +==+)++++++++++X++++++++++++X+++++X++XX+++++X++X++X+++++++++X+++++X++++++++++++X+++++XX++++++++X++++)+X+X+++
+                   .    ....'.'.........'..''..............''...'.....'.'''''...'.'...'.''.''.........'........'....... ......'
+                           =. .= =H ====.= ..  H === H  HH .. =H.=H==H.=.....= H. .==H. .. .. ====H= =. HH  =  .  H= =  =H=H==.
+                            = =   C     =  ==  C     C  CC ==  C= C  C= =====  B= =  B= == ==     C   = CC     =  C      C B  =
 MMMMMMMOMMOAXXMM1AMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+       -  -         +-++++++++++++++++++++++++++++++++++X++X+++X++X++X++XX+++++X+++++XX++++++++++X++++++++++++++++++++++++++X++
+                      ...........'......'.........'.........'.'..'..'......''.'..''.....'..''.'...'.''..'''....'.'..'....'.'..'
+                        =  = ==  .= == =.== = == =.  = =H= H.=.H .H .H= HH=.. .H=..==HH .  .. .= H. ..  ...= ==.=.= .  ==. .H=.
+                                 =      =         =     C  C= =C =C =C  CC == =C ==  CC =  == =  C= ==  ===    = =  =    = =C =
 AMOMMAMMMOAXAAMMMMAAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+  -      -          ++++++++++++++++++++++++++++++++++++++++XX+XX+++++++++++X++X+++++X++++++++++++X++++++++++++++++++++++++++++
+                      ..... ....'........'...'........'..''.......''.''..'.'.....'.'..'.''.'.'.'...'.'...'..'.'...'.....''..''.
+                         == ====.  == == .= =. = ==  =.= ..=HH HH=..=.. =.=.H==H=.=. H. .. .=. .= H. .= =.  . .===.  ===.. =..=
+                                =        =   =        =  == CC CC == ==  = =C  C = = C= == = = =  C= =   =  = =   =     ==  ==
 XAOMMAXAAXO1XZXMAOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+  =       =      =- +-)++++++++++++++++++)++++X+++++XX++++++++X++X++X+++X++++XX+++X+++++++X++++++++++X+X+++++++++++++++++++X++X
+                    .  .............'...' ........'.....'..'...'.....'....''...'.'..''..'.....'.''..'..........'.....'.........
+                         ===  ====  .= =.  = =H  =. HH =. =. =H.=H= H. =H ..=HH.=.H=.. =. H= =.=..= .H=H=  = ==. = ==. == =H==H
+                                    =   =     C   = CC  =  =  C= C  C=  B == CB= =C ==  = C   = ==  =C C       =     =     C  C
 1OZAMZAXXOXZZXXAOAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+ +       +      +   ++++++++++++++++++++++++++++X++++++++X++X++++++X+X+++XX+XX++++X+++X+++++++++X++X+XX+++++++++++++++X+++++X++
+                .    .............''.....'..'.....'..''''.........'...'........''..'.....''.''.'..'.........'..'.....'........'
+                          = ===== .. == =.==.= =H .= ....H==H=====.H=H. =HH=HH ..=H. =H==.. ..=.H .H=HH ====.= .=  = .H= == H=.
+                                  ==     =  =   C =  ====C  C     =C C=  BC CC == C=  C  == == =C =C CC     =  =     =C     C =
 ZXXOX1XZXXOAA1ZZAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+   =      -       +-+++++++++++++X++++++++++++X+++++++++X++X+++X+X++XX++X+X++XX+++++XX++++++++++++++X+++++++++X++++++X+++++++++
+                    ....................'........'..'.....'.'.....'....'...'......'....''..'.''.''.'..'....'.'....'.'..'..''..'
+                       = ===  ===H  == =.  == H= .  .= =H .H.==H H. HH .H H.=HH===. HH=.. =.=.. ..=.H=. = =.=.H=  .=.H .= .. =.
+                                 C      =     C  =  =   C =C=  C C= CC =C C= CC   = CC ==  = == == =C =    = =C   = =B =  ==  =
 AXAXMZ1ZXAAOX1XZAXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+           =       -)+++++++++++++++++++++++++++++++++++++++++X+++++X+++++XX+X+++X++XX+X+++X++X++XX+XX++++X++++++++++++X++X++X+
+                     ..........'.....'........''..'..'..'..''....''..'.''...'.'.'.......'.'..'.''......'...'.....'..'.'.....'..
+                       ===== ==.=== =.=== ====..  . =.  .==.. H==.. H. ..=HH.H. .H= HH=H.=.H .H..HH=HH=.= H. == =.==.=.H =H=.H=
+                               =     =        ==  =  =  =  == C  == C= == CC=C= =C  CC B= =B =C==CC CC =  B=     =  = =C  C =C
 OMAA1XXAOAXMZXAOAZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++       +      +   -++++++++++++++++++++++++++++++++++++X++++++++X++X++X++XX+XX+XX++X++X+XXX+X++X+++X+++++X+++++X+++X++XX++++++
+                    ..............'...............'....'...'.''.'.'..'..'......'...'..'............'.....'.'.'...'.'......''.''
+                     = ==  ==  = =. ==  =  =  == =. == .H =.=.. .H.=H.=H. HH HH.HH .H=.H=HHH H= H==.H=== .H. .= H. .H==HH .. ..
+                                  =               =    =C  = == =C= C= C= CC CC=CC =C =C CBC C  C  =C    =C= =  C= =B  CC == ==
 MAXOXXXAMXM1XMAMXZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+   =               ++++++++++++++X++++++++X++++)++++++++X+X+++X+X++++++X++XX+XX+X++XX+XX++X+XX++X++XX+++++X+++++++++X+XX++X++++
+                   .'...'.'..''........'.....'. ....'. '...'.....'..''..'........'...'...'.....'......''.'..'...''.'.........''
+                    . ==. .  ..==H  ===.= H= .= === .  .H H. =H=H.= ..=H. HH HH=H.=HH.HH .H=HH .H =HH .. .H=.= =.. .H HH==H==..
+                    =   = =  ==  C     =  C  =      =  =C C=  C C=  == C= CC CC C= CB=CC =B CC =C  CC == =C =   == =C BC  C  ==
 MOMMAMAAAAZZAAMAOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+ +              = ++++++++++++++++++++++++++++++++++++++++X+++++X++++++++X++X++XX+X++XX+XX++XX++X+XX+X+++X++++++++X++X+++++XX++
+                  ...''........'......'.....'.....'...'..'..'.....''.''.'....'.....'......'...''......'.'......'.'..'..'.'....'
+                     ..=== ====.  =   .==== .=    .= =. =.H .= =H ..=.. .H==H. HH=H. HH=HH.=HH..H HH=H. .H===  .=.H=.H=.=.=HH=.
+                     ==        =      =     =     =   =  =C =   C == == =C  C= CC C= CC CC= CC==C CC C= =C     = =C =C = = BC =
 AOMOMAAXAMAOAAMAAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+ = =       -      ++++++++++++X++++)+++++++++++++++++++++++++++++X++++++X++X+XX++XXXX++XX+X++XX+X++++++X++++++++XX+XX+++++X++++
+                  .''........'..... ......'......'.....'..''..'.....''.'....'........'...'.'.....'.''......'..........''...'.''
+                  =..  == == .H==     === .== =  .==== .= .. =.==H= ..=.H =H.HH==HHHH. HH.H.=HH=H. ..==H ==. ===HH=HH=.. =H.=..
+                   ==        =C           =      =     =  ==  =  C  == =C  B=CC  BCCC= CC=B= BC C= ==  C   =    BC CC ==  C= ==
 OMMOMMXOAAAOMMOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=  -   =   -  -- ++++++++++++++++++++++++++++++++++++++++++X+XX++X+XX++++X+++X+XX+X++XX++X+X+++XX+XX++X+++++X+XX++XX+++++X+++++
+                  .....'.........'.........'.....'........'.....'.....''..'.'.'....'......'.'........'..''...........'..'..''..
+                   ====.   ==== =.  =  =  =.  =  .==== == .H=HH .H HH=.. H.=.H.HH H.=HH==H.H.==HH HH .H=.. =H=HH= HH .= .H=..==
+                       =         =         =     =        =C CC =C CC == C= =B=CC C= CC  C=C=  CC CC =C ==  C CC  CC =  =C ==
 MMOMAXAOOAOMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+  -    -= - =  +-+++++++++++++++)+++++++++++++++++++++++++++++XX+XX+XX+XXX+X++X++X++XX+X++XX+X++XX++++++++X++X++X++X++XX++X+XX+
+               . .........''.... '...'...........'......'..''.............'..'.'..'.....'...'.'....''..'.'.....'.'..'....'.....
+                 =   ==== .. ==  .=  . = = =  == .= === .= ..=HH HH=HH HHH.H=.H.=H. HH=H.=HH.H.=HH=.. =.=.H= H=.H.=H.=HH=.H=HH=
+                          ==     =   =           =      =  == BC BB CC CBC=B =B= C= CC B= BB=C= CC ==  = =C  C =B= B= CC =C CC
 MOOOMMAMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+ +=+      =-==++++X+++X+++++++++++++++++++++++++++++++++++++XX++X++X++X+++++X++XXXX++XX+X+++++X+++X+++++X+++++X++XX+X++XX++XX+X
+                ............'...'...............'.........'....'..'..'..''''.'.....'.......'''.'.'..''....''.'..'....'....'..'.
+                 =H= =H===  .===.    = = === = =.===  == =. HH=.H .H .H=....H.=HHHH.=HH=H==...H.=.H ..==H .. .H=.HH=H. HH=.HH.H
+                  C   C     =   =               =         = CC =C =B =B ====B= CCCC= BC C  ===C= =C ==  C == =C =CC C= CC =CC=C
 OOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)++=-  +--+-+))++++++++++++++++++++++++++++++++++X+++X+X++X++X++++++X++XX+X++XX+XX+XX+XX++XXX+++X++X++XX+++++++XX++X++X+++X+XX+
+ .             .....''.'.........'............'.....'.'....'..'.''''.......'...'.........'...'...''.'....''.'''.....'..'.'.....
+                == =..=.  = ==  =. =   == =  =.==H =.H.H= H.=H. ....H= HH=H. HH.HH=HH=HH .HHH.==H..H. HH ..=...HH==H. H.=.H=HH=
+                    == =         =            =  C  =C=C  C= C= ====C  CB B= CB=CC CB CC =BCC=  C==C= CC == ===CC  B= C= =C BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)))++=))+)))+++++++++++++++++++++++++++++++++++++X++++++X++XX+XX+XX+XX++X++X+XX++X++XX+XX+XX+XX++++X+++X+++X++XXXX++X++X+++X+XX
+   ..       .........'.''...........'.......'.''..'......'.........'........'...'.'...'.....'...''..''..'.'..'.....'..'...'....
+                 ==  . ..        == .=  =  =.=.. H. == =H.=HH=HH HH.HH =H==H.HH=.H.=HH.HH HH.HH=..=H.. H. .H .HHHH .H=.H==.H=HH
+                     = ==           =       = == C=     C= CC CC BC=CB  B  B=CB =C= BB=CB CC=BC == C== C= =C =CCCB =C =C  =C CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++)++++++))+++++++++++++++++++++++++++++++++++++++++X++X++X++XX+XX+X+++XX+X++X+XX++XX+XX+XX+XX++X++++XX+++++XX+X++XX+XX+XX+XX++
+.. . ....  .'...'..''.'.........'...'......'.......'........'.......'.'....''.....'..'.........'.'''.....''.....'..............
+            . = .  ..=.= ==     . = .  = = . ===== .H==H= H=.HH=HH=H. .HH=H..H=HH=.HH.HH HH=HH .H... HH==.. HH=H.=HH=HH=HH=HH==
+            =   =  == =         =   =      =       =B  C  C =CC BB C= =CC C==B CB =BC=BC BB BB =C=== CB  == CC B= BB BC CC CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++=++++++++++++++++++++++++++++++++)++++++++++++++++++++X++XX+XX+XX++X++XX+X++X+++X++X+XX+XX++XX+X++X++X++X+++++XX+X++XX++X+
+..... ........'..'.....'...'.......... .......'..''..'.'..'.'..........'.'.....'..'.'..'.............'..'..'..'''..........''..
+              .==.  ===.= =.= =  == ==  =  =  .= .. =.=.= .H.=HH HH=HH .H.=HH=H.=H.=.H=.H=HH=HH==HH=H.=H.=H.=H...==HH=H==HH..H=
+              =  =     =   =                  =  ==  = =  =C= CC BC CC =B= BC C= B= =B =B CB CB  CC C= B= B= B===  BC C  CB==B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++)+++)+)+++++++++++++++++++++X+++++++++++++++++++++XX++X++++XX++X+++++++++X+XX+XX+XX+XX+XX+XX+X++XX+XX++X++X++XX+X++X++XX+X+++X
+  ... . .................''.'...................'.....'..''...'..'.''.''.'.'...................'...'...'..'.''....'..'.......'.
+  =        === ===== === .. .H===  =  ==  = ==  .= HH .H .. HH.=H.=.. ..=.H.HH HH=HH HH=HH=HH=H.=HH.HH=.H=.H..HH=H.=H.=HH H==.H
+                         == =C                  =  CC =B == CB= B= == == =B=BC BB CB CC CC BB C= BB=BC =C =C==CC C= C= CC C  =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++)++++++++++++++++++++++++++++++++++++++++++++++X+++X++X+X+++++XX++X++X++X+XX+XX++X++X+++++X++X+++X+X++XX+XX++X++X++X++
+ ........ ....'............'..'...'..............'.......'''......'.''....'..'..'.'......'..'.'.'''.''.'.'.'.'..........'....''
+ =        == =.= == ==  = =.= . ==.    ==  == == .===== H...H =H H. ..=HH .H=.H .H.HH=HH=.H=.H.=...H..H. .H.H.=HH HH =H=.H==H..
+              =            =  =   =              =      C===C  C B= == BB =C =C =C=CC CC =B =B= ===B==B= =C=C= CB CC  C =C  B==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)+)+++++)+++++++++++++++++++++++++++++++++++++++X++X+++++++++X++X+++++XX+XX+XX++X+XX+XX++X++X++X++XX+++++++XX+XX+XX+XX+XX++X+XX
+ . ..... ....................'......................'..''.''..''.'..'......'...'.'.....'...'.''.......'.''................'....
+          =  =  ==  = === == .==== ==  =     == H= H. =..=.. H..H.==.=HH=HH.HH=.H.HH=HH.=H=.H..H==HH==. ..=HH=HH=HH=HH HH=.H=HH
+                             =                  C  C=  == == C==C=  = CC CB=BC =C=CC CC= B =C==B  CC  = == CC CB BB CC CC =C BB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++)++))+++++++++++++++++++++++++++++++++++++++++++++++++++++X++X+XX+XX+X+++X+XX+XX+++++XX+XX+X++++++XX+X+++++X++XX+XX++X+X++XX+X
+. ..  .. ...........'..'.............................'.''.'............'...'......'''......'.''''.'......'.'.........'.........
+      ==  = =   =  =. =. ==  == ==     ==     == == =. .. .H =H=HH HH=H. =H.HH HH=...=HH=HH.H.... .HH=H =.=.H==HH HH .H=H==HH H
+                    =  =                             = == =B  C CC CC C=  B=CC CC === CB BC=C==== =CC C  = =C  BC CC =C C  CB B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++++++++++++++++++++++++)+++++++++++++++++X+++X+++++X+X++XX++++XX+XX+XXX+X++X++X++X++XX++X+XX+X++X++XX+XX+XX+XX+X+
+.... .....'..............''........'. .'.........'.''........''.'...'....''..........'.'..'..........'......''.....'.....'....'
+      =  =. == ==  === = ..  =  == .  =.  =  == =. .. =H ==H=.. .H=H. HH=..=HH HH HHH.H.=H.=H==H==HH=.H=HH H..H==HH.HH=HH.HH=H.
+          =              ==        =   =         = ==  C   C == =C C= CC == BB CB CBC=C= C= C  C  BC =C CC C==C  CC=CC CC=CC C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++X+X++X+++X++++XX++X+XX+XX+XX++X+XX++++XX++X+XX+++++X+++++X++XX+X++X
+...........'..................................'..'.....'.......'..'.'..'''...............'.'...'...........''....''''.'.....'..
+           .= = ==  == =     ==  =====  =  == .= .=  ==.== =H=H. H.=.H ...HH =H=HH=HH=HH=.H.HH=.==HH =H=HH ..==H=....H.=HH=H.=H
+           =                                  =  =     =    C C= C= =B ===CC  B BC CB BC =B=CC =  CC  C CB ==  C ====C= CC B= C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++=++++++++++++)++++++++++++)++++++)+++++++++++++X++++++X++X++X+++++XX+XX+X++XX+X++XX+XXX+X+++X+X++X++XX++X++X++++XX+XX+XX+X
+..... ............ '........... '..... ......''......'............''''......'.'.....'.......'...'.'.'..''......'...'......'....
+       == =        .=  =  =  =  . =        = ..  == H.=== =H==H= H....=HH=HH.H. HH H. HH=HHH.H =.H.H.=H..HH==H=.H==.=HH=HH.HH=H
+                   =            =            ==     C=     C  C  B==== CC CC=C= BB C= CB CBC=B  =C=C= C==CC  C =C  = CB BC=BC C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++=+++++++++++++++++++++++++++++++++++++++)+++++++++++++X++X++XX++++XX+X+++X+XX+XX++XX+XX+X++XX+XX+X++XX++X++++XX+X+++X++X++
+..... .......'.....'......................... .'.'..................''.....'''.'......'.....'..........'....'...'.....'.'..'...
+       =  == .   = .= ==     =            = = =. .=  ==== =H==H==HH=.. HH H...H.HH=HH=.HH=HH.H==HH=HH H. HH .H==. HH=H. .H .H==
+             =     =                           = =         C  C  CC == BC C===C=CB CB =CC BC=C  CC CC C= CB =C  = CC C= =C =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++)+)++++++++++++)+++++++++++++++++++++++++++++++++++++X++XX++++++X+X++XX+XX++X++X++XX+X++X++X++++++++XX+X+++++XX++XX+X++X+++++X
+. . ...........' ................... ...........'......'....''................''.'...'.'..'..'.''.''.....'..'....'....'..''....
+        =   =  .  ==    =     = =    ===    == =.  =  H. HH ..===H=H= HH=HH==H..H.=HH.H. H.=H. .. ..=HH=H.==.=HH=.HH=H.=H..===H
+               =                                =     C= CC ==   C C  CC CC  B==C= CC=C= C= C= == == CB C=  = CC =CC B= C==   C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)+++++++++++++++++++++++++)++++++++++++)++++++)+++++++++++++X++++++X++X++X++XX++X++X++X+XX++XX+XX++X++X++XX++++XX+XX++X+XX+X++X
+ ............ ...........' ...... ..... .....' ..'.....'..'..'.''...''.'..'....'.'................'.........'........'......''.
+      = =   =  =  == == =. == ==     =  =   =. ==.==  =. =. H.=..==H..H.=H.=HH=.H.=H==H=HH= HH=HH .H =H =HH=.= HH=HH .H=HH H..H
+                         =                   =   =     =  = C= ==  C==B= C= CC =C= C  C CB  CC CC =C  C  CC =  CC CC =B CC B==B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++++++++++++++++)+++++)++++++++++++++++++++++++X++XX+++++++X+++X+X++++X+X+++X+X++X++X+++X+++++X+X+++X++X+XX+XX++X+
+............................. '....  .............'...'..'...'....''.''..'.'...'.''.....'.'....'.......'..'...'....'........'.'
+=    = ==     =  === =  ==    .   =         == == .= =.= .==H. HH .. ..=H.=.H=H.=..H=H==.H.H==H.=H  =H=.= .H H.==H=.H=HH=HH=.H.
+                              =                   =   =  =  C= CC == == C= =B C= ==C C  =C=C  B= B   C =  =C C=  C =C CC CC =C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++))+++++=++++++++++++)+++++)+++++++++++++++++++++X+++++XX+XX+++++X+++X+++++X++X+X++XX+XX+XX+++++X++++++++X++XX++X++X++X++X
+ .'...  ...'. ...........' ....' ...... ..........''.....'.........''..'....''.'..'...''..'.......'...'.'...'..''...'..'..'..'.
+ =. =    = .   == =  = ==.  = =.               ===..  H==. =HH HH =..=H. =H=.. .H=.H H..HH.HH=HH==. =H. .===.=H..HH=.H=.H .H=.H
+  =        =             =     =                  ==  C  =  CC CC  == C=  C == =C =C C==BB=CC CC  =  C= =   = C==BB =C =C =B =B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++-++++++++++++)++++++++++++)+++++++++++++XX+++++X++X+++++X++X++X++XX+XX+XX+X++++++X++++++++X+++++XX+XX+XX+XX++X+XX
+.............  ....'....... ............ ..........''.....'...'....'.'....'..'...........'..'....'..'......''.........'..''.'..
+  ==             = .    ==    =   ==            == .. HH =.= H.=H= .=.H= H.=H.=HH=HH=HH=H.==.==H .==.= =H==.. HH=HH=HH.HH..H.HH
+                   =                               == CC  =  C= C  = =C  C= C= CC CC CC B=  =  C =  =   C  == BB BC CB=CC==C=CC
+                                                                                                                     V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++)++++++++++++++++++)+++++++++++++)++++++++++XX+++++X++++++++XX+XX+X+++X++X++X++X+X+++X++++++X+XX++++XX++X++X++X+XX++X+
+......... ..................  ............ ..............'...'.'.'''........'.'..'.''..'.'.'.'.'.''.'.....''....'.''....'...'..
+==  = ===               =     =   =    = =     =  = =HH =.==H.=.=... HH=HH H.=.H .H..H=.H.H.=.H.=.. .H=HH ..=HH .H..H==H.HH=.H=
+                                                     CC  =  C= = === BC CC C= =C =C==B =C=C= =B= == =C CC == CB =C==C  C=BB =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++=+++++++++++++)++++++++++)++=+++++++++++++++++++++++++X+++X++XX++X+XX+XX+XX+X++XX+X++++++++++X+XX+++X+X++XX+X++XX+
+............. ............. ...... ... .. ....'....'..''...'.''.'...'.'..'................'.....'.....'..'.'...''...'.....'....
+  ==     = =   =   = ===  =     =         ==  . ===.= ..= =. ..=.= H.=.H=.HH==H=HH=HH HH=H. HH=H.  ===.= .H.HH=..H=H.=HH=H.=HH=
+                                              =    =  ==   = == =  C= =C =CC  C CC BC BB C= CC B=     =  =C=CC ==C B= BC B= BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++)+++++++)X+++++++++++++++++++)+++++)+++++++X++++++++++++++++++XX+XX++++XX+XX+XX+XX+XX+X+++++++++X++X++XX)+X+X++XX++X+XX
+........  ...... ............. .....  ..... ...........'..'.''..'.'''........'.................'.''...'..'..'... '...'....'....
+    ==    ==   = H= ==  =        =          == ==  H= =.  .=..==.=... HH HH==.=HH HH=HH=HH=HH H. ..= =.=H. H.=HH .H=H.=HH=.H HH
+                 C                                 C   =  = ==  = === CC CC  = CC BB BC CC CB C= ==   = B= C= CB =B B= CB =C CC
 OOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++) +++++)++++++++++++++++++++)+=++++++++++++++++++++++++X++X++X+XX+XX+++++X++X+++X+X++XXX++++++++++XX+XX++X++X++X+XX++X++
+.....'.  ..... ............ ......    ..........''.....'...'.'.''..'........''....'...'...'.....'..'..''.......'..'..'.....'.''
+  == .          = == ==               =      =  ..=== =.===. .H..H .H HH=HH=..==H=.H==.H=H. HHH=.==.==.. HH=HH=.H=.H=.H=HH=.H..
+     =                                          ==     =   = =C==C =C CC CC ==  C =B  =B C= CCC =  =  == BC CC =B =C =B CC =C==
 OOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++)++++ ++++++++++++++)+++++++++++++++++++++++++++++++++++++X++XX+X+++X++X++X+++++XX+XX+XX+X+++X++++++X+XX++X+XX++X++X+XX++X++
+... .... .............. ...... ...... .................'..'...'.......'..'.''...''.........'.'.....'..'.....'.'...'..'....'..''
+===   =        =    ==   =  ==  =         =  =   =  ===.= .==H. HH=H==.H=.H..H==.. HH=HH=HH.H. =H==.= .H HH .H.HH=.H=.H=HH.=H..
+                                                       =  =  C= BC C  =C =C==C  == BC CB CC=C=  B  =  =C CC =C=BC =B =C CC= C==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++)++++++++++++++++++++++++++++++++)++++++)++++++++++++++++++++X++X++XX+++++X++X++X++X++X++X+++X+++++X++++++X+X++XX+XX++X+XX+XX
+.. .....  ..............'.....'.... ...... '.........''..'.''..........'''.'..'.'...'..'.'..'.'.......'.''.'...'.......'.......
+ = ==            =  =  =.  =  . ==  === =  .      == .. =. ..==H==H= HH...=.H .H.=H=.H=.H. H. .H == =H.=.. .H=H.=HH=HH=.H=HH=HH
+                        =     =            =         ==  = ==  B  C  CC=== =C =C= C =C =B= B= =B     C= == =B C= CC CB =C BB CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++)++++++++++++++++++++++++++++++++++++++++++++X+++++++++++XX+++++X++XX+XX+XX+XX+XX++X++++++X+XXXXX++++++++X++X++X+XX++XX
+........ ........................'....... .'......'.....'..'..''.......'.'................'.'.'..'........''.''.'..'..'.'...'..
+= ==            =   =  =  == ====.  == ==  .     =.= H= .==.= ..=HH====.H.=HH HH=HH=HH=HH=.H.=.==.H HHHHH ..=..=.H=.H=.H.HH=.HH
+                                 =         =      =  C  =  =  == CC    =C= CC CB CB CC CC =B= =  =C CCCCB == == =B =C =C=CB =BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++++++)++++++++++++++++++++++++++++++++++++++++XX++X+++++X++XX+XX+XX++X+XX+++++++++++X++X+++X+XX++X+XX++X+XX++X++
+....... ............ .....'.....'..........................'....'.'.....'...'......'....'..'.''.''...'...'.....'.'...'.....'.'.
+  ==     =     =      =   . = = . =====  ==  =  == == =====.=HH=.H.=== H.=HH.HH=HH=.H HH.==.=..=.. H=.H= .H=HH .H.HH=.H=HH=.H.
+                          =     =                          = CC =C=    C= CB=BB CC =C CB=  = == == C =B  =C CB =C=CB =C CC =B=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++))++++++))+++++++++++++++++)+++++++++++++++++X++++++X+++++X++X+++++X++XX+XXX+X++X++++++X+XX+X+++X+XX+++X+XX+XX++++XX++X
+.. .....  ......  ...'...........'. ..........'.......'.''.'...'...'..'.''..'.......'..'...'..'.......''.....''.'......''....'.
+==        == ==      .  = ==  == .= =  ==  ===.= ==  H. ..=.H =.==H.=H.=.. H.=HH HHH.H=.H==.= .H HH H=..H=HH=..H.HH=HH=..=HH=.H
+                     =           =            =      C= == =C  =  C= C= == C= CC CCC=C =C  =  =C BC C ==C CC ==C=BC CB == BC =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)++++++)+++++++++++++++++++++++++++++++++++++++)++++++++++++++++++++X++X++XX+++++X+XX++X+X++++++X++XX++X++X+XX++X+XX+XX+XX++X+X
+ ...... ..............'.....'.................. ........'.''.'''''...'..'....''.'.....'......'.'.'...''..'.....'.'..'..'...'...
+        =             .= =  .      = ===  == =   = === =. .. ..... =H. H.=HH=..=.H=HH=.H=H ==.=.H. HH..H .H=HH .H.HH.HH.HH .H H
+                      =     =                           = == =====  B= C= CC == =B BC =C C   = =C= BC==C =C CC =C=CB=CC=BB =B C
+                                                                                                                        V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++)++++++++++++)+++++++++++++++++++++++++++X++X+++++XX+XX+X++XX+XX++X++X++X++X++++++++X+++X+X++XX++X++X++X+XX++X+
+....'......'.... .......'...' .......'...'...........'..'................'.......'.''..........'.''..'.'...'....'.''.'.....'..'
+    .  =   . ==      =  . = .  = ==  .= =. == ==  == .= .H =H=====HH HH=H.=HH=HH=.H..H==H =H ==. .. H. .H=H.=HH .H..H.=H=HH.=H.
+    =      =            =   =        =   =           =  =C  C     CC CC C= CB CC =C==B  C  C   = == C= =C B= CB =B==C= B CC= C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++)+++++++++++++++++X+++++++++X++++++++++++++++++++X++XX++X+++++X++XX+X++++++X+X++++++XX+X++X+++++XX+XX+X++XX+XX+XX
+....... ...... '......'..'..'..'...'........'...'..'.....''.''..'....'...''..''.....'''.'...'.''.'..'.....'''........'.........
+         == == .=     .==.= .==.H  .  =  =H=.= =.  .= = =.. ..=H. HH .H =..=H..HH=H=... .H H.=.. .HH.H==H=... HH=HH H.=HH=HH=HH
+               =      =  =  =  =C  =      C =   =  =     == == C= CC =B  == C==CC B === =C B= == =BC=B  C === CC CC C= BB BC CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++++++++++++++++X++++++++++++X++++++++++++++++X+X++XX++X+++++XX++++X++XX++++++++X++XX++X+XX+XX++X++X+XX+XX+XX+X++
+...........'.........'.'..'....'.'' '.........'................''......''.....''..'....'..''...'....'.'.....''..'.'.....'..'.'.
+ =  ====  =.  =  == =. .==.== H.=.. .= === H==.= =====  == =H H..HH =H=..==HH=..=H.=HH .==..==H.=HH .H.HH HH..H .H.HH=HH.HH.H.=
+           =         = =  =   C= == =      C  =             C C==CC  C ==  CB == C= CC =  ==  C= BC =C=BC CC==B =C=CB BB=CC=C=
+                                                                                                                       V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++++++++++++++++++++X+++++XX+++++++++++++++X+XX++X++X++X++X++XX+XX+XX+X++XX+XX+XX++X+XX++X+XX++X++X++X++X+XX+XX++X
+.....................'....................''...'....'..'....'.....''................'......................'.''.'..''........'.
+=     ==  ==    === =.===  ===== H= == HH .. ==. =  .==.H HH.=H==H..H= H==HH HH=HH=H.=HH=HH HH==H=HH =H HH=.H..H.=H..H=HH=HH=.H
+                     =           C     CC ==   =    =  =C CC= C  C==C  B  CB CC CB C= BC CB CB  C CB  C CC =B==C= C==C CC BB =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++++++++++++++++++++++++++++++++++++++++++X++++++++X++XX+XX++++XX++X++X+++++X+XX+++++X++++XX++++XX++XX+XX+XX+XX++X
+............................'...'........''.....'.....'..''.''...'............''..'..''.......''.'..''.....'...'...'.........'.
+   =  == == ==  =  == == ===.=  . === == .. ==  .  == .H ..=..= H.=HH HH=== HH..H=.H ..==H=HH=..=.H ..=HH =.=HH.=HH.HH=HH=HH .H
+                            =   =        ==     =     =C == ==  C= CC CB    CC==C =B ==  C CC == =B == CC  = CB= CC=BC CB BB =B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++++++)+++++++X+++++++++++++++++++++++++++++X++X+++++X++X++++++++X++X++XX++X++XX+X+++X+XX++X+X++XX+X++XX+X++X++X+
+. ..........'....... ....'...'.........'.'...'.'...'.....'..'...'........'..'...'..'...''.....'.'.'.....'.'.'...'.''....'..''.'
+  == =  ==  .= ===    == .= H.  =  =   . .===. .=  .= == .H .H==.==H==H= .==.==H.=H.=HH..H==HH.H.=.H=HH .H.H.=HH.H..HH=H.=H..H.
+            =            =  C=         = =   = =   =     =C =C  =  C  B  =  =  C= C= CC==B  CC=C= =C CC =C=C= BB=C==CC B= C==B=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++++++++++++++)++++++++++++++++++++++++X+++++X++XX+XX++++X+++++XX+X++XX+X+++X++X+XX++X+XX+X++XX+XX++X+X++XX++X+XX
+.'.'.'.......'.............. ...........'..'...'............'........'..'.''.....'.....'.'..'.....'......'.......'...''.....'..
+=. . . =  =  .=     =  == ==      =  =  .  .= =. == =H  = =H. HH=HH =.=H. ..=HH=H.=HH H.=.H=.H=HH=.H=HH H.=HH=HH .H=H..HH==H.HH
+ = = =       =                          =  =   =     C     B= CC CC  = C= == CC C= CC C= =C =B BC =C CC B= BC CB =C C==CB  C=BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X++++++++++++++++++++++++++++= +++++++++++++++++++++++++++++++++++X++++X++++XX+XX++X+X++XX+XX++++XX++XX+X++XX+XX+XXXXX++X+XXX+
+......'........... ..........   ....'..................'..''.''..''.''.....'.......'..........'''....'....'............''.....'
+=H== =.=    ==     == ==            .= ===== =====  ===.= ..=.. =..H..==H =. HH=HH .H=H==HH=HH...=HH .HH=H.=HH=HH=HHHHH..H=HHH.
+ C    =                             =                  =  == ==  ==C==  C  = CC CB =C C  CC BC=== CC =CC C= CB BC CBCCB==B CCC=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++=)+++++++=++++)++++++++++++++++X++++)+++++++++++++++++X+++++X++X++XX++X++X++++XX+++++X+XX++X+X++XX++X++X+++X+XX
+.......'........  .......  ...   ................... .'..'..''..''''''...'......''...'..'.''''....''......'...''..'..''..''....
+ == =  . ==                          == == == =H ==  =.==.= ..==......H =.==H= H..HH .H=.H....HH==..=H HH=.H=H..HH.=H..H=..H=HH
+       =                                       C      =  =  ==  ======B  =  C  C==BB =C =C====CC  == C CC =B C==CC= B==C ==B CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++))++)))===+=+++++++++++++++++++++++++++++++++XX+++++X+++++X+XX++X++X++X++XX+XX+X++XX+XX+X+XXX+X++XX+XX+XX++XX+XX+
+'... .......'.   .        ...... .............'..'......'.....''.'.'.'...'...'.'..'...'.......'........'.....''.....'..''......
+.  =     == .                 =            == .= .=   ==.==HH=.. .H.=. =H.HH=.H.=H. H=.HH=HH=H.=HH=HH=H.HHH H..HH HH.HH..HH=HH
+=           =                                 =  =      =  CC == =C= =  C=CC =C= C= C =CB BB B= CC BB B=CCC C==CB CB=CC==CC CB
 OOOOOOOOOOOOOOOOOOMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++++) =  +++=++++++++++++)+)+++++++++X++++++X+XX+XX+++++X++X++XX++X++X++XX+XX++X+XX+XX+XX+X++XX++XXXX++X++X++XX+X+
+...'........  ...     . . ....'.......    ..'........'..'.........'.'.'..'....'.'......'...'............''...'.....'..'.'.....'
+=  .= = = =                = =.= ===       =. == =H  .==.H HH HH =.=.H.=H.=HH .H.=H==HH.HH=.H=HH HH HH=H..HH=.HHHH=.H=.H.=HH=H.
+   =                          =             =     C  =  =C CC CC  = =C= B= BC =C= C  CC=CC =C CC CC BC C==CB =BCCC =B =C= BB C=
 OOOOOOOOOOOOOOOOOMOMOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++=++++ - =)+)+++++++++++++== ++++++++++++++++++++X++++++X+X++X+++X+XX++X++++XX++XX++++XX+XX++++X++XX++X+XX+XX++++X++
+..........'. ...      . .............   .............'.'.'...'.''.'...'..'.'....''..''....'...''.......'''.'....'........'''.'.
+ ====     .                 =               =  == == .=.=.==H. .. .H=H. H.=.H=HH..H ..=HH=.HH=..=HH=HH=...H. HH .H=HH=HH=...H.
+          =                                          = = =  C= == =C C= C= =C CC==C == CB =BB == CC BC ===B= BC =B CC BC ===C=
 OOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++) -+--++++++++++++)+++)- ++++++++++)X++++)+++XX++++++++X++++++X+X+++X++X++X+XX+++X+XX+XX+XX++X++X++X+XX+++X+XX+X
+...............      .......'.... ...   ..'.....'. .'.'' .'.....'.''...'..'.'...'.'..'..'....'.'.'.........'.''.''....'''.'....
+=== =   =                == .=            .  == .= H. .. =.=HH =.=..==H.==. .H=H. .H=.H=.H=HH.=.H.HH=HH=HH .H..H..H=HH...H.HH=H
+                            =             =     =  C= ==  = CC  = ==  C=  = =C C= =B =C =C CB= =C=CC CB CC =C==C==C CB===C=CC C
 OOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++)++++))++++++ ++++++++++)+=)+++++++++++++X+++++++++++++X++X++X++X++++++++XX+X+++XXXX++XX+X+++X+XX+XX+XX+XX+XX+XX+XX+XX+X+
+.'.... ....  ... .   ......'..      . . ....''.........'.''.'..'....'....'''''.....'.......'..'...'..........'...........'....'
+=.===         =       = == .=            =  .. H ==  ==. .. .H=.H==H.=H= ..... HH H. =HHHH .HH.H==.H=HH=HH=HH.HH=HH HH=HH.HH H.
+ =                         =                == C       = == =C =C  C= C  ===== BC C=  CCCC =CC=C  =C CC BB BC=BC BC CC CC=CC C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++)++++++--++++++++++==++))+++++++++X++++++X++++++++X+++X++++++++X++X++X++X++X++X++XX+XX+XX+XX+X+++X+XX+XX+XX+XX+XX++X
+...'....... .....    ..'.'...       ..........'..'.'..'..'....'.'..''..'''..'.......'.....'......'.......'.'.................'.
+= =.            =      . .            =====  H.==. .H .= .= =H. .H=..==...H .H==H =H.=H==H. HH HH.HH=HH=H. .H=HH=HH=HH=HH=HH .H
+   =                   = =                   C=  = =C =  =   C= =C ==  ===C =C  C  C= C  B= BC CB=BC CB C= =C BC CC CC CC BC =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++)+++++)+++++++++==+++++++)-- +++++++++++++++++++++++X+++++X+++++X++X++XX++++X+++X+++X+XXXX++X++XX+XX+XX+XX+XX++X+XX+XX+XX++X+
+.. ..... ...... ..  ......     . ............'.....'.'..'.............'....''..'....''.........................''....'..'.....'
+=      =     ==        =             =     = . == =.=.H .===H=== =H= H.=HH ..=H. =H=..H=HHHH==H= HH=HH=HH=HH=HH..H=HH.HH.HH==H.
+                                             =     = =C =   C     C  C= CC == C=  C ==C CCCC  B  BB CC BC CC CB==C CC=CB=CB  C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++++=)+++++))--  +++++ =)+=++++++++++++++++++++X++++++X++++++X+X++XX+XX++X+XX+XX++XXXX+XX+XX+XX+XX++X+XX++X+XX++X+
+........ ........  .....       ...       . ..........''..'.....''....''..'...''......'....'...'.................'.'...'....''..
+=  =  ==     =      =  =        =              =  =  .. =.==H= ..==H ..==.H=H..HH HH=.H=HH.HH .HHHH HH=HH=HH=HH=.H.HH=.H=HH..H=
+                                                     ==  =  C  ==  C ==  =C B==BC CC =C CB=CC =BCCC CB CB CB CC =C=CB =B CC==C
 OOOOOOOOOOOOOOOOOOOOOOOOOOAMAOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++++++++++=-   =)+==  =-+-=)++=)=+-=)+++++XX++X++XX+++++++++++XX+X++X++X++XXX++++++XX+XX+X++X+XX++XX+XX+XX+XX+XX+
+.............. .. ......       .          ..       ...............''....''.........''.'....'''''........''....''..'............
+ ===  =   = =  =    = =                    =         == HH==H= HH=.. ===..==HH=H==H..H. HHH.....=HH HH=H..H=HH..HH.HH HH=HH HH
+                                                        CC  C  CC ==    ==  CC C  B==B= BCC===== BC CC C==B BC==CC=BC BC BC CC
 OOOOOOOOOOOOOOOOOOOOOOOMMXMMOOOOOOOOOMMMOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++)+++++)++++++=+++++=     =)++)+++-   +++=  =+--++X+++++++++++=)++++++XX+XX+XX+X++XX++X++XX+X++XX+XX+XX+XX+XX+XX++X+XX++X++X+
+.'. ..... ...... .....                  ..     .  ......'....'..  ................'.......'..'.....'.....'.........'.....'..'..
+=.  =                                               H  =.  ==.=      =  HH=HH=HH=H.=HH==H=.HH.H==HH.HH=HH.HH=HH HH=.H=HH=.H .H
+ =                                                  C   =    =          CC CB BC C= CC  C =BC=B  BB=CC CB=BC BB CC =B CC =C =B
 OOOOOOOOOOOOOOOOOOOOOOMAZ1MOOOOOOOOMMAOOOOMAMOOOMMOOOOOOOOOOOOAZ111ZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+++++++++++++)+++++++     )+)++++=   =++=   +)=  )++++++++++=        --++++XX++X++X++X++X++X+X++XX+XX+XX+XX+XX+XX+XX+XX++X+XX+
+.....'... .... . ...        .  ...      .    .     .........             .'....'..'..'.''..'...'.........................'....'
+H= = .                                              =                     .=HH=.H=.H=.H..H=.H=H.=HH=HH HH HH=HH=HH=HH=HH=.H=HH.
+B    =                                                                    = CC =B =C =C==C =B C= CB CC CC CB CC BB CC CC =C CC=
 OOOOOOOOOOOOOOOOOOOOOOX111OOOOOOOOMAAMOOMMMMOOMAAOOOOOOOOOM1))+==)-+X11ZAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++)++++++++=++)+-+    )++++++=    +-    )=   +++++==)-                 +++++XX+XX+XX+XX++X++X+XX+XX+XX++X++XX+X++XX+XX+XX+X
+...... .......   . .       .....                 .....                      ..'.........'...'.''....'......'.......'...'.......
+== === =  =                                        =                         =.=HH=HH HH.HH=.H..H HH.HH=HH=.H==HH=H. HH.HH=HH=H
+                                                                              = BB CB CC=CC =C==C CB=CC CC =C  CC C= CB=CC CC C
 OOOOOOOOOOOOOOOOOOOOOAZ1ZOOOOOOOOOOAOOMMMOOOOAMAOOOOOOMMO1)=--==---=++)M1ZZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++)+)+===++-=    =+++++=)=+ --   +=++   -+++==  -                    +++X+++XXX++X++X++XX+X+XX+XX+XX+XX+XX++X++XX+X++X+
+.'........ . .            .....            ..    ...                          ...'.'...'..''.''..'.......'........''.''.......'
+=.= ==     =                                                                    H.=.HHH.=H..H..HH.H=HH=HH.HH=HH=HH..H..HH=H= H.
+ =                                                                              C= =CCC= C==C==BC=C CB CB=CB CC CB==B==CC B  C=
 OOOOOOOOOOOOOOMMOOOMM11AOOOOOOOOMMOOOAOOOMOOMMOOOOOOMOMM)-=-=+--+-=++1))))1ZAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++)+  +=+     +++++++-  =-= ++- ++  -=+))= -                         +=+++XX++XX+X+++X+XX+X++X++XX+X++X++X++XX+X++XX+
+..'......... .           .....             .    .                                .....'.....'.'......'..'.....'..'..''..'.'...'
+  .   =                    =                    =                                 ==HH.=HH=H.=.H HH=H.=H.=HH=H. H.=H..HH.H. HH.
+  =                                                                                 CB= BC C= =C BC B= B= BC C= C= C==CC=C= CC=
 OOOOOOOOOOOOOOMMOOOOO1XMOOOOOOOOAMOOMZOOMOOMZAOOOOMAXXMA=------- -=+==+M+)))ZZXOAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++  -+-)-   ++++++=-  +=  )= ++   =++)                             +  -++++X++XX+X++XX+XX++X+XX+XXXXX++X+XX++XX+X++
+''....... ...           ......           ..    ..                                   .''.'.....'.......'.'...........'..''....'.
+..= =   =                                                                           =..H.=HH=H.=HH=HH=.H.HH=HHHHH==H.HH..HH=H.=
+==                                                                                   ==C= CC B= BB CC =B=BC CBCBC  B=CC==BC B=
 OOOOOOOOOOOOOOOOOOOOOMOOOOOOOOMOAOOOOMOMOOOZZOOOOAAXOM)=-----------++=++++))1Z1ZZZZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++===)+-== +++++=)= + +++) + =+-  ++++   -                               +=+++X+++X+XX+XX+XX+XX+XX+XX+XX++X++X+XX++X
+...........      .    .....    . .    .  .    ..                                    . ..'...'................'......'..'.....'.
+=  =  = =                                                                               .H==.H=HH=HH=HH=HH=HH.HH=HH=.H .H=HH=.H
+                                                                                        =C  =C BC BC CC CB CB=BB CB =C =B CC =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXZOOOOOMZMOOAOMOOOOZZMM)+---+--------+-==+++)Z)11X1ZAMXMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++)-==+))-=+)+++++==+  -++++   ++ - ++)+                                      )++++++X++X++X+XX++X++XX+XXXXX+XX+XX++X+
+'......'...         . .....  .    ...   ..   ..                                         ..''.'..'..'.'..'..''...........'......
+.===   .            =   =                                                                 ..=.H=.H=.H.HH.=H..HH=HHHHH=HH.HH==H=
+=      =                                                                                  == =B =C =C=CC= C==CC BBCBC BB=BC  B
 OOOOOOOOOOOOOOOOOMMOOOOOOOOOOZAMOOOOMZZOOOMMOOOOAM1MZ=--)=----)--+--=-==+A)))))11Z1ZAZMAOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++)+++++++)-+++  +++++)++)-   ++++   )+-  +)+=                                        - )++XX+XX+XX++X+XX+XX++X+++++XXXX++XX+
+'... ......   ..   ..... .      ....    .   . .                                             ..........'........'...'''....''...
+. ==   ==             ==           =                                                         HH=HH=HH .H=HH=HH=.H==...HHHH..HH=
+=                                                                                            CC BC CB =B CC CC =B  ===CCCB==BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOXAOOOOOOX1OOOOOOOOOOZ1AO)1-------+--+----+==+++))Z)1))11ZXXAXMMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++==)+==)+++++++=-  -+++++  +++-=)++++   -                                        ) +++XX+X++X++XX+X++X+++XXXX++X++X+
+..'.........   .   ......      ....    .    ...                                                ......'..'.....'..'.'........'.'
+= .===    =            =         =                                                               HH=H.=H.=HH=H.=H.=.HHHH==H=.H.
+  =                                                                                              CC B= B= BC C= C= =BCCC  C =C=
 OOOOOOOOOOOOOOOOMMOOOOOOOOOZXMOOOOOMZMOOOOOOOOOMZAMA==+--+=--==--=--=++=+++))1))1)111MZXA1AZZMZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX+++++++++)++++  ++)++++--   )++++   +-+++)+++                                                  =+++X++XX++X++X+XX++X++++XX++X
+...........  ...  .. ....      ....   .  .. ...                                                   ....'....'..'.'...'.'''...''.
+HH ==  ==                        =                                                                  =H.=HH=.H=.H.HH .H...=HH..H
+CC                                                                                                   C= CC =C =C=BB =C=== CC==B
 OOOOOOOOOOOOOOOMAOOOOOOOOMMXOOOOOOOMMOOMOOOOOOOMZOMZ+===----+----=-=+=1=+)++)+1))Z)1Z1AZZMZZZ1111MAOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++++++++++++)+  -+++++++   =++++++  ++ =+++++)  )                                                 -++X++XX+XX+XX+XX+X++X++X+++
+...'.......   .   .......     ....   ..  '....                                                      ...'......'.......'..'....'
+H==.   = =                               .  =                                                         H.=HH=HH.HH=HH=H.=H.=H= .
+C  =                                     =                                                            B= CC CB=CC CC C= B= C  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMOOOMOOOOOOOAXOM)=-==-)==-----=-=+=+==)+++++++1))1111XX11)11)M1ZXMOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++=++)=+X)++++====++++++  +++ )+++++=  -                                                   )+++X+XX+XX++X+XXX+XX+X++X
+....'....... .   ..  ...    .....   ..   .....                                                        '.'.'......'..........'..
+== =.  =  =       H                  =   =                                                            .=.H.HH=HH .H HHH=HH=H.=H
+    =             C                                                                                   = =B=BB BC =C CBC CC C= B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOOOOOOOAOOM1===++-==---====++=++1++=))++M))))111X1ZZ)111X)1ZXMOOOOOOOOOOOOOOOOOOOOOOOOO
++++++X++++++=+===+X+)+++==+=++++++ ++)=-++++)++ =-                                                    =++X+X++XX++XXXX+++++X+++
+.'.......... .   ... ..   . .....   '   .... ..                                                        .'...'....'......'...'.'
+ .= =H  =  =     =H= =         =    .        =                                                          .H=H. HH .HHHH==.= H.=.
+ =   C            C                 =                                                                   =B B= BC =BCCC  =  C= =
 OOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOMOOOOOOOM1MOM)+)+==-)=----==Z+++++=+A++1++++Z)111Z11M11))11MZXXAMOOOOOOOOOOOOOOOOOOOOOOOO
+++++++)++++++=-+++++-+++ +++++++)-++++ +++++++   -                                                     =++XX+XX+XX+X++XX+X+++X+
+..'..' .....   ...'. .   .......  .... .......                                                          ............'.....'.'..
+ =.==. == =     = .          = =   =                                                                    ==HH=HH=HH=H.=HH=H.=.H=
+  =  =            =                                                                                       CC BB BB C= CC C= =C
 OOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOZMOA)+1+==-+==)-=+++++Z++++)=+X)+++)))A111111AZ)11Z1ZMZXMOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++)+++++=++  +++++++)++++++)++)+++=  =                                                      =+++XX+XX+XX+XX+XX++++X
+...'...'.....  ..'.. .   ....... ....   .. ...                                                           .....'............''..
+== .= =.=       =.        =  ==   = =   == =                                                              = HH.HH=HH=HH HH .. H
+   =   =         =                                                                                          BB=BC BC CC BC == C
 OOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOMMOOZ11+)+==+)++=)+++A)++=+++X++++++)1)))Z))1Z)11)11AXXMXMOOOOOOOOOOOOOOOOOOOOOOO
++++X+++++++++++++++++=- )++++++++++++-++++)+++  -+                                                      -=+++++X+XX+XX+XX++X+XX
+......''........''...    ....'.......  '.. ...                                                            ....'................
+= =H =.. ==     ..           .=  =  =  .=                                                                     .H=HH HH=HH==H HH
+   C  ==        ==           =         =                                                                      =B CB CC CC  C CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOZZ))++)+))++=1)+X1))++++Z+++=+++M))1+)))M111)11ZMZXZMMMOOOMMOOOOOOOOOOOOOOOOO
+++++++++++++++++++++=)=)+++++++++++++-)+++)+++= )=                                                       )==  +++X++XX+X+++X+++
+.........'.....'....    ... .........  ... ...                                                                 ''.'.......'..''
+ === =  =.===  .=           ==  = ==     = =                                                                   ..H.=HH=H= .H=..
+         =     =                                                                                               ==C= CC B  =C ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOMOOZ1))A)))))+))))Z+))11)+)+++)1++)++)M)))1))1XZ11ZZZZMXAXAMMOOAOOOOOOOOOOOOOOOO
++++++++++)++++++++++++=++++++++++++++ +++++)++= ++                                                          ++ -++XXXX+++++XX+X
+.'.....'. .....'.''. .  '...'.......  ..... ..  .                                                                ........'.....
+=.=====.=  = ==. ..     .=  .     ==     =                                                                        HHHH===.=HH H
+ =     =       = ==     =   =                                                                                     CCCC   = CC C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOMZ)111))))))Z))))11)Z)+++1)+Z)+)+)))M+)))1)1Z111X11ZMZZZAXAOXXAOOOOOOOOOOOOOO
+++++++++++++++++++++++)++++)+++++)+++ ++++++++++++                                                           =   ++++XX+X++X++X
+..'..''....''..'..'.   ..'. ..... ... ..... .. ..                                                                 ..'....'..'..
+= .= .. == ..= .= .      .   =     =  == =   =                                                                      .HH H.=H. H
+  =  ==    ==  =  =      =                                                                                          =CC C= B= C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1111)M11)))))A))1))))Z++1+)++X)+)1))1)))11)1AZ1Z1)11AZ111AMAMZMOOOOOOOOOOOO
++++++++++++X++++++++)=+++++++++++++++)++++++++=++=-                                                                -++X++++XX+X
+..'.''..'.....'..'.    .....'.......  ........  .                                                                    ..'''.....
+  .=.. =.==H==.= .=    ===  .=        = ==  =                                                                        =H... HH H
+  = ==  =  C  =  =          =                                                                                         C=== CC C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXZZZ1A11Z111ZX111111Z))1++))1++)+))+Z)))))))M1)1111ZX1))1)1MMMAXZMOOOOOOOOOO
+++++X+++++++++++++++++)++++++++++++++++++++++++)++                                                                   ++++++X+X+
+.............'...'...  ......'...... .......... ..                                                                    ....'...'
+== =H === == .= =.     == =  .         ===                                                                             == .H H.
+    C        =   =           =                                                                                            =C C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMZZAZ11XZZAAZZA11111))))++X))))1)+Z))1))))A))X1111M111))+)Z1ZXMAZOMOOOOOOOOO
++++X+++++++++++++++++++++++++++++++)+++++++))+++++                                                                  - -+=+X++X+
+..'...'........'.... ..'.'...'..'.. .......  .....                                                                     . ......
+= .H==. === ===.= =   =. .===.  .      = =                                                                                H==H
+  =C  =        =       = =   =  =                                                                                         C  C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOXAZZZXOOAAMZXZOZ11)1+1A))))))X))))))+Z))))1))O)))1)))O++))X1MOMXXXAMOOOOOO
++++++++++++++++++++++++++++++++++++=++++++++++++++= )      --      -                              -       +       +      +++++X
+....'............'.....''.... ..... .'............                                                        .              ......
+== =.= =  == ==  .=  = ..===     =   .  =                                                                                  = =H
+    =            =     ==            =                                                                                        C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMAMAMMMMAMMMAZZZ1X1+1111)Z))Z)))A1)+)+))X)))))))M))))+))A1111XMOMAMOOOOOO
++++++++++++++++++++++++++++++++++++++++++++++++++++=                                                                 =   -=++++
+..''..'...'''.....'..'........................ ....                                                                          ..
+  ..==.===... ==  .  .  ==  =  == =  == =  = =
+  ==  =   ===     =  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMMMOMMMMMMMAAXZAZZO111111)A+))1))1))))11)1A))11)1Z1)1)1))1))11MMOOOOOOOO
+++++++++++++++++++++++++++++)+++++++++++++++++++++++ -    =              =                                             -)=)=+++
+......'..'......''.''..'..'. .......................                                                                        ...
+=  = =.= .  =   ..=.. =.= .  =  == ==   = =      =
+      =  =      == ==  =  =
1))+)+))+Z++)+)))M)+)+++Z1)))+++1+=--=+=)====-==)--+-==+)+=+=-==)---==--)===------------- ------=  + -  =----==)1))))++1)))+1))
 +)))1+)++++)++))1)+1)))=))+)++=+---Z===+==+A===+- =--=====)--=-+--+----1==+--+----)-------=------ 1---- --Z---=Z++O)1111Z111)Z
+                                                                                                                  -
 +Z+)+=+++M++)++))M=+))++)++====+1-----==)=+=-=+-)=+--=-=X==--=--+-----==M=------+--- ---+ ------=------ Z----=+)1)+1)1)MA))1)1
 =+)=+)=+++1++1+)++=+)Z1++))==-=+==----+==)+---+= ++=-++-=)-=---==1-=--1==M=---)--1+--=------ =---+  -----+--==+=+1+)))1)XZ+1Z1
 +=+--===1+++++=+=+=++++Z++1=---1-------)=-=-===+ -----=M==--=--+=-----=1-------+-------+---  - )--   --=----===1++))++)Z+))+1)
 --+--+=--Z))1+===)==+++==+==-----++-----=1--)=== +=-- ---M-------A-==---=+-------=-------=--  ---+--- - -- -==)-+X))+)))=Z)+))
 --+--+--+++=)1+==-=-Z+===+=-==--+---)==-+=--+=+=----+--=-===1--+++=-)----- -= ------=---  ---  -----+---- --)+-=++))M)+)++)+1)
 --=-=1===+===)==)-==++==-==-==-=-+--)++)==----=--=--+-=====-)---==-=1----- -+ -+----=----- -=  - -- - -- ---+-=++=))))++)))XA)
 --=-=-O==1-===A===+===X===---=)-----==X--=----=-==-==1=-=--=-)--====-)---- --)----=--)---  --+-----  -+- ----=+++=+)+)A)+++))A
+      +
 =-=+-======)==+)++)+----=--=--+-)--)-==---=------=++==+===)=-=--=+==-------+--=---+=----- ---- --------- -===--=+-)1+)))))Z+)1
 =-=+=++===-)=-+=+==Z=-=----1-=)--=-+-------+-==-+-=1+===+=-1-==--+-+-------+-------+---    + ------1---  --X=-=-+++O))++)))X1)
+                                                                                                                   -
 =-+--+M=-===+=A--=-=--)--)----Z-------1-=--=-+)---=++=+++=++=++--===-1)--+--------+-----+-----=---+----  ---==+=++)11M+)1)+)1Z
 +--==++1====1===--=+-==1+------+-=++==-)--=====)-===+=+A+++++==+--===--+-----==------------ -------   -- ---=-=+=+)))+Z))1))1)
 +-=1++)==-=++++-=-++-+==-=)--===-+A++==+--=--)+==+M++==++)M+==-=--1-------)---=-  1-------=  -----)   -- ----=-===1))+)))1)))+
 1))+))+==Z=+)==+-1-==--=-)=-=----)=-==---)---====1+++)=+++++=---)------ =-- -+--= ---------- ---+=-=- - ---+----)=+)++++Z+)))1
 OMMA1MZ)X+)+)===X----=-=Z-=--=--)=------=-----=-1=-=+=++1++==--=+-------=- -----+-+)----X-------+---- --+------=+=)))=++1++1))
+)
 OOOOOOOMMMZ1)===+====---=-------+)------------==1+=+=)+=+++=--=-+--==+---------+=-+-----)-------1-   -----------1+++++))Z+)1+)
++++++)=
+'....
+.== =
+=
 OOOOOOOOOOOOX+)=-Z--)----+-------+---------- -===+==++==)+++===---=+-- -=-- =---+ =-----+--- -----   -  - -----=+==)=+)+X+))+1
+++++++++++=-
+....''...
+ == ..
+    ==
 OOOOOOOOOOOOOOM1====)--)-==-1----- -=-------+-======)==-=+=++===-==)------ --------Z- ----=----------    ---+---)==+=++))))1+1
+++++++)++)+++)
+.'.... '' ...
+ .= =  ..  =
+ =     ==
 OOOOOOOOOOOOOOOOM11+=Z==-----+---- --+-----=-+==+=+==+-=-=-==)=-----+=--------------=)--+-+--=----- ---  ----1---=+++Z++++++)Z
+++++++++++++++++
+......'.....'..
+===  =. ==  .
+      =     =
 OOOOOOOOOOOOOOOOOOZ)++M==-----Z---  --)--=)=-+Z++)====)===-+=-1-- ----1-------+----==-=--+----+- -- - )  - ---=--==+==O+=++++)
++++++)++++++++++++                                                                                                    +
+..... ............
+==     = ==  ====
 OOOOOOOOOOOOOOOOOOOOZ)++=-=---==--=--=---=Z=+)++++A=+=-===)=+--=--)+------X- -----+=+=-+--=-------= - --  ---+---=A==+=)===+++
++X+++++++)+++++)+++-
+....'.... ..... .'.
+=H= .  =  == == =.=
+ C  =            =
 OOOOOOOOOOOOOOOOOOOOOO1+)-+--=-=----=---=====Z++==1-)+-==--=1=------=---------- ----)+=-- =-=   --- -=-    -=+---===1==+=-=++)
+X++++++++++)+++++++++=
+..........' .........
+H ===   = .     =  =
+C         =
 OOOOOOOOOOOOOOOOOOOOOOO1=-=+------ --------1-===+--1=+=-=--Z=-=----+-------=- -- --+=+----=)-------=---    )------=)+-==+==A=)
+++++++++++)+++++++++++=
+..'....... .......'..'
+==.   ===  ==  =  .= .
+  =               =  =
 OOOOOOOOOOOOOOOOOOOOOOOO1++--=-------)-------1+=----=1-=+=---M-------------  --------+-------+---------    - =-------Z++++)+=M
+++++++++++++++++++++++++
+.'.'. ...........'.'....
+=. .=  = ===  ===. .===
+ = =             = =
 OOOOOOOOOOOOOOOOOOOOOOOOOMX+------+-------1=---=--+-=+-+==)-------+ - -=- +   ----+-------)-- ----=--- +  = ---)--)--==+==1=+)
+++++++++++)X+++++++++++++
+....'.'..' .'........'...
+ == .=. =. H. ==  == .=
+    = =  = C=        =
 OOOOOOOOOOOOOOOOOOOOOOOOOOO)=-===---------)=-===--=-==-==+)=====--=--------   ----=------+)-------=- --- -= ------=--+-==)-=+)
++++++++++++++++++++)+++)+X=
+.''..'..'.....'' .. ... ..
+ .. =.==.= == ..  =  == =H
+ ==  =  =     ==         C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOO)=1---=-==1-------)--=-===)--+==-=M-------)---    --------+ ------=------ -= -----+-=)-=--)-++++++
+++++)+++++++++++++++++++++++
+..'. ........ '......''.'. .
+  .     ===== .= ==  .. .=
+  =           =      == =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOM1=---===+---=---1---=+==+---=+--+==---- ----  ------ -  -+--)-- ------ ---------++-===--1==++=++)
+++++++++++++++++++++++++++++
+........'.....'..''.....'...
+ ==     . ==  .==.. =  =.= =
+        =     =  ==     =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOM+---+)=------ ---+-=+)=+----==-=-=--=-  -+- ---- ----   -- -=-  -- --  ---- =--- ==+1----++=1+++
+X++++++++++++++++++++++++++++
+.........''..'..'........''..
+H==   ===.. =. =.  === = ..==
+C        ==  =  =        ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)-=1==-----=  ------+=+-)---+-=----1- --=- -+--- ---- --=  -= ---   -- ------- --===+--=-+++1++
++++++++++++++++++++X++++++++X+
+..'........ '..''............'
+= .=  ===== .  .. =H = = == H.
+  =         =  ==  C        C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM===-==-- ----=----==+-+)----+=---1-- ---- ----  --- --     - -       =---  --)--=+=--1===++=+)
+++++++++++++++++++X+++++++++X++
+..'.....'.....'............'...
+ =. ==  .  == .= =H  =  == .H==
+  =     =     =   C        =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX+-=-1---+---)-------Z=-+----)--=--- -- -    -  --   +    ---=- -- - +-------Z---==--)=+=+=++O
+++++++++++++++++++++++++++++++++                                                                                             -
+...................'........''..
+ ====== =      =  =. =     =..==
+                   =        ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1M+------Z---    -----)--+--------- --  -- --  ---  -    -)---   =-  -- ------+-==---=+++++++
+X++++++++++++++++++++++++++++++++
+..''....... .............''.'....
+H=..  ===    =     ===== ..=.=
+B ==                     == =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1=----- = -- -  )-   ---1---------   -       --  +       +----   ----  -==------=---=+===)++
+++++++++)+++++++++++++++++++XX+++-
+'..'...' ......'..........'......
+.==.= =.  =  ==.=     == =. HH===
+=  =   =       =          = CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM+)----- ---   -  --  ----==---- - -   -  --   --  =  ---  +-  -  --- =- --=----+--)-++=+++)
+++X++X++++++++++++++++++++++++++++
+.'.'........'.........'.''....''..
+ .H.=H= = = .  =   = =. .. == ..
+ =C= C      =         = ==    ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1=)-------)       -     --1--        --   --  --- -   +++  -     - -- - -- =---=--+)======1
++++++++++++++++++++++++++X++++++X++
+'.''......'.'.............'..'.....
+. .. ==   .=.= === =  ===H. =. =H
+= ==      = =            C=  =  C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)--- =--- -     - -  -  --+--- -   ----  -   --  -   --     -- - -   --------++---==+-+==+
+++++++++++++++++X++++)+++++++++++++)
+.................'... ........'.''.
+= === == == === H. == == === =. ..=
+                C=            = ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM=-- --   -=       -   -------     -   -   -  ---  --    -         ==-- ----)--+--=-1=++++
++++++++++++X+++++++++++++++++++++++)
+.'.....'' ....'.........'.....''.''
+=.= == .. =H =.  ====  =.  =  ..=..
+ =     ==  B  =         =     == ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1=+ --   --       -  -+   -       --  =-   - -----=-  -    -     -=    - -=)=-----=)=++++
++++)+X+++++X++++++++++++++++++X++++++
+... ...''....''.........'........'...
+  = =H .. =H=.. ==  ==  .==   H= .
+     C ==  C ==         =     C  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO=----       -       -   --  -           =   -- ----- =      --       )  ---=-+---=-==M==
++++++X++++++++++++++++++++++++++++++X=
+ ...............'...''..'.'...'..'.'.
+   ==H == =  ===.=  ..  . .= =.  .=.H
+     C          =   ==  = =   =  = =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ-+  -  - =       -       -  -+            -- - ----  -    -  -     --=- --=--=--==+=+X)
+=)++++++++++++++++++++++++)+++++++++++
+  ...''.''..'...'....''... .......''..
+  == .. ..==.  =.=== .. == =====  ..=
+     == ==  =   =    ==           ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM-+   +   =       --   =     -    =-        -  +           - -  -    - +=-------+--+=+=)
++=++++++++++++++X+++++++++++++++++++++
+. .....'.....'....'...''..'..'..'...'.
+  =   =. == =. =H .== ..==. =.  .  =.
+       =     =  C =   ==  =  =  =   =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+=  = =  =-  --  -   -=  -    -   -     - -    -  -    -  -  - =  +=-  ------=-)--=M+=+
+=)+++++++++)+++++)+++X+++++++++++++++++
+  ....''... .'..' '...'..'..'..........
+     =..==  =. =. .= H.  .  .= ==   = =
+      ==     =  = =  C=  =  =
 OMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ-      ---     -    -  - -  -    -     -    -  --                  -----+----=----===Z
+- )++++++++++++++++++++++++++++++++++++
+   .............'.'...'..'......'.....'
+    = = == ==  =. .= =.==.==== =. == =.
+                = =   =  =      =     =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+-  ------- - =   -          ==          ---   --    -            -------------=-=+)-=
+-+++)++++++++++++++X+++++++++++)++++++++
+ . . ..'..'.....'...'.'...'.... '.'.'...
+      =. =. ====.= H.=.=  .= == .=.=.
+       =  =     =  C= =   =     = = =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)-  -  ------  -- -+    -            ) -=  ---  +    -     -     - -----)=----=-====--
++=+++++++++++++++++++++++X++X+)+X+X+++++
+. .......'.'...'..'...'......' .......'.
+        =. .= =.= .===. =H==H. =H H=  .
+         = =   =  =   =  C  C=  C C   =
 MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+-   - ------=  -    - ---   -    -  - -  ----   -               -  ---------=1---=+=
+ =)+++++X++X++++++X++++++++X++++++X+++++)
+    .....'...........'..'......'........
+     =  H. H==== =H =. =.= H= =.==H ====
+        C= C      C  =  =  C   =  C
 OMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)---  ---=+-----  -- --- -     -    - -- --=- -           -    -  --+ -=------===+===
+= ++-+)++++++++++++++++++++++X+++++++++++
+   . . ..'...'..'..'.....'..'.....''.....
+       ==.== .==.  .==== .= .H  ==..=  =
+         =   =  =  =     =  =C    ==
 MOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA--- -+--=--=+-   ------  - --  ---- -    - ---  --  -  --    -  ---  -------=Z==+===
+ - +++++++++++++++++++++X+++++++++X++++++
+    . ....''..'..''..'...'.''..'.'....'.'
+        = ..= .  ..==.= H. .. =. .H  =. .
+          ==  =  ==  =  C= ==  = =C   = =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM-----=1=+--=--=------=+  ---  -=- -   + -  - --  --   -     -       ---)------++++==
++=-+=+)+++++++++++++++++++X++X+++++++++X+
+.    . .........'..''.''....'..''..''....
+           ==  =.  ..=.. =H=.H .. =.. =H=
+                =  == ==  C =C ==  ==  C
 MMMMOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+=--)++===-=+-----=+O=-- =--- -=- --= -- - --=  =   -=               -----==-+-=1++=
+    == )++++++++++++XX++++++++X++X++++++++                    -
+        ..........'.....''.''..'..'..''.'.
+        =  ===== =.=HH =.. .. H.=H. =.. .=
+                  = CC  == == C= C=  == =
 AMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1=-=+)+1++=+=-=--++++-------+-+)  =----=  -    -    =- -    -  -- -   -)=-++-==)))+)
+  --- -+++++++X+X++++X+XX+X+++++++++++++++
+       ...'......'..'......'.'''.''..'....
+          .=  H H.= .H=HH H.=... .. =. ===
+          =   C C=  =C BC C= === ==  =
 ZMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX+)Z)11+=+=1-==-)++1=-+------++ ---+--------  --   --         = ---- --====)-+++)+=
+     =)++++++++++++X++++XX+XX+X+++++++++X++
+         .....'..''..............''..'.'..
+              .= ..H=== HH HH H==.. =.=.H=
+              =  ==C    CC CC C  ==  = =C
 ZXMMAOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZM))1Z1++Z=+++)++A++1----+---+=--1=+-+ --= --    =       -   -- -+- -+---)=====++X=
+     = + ++++++++X++X++X+++++X++XX+++++++++
+       .  ......'..'..'.......'.....'.''...
+             =  .H .H .H=== =H.=HH =.=..= =
+                =C =C =C     C= CC  = ==
 1ZZAOAMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM11X1A))))))1)+)+1)===-----=Z--)-=+-- -------  +  =   --       +-- -----1-==+++Z)+
+    =    =)+)+)++++XX++XXX+++XX+XX+++++X+++-
+           . . .'.....'...'........''.'...'
+             =  .= HH .HHH.  HH=HH .. .H =.
+                =  CC =CCC=  CC CC == =C  =
 Z1XMZMAMMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1XXZ1AXX1XZ1)))1)1+-+-----=+)=-=-++=- -+----- -        -  -   -- ------==-=++=1Z)+
+          ))+)++++++++X+XX++++X+X++X++++++++
+            . ...''..'.'...''..'.....''..''.
+               ==..= .H.HH ..=H.H==H ..= ..
+                 ==  =C=BB == C=C  C ==  ==
 ))111MXXMXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOX1ZMZ1MMZ1)A1ZA)+=+------1-=--=+))= ---=-              -   + --=-------)=+=+)))1
+          ===)++)XX+++++++++++XX+++++X++++++ =
+              .. ...''.''.........'.'...'.'.
+                 HH=..=..=====HH==. .H =. .
+                 BC == ==     CC  = =C  = =
 ))))111MZAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZMAMO11ZZOZZZ)Z)1)+=+----+)-=+-=)+==------   =       -  =-   ----)-----=Z+))+)))M
+           -+)++++XX++X++X++++++++XX+++++X+)     =    -
+              ..'....'....'.''.''.....'.'..
+               =. HH=.H= H.=.. ..=HH =.=.H=
+                = CB =B  C= == == CC  = =C
 +)+)1)111XOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX1ZOOMO1XMZMAMM11)++-)==-+)-=)-=)++= =----- --- -  --+  --+ -=-------+-=++1))M=)1
+          = =++++X++X++X+++++XX++X+X++X+++++=   -+ )
+             ...'..'..'.'''.....'...''.'..'.
+                .H=.H .H... =HH .H H..H. =.
+                =C =C =C===  BC =C C==C=  =
 +++++)A)1AXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMOMOMMOXOXMOMMAAMZ++==))+)++++=Z1+)=--  - --    -   -- --  - ---- -+---+)))11)=A)
+            +++X+++++XX+++++X++X++X+++X++X++  = =  - +  -
+             ......'....''...'..'....'..'...
+              =H  =.=HH ..==H.=H. H= .H .H
+               C   = CB ==  B= C= C  =C =C
 )==+))X)1ZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOAMOMOAAMMOMMMX1))++X)))+=++)+)+)=-----   -    -  -------- -+----+==)+)))111M1)
+            =+++++++++++X+++++X++++++X+X+++X - -  = )    -
+             ..'..'.'.'....'.....''.'...'...
+               . =.=.=.=H =.==H= ..=.H H. =H
+               =  = = = C  =  C  == =C C=  C
 ++++))1M11AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXOMMOMOAOMAAZXXZM))+1+11A)+=++=1))1=-  --- --  - -  -  -----   ----=+=+X)111AZ1O)
+            ++++X++++++++X++XX+XX++X++X+++++= +  = + =                                                                      -
+             ......'..'...''.........'.'''..       .
+               =H =.==.==H..HH HH==H .H...=
+                C  =  =  C==CC CC  C =C===
 +)))))1ZZZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOMOOOMMOXMZZA1O+++)A11A1+====MZ11=------- =- --  --- +- --   +---=1)+))1Z1Z1ZM1
+            =++++++X++++++++XX++X++X++X++++++  = +=+  -      -
+             ...'...'.''.'''...'..'....'.'...    . .
+               =. =H.=.. ...HH .H=.H =H.=.=
+                =  C= == ===CC =C =C  B= =
 +1+)11Z1MMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAOOOOOOMOMAZ11)11)+)ZX1Z1+))==XOZ)+=-===-------- ------=-      ---++)=)X1MX1111A
+          ===++++X++X++++++X++X++X++X++X++X+=  +-)+== +                      =
+             ...'.'..'..'....'....''.'..'..'   .  .
+                .H. H.==. =H=.H==H..H.=H. H.
+                =C= C=  =  C =B  C==C= C= B=
 ))))1MOXMXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOMZZZ11Z)Z1)11MM)))))=)ZZZ))=+Z+-+----)-------1=--    -- =-++)111ZXMXZAZ1
+      -   =+)++++++++X++X+++X+XX+X+++++++++X+- +)=+)+-
+              .'.'''.......'......'.'''.'....  .  . .
+               . ... H  H==.H HH H. ...=.= H
+               = === C  C  =C BC C= === =  B
 1OX1XAMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXOOOOOMOOOM1Z11))O1)A)X1+X)))=+1M1)+=))=X------ -----=---    -  ----))+)M11A1Z1ZZ
+ -        +++++++X+++++X+++++X+++X+XX++X++X++ ==+++ =+=       =
+           . ...'..'......''..'............'    ..
+                .H .===H= ..=H. =H=HH==H==H.
+                =C =   C  == C=  B CC  B  C=
 OMAMAMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOMOOM1OOAA)Z))11AM++)1+=))Z1+++)M=+-----=    ---=-   -  -    -=++)+1)1)1O1Z
++     -=+ +-)++++++X++XX+++++X+++++++++X++X++ )++=+- ++  --                                                                +
+             ...'...'....''.....''.'..'..'...   .
+                .= H. HH=..==H==..=.= .H=.H
+                =  C= CC ==  C  == =  =C =C
 MOOMOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOOOZ)1AZZXZ1))A)++1)XO+)+))++---- -  )  ---  -       = --=-=)Z))Z))Z1
+ +- ==) +-++++++++++++++++++++XX++XX++X++X++++)+++==- = -=+-                  =
+        .  ....'..''.....'..''.......'.....'.  ...
+             = .= .. ====.  ..HH= HH .H =H=.=
+               =  ==     =  ==CC  CC =C  C =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOMOOOM1)ZAZ1M1))1)+11ZMM)1+))+)----1  -   -Z---    -  -  -=M-+)+1))M)1Z
+++++)++++++++++++++++++++X++X++X++XX+X++X+++X+=+++=-= +- +=+
+...   .... .......''.''.'..'....'.....''...'.. .      .    .
+               == ..=.. .H .H==H.=HH=H..H==.H
+                  == == =C =C  C= CC C==B  =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOMOOOOOOMMMOA)Z1X)ZM1111ZXOOOM)))+1)+-----=     --+-   -  - ----++1)))1)1ZOZX
+X+++++++++++++++X++++++XX+X++X+++X+++++++++++) +++ =)=+++   =              )--                                             =
+............ .......'.'.......'.'..''.''..'.'  ...    . .
+H=  =  =        H=  .=.HH H= H. .H=.. ..==.=.
+B               C   = =CC C  C= =C == ==  = =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMM1MZ1)M)1MXZMMOMMO))))))1=------------=-+-      =---=)++O111)MXZA
+++++++++++++++)+++++++X+++++XX+X++++++++XX+++++++++++=++)++                -  -                                      -
+...'...... ... ....'....'.'.....'.''.''....''    ..   .. .
+= =.  =         == .= H .=. HH=H. ..=.. HH=..
+   =               =  C = = CC C= == == CC ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOMO1AAMAZZA111MMMOMAZZ)1Z))+------ -=---)-  --   ---==+1Z)ZMZ)11O1Z
++++++++++-=-+)++++++++X+++X++++++X+XX+++++X+++ +======+++=-= -              +                                              +
+.........     ......'....'..'.........''.'.... .      ...                   .                                              .
+= == ==        ==  =. H= .H=.== =H=HH ..=.H=
+                    = C  =B =    C CC == =C
 OOOOOOOOMOAMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOMAOAAMMXZX)1MMOOOOMA1X1+Z=----  )--   -   --   -)-+)1X))O)1)1MZMO
++++++++) -  = ++++X++++++X+++++X++X++X++X++X+++)++))= ++++==)  =           ++==                                      -       -
+..'...        .......''.'..''''.......'..'....        ..
+==.==           ==H  ..=.H ....H =H  H. H.=H=          =
+  =               C  == =C ====C  C  C= C= C
 OOOOOOAA1XZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOMOOOOMMMMMAO1ZXOOOOMMMXA)1)==--- ----+-=-+------ -)-++=)+)A11)1AZOZ
++++++=      =-++++++++++X+++X++X++X++XX+XX++++-=)+)+- +++++ -=--      +   --=-                                              +
+'..            ..''......'.'..'..'.........''.   . .  ... .           .
+.=             = ..= == H. .H .H .H==HH=HH=..
+=                ==     C= =C =C =B  CC CC ==
 OOOAZ1Z)+X)ZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMAMOMOMXAXAMOAOMZMM)1++=-- ---------= ----  =--===)+A1111ZAOA1
+++=          ++)+++++X++++++++X++XX+XX++X++++++++++))+++++==++)    + )      + -                                            +
+..            . ....'.......'... ..'........'. ....  ...                                                                   .
+=               ==  .H======.=H= HH.HH==H===.
+                    =B      = C  CC=CC  C   =
 MM1++)+++A1XOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOMMMMOOOOMOAMMMOXAZZMM1++==-- -   )   --  --   --=+)+))11X11ZZOX1
+            - ++++X+++++++++++X+++X+XX++X++X++-++++==+=+)= =+-    ---- -    +                                              )
+              .......''.''.'''.'......'..'..'.  ...    .                    .
+                 =H =.. .. ...H. =H=HH.=H.=H.
+                  C  == == ===C=  C CC= C= C=
 X1A=-+===)1ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOMMOOOOOMOOMMMMOMOOOMOOMMMXAZ1XMM))++-  -      - -       --1))+)11A11XXMAZM
+            --+++++X+X++++++X++++++X++X+++++X+ +)+++  )++-= =+    - -=- -=
+               .......'..'...'.''.'..'..'''... . ..    ..
+                 ==H H. =.  H.=.. .H=.H ...=H=
+                   C C=  =  C= == =C =C === B
 X1A+-+--=1ZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOMOOMOMMAMOMOMMMMMMOMXZXXMO++)------   + =---- = -)--+++)1M1)11MMOO1X
+            -+=++++X++++++++X++X++X++++++X++++ ))+++-++++= -- -    = +      +      +                                      =-
+               ...'...'.''.'..'..'.''...'.'''.   ...  ..             '             .
+                ==.H==.=.. .H=.H .H..===.H...                        .
+                  =C  = == =C =C =C==   =B===                        =
 Z))+-=--=+X1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMMMOMMMMMMOMAMMMMOAXAAA1+1=---- -- - =---+- -----+=+))11)11ZXMM1O
+             )=++++++++++++++++++++XX+XX+XX+XX=)+++++=+)+)==    =      )      =                                              =
+               ....'.''''...'''''.............  ..... .
+                ===. ....== .....= HH HH HH=HH  ==
+                   = ====   =====  CC CC CC CC
 +1+=-===+ZZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMAOMMMMOMOZMMAOMOMMMMAXMZ+1+---+ -=--  +----=-=)--+-=+111))11ZOMZM
+             ++++++++X++XX++X++++++XXX+++X+X++++++++++)++)    +    - )    - =                                             -
+              .'..'........'..''......'.'...'......... ..     .
+               . =.  H==HH .H=.. ==HHH. .H H.     =  =
+               =  =  C  CC =C ==   CCC= =C C=
 -=)--Z-+))1XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMOOMMAMMMOAAOXOMOMMMAM1O1+=----+-=-----+=+==++==-=-++11M)1AZAAO
+            ==+++X++++++X++X++X+XX++X+X+++XX+X++++++++=+++-+-   +-      =  = - +      +                                      -
+              ....'.''....'........'...'....... ...... ..                      .
+                 H.=.. =H .H =H HH .H=H.  HH=H
+                 C= ==  C =C  C CC =C C=  CC C
 -==-===)ZZZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOMAZZOAOOOMMO+MOMOMOOZZ11)=1--)----- ----=-1++==+--1)11++11OZ1A
+             )+++X+++++++++++XX++X+XX+++++XX++++++)++--+)-=+=  +    ) ---  -  = = ==                                      =
+              ....'.''....'...........'''....'. ..  .  .   .
+                =H.=..=== .= HH =H HH ...=HH .
+                 C= ==    =  CC  C CC === CC =
 --==+1A))1AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOMMMMOXMMAOMOOOOMXMOOOOOOMO+)=-=--=-==----=--=====+=--=+))M)Z))1)Z
+            =+++++X++X+++++++)+++X++X++X+++X+X+++++)= -)+)+=-    =    = +=+-   +====- +
+             ....'......'..'. ''..'..'..'.'....  ..     . .                    .
+                 .H==H  .  .= ..=H. H.=H. .H=H
+                 =C  B  =  =  == C= C= C= =C C
 --++++)X1ZZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOMOMOOOMOOOOOOMOOOOOOOOOOOOOMA)1=------X----+--1===+)=-M=+++)1)O1)1))
+            ++++++++++++++++X++++++X++++++++XX+)++ -++)++- - +-= ==-+== -=++=--+=+++)                                   =
+             .....''..'..''.....'.'...''.''....         .                 .      .
+                = .. =.  .. H= =. .H==..=.. HH
+                  ==  =  == C   = =C  == == CC
 +-+++1)1AAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAOOOOOOOOOOMMOOOOOOOOMOOOOOOOOOOOOOMM1Z)+=----=+---==-=)+=+++-=+)+)))1A1111M
+           -=+++X++++++X++X+++++X++XX+XX++++++++=  +)=++)=+=+  -==+++-+ ==+=++=))+=+=
+             ......''.'......'...'...........'.           . .     ..      . ..   . .
+                H= .. .H  H==.= H.=HH HH=== =.
+                C  == =C  C  =  C= BB CC     =
 -=)))))1XAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOMOOOOOOOOOMOMMOOOOOOOMOOOOOMOMMOMMMMA1))=====--X-=+=)+=1=++-=+)1)+))))MXXZ
+          -=++++++++++++++++++++++X++XX++X++X++- = + =)=+++=)- +  ===-+-- --+)+ =  -
+            . ........'............'.......'...         ..     .      .
+               ===== =.=== ==  == H. HH =H .H                  =
+                      =           C= CC  C =C
 -=+)Z)11MMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOMMAAOOOMMOOMOMOMOMAOOOMMAOOOOMOMOMMOXAZ11+)Z=+====+1+++===+)=++)))ZZ1))AZAO
+           +++++X+++++XX+++++X++++++X+X+)++++X+ - =    ==+  -- - ) +  ===   +-=+ - =  -                                      +
+            .......''.......'...'..'...' ..'...          .                  .
+                H= .. HH == .H==.  .H H.  =. H=
+                C  == CB    =C  =  =B C=   = C
 -=))1OZZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX11+MZ111)1)M1Z1ZZZXMX1ZXXZM1AMA1MOMMAZMAMO111)++)+)+=+++A))1+)))Z1ZM)Z1Z1111ZZ
+     -    =-++++++++X++++++++++++++++++++++X+++                                  -       =
+            .''.'..'...'......'..'..'..'..'....
+             .. .==.H  .= =  =.==.  . =.= .H  =
+             == =  =C  =      =  =  =  =  =C
 -+))11OAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1Z+ZMXXZ11+AA11)+)1M1=-)Z1)M)11))11X)))11)11)Z=)++X)+11Z))Z+)1))))O1111XAOXXMA
+      =  -=+++++++X++++++++++++++++)+++X+++X+++                                                                   =      +
+           .........'.....'....'... '.......'.'
+             =====H .=  ==.= ==. == .==H= =H. .
+                  C =     =    =    =  C   C= =
 1+))ZZAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMM1ZZOOOM))11O111ZZZO-=11)++Z)))+)++1++)+)++Z)===+++++))+++O+)111)XMZZ))Z1AAXM
+        ))+)++++X+++X++X+++++++++++++++X+++++++)     =-+     -      =                                      -
+          . .....'.'..'........'......'...'''..
+             = =H. .H .H ==  = .= == =.H =...=
+                C= =C =B       =      =C  ===
 =+)ZMXOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOXZ)ZZXM111ZX))1))+11)1)+1+)++Z+)+)Z++)-+==)++M=++==))A1X11XZZ11Z)1ZZO
+      - -=++++++X++++++++++++++X+++++X+++XX+X+++)+== +++=                                                                    +
+           ....'..''..'.''........'''.'.'....... .   ..
+            =  .H .. =.=.. === H  ...H. .HH=H===
+               =C ==  = ==     C  ===C= =CC C
 ++)OXZMMOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOOOOOOOOOOOOOOOOOOOOOOAAXOAAAXAXMA1Z)1XZO1+)M)1)1)1))))))==++=+)++-+1+=X1)1AZXMA11)11ZAXX
+   =    =)+++++XX+X+++X++++X++X +++++++++X++X+++)+++=+)++)=   -              +
+          ..'............'...'. ..''.......'..'' ...   ..
+            .  HH=H= =H =. H=.H   .. == =H=.H=..   =
+            =  CC C   C  = C =C   ==     C =C ==
 +)1XMAMOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOOOAOOOMMOMOMXOM)ZZ)1M1)+))+=A+==+)))A)Z)+MZ1MMOMOOMO1)1111O
+       )=+)++++X++X+++X++++++++ ++++++X+XX++X+XX+++++++++++)+= + )--= +==  - -  =                                = +) =      )
+         . .....'....'......... ..''.'.....'.'...... ...... .
+           === H. H= .H == ==    =.. .H HH .H.HH = =
+               C= C  =C           == =C CC =B=CC
 ))OMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOMMX)11M1)1)1+1O))))1ZMZAAZAZZOOOOOOMOAZ1ZAAO
+  -    =+++++++++X+++X+++++X+++++X++++++X++X++X++++++++++)+++++)-+))+)+  )=+)+-=))              +              )-=+=) =      +
+         .....'........'....'.'.....''.'................. .....  .  . .      .                                               .
+           == .==H= =H=.===H. .= H==.. .H  H =H===  == =
+              =  C   C =   C= =  C  == =B  C  C
 )AMAMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMOXX1M1ZOAZA1Z1AMXZMMMAOAMOOOOOOOOAXMOOO
+      -+++++++X++X++X++++++++++++X++X++X++++++X++++++++++++++++=+++))+==-))+++))++===  =      =              =  -=+++-)-   +++
+         ..'.'..'....'.'..'.''..'..'....'..'....'' '...'..'....                 ..                                ...
+           . .H=.H==H. . =.=..= .H .H =H.==. =H .. .   .  .=
+           = =C =C  C= =  = ==  =C =C  C=  =  C == =   =  =
 MZXOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAOOOOOOOOOOOOOOOOXZXZZMZAMMMAOMXMZMMMOOOMMOOOOOOOOMOOOO
+   - --++++++++X++XX+X+++X++X++++++++XX+++++X+++++++++++++)+++++===+=-  +)+==++))+-))+)-            =       =--  +=+++--= )+++
+        .. .'...'.....'......'.''..'....''.'..''...'..'..' ... .   .    . .  ..  .   .                             . .     .'
+            .==H. HH=H.  H =H. ..==. HH=.. .H=..= =. =. =. ===                                                              .
+            =  C= BC C=  C  C= ==  = CC == =C ==   =  =  =                                                                  =
 1AAOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOMOAMOOOOOOOOOOOOOOOOOAMAOAXAAOMOMOAMMMOXAOMOMOOOOOOOOOOOOO
+   = +=++++++X++XX+X++++++++++X++X++++++++XX++X+++++++)+++)+++++= -= )  ++)-+)++++++)+++-   =    - = -    +  - + +)++++)++++++
+     . . .....'.....'..'.....'..'......''.......'..... ... . ...        ..    . . ..  .                        . .    . ......
+          = =H. HH=H. =.===  .H=.H  == .. HH==H .= ==  ==
+             C= BC C=  =     =C =B     == BC  C =
 1OOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMOOOOOOOOOOOOOOOOOMMOMOMMZMMMOMAMOM1MMMOXMOOOOOOOOOOOOO
+ +-- +)+++++++X+X++XX+++++++++++++++++XX+X++++++X++X++++++++++++)+)++=  +)++-++)++)+++++=  = -      +   -     +  ==+)+=+))++++
+       ......'...'....''........'..''...'.'.''...........  ..... .  .   . .  .. ..  ...                            . . .  ....
+             .H=H. HH=.. = = = =.==..=HH.H. ..==H =H =      ==                   =  =                                       =
+             =C C= CC ==        =  == CC=C= ==  C  C
 XOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOMMOOOOOMMOOMMOMMOO1MMAOAOMOOOOOOOOOOOO
+ - -==+++++++++++++X++++++++++++++++++XX+X++X++++++X+++++))++++++++ +)+=)=+)-+++++++++))  +++-+  =+  -  +=    - = )=++++)+++++
+      ......'..''.....'..'...'.''..'......'..'..'....'...  .'' '..  .     .  . ... ...    . . .                     .... .....
+          = .==..= H= .= .= =.=..= .  HH=H. H. =.  H .      .. . =           =                                      =        =
+            =  ==  C  =  =   = ==  =  BC C= C=  =  C =      == =
 MMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOMOOMOOOOOMXMMOOOOAOOOOOOOOOOOO
+   +++)+++++++X+XX++++++++++++X++X+XX+XX+XX)++++X++X+++++++++++++++)++++)+++-++) +++++++++++++++ )- -==-=    =--+ =-++++)+++++
+    .. ....'......'..''''....'..'.......... ''.........'........... .... ... ..  .. ...  . .  .                     . .. .....
+          =.  H=HH. =.... == .H .H=HH HH=HH ..= H= H== .     =      =      =  =
+           =  C CC=  ====    =B =C CB CC CC ==  C  C   =
 MOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOMOOOMOXMOOOMOOOOOOOOOOOO
+ - ++)++++++++++++X++X+++++XX++++XX+++++X+X+++X++X++++++++++++++++++++++++++++++ ))+++++-+++++++=)=)++ =-= -  )== +-))=+++)+++
+   .    .........'......'. ...''....''...'.''........'..'.......................   . ... .. . ..                  .    ... ...
+          === ===.H==H= .  HH .. HH=.. =H.H.. H =H=  .= .=    =   =  == =  == =
+                 =C  C  =  CC == CC ==  C=C== C  B   =  =
 MMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOMOMMOOMMOOOOOOMOOOOO
+  - -)++)++++X+++++X++++++++++X+X++XX+XX++X++X++X++X+++++++)++++++)++=++++++++++=++++++)+++++)+++++=+  +++ +  +)  +=-+++ =)+)+
+       . .......'...'..'.'..............'...'.............. ...... .  .........  .....  ....  ..... .    . .  .   .  ...     .
+          = =H  .==H.==. .====H H= HH=HH.=H=.H  H==H=        = ==      =  == =      =
+             C  =  C=  = =    C C  CC CB= B =B  C  C
 MOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOMMOOMMOMOOOOMOOOOO
+ + ===)++++++++++++X++++++++++++X+XX++X+XX++X+++++=++++))+++++++++++ -++++)+++)++)+++++++++++++++++++-)- --=  +)  + ++++ --+++
+       ......''''....''..''.'..'...........'.'''.. ....  . .........  ....  .. .. ................ .          .   . ...    ...
+          = =....= H=..= .. .= .H HH =H HH=.H...== ===         =      =  =  =     =  =   =                           =
+             ====  C ==  == =  =C CC  C BC =C===
 MOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOAOMOMOOOOOOMOOOOOOOOOO
+ - --+=++++++XX++X+++++X++++++++++++X++X++X++XX+++-+++)+++)++=++++++ ++)++=+++++++++++++++++++++++)++ =- = - -)=+-+ -+=+++-+++
+     . . .......'.'''.....'..''..'...''.'......... ... ... .. ...... .. .. ...... .......'..... .  ..             .    .   ...
+             HH .H...= H==.= ..==.==H..H.=H= HH= =  =      ==  =  =               =  = = .
+             CB =C===  C  =  ==  =  C==B= C  CC                                          =
 MMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOMAMMMOOOOOMOOMOOOOOOOOO
+   --++)++++++++++XX+++++X++++++++X++X+XX+++++X++X++++=++++++++++++++++++++++++ +++++++++++++-++++=+=++     -)+)+ ++ )++++++++
+         .......'....''.'..'...'.'..'....'''.'..'....' ......... ...'..........  '........... . .     .       .   ..  .. ....'
+            ====. HH .. .H=.=  . .H .H HH...=.H .H   .  =  =        .      =  =  .= ==   = ==                             =  .
+                = CB == =C =   = =C =C CB=== =C =C   =              =            =                                           =
 AZOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOAMOMOOOOOOMOOOOOOOOOOOO
+  +-+ -+)+++)+++X++XX++++++++++++++XX++++++++X+++++++++++=++++++++++++=+++++++++++))+++++++++=+) =+=+=)  - =++)+) ++++++++++++
+         ... .'..'....''..'.''..''.....'.''...''''....... ...''....... ..... '' .'  ......... .              .    .......'. ..
+         === =.=H. HH=.. =.=..= ..=HH =.=.. =H.... ==        ..     =     == ..  .  ==  =  =                          ===.
+              = C= CC ==  = ==  == CC  = ==  C====           ==              ==  =                                       =
 AZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOXMOOOOOOMOOOOOOOOOOOOO
+   -++++))++++++XX+XX+++X+X+++++++++X+X++XX++X+X++++++++++-)++++++=++++++)+++++=+++++)++++++=+++++- = =-  -=+++) +)+)+++++++++
+     .    ....'..........'......''.'...'...'....'..'.....   ...... ...... ..... '.... .'.... ...            . .    . ...'....
+          == =. HH=HH ==H.H= ===.. .H=H. HH.=H H.==. = =    = = =  =         == .=     .  =                        = =  .=  =
+              = CC BC   C=C     == =C C= CC= C C=  =                            =      =                                =
 AMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOMOMMMOOOOOMOOOOOOOOOOOOOOOOO
+   =+=+)+++++++X++X+++++X++X+++X+XX+XX+++++++++++X+++++++)+++=++++++++++++++++++++++++++)=+++) =++ =   --+=+ -+)+++)++++++)+++
+      . ....'.'..'.'''......'.'.......'''.'.''.......' .. ... ...... ..................   ...    .       .    .  .. ...... ...
+           =. .H=.H...= H==H. .H HH HH...=.=.. = H ==. =      =      =      =       =                             = =  ==  ==
+            = =C =C===  B  C= =B BC CC=== = ==   B   =
 XAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOMOMMMOOOOMOMOOOOOOOOOOOOOOOO
+  -+-+)++++++++++X+X+++X+++++X++X++XX+XX++++XX++++++++++++++++++++++++)++++++++)++++++++++++)=)  + -   ===+ - ++++=+++++++++++
+     . ...''....'...'............'...'...''.....'..'.....   ...... ... .. ..... ......  . ..     .             ... ...... ....
+          ..=== .H=H. =H= =  H= H. HH.HH .. HH==.==.   =               =  =      =                                 == =   =
+          ==    =C C=  C     C  C= CC=CC == CC  =  =
 AOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMMOMMMOOOOOMAOOOOOOOOOOOOOOOOO
+ - -=)))++++++X+++X++X+++++X++X+++++XX+XX+X++XX++X++++)++))++=+++++)+)++++=++++++)+++++++==)++    -   ++==-  -++++)++++++-++++
+        ...'.'......'..''.'.....'''................... '.   . ..... . .... ......  .... .   ..                 ... ...... ..
+        = =.=.H= =H=.H=..=.H =H=... HH=HH H==HH==H==== .               ==     =                                        =   =
+           = =C   C =C == =B  C === CC CC B  CC  C     =
 MMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAOMOOOOOOOOOOOOOOOOOOOOOOO
+  =)+)++++++++X++++++++++++X++X++X+++++XX++++XX++X++++)+++++)+++++)=+=+++)+++++++++++++++++++==-==   - -)+++)+)+=+++++)++=+++)
+    .  .....''.'...'.''..'..'...'...''....''....'..... ..... .....  . ...  ...... ..... ... .             .  . . ..... .. ''
+        ==  ..H.  =. .. =.=H.=H=.H= ..=HH ..=HH=.H  =  =                                =                          =   == ..
+            ==C=   = ==  = C= C =C  == BC == CC =C                                                                        ==
 MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOMOOOOOOOOOOOOOOOOOOOOOOO
+ -)-++)++++X+++++++++X+++++X++X++XX++X++X++++XX++++++++++++++++++)=+-=+++++++++++=+)++)++++)++++- ) -) =+++++++)++++++)+++)+++
+    .. ......'''....'..''......'.......'..'''..'.''.......... ..   .  .....  . .. . .. . .. ..          ...'. . ...... ... ...
+        = =H ...=== .H ..==H= H. HH =H=.H ...HH. ..===     ==                                              .      =  =      =
+           B ===    =C ==  C  C= CB  C =C ===CC= ==                                                        =
 OMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOO
+- +=+++++++X+++++++++X++X++XX++++X++XXXXX+XX+++++X+++++++++++)++++)=++++++)++++++++))++)++)=)+++)) )+++)++++++++++++++)=+)++++
+    ........'....'............''..'..........''.....'. ...... ....  ... .  . ..  ..  .. ..     .     .. ..... ........    ...'
+           H. == .===H==H==HH ..=H. HHHHH HH .. =H= .=                                                      =                .
+           C=    =   C  C  CC == C= BCCBC CC ==  C  =                                                                        =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=+)++++++++++X++++++++++X++++X++X+XX+XX+XX++++++++X+++++++))++)+++++)+++)))+=++++++++)++)+++=))+++++++++++++++++=++++++=++++++
+   .... ..'.....''.'...'.'..'..'...............''.........  .. .. .. ...   . . .. ...  . ...   ..   ............ .... . ......
+         =.==H =..=.= =.H.==.H=.H HH=HH=HH==== .. H=           =                =   =                   =  =   =          = ==
+          =  C  == =   =C=  =C =C CC CC CC     == C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=+++++++++++++++++++++++X++X++X++X++XX+XX+X++X++++++++++)+++++++++++++=++=+++++++-++++++++++++)++=+++++)++)+++)++)+++)+++++=++
+  .... ....'..''.''.'.....'..'....''.......'.....'.... . .....  .... . .. .. .... . ...... ... .  ..... '' ... .. ..   .... '.
+         = . =.. .. .== H .H=.H==H..HH HH=H. H== . =      ==      =           =         =  =            ..      = =         .=
+           =  == == =   C =C =C  C==BC CC C= C   =                                                      ==                  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++)+++)++++++++++++++++++++X++X+XX+++XXX+X++XX++X+++++)+++++++)++))++=+=++)+))+++++++++)++)+++++=++)+++++++++))+++++)=+-=++++++
+  ... ...''..'..'........'.''....''....'.'...''...... . ..... ..  ..   .. .  ..... ... .. ..... .. ....'..'.  .....     ......
+   =     .. =. =.= == == .H..H HH..=HHH.H. HH..H ==                       =     ==                 =   .  .=
+         ==  =  =        =C==C CB== CCC=C= CC==C                                                       =  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOO
++++)+++++++++++++++++++++++XX++X+X++X+++X+++++X++++++) ++++++++++=+=)+=+- ++=++++++++++)+++)++=++++++++++++)++++++++=+ ==+++++
+... .'. '..''...........''........'..'.'..''''.......  ..........          . .......... ... .. ..... ....'. ........ .   .....
+    =.  .  ..=== = = == .. HH= H=H.=H. .H ....H= ==     ===  ==            =         =   =     ==  =     .=              = ===
+     =  =  ==           == CC  C B= B= =C ====C                                                          =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXAOOOOOAOOOOOOO
+)++++++++++XX++++++++XX+XX++++XX++X+XX++X++XX++++X+++++++++++++++=+=+)== -++=++++++++++++++=)++++++++++++++++++  +-)=+ +++++++
+ ....'........''..''.......''.............'...'...'..... .......  . .     .. ..............  ......'.... .'...          ......
+  = =.  ===HH ..==.. HH=HH=..=HH =H=HH==H=.HH=.= H. =       =                            =         .  =   .                =
+     =     CC ==  == BC CC == CC  C CC  C =CC =  C=                                                =      =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)1MOOMOZOOOOOOO
+++++++++++++X++++X+++++X+++X++X++X++X++XX+XX++X+XX++++++++++++++=+)++++-=-+=)+++++++=++++)+=+++++++X++++)++)+)    )) = =++++++
+ .......'..'......'.'...'...'.....'..'.......'......'.... .....    . .    .   ...... . .. . ..... ...... .. .           ......
+   ===  .= .H ===H. .= H.==H.=H==H.=H. HH=HH .H HH= .                                              H  =  =                == =
+        =  =C    C= =  C=  C= B  B= B= CC CC =C CC  =                                              C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOMMMOOOMOMOOOOOOO
++++++++++++++X++X++XX+++++++++++++XX++X+++X+XX++X++++++)--)++++-+====  ++++++++)++++=+))=++++++=+ =++++-+++++)   =++ + +++++++
+..........'.'.........''..'.''.''...''.'''.............     ...           . . . ...  .   .          .   . ...     ..    .....'
+= ==  =  =. .H =H  HH=.. =.=..=..=HH..H...H HH= H  =                              =                                       = =.
+          = =C  C  CC ==  = == == CC==C===C CC  C                                                                            =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOMOMOOOMOOOOOOOOOOOMOOOOOOOOOOOOOOO
+++++++++++X++X++X++X++X++++++++X++X+XX+++++X++X+++++++++==+++++)+=--+  -+))+++++))+++-+++=+) = +-) =++++++=+++ )+++++++)++++++
+........ '.....'..'.....'.......'..'...''''.'..'..'.'...    . . .   .       ....  ..  .   .         . .  . ...  .... .. ....'.
+=  == =  .H =H .H=.H =H=.== ===H.=H.HH=....H.=H.==. .                        =                                    =     == =.
+         =C  C =C =C  C =      C= C=CB ====C= B=  = =                                                                       =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMMOOOOOOOOOOOOOOOOOOOOOOOMMOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++)++++++++X++X++X++X+++++XX++++XX+XX+XX++XX+++++++++)=)+++)+++ +   =+=-+))++++++++++++=)+)  + = ++++=++))+=++++++)+++++++XX
+.... ....'..'..'.....'...'''...'''............''..'....    .. . .      .  .  ............  .   .    ... ..  . ....'. ...'.....
+=  =  = =.= .H .H =H .H= ...HH ...HH=HH=HH==HH..= .=  =                      =      = ==                          .   = .=  HH
+         =  =C =C  C =C  ===CC ===CB CC CC  CC==  =                                                               =     =   CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOMOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++)+++++++++++++X++X+++X++X+++++XX+X++X++X++X++X+++X++++)++)+++)+= = + ++ )+++++=+++++++++=)++++++++)++))++=+)+++)+++++++X++XX
+.. ....'.....''...'.'.'.......'.....'.....'..'.........     .   .       .  ..... .........  . .. ... ..  .  . ... ............
+== ==  . ====.. H=.H. .H==H= =.=HH H.=H= H.=H.=H===H=                         =        ==            =                =  H= HH
+       =     == C =C= =B  C   = BC C= C  C= C= B   C                                                                     C  CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMOOMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++X++X+X++++++X++++++X+++++X++X+X+++X+++X++X++X)++)++)=)++++    +-  + ++++-++)++X++++++++++++++++++++==)+++=++++++++X++++
+'.....'......'..'.'...''.'...'.'..'.'.''..'.'..'..'. .. ..    ...           ... ..  ........  . .....'....   ... ... ........'
+.  =  .H =H=H. =.=.H= .. .H =. .H=.H.H.. H.=.H=.H=.H                                 H =             .                =  H===.
+=     =C  C C=  = =C  == =C  = =C =C=C== C= =C =C =C                                 C               =                   C   =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMOOOMOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOO
++X+++++++++++XX+X++++++X++X++++++X++X++XX+X++X++X++++++++=+++-+=++-+  =+) +-=+++)+)+ +++++++)++++=+++++++++=)+=+++++ -++++++++
+.......'.''......'..'''.'...'.'.'.''..........''...'....  ..  . .  .          .. .   '...... . .  .........  . .....  ........
+=H  =  .=..= HH=H. =...H. H .=.=.H..H= HH H= H..H= .=                                .=              ==        =        === ==
+ C     = ==  CC C=  ===C= C = = =C==C  CC C  C==B  =                                 =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOMAOOOOOOOO
++++++++++++++X++XX++X+XX+++++X+++X+XX+XX++X++X+X+++XX++++))+)++=+)++=+==+=)+-+++++) +++++)=+++)== +++++++++++)=-))=+  --)+++++
+...........'..'...........'...'.'.'.....''......''......     .. .    .        .  .  .....  ...    ..... .....            .....
+ = = = = ==. H.=HH =H=HH==. =H. .H.HH=HH..H==H=H.. HH=                                                =                   ====
+           = C= CC  C CC  =  B= =C=CC CB==C  C C== CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOMOOOOAXAMOOOOOO
++++++++++++++++X+++++X+++++XX+X+++X+XX++X+X++++++X++X++++=)++)+++++)++=--=+++++)+-++=++++)+++++)) +++++++++++=- +++)    ++++++
+......'.'..'.....'....'.''.......'..........'.'.'...... .  .. .. .. .       . . . .  ..'. . ...    .....  ...   ..      . ....
+ ==  =. .= .= =H=.===H.=.. HH=H==.H=HH =H=H=.=.=.H =H                                ==.    ==     =   =  =                ==
+      = =  =   C =   C= == CC C  =C CC  C C = = =C  C                                  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOAMOMOOOOO
+++++++++++++++++X++++++X++++++++XX+++++X++X+XX+XX++X+++=+++=+++++++++++-+=-)++X+++))++)+++++++=++++))++++++++)++++= -  = =))++
+............'......''....''.'''....''.'..'........'.... ... ...... ....     ... ..  .. ....'.. ....  ........  ..           ..
+   = === =  .== H= .. =H .. ...=HH=..=.H=.H=HH=HH .H=    ==  = ==             H     =      .    = =  == ==
+            =   C  ==  C == === CC == =C =B CB CB =C                          C            =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOMOMOOO
++++++++++++)XX++++++++X++X++X++XX+XX++X+XX++X++XX+XX+++)+++++++++++++++ ---+++++++++++++++++++-=++++++++++++)++++++ )=+= + )++
+........... .......'......'..'.........'.....'......... .......'..... .     ..................  ...'...'..'. '....    .     ..
+= ==   = =  HH == =.==H= H.=H. HH=HH==H.HH==H. HH HH ==  =   = .=             =  =     ==  =       .= =.==.  .
+            CC     =  C  C= C= CC BC  C=BC  C= BC CC           =                                   =   =  =  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++++X++++++X+++X+++++X++X++X++X+++++X++X++++++++++++++++++)+)+=+)++++++-++++++++++++++++XX++X++++++++)++++))++++++
+'...' .......'...'..'.'...'..''......'..''...''..'..'.......... .. ...   . . ...... ....' ................'...... . ..  ......
+.=  . ==    =.==H. =.=.H= .H .. =H==H. H..H==..=H. H.===     =                  ==      . ==     =  HH  H .==               =
+=   =        =  C=  = =C  =C ==  C  B= B==C  == B= C=                                   =           CC  C =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++++++X+X+++X++X++++XX+++X+X++X++XX+XX++++XX++++++++++)++++)++++++=++)+++++)++++++++++++++++X+XX+++)+++++)=+++)+++++++
+''.....'.....'...'.'.''...'.........'..'.......'.....''.'..... ....  .....  . ....  ......................' .....  ... .......
+..  =  .  == .H H.=.H..H==. HH= =H=H. H. HH HH=.= HH=.. .      =              =     =           === H HH==.  =     =      =  =
+==     =     =C C= =C==B  = CC   B C= C= BC BC =  CC == =                                           C CC  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+++++++)++++X+++++++++X++++XX+X++XX+XX+XX++X++X++X++X++++++++++))+++)++++-++)))+++++++++++=++++++++++X++++++++=+))+++++++++++
+......'' .'........'..'..''.....'..........'..'.'...'......'...'  . . . .. .    '.......... ...........'....... .  ... '..'. .
+H == =.. =. =H  =  .  .H .. HH=H.=HH=HH=HH=.H=.H.=H=.H =   . = .                .              ==  ===H. ====== =      .==.
+C     ==  =  C     =  =C == CC C= CC CB CB =C =B= C =B     =   =                =                     B=               =  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++X++++++++++++XX+++X++++XX+X+++++XX++++++++++++++++ +=)+++-+ +--+++++++)+++++++++++X+++++++++++++)++++++++++X+)+
+..'.......'.......''..'''''....''..''.....'.''...'''.''.'........               ..... ...... '...............'. .........'.' .
+= .= ==  =. == H  .. =..... HH ..H=..=HH H.=.. HH...=..=.=    ==                 =    = ===  .  =H    ==  == .=  =  =  = .H. =
+  =       =    C  ==  ===== BC ==C == CC C= == CC=== == =                                    =   C           =           =B=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X++++++++++++++)+++++++X++X++X++X++XXXX+++X+XX+XX+XX+++++++++)++++ ++)+++  +++++++++++++++++++++++++++++++++++++++X++++)+++++
+...........'.... ...'..'..'....'..'.......'................. .    . .. .      '.. ....'..'......'.....'................. ....'
+=H   = =  =.= =  ===.= .H .H==H.=H. HHHH==.H HH=HH=HH  = ===                  .      =.  .= == =.     .  ==  =  =  H     ====.
+ C         =        =  =C =B  C= C= CCCC  =C CB BB CC                         =       =  =      =     =            C         =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++X++++++++++++X+++X+XX++X++X++X++X++X+++X+XX+XX+++++++++)+++++)=++)+=+)+++=+++++++++++++++++++++++++++++++++++)++++X+X++
+.......................'.....'....''.....'...'........'. ... .  ....  ..     ... ....'.........'........''.......... ...'...'.
+===    H  =   = === H==.H HH=.H==H..H==H=.H= .H=HH HH .=  =  =  =            ==      .  =   = =. ====== .. == ==  == =  .H H.=
+       C            C  =C CC =C  C==C  B =C  =C CC CC =                              =         =        ==              =C C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++++++++++++++++X+++++XX+XX+X++X++XX+++++X+++++++=++++++++)+++)++++=+=++++++)+++++)+++++++X++X+++++++++X+++X++++++++X++
+......... .. .......'.'...'.......'....'....''.'...'..'. ... .. . ...  . . . ...... ..... ............ .'......'.'............
+=  =  ==     =  =  =. .H= .==HH HH.H==H.=HH ..=.H= . =.         =                =    =      ==  H =H= =. === H.=.H  = ====H =
+                    = =C  =  CC CC=C  C= CC == =C  =  =                                          C  C   =     C= =C        C
 OOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++ +++)++)++++++++X++++X++X++XX+X++XX++X++X++X++++++++++++++)+++)++++++++++++++++++)+++)++++++++++++=+++++++++++++++++)
+......... ... .. .'..'..'..''..'..'.....'....'.......' ...... ..... ... .. ............. .   . ............ .'.....'..''.....
+ =  =  =          . =.  .H=.. H.=H. HH=H. HH=.H==H==H. == =   = ==                 =           ====== == == =.===  .  ..  =
+                  =  =  =C == C= B= CB C= BC =C  C  C=                                                       =     =  ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++)++++++++++++++X++X+++++XX+XX++++XX++X+++X+XX+++++)+))++++=++=++++++++++++++++++++)++++++++++++++++)+++++)+++++++X+++++
+. ..... . ........'....'....''.......''....'.'.'.'....... .  .... .. ...................  ..  ......''..'. ..... .............
+= ==  =        == .===H.=H= .. HH=HH=..=HH=.H. .H.HH  =         =     ==  =  =  = ===           === ..  .            == H=  =
+                  =   B= C  == BC CC == CC =C= =B=CC                                                ==  =               C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++)++++++-++++++++++XX++X++X+XX++X++X++++++++X++X+++++++))++=++)++) +++++++++++++++++ ==+)+=++++++))))++++++)++++++X+++++++
+'.... ...... ........''...'........'....'''..''..'....... .  ..    .   ........ ........   . . .. ...    . . .    .....'......
+.=    =             =..HH .H =H=HH .H==H...= ..=H. H=  =                   =      =  =             =               =  H. =   =
+=                    ==CC =C  C CB =C  B===  == B= C                                                                  C=
 OOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMAOZAAMOOOOOOMOOOOOOOOMOOOOOOOOOOMO=XOOOOOOOOOOOOOOOOOOOOOOO
+++++++++=++) )+++++++++XX+XX+XX++X++XX+X+++X++XX+X++++++++))=))) -  +    =+-=+= -=+++-++ +)+++))+=+ -  +=+-+++++)+++++++++++++
+..... .  ..   ....'.''............'.....'....'..'.'......           .             ..  .  . . .  .        . .....  ..........'.
+= ==              . ..=HH HH=HH= H.=HH=H.==H=.HH.H. =   =                                                          = =   == .
+                  = == CC CC CC  C= CB C=  C =CC=C=                                                                         =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOMMMMMZMXAMOMMOAAMMMOOOOOMOOOOOOMAMOOM)1OMOOOAAOOOOOOOOOOOOOOOO
+=++)+++)++)+=+-+++++++XX+X+++++XX++X++X+++X+X+++X++++ ++++++)+)=          -  +     =+-)- +)+)++   =-   ) +-=  -=+++++++++++++=
+ .. ... .      ...........'.''...........'...'.'.'''. .'...  .               .           . .                    . ...........
+                   == HH=H. ..=HH =H =H= .H=H.=.H...   .                     =                                       == ==
+                      CC C= == CC  B  B  =C C= =C===   =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOMAMAOOMMMMOMOAAZMMMOOOAAMAOOOOMMAOOAMMOOMMXM1ZXAMOOOOOOOOOOOO
++++++++))-=)=+-)+=+++++++X++XX+XX+XX+XX+X+++X+++X+XX==++++)= -+--    =+    - =      +=+    )=)+   +-   +-         =)+)++++++)=
+ .. ...         . ....''..'..............'''..''....  ....    .                     .             .                 . .. .
+                    = ..=H.=HH HH HH=HH H...H ..H=HH  ==                                          =                      =
+                      == C= CB CC CB CC C===C ==C BC
 OOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOMMMOMMOOMMOMAOMMMAMAOZZZMOOOOMMAOAOMMAZX1OXAAXMMOOOOOOOOOOO
+)++-+++=+- +-+-=)-+++++++XX+X++XX+X++++X+X++++++X+XX++++++===+=-  -   +  =-  -  =      -    ==+-   - =      +      +++)+++++++
+  . ...      .    '.....'....'.....'.'....'.''''......'...                                    .             .       ..  ......
+                  .=====.HH=H.=HH=H.=.=H=H. ....H HH =.                                                                 =
+                  =     =CB C= CC C= = C C= ====C CC  =
 OOOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOMOAMMMOMOAMZ1ZZOOOOMOMOAMMMMZOAAMOOOOOOOOOOOOOOOOOO
+++=++)-)=-)--  =++++++X++++XX++X++X++X++XX+XX+++++X+++++++=)+++)+-)=-+)+ += +    = +      )=++ = +      =   -+)++++=++++++)+++
+                  ......'....''..'.............'.'.''''...  ... .    .   .         .         .                  ... ...... ...
+                   =  H .= HH..H .H==H==HH=HH =.=.H....==                                                         =        ==
+                      C =  CC==C =B  C  CC CC  = =C====
 OOOOOOOOMMMOAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMOOOOMZMXMAXOOOOOOOMMOMOOOMOOOOOOOOOOOOOOOOOOOOO
+=-++)==-   =   =)=+++)++++X+++++XX+++++X+XX+XX++X++X++X+++++++++++++++++)+++   -=)=       =+)=+==  = +-= =)+++++++++++)+++++++
+                  ... ''.....'''...'..'........'..'..'.'........'....... ...               .  .             .........  .......
+                      ..==H= ...HH .==.H=HH HH .H=.H=.H.  = == =.     =   =                                     =  =     ===
+                      ==  C  ===CC =  =C CC CC =C =C =C=        =
 OOMMMOMMOAAMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1MZOAAOMOOOOOOMOOOOOOMOOOOOOOOOOOOOOOOOOOOOOO
+--   )  -      =-==)+++++++XX++X+XX++X+XX+++X+XX+XX+XX++X++X++++X++++++++++++)++    )  - -)+)-- =-=-=) =++++-++++++)=+-+++++++
+                    ....''....'.'..'..'..'.............'................'....  .           .             . .   ....     .' ...
+                     ===.. HH=.H.HH.=H.HH. =H=HH=HH=HH .H =H ===H = ==  .                                                .  =
+                        == CB =C=CC= C=CC=  C CC CC BC =C  C    C       =                                                =
 OOMOMMMAMMAMAAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXOOOMOOOOOOOMMOMMMMAMMOOOMOOOOOOOOOOOOOOOOOOO
+=- =            =-++)+++++X++X++XX+++++X++++XX+XX+XX+X++++++X++++++++X+++X++++++  +-+ ++++++-  -       +== +===++++++=++++++++
+                     .''....'.'....''.'..''...........'''......'..''..'....... .       . ..                     ....  . ......
+                      .. =H=.H.=HH ..=.H .. HH HH=HH H...= =H==.= ..=H. =H===                                     =      == ==
+                      ==  C =C= CC == =C == CC CC BC C===   C  =  == C=  C
 MMAMMMOXXAZMAAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOMAMXXMAAZAMOOOOMOOOOOOOOOOOOOOOOOO
+      -       ----+=++X++X++XX++X+X++XX+X++++++X++XX+XX+XX+XX+XX++++X++++++++++--  ++++++++-           ---= -+)+++=+-=++++++++
+                    ...'..'....'.'.'...'.'.......................''..'.''..'...    .....''.                    ... .  .....'.'
+                      H. H. HH .H.H. HH.H.  =  H==HH=HH HH=HH=HH=.. H.=..==.=          =..                                =. .
+                      C= C= CC =C=C= CB=C=     B  BC BC CB CC CC == C= ==  =            ==                                 = =
 OXMMMMAXZMAAOZAMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMOZA1XMOMMOMOOOOOOOOOOOOOOOOOO
+-           +    +++=+++X+++++XX++X++++++X+++++X++X+XX++XX+X++X+++++++++X++X++++=+++++++XX+++-   -     =  = -++++++-+=++++++++
+            .        ....'.''...'....'..'. .'.'....'...'........''. '''..'..'... . ..''.....                 ....     .....''.
+                        H.=.. HH.=H==.==.H =.=.H==H.HH=.HH=H==H=..= ...=H. H. =      ..=HH                   =          = =..=
+                        C= == CC= C  =  =C  = =C  C=CB =BC C  C ==  === C= C=        == CB                                 ==
 ZZAMXX11Z1OZZZZMAOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMXMAOMAMAOOOOOOOOOOOOOOOOOO
+          =      - ==)++++X++X+++++X+++++++++X++X++X++XX++X+XX++X+) +++++XX+++)++++++++++X+++)+--      -    +++)+=++)))++)++++
+                      ......'..''.'.'.''.'.....'.''..'...'.....'..  ...'....'. .'..'..'''.'.. .             ...    .   .. .'..
+                         =H .H=.. .H.=.. .  =H .H..H=.HH=.H=HH .H    ==. HH=.= =.==.==...H. =                ==         =  .=
+                          C =C == =C= == =   C =C==B =CB =C CC =C      = CC =   =  =  ===C=                                =
 A1ZO11)1ZZAZZZ1XMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXMMMOMOOMOOOOOOOOOOOOOOOOOOOO
+   +             -  =+++++X+++++X++X+++X++++++++X++X++X+XX++X+++X+++++++)XX+++++++++++XX+X++++++     + -- =-)++++)+==+++++++++
+                     ..''....''..'..'.'......''..''.''.'..'..'.'....'.'. .......''..........'...             .. . .   .......'
+                      =..=H==..=H. H.=.H=== =..=H..H..H.HH. H.=.H   .=.  HH===  ..=== HH=H= .                =               .
+                       == C  == C= C= =C     == C==C==C=CC= B= =C   = =  CB     ==    CC C  =                                =
 111))M)ZZX)1M1)XXMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZMZMMOOOOOOOOOOOOOOOOOOOOOOOO
+                    )++++++++++X+++++X+++++X+++X+XX+XX+XX++X+++++X++++++X+XX+++++X++X+++++X++++=      =-))+++++=++++))++=+++X+
+                     .. .'..'.....'.....''....'..........'....''.......'..........'.....'..'...            ...    .   .. ....'
+                        =.==. =H==.==H==.. H==.H HH=HH HH.=H==..=H= ===.H HH=== =H.=H===.=H.                             =  H.
+                         =  =  C  =  C  == C  =B CC CC CB= C  == C     =C CC     B= C   = C=                                C=
 1+M))Z111X)11111MOAMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXAOMMOOOOOOOOOOOOOOMOOOOOOOOO
+                 -   +++++++XX+++++++++++X+++++X++XX+XX+X++XX++X+++++X+XX+XX++XX+X++XX+X++X+++++   -  -++++++=+)=+++ -++)X++X+
+                     ....'.....'...'..'.'...'...''.....'.'....'..''.'.......'.....'.....'..'....          ... .  ..    . ....'
+                         .= HH=.= =. =. .H =.= H..HH=HH.H. HH .H ..=.H=HH=HH.=HH=H. HH=H.=H. ==                          H  H.
+                         =  CC =   =  = =C  =  C==CC CC=B= CC =C == =C CB CC= CC C= CC C= C=                             C  C=
 ))+)A+)Z+))Z11)11XAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMOMOOOOOOOOOOOOOOMMOOOOOOOO
+                     )++++++X+XX++X+++++X+)XX+XX++X++X+XX+XX+XX++++++++X++X++X++X++X+++X++++++++=   - +-++++++++)+++  +=++++++
+                      . ...'..........'... ......'..'...........''..'.'....'...'.'..'.'..'......      . ........ ..      '..'.
+                      = == .H HH =H= =.=H= HH HH=.H=.H HH=HH=HH=.. =. .H==H.=H=.H.=H.=.H .            =                  .==.=
+                           =B CC  C   = C  CC BC =C =C BB CC CC ==  = =B  C= C =C= C= =C =                               =  =
 Z)+)+=+)1=)))1)ZZZZ1AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMOAMXOOOOOOOOOOOOOMOOOOOOOO
+                     =++++++X+X+++X+++++X+++++XX+X+++X++X++X+++X++X++X++X++++++X++++++++++++++)-    =   ++++++=+++-== +++++++X
+                      .....'.'.'.........'.'....'.''..'.....'.'.....'.............. ....'. ...           .'... ...    ....'...
+                        == .H.H. =H= == H.=.==HH.H..=H.=H= H.=.H==H=.H= H==== =H===     .  =             =.              =.  H
+                           =C=C=  C     B= =  CB=C== C= C  B= =C  C =C  C      C        =                 =               =  B
 1+++--=))++))1)A11ZZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOMMAAXOMZAOOOOOOOOOOOOOOOOOOOOOO
+                     ==++++++++X++X++++++X++++XX+XX+XX++X+X++X++++++++++X+++++++++ +-++++++++++     =   +X++++)++)=-+=+++XX++X
+                        .'.''.'..'......'..................''.'..'.'''....'. ....  .  ... ...            ..... ..   . ........
+                        =. ..=.H .H==   .H=== HH=HH=HH==H H..H. =. ... =H=.                              H=              HH =H
+                         = == =C =C     =C    CC CC CC  C B==C=  = ===  C =                              B               CC  C
 =Z-====++1+)11))ZX1XXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOMOMOOZAZOOMOOOOOOOOOOOOOOOOOOOOOOO
+                      =)+++)XX++X++++++X+X+++X++X+XX+XX+XX++X+++++++++++++++=- )=+++++++===- = --   -- ++++++++++=))++++++++++
+                        ... ...'..'...'...'.'..'...........'................       .  .                 .'.......   .....'..''
+                          = HH=.H .=  .H H.=.H .H=HH HH=HH=.H ==   = == ===                             =. =   =         .==..
+                            BC =C =   =C C= =C =B CC CC CC =C                                            =               =  ==
 ====--+==+)+))))))1XXAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOMMMMMMMOMMOXAXZAAMMZ1MAOOOOOOOOOOOOOOOOOOOOOOOOOO
+                      +++)+++X+++X+++++XX++X++X+X+++X++X++X+++X+)+=+=) ))+)+-       -  =            =)+++)++=+++))++++)+++++X+
+                       .. ............ ......'.'.'...''.'..'''.. .       .                            ..' ..  ..  .... .''.'..
+                          ===H=  H=  = HH==H .H.H.==H..H.=H...H                                         .  =  =         ..=.H
+                             C   C     CC  C =C=C=  C==B= B===C                                         =               == =C
 =----)-=+=))+Z+)1ZZZOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOMOMAMAXZZXXOZZXZXMMMMAZAOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                    - -+++X++X+++X+++++X++++XX+XX++++X++XX+XX++X++++=+++ ++ -         +            =+)++++++++=++)+++=++++++++
+                       . ...'...'.... ..''........''..'.......'..... ... .            .               ........ .. ... '..''..'
+                          H .H==.H==  =H..= HH=HH=..=H. HH HH=.H=                                               =     .==..= .
+                          C =C  =C     C==  CB CC == C= CC CC =B                                                      =  ==  =
 ----==-==-++1))11Z1AZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOZAX1ZAMMZXZ1XMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                      +=++++X+++++X++++X+++X++X++X++XX++X+XX++X++X++++)+==)= +                 =-=-)++-)+=+=++++++++++++X+++++
+                      . .'.'...''.......'....'.'..'....'.'......'...'. .     .                      ..  .   . ..  ... ........
+                         . .H =..=H  ==H. =H=.H.=H.=HH=.H.HH =H=.H  .=                                  =             = H=  ==
+                         = =C  == C    C=  C =C= C= CC =B=BB  C =C  =                                                   C
 -=------=++)))))1MZ1AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZOAMZZM1MA1MXMMOOMOOOMOOOOOOMOOOOOOOOOOOOOOOOOOO
+                      +++X+++X+X+++)++++++++XX+XX+++++X+XX++++XX+++++++++++++  -             -- ++- +++-+- +++))+=+++=++++++++
+                      ........'.'.. ...............'.'.....''.....'......'...                    .   ..      .    ... .. .....
+                        =H= =H.H. =   == ===HH=HH==.=.H=HH=..=HH =.= == =.                                            =  = = =
+                         C   C=C=           CC CC  = =C CC == CC  =      =
 =-------+-+1++)1M1X1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ))XXX1AAXOMOOOOOOMOOOOOOMOOOOOOOOOOOOOOOOOOO
+                     +++++++X++X+++++++++++XX+XX+X+++X++X++X++XX++++++++X+++++=+-          + +-=++= =-=++- )-++))+++++X)++++++
+                     . .''.'..'.... ..'.........'.'....'.'..'....''.'..'...'.  .                .       .    ..  ...... ......
+                        .. .H .H===   . ===HH HH.H.= H=.H.=H.=HH ..=.= .H==.                                          H     ==
+                        == =C =C      =    BC CB=C=  C =B= C= CC == =  =C  =                                          C
 -----=-===+++X))11ZZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)))OXMM1XAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                     )-++XX++++++++++++X++X+XX+XX++X++X++X++X++XX+X++X++XX+X++++-   =      ++++=++)+++++++-++++++++++++)++++++
+                       .....'''.'.. ..'..'........'.''....''.......'..'....... .           . .      .  . . .  ......... ......
+                         HH ...=.==   .H .H HH=HH=.H..H==H..H= HH H. H.=HH H=                                     =   =  =
+                         CC === =     =C =B CB BC =C==C  C==C  BC C= C= CC C
 -----=-==+++)Z))1MZ1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMA11MAMMAAMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                     +=+++X++X++++++++XX++X+XX+XX+++++++XX++XX+X++X++X+++X++++++             +)+=)-)))+)+-))=+++=++++++=++++++
+                       ........''.. ..............''.''.........'..'....'..''..'               .      . .    ... ...... .....
+                       ===H =H=.. =  =HH =H=HH=HH=.. ..=HH  HH=H. H.=H= .H .. =.
+                          C  B ==     CC  B CC CC == == CC  CC B= C= B  =B ==  =
 -------=)===)+))AZZ1XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZMXMMMMAAAMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                     )-+++++++++++++++++X+++++X++XX+XX++X+XX++X++X+XX+++++X+++++=             =)+=-=++++++++==++++)+-))=)++=++
+                       ....'.....''  .'..'.''..........'....''..'.'...''........                     .. ....  .... .     .. ..
+                        == .= == ..  =. H.=..=H==HH=HH=.H HH..H=.H.HH ..==H ==                                              ==
+                           =     ==   = C= == C  CC CC =B CC==C =B=CC ==  C
 -----=-===+++Z)1ZA1)MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMAOOAXZZOMXAMOOOOOMOOOOOOOOOOOOOOMMMMOOMOOO
+                     ++++++++++++++++++X+X++XX+++++X++X+XX+++++X++XX+X++X+++X+++ -   =+    +    +=+== )++++)-)+++++-    )+ +)+
+                     . '........''....'...'....''.'..'.....''...''....'....'....                       . ..   . ..       .   .
+                       . == === ..    .H H. HH=..=.H=.H=HH=.. =H..HH=H.=H==.H===
+                       =        ==    =C C= CC == =C =B CC ==  C==BC C= C  =C
 -) ----==)+=++111M11ZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMM1OMZM11)1XAMMOOMMMOMOOOOOOOOOOOOOAMAOOOOOO
+                      )++++++++X+++++++X+XXXXX++X+X+++X++X++++++++XX+XX+XX+++++++=   -           =+   + +==+-+++=+--=   -=++)=
+                       '........'.....'........'...'...''.''''.''.........'''....                     .      ..            .
+                       .= = = =H.=== =.H HHHHH .H=H. =H..H....=..=HH=HH=HH...
+                       =       C=     =C CBCBC =C C=  C==C==== == CB CB CC===
 -  ---=-=-+)++11)1AZXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAXMMAAOXA11MZMOMOAZXZOMOXOOOOMOMMMAOMAMOOOO
+                     ==+++++++X++X++++++++XX++X++X+++++XX++++XX+XX+XX+XX++X++++++==      =       - -    = - =-=+ -    =   -)++
+                       ............ ...''...''..'..''.....''.............'.......
+                        =  =  H= H=  = ..=HH..H .H=..==HH=..=HH=HH=HH=HH .H ==  =
+                              C  C     == CC==B =C ==  CB == CB CC CC CC =B
 -- ---=-=)=)++11)MZ1AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOAMMAZZZM11AMXZOZAZ11XMOMOMMMMOOMOOOOOO
+                      +++++++++++++++++X+XX++X+XX++X++X+XX++X++X++XX+X+++X+X+)++++=  =-+              )       - -    -- -+++++
+                      ...'......''....'....''.....'..'.....'..'..'..'.'.'...' '...     .                                 .....
+                         .=  ===..   =.H HH..H=HH=.H .H=HH .H=.H=.HH.H.=.H=H. .                                           =
+                         =      ==    =B CB==B CC =C =B BC =C =C =BC=B= =B C= =
 = ----=-+==)=+11Z1AMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOMMMOOOOMOOMOOOMOOOOMMXMAAOOOOOOOO
+                     - =+++++)+++XX++++X+++X++X++XX+X+++X+XX++X+X+++XX+XX++++++)+++)+-== + -=   +-=+ -- +-- =-+)      +-)+++++
+                        ..'.  ''... .'..'.'.'..'.......'.'.....'.''.......''.'. ...                .    .             .  ... .
+                         =.=  ..=HH  .=H.=.H.=H.=HH=H==.H.HH==H.H..=HH=HH .. .=
+                          =   == BC  = C= =C= C= BC B  =B=CC  C=C== CC CC == =
 --- -+-=--==X=)1)MZXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXMMOAOMMOOOOOO
+                    +--=++++++)XX+++++++XX+X++XX++X++X++X+++++X++XX+XX+XX++X++++++++)++++++++=+++++)-+++++)++-+=   = =  ++++=+
+                    .   ..'... ...'. .'...'.'....'..'......''..'............'... ... ........ .....  ..... .  .          ... .
+                         =.= = HH=.  =.=HH.H.=HH=.H=.H==H= ..=H. HH=HH=HH =H.    =     = =                                   =
+                          =    CB =   = CC=C= BC =C =C  B  == C= CC BB BC  B=
 - -----+X====)))M1ZZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXOOOOOOOMMOMZOOOMMOOOOOOOO
+                     ++++++++++++++++++++X+XX+XX+XX++X++X++XX+XX+XX+XX+++XXX+++++++++++++)+)-+++-+=+ =+++++)  +  -=+  --++++)+
+                       ..'...'..'.'.....'.......'...'.''...........'....'.....'.......... .   ..      ....         .    ...  .
+                         .  =.==.=. ====.H HH HH.HH=.H..H==HH=HH=HH.HH==.HHH =.==== == =      =         =                 =
+                         =   =  = =     =C BC BC=CB =C==C  CC CC CB=BB  =CCB  =
  ------+--=-)+)O)11AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMM1)OOOOOOOMOOXMOOOOOMMOOOOOO
+               -     )+)+++X++++++++++++X+XXX+XX+XX++X++X++++++++++++X++XX+++++++++)+++++++=--+)+    =+++++= --  )++=-  )+++++
+                      . .'....''..'..'...'..........'.'....'''''..'........'..''..' .. ....     .     .'...       ..     ....
+                         . H  .. =.  .= H.HHH=HH=HH=.H. H= .....==.==H==HH=.= ..  .                    .=                   =
+                         = C  ==  =  =  B=CBB CB CB =C= C  =====  =  B  BB =  ==  =                    =
  - ---+--=-==+A))Z1XMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOMMOMOOMX1OOOOOOOOMOOMOOOOOOMOOOOOOO
+                     +)+++X+++X++++++++XX+XX++X+XX+XX++X++++++++++++X+++++X++++++++++ -=++)  + -+   =+++)+)+ -+ )+=-=+ =-+)++=
+                     . ....'....'............'.'.................'.......'.'.'.......   .    .        .' .       .       . .
+                       ===H. =H .=   = HH=HH=.H.HH=HH =H=    == =. =H====.H. .=  == =   =    =         .
+                          C=  C =      BB CB =B=CC CB  C         =  C    =B= =                         =
 -  -----+-==++))Z1XZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOXMOOMMOOOOOOOOMOOOOOMAMOOOOOOOMO
+                     =+++++X+++X+++++X++XXXXX+XX+XX+X++++)+++++++++++++XX+XX+X+)+++++=))+++= =  --  )++++)+) +-=+-   -++-==) =
+                      ..''..'''........'...............'. ..........''........' ....'   . .           ...             .
+                       =..=H...H==== H=.HHHHH HH=HH H==.=     =  == .. HH=HH=H.  = =.   =
+                        == C===C     C =BBCBC CC CC C  =            == CB BC C=     =
    ----1--+++++M1ZZXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMAAMMMAOMXMZMOOMMMOMAMZZ1XMMAOAMMO
+                    -++++++++++++++++X+X++XX+XX++X+X+++++=+++++++X++X+XX+++++X++X+++++-++ -        +     -+   -          +   -
+                      .....'.'...'......'......''...'...  ....'....'......'.'.'....'.              .
+                      === =. .== .   H H.=HH=HH..H H.        =. =H .H=HH =.=.H.=H  .=
+                           = =   =   C C= CB CC==C B=         =  C =C CB  = =C= C  =
  - -+=--+=++Z++11AAXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMAOXA111111))+11ZO1ZZ1MZAZ11)1ZXOXAAXM
+                    )++++++X++++++++-+++XX+XX+XX+++++++=+++++++++++++X+X++XXX+XX+X++++ =  -              +              +
+                     ...''.....'...' ..'.........''...  ...''..'.''.'...''...'........                   .              .
+                      = .. H=  .===. ==.HH HH=HH=..  =     .. =.=.. .H=H..HHH.HH H= =
+                        == C   =   =   =BB CC BC ==        ==  = == =C C==CCC=BC C
  - --A=--+1++X+)11XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMA1AZ+))Z)))))1Z1))++))Z))))ZAXOAAA
+                    ++++)++++++++++++++X++X+XX++++)+++++++=+++++XX+XX+XX+XX+XX++X+++++++-+-                               +
+                     ... '........'.....''.....'.. ....'.' ..''.........'......'...'.'.. .
+                     =   .=    == .=  =H..H=HH=.      =. . ==.. HH=HH HH.HH=HH=.H =. .==
+                         =        =    C==B CC =       = =   == CC BC BB=BB BB =C  = =
 -----1-=+=)++X))1ZAAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOAZZZ1)111A))Z)))++)+))ZX1A1XMA
+                    -++++++++++++++++++X+XX+X++++=+++++++++++++++++++X++X++XXXX++X++++++++++++ -
+                     ...........'..'..'......'... ....'.....'.....'...'........''..'...'..'. .
+                         === = =.==.  .H=HH=H.==  =  =. == =.  == .= H.=H==HHHH..H=.= =.==.=
+                                =  =  =B CC C=        =     =     =  C= C  BCCB==B =   =  =
 ----+1==+=++)+))1ZXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO11Z)XZZAAAAZ1+++))+)X11Z1A
+                    +++++++++++++++X++X+X+++++++++X+++++++++=+ +++++++++++X+XX+XX+XX++X+++++++++++++
+                     .......'..''.'..'.'.'.'...'...'.'' .. . . ...... .'......'.....''...'..'.......
+                        =  =.  .. .H .H.H.=.=  .  H.=..  =      =  =   .==H HH.HH=HH..H= .==.= ==
+                            =  == =C =C=C= =   =  C= ==                =  B CB=BC BB==C  =  =
 -----=+++==)++X11AZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAOOMOOOOMM111ZZ)Z1Z11M
+                    =++++++++++++++++++X+++++X++++++++)++  - +++=++++++++++XX+XX+X++X++X++++++++++++)-   += -=++
+                     ......'.'..'..'....'.....'.'.....       ... .......'.......'.'..'..'.''.'...'..          ..
+                       =  =. .= .==.=  H.=== H. .=               =  =   .==HH=HH.H.=H.=H. .. .= =.
+                           = =  =  =   C=    C= =                       =  CC BC=B= B= C= == =   =
 --+---===+)++++)1MXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOMOMMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOAMMMOAXZMMMO
+                    -+++++++++++++++++++++++++)= == =   -+++-++++++++++X++XX+XX++X+XX+X+++X++X++++++))++= -)+=+++-    -      =
+                     ...'''....''.''..'. '....             . .'.....'''.'.......'......''......... .   .      ..
+                      = ...  ==.. ..==.= .  =                 . === ...H. HH=HH=.H=HH H..=H  H= =
+                        ===    == ==  =  =                    =     ===C= CB CC =B CC C== C  C
+                                                                                 V
 ------+-=+=)++M)1ZZMOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOOMOMOOO
+                    +++++++++++++++X++++++++-= )  = = ++)+-++++X+++++XX+X+++X++++XX+X++XX+XX+XX++++)++)+++)+++)+++- + += - ++)
+                     ........''.''..'......            . . .......'......'.'..''.....''............ .. .   .   ...         .
+                          = =.. .. H. ===                      H  .= HH=H.=.H=..=HH H..HH=HH=HH === =          =
+                             == == C=                          C  =  CC C= =B == BC C==BC BC BC
 -+------=====+))11MMOOOOOOOOOOOOOOOOOOOOOOOMMOOMOOOOOOOOOOMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                    =+++)++++++++X+++)+++-=  += +=)=+)=++= ) ===+=++++++XX+XX+XX+XX++XX+X++X+XX+X+++++++++++=+++++)=)++====+++
+                     . . .......'.... ..                .         . ..'................'..'.........'....... .....   ..    . .
+                       =   ==== .H ==                                =. HH=HH=HH=HH==HH.H .H=HH H===.=    =     =
+                                =C                                    = CC CB CB CC  CC=B =B CC C   =
 --------==1-==)ZZXOMOOOOOOOOOOOOOOOOOOOMMMOOOOMOOOMOMMOMOAMM1XXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                  = +)++++++++X++++++++   =++- )++ +  = =       +=++++XX+XX++X+++X+XXXXX+XX+X+++++X++XX+X++++++++)+++++++)++++
+                    . .....'.'..'....                               ........'.'''.'.....'......''................ ....'.  ....
+                       =  =. .H .= =                                  HH HH=.H...H.HHHHH.HH=H==.. H= HH H==    =    = .   =  =
+                           = =C =                                     CC BC =B===C=CCCCB=CC C  == C  CC C             =
  - ---==Z=++=+))ZMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1OMAMZ11MMZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                   =)+++++++X+++++++-)-)-+)==)+=-  -           =+)++++X++XX+XX+XX+XXX+X+XX++X+XX++++++X++X+++++++)+++X+)+=++++
+                     ........'.''..                             . ..'..''.....'......'.'...'.........'.........'. ..... . ....
+                      = === H. ..                                  =. H..HH=HH.HH=HHH.H.HH=.H HH===  .H =H  =  .  ===H=
+                            C= ==                                   = C==BB CC=CB CCC=B=CB =C CC     =B  C     =     C
+                                                                                      V
   -=---=Z==++)1ZAAMMOOOOOOOOOOOOOOOOOOOOOOOOOMMMAM)1Z1MA1AAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                    ++++++++++++++)++++=+++++               -=++++X++++XX+XXXX++XXXXX+XX+XX+XX+X++++X+XX+XX+X++X++++++++++++++
+                    ..'......... .    . .....                 ..'...''........'.........'.......'.................''..........
+                    ==.    ===== =                              .=H=..=HH=HHHH.=HHHHH HH.HH HH=H.  =H=HH HH H==H= ..== = =  =
+                      =                                         = C == BB CBCB= CBCCC BC=BB CB C=   C CC BC C  C  ==
 -  -----)+++))1)MXOOOOOOOOOOOOOOOOOOOOOOOOOOMA11)+)MAMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                  -++++++++++++++-+++++)++++           -=+++++++++++XX+XX++X++X++X++X++X+XX+XX+XX++++++++X++XX+++++X+++++)+=--
+                   . ...........   .... ...               .....'.''.......'.''..'..'....'.....'.......''..'.....'...... . .
+                     =   =  =                             === =.=.. HH=HH=.H..H=.H=.H==H.HH=HH.HH= == ..=H. HH =.==H
+                                                               = == CC CB =B==C =B =C  C=BC CC=CC     == C= CC  =  C
 -    +---1+))))1MMMOMOOOOOOOOOOOOOOOOOOOOOM1MX11XMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAMOAMMM
+                   - ++++++)+++++++++++)+=         -+=+=++++X++X++X++XX+XX+XX+XX+XX+XX++X+XX+XX+XX+++++X++X++X+++++++    +
+                     ...... ...... .... .           . . ...............'............................'....'.''.'....      .
+                        ===        =                     = =H==H= H= HH.HH=HH=HH=HH=HH==H=HH=HH=HH =.==H=.H..H.===
+                                                            C  C  C  BC=CC CB CC BB CB  B CB CC CC  =  C =C==C=
+                                                                                  V
 -  -  +- =))+))ZAOOMOOOOOOOOOOOOOOOOOOOOMX1)1OMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1X1+1ZMXAA
+                 -+ -)++++++=++++++++++-     + -=-)++++++X+++++XX+X++XX++X+XX+XX++XX+X++X+XX++X++++++X++++XX+++++++
+                      ...... ..........            ....'.....'.....'...''....'..'......'.'..''...'..'..''....'''.'.
+                           = = = =  =                = . H ==. HH=H. HH..H=HH.HH.=HH=H=.H.HH..H==.= .H=.. HH=...=.
+                                                       = C   = CC C= BC==C CC=CC= CB B =B=CC==B  =  =C == CC === =
 - -- -- +-)++Z11ZAOMOOOOOOOOOOOOOOOOOAM11MZZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO))ZMMAO
+                  + =+++=)++)+)++++))         +)+++++++++++X+++++XX++X++XX++++XXXX++XX+XX+X+XXX+XX++++++++X++XX++X++===      +
+                     ..   .. . .'..           . . ...'..'...'.''....'.'....''.....'........'......'''...........'...
+                                .                 =  .==.= H. .. HH=.H.=HH=.. HHHH. HH=HH H.HHH HH... ====H==HH=.H=
+                                =                    =  =  C= == CC =B= BC == CCCC= CC BC B=CBC CC===     C  BC =C
    -- --====+))AZMOMOOOOOOOOOOOOOOAXMX11MAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXMOAMA
+                  - =++)=+++++++=-         -)+X+++++++++X++++XX++++X++XX++X+XX++X+XX+XX+XX++X+XX+++++++++++XX++X++++++++  -
+                     .   . .....             ...'..''.....'....'''..''...'.....'.'.........'......'..'........'.'.'....
+                                              H .==..= =H .= HH...=H..HH=.H=HH .H.HH=HH=HH=.H=HH =. =.= ===HH .H.=.= =
+                                              C =  ==   C =  CC=== C==BC =B CC =B=BB BB CC =C CC  =  =     CB =C= =
    -   --=+)+))1ZZOOOOOOOOOOOOOOMO1XZAAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMX
+                  -+-+=)))=++)++ =      +-+++++X++++++XX+XX+XX++X++X++X+XX++XX+XX+X++X++XX+X++XX++++++++X++X+++++++++++++++
+                           .. ..            ''..'.'''..........'.'...'.'..''.....'.'...'....'...''. .'''.......'.''.''....
+                            =               ..=H.=...=HH HH=HH=.H.=H=.H.HH..HH=HH.H.=H=.HH=H.=HH..=  ...H==H= =. ..=.. =
+                                            == C= === CC CC CB =C= B =B=CC==CC BC=C= C =BC B= BB==   ===C  C   = == ==
   -    ---=++))A1XMMAMOOOOOOOOOMMZAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOM
+                      +=)++++)=     =-++++X+XX++X+++++X+XX+X++XX++X+XX+XXXXX+XX+X+++X++XX+XX+XX++X++++++X++++++++++++++++++ =
+                         ....           .......'.'.'.'.'....'....'....'..........'''.'..........'......'........''..'.''...
+                                          H=HH .H.=. .H.HH=H.=HH .H=HH.HHHHH=HH=H...H.=HH=HH=HH=.H= =  .H=== ===.. =.=..=
+                                          C CC =C= = =B=CC C= CC =B CC=CBCBB CB C===B= CC CC BC =C     =C       ==  = ==
     -  ----=+))M1AAAXAOOOOOOOOMMMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM
+                      =)+++++=    =+++++++X++X++++X++XX+XX+XX+XX+XX+XX++X+++X+X++XX+XX++X+XX+XX+XX+++++++X++++++X+++++++++X+=
+                        .. ..        ... '.....'''.'...................'...'....'.....''....'......''.'...'..'..............
+                                       = .H==H=...H. HH=HH=HH=HH=HH=HH .H==.H=H=.HH HH..H=HH.HH=HH=.. .==H. =.  H  == == =H
+                                         =C  C ===B= BB CC CC BB CC CC =C  =C C =BC BC==C CB=CC BC == =  B=  =  C         C
        =---=+)+AZXZXMMOOOOOOMOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                      ++++== +  +=+++++++++XX++X++X+++X++++XX+XX++X+XX+XX+XX++XX+X+XX+XX++++XX+XX+++++++++++++++X+++++++++++X)
+                       ...        ...'...'......'..'....''...'...'.'.........'..'.'......''......'''.''..'..'.''.....'' .'.'.
+                                     .= =.=HH =H.=H. =H=.. HH.HH=.H.HH=HH=HH .HH.H.HH=HH=.. HH HH... .. =.==.=..H    ..  .=.H
+                                     =   = CC  C= C=  C == CC=BC =B=BB BC BC =CC=C=CB CB == BB CB=== ==  =  = ==C    ==  = =C
 -  -  -----1+))1XXZOMOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                   - ++++)=-  =+++++++X+XX+XX+++++X++X+++X+XX++X++X++X+XX+X++X++X+XX++++X+++XX+XX+X+++++++X+++++X++++++++++++X
+                     ....      ......'.......'.....'..'.'.....'..'..'......''.'..'..'.''..'........'.''.'...'..'..''........'.
+                                  == .H HH HH.==  H.=H.=.H=HH .H=.H=.H HH=H..H. H.HH.=..H=.=HH=HH H. .. .=H .= .H .. === == .H
+                                     =B CC CB=    B= C= =C CC =C =C =C BB C==C= C=CC= ==C = BC BC B= == = C =  =C ==        =B
    - ---+--Z=1X1ZXAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                   +++=)-=+++)+++XX++X+XX++X+X+++++XX++XX+X++XX+X++XX+XXXXX+XX++X++++++++X++XX+X++XX+++)++++++)+X+X+++X++++++X
+                    ..    ... ......'.....'...'..'.........'.....'.............'.''''.'''.......''...'. .'..'. '.'............
+                               = HH .H=HH .H=H. =.=HH==HH=H. HH=H. HH HHHHH=HH=.H....=...H==HH=H..HH=.=  .==.= .H.H= =H= =  =H
+                                 CC =C CC =B C=  = CC  CC C= CB C= CC CCCCB CB =C==== ===B  CB B==CC =   =  =  =C=C   C      C
     -------1+1ZXMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                   +++=+=+++++XX+X++X++XX++++X+++X+XX++++XX++XX+X+XX+X++XX+XX+XXXX++XX+XX+XX+XX+X++XX++++++++++X+++X++++++++++
+                     . . .........'...'....'..'.'.....''.......'......'...'.......'...'.....'....''.......'.....'...'.'.....'.
+                              HH=H. H=.HH==. H. .H HH=..=HH==HH.H=HH H.=HH.HH=HHHH.=HH.HH=HH.HH=H..HH =  =.  ==H.==H.=.= =  .=
+                              CC C= C =CC  = C= =B CB == CB  CC=B CC B= BB=CB BBCB= CC=BC BB=CC B==CC     =    C=  B= =     =
   - -----1+)1ZAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+                +=-+=)++++++++++++X++XX+XX+XX+XX+XX+XX++X++X+XX++X+XX++X+X++XX++X++X++XX+XX+XX++XXXX+++++++++++++++++++X++++++
+                .     ......'..''..'............'.....'...'.'...'.....'...'....'....'.........''.....''..'.........'..........
+                         =  .= .. H.=HH=HH HH HH.HH HH.=H=.H.HH .H=HH=.H=H. HH=.H==H.=HH HH HH..HHHH ..  .=  = == =.===H == ==
+                            =  == C= CC CC CC CC=BC CB= B =B=CC =C BB =B B= BB =B  C= BB CC BC==BCCC ==  =         =   C
+                                                                                                V
 --- -==--=))1OMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+             - - ++=)+++++++X++XX++++X++++++X+XX++X+XX++X+XX++X+XX+XX+XX+XX+XX+XX+X++XX+XX+XX++X++X++++++++++++X++++++++++++++
+                     ....'.'..'..''...'....'.'...'.....'.....'..........'..'.......'...'.....''..'...... ...............'..''.
+                      = =. .H=.HH..==H. == .H.HH=.H=HH=.H=HH=.H=HH=HH=HH.HH.HH=HH=H. HH.HH HH..H=.H===     == =H ==  = =.  ..
+                         = =C =CC==  C=    =B=BC =C BB =B CC =B BC CB BC=BC=CC CC C= BC=CC CC==C =C            C        =  ==
 +- ----=X)11XMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+              = =+++++++++++++X++X++++++X+X++XX+X++XX+X++++XX+XX+XX+XX+XX+XX+XX++X+XX+XX+XX+++X+X++X++++-++++++++)++++++++++++
+                 ..  ...'.'.'..'..'.'..'...'.....'...'...''...........'.........'................'..'... ........ ............
+                     = =.=.=.=H.=H.=.==.H H. HH=H.=HH.H==..HH=HH=HH=HH.HH=HH=HH=.H=HH=HH=HH===H=H.=H. =   = ===     = =   == =
+                        = = = C= C= =  =C C= BC B= CC=C  ==CB CC CB BC=BB CC CB =C CC CB CC   B B= C=
 ------=1)1XAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+            ++=+-+++++++++X++X+++X+++++X+XX+++++X++X++XX+X+++X+XX+XX+XX+XX+X++XX+XX++X++X++X+++X++X+XX++++++++++)+++++++++++++
+                 . ........'..'.'..'........''...'..''.....''.'........'..'.''.....'......'.'.'..'.............. ........''...
+                      == =H.=H. .H=.= =H=HH=..==H.=H..HH H=..H.HH=HH=HH.HH.H..HH=HH.=H= H=.H. .H=.H HH=    =         =   ..===
+                          C= C= =B =   C CC ==  C= C==CC C ==B=CB BC BB=BB=C==BB CC= C  B =B= =C =C CC                   ==
 -----+Z11AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+           )==++=++++X+++X+XX++++X+++++XX++XX+X++XX+X+++++XX++X++X++X+XX++X++XX+XX+X++X++XX++X+XX+XX++++++++++-)++)++++++X++++
+              .. ...'...'.....'''.'..'...''..'.........''....'.''..'.'..'...'..........'....'.......'.......'.  .. ...'...'...
+                  = .H= .H=HH ...H. =.=HH..HH.H==HH=H= .. HH .H..H=.H.HH.=H=.HH=HH=H= H. HH .H=HH HH.===    .=  =     . =H.  =
+                    =C  =B CC ===C=  = CC==CC=B  BC C  == BB =C==B =C=CC= B =BC CC C  B= CC =C CB CB=       =         =  C=
 -+===+1XZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+         )+)=++++++++X+XX++X++X++X+++X++X+X++XX+X+++X++X++X++X++X++XX+XX+XX+XX+X++XX+X+++X+XX+X++X++++++X+++++)++++)++++++++++
+          .  ...... ......'.'.....'.'..'.........'.'.'......'..'.''.....'.....'.'.....'.'......'.....'.... ... . .. .....'.'..
+              =     =H=HH=.H.=H= H.=.H=.H=H==HH=H. .H.=H==H=.H=.H..HH HH.HH=HH.H.=HH=H.=.H=HH H.=H= =.  H   =        =  =.=.=
+                     C CC =C= C  C= =B =C C  CB C= =B= C  C =B =C==CC BC=CB CC=B= CC C= =C CB C= C   =  C                = =
 -=-+)1AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+       +-+-++++++-++++X+XX+X+++X++X+++X+XX+XX+XX++++X+++X+X++XX+XX++X+XX+XX+XX+XX+X+++X+X++XX+XX++++X+++++++++++)++)+++++X++++
+         . .....  ..........'...''...'.......'.......'.'...........'...............'.'...'.......'...'..' ...... ..  .........
+             =      ==H HH=H. =H..H= .H=HH=HH.HH == H. .H=H= HH=HH=.H=HH=HH=HH=HH=H. .H=H. HH=HH=.==H.= .            =   H ==
+                      C CB C=  C==C  =C BB CC=BC    C= =C C  CC CC =B CC CC BC CC B= =C C= CB CC =  C=  =                C
 -++)MAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      ---+)++++)+++X++XX+X+++X++++XX+XX++++X++XX++++++++X++++++X++X++++XX++X+XX+X++XX++++X++X+++X+XX++++++=)++++++++++++++++++
+           .... ....'...'.'....''........'..'.....'.'.'....''.'..'..'''..''....'.'....'...''.'.'.....''...  ...... .......'..'
+           = =     H.=HH.H. =H ..=HH=HH==.=H.=HH= .=.=.=H==..=.H .H ...HH..H HH.H.=HH=.= H..H. .H HH=..= =            =  =. =.
+                   C= BC=B=  C == CB CB  = B= BB  = = = C  == =C =B ===BC==C CC=C= CC =  C==C= =C BC ==                   =  =
 =Z1ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+    --+++)+++++)++++X++X+++X+XX+XX+XX+XX+X+++X+++++XX++X+++++X+XX++X++X+XX++X+XX+++X+X++XX+XX+XX+XX++X++++-++++)++)++X+)++++++
+        . .. .. .....''.................'.'.'.''......'...'......''.'..'...'....'.'...'.........'...'..... .... .. ...' .'...
+          =     == =H..H= =H=HH HH=HH HH.H. .H..=  HH .H =. =H HH..H.=H.HH=.H=HH.=.H=H. HH=HH HH.HH .H  ==   =   =   H.  . ==
+                    C==C   C BB CC CC CC=C= =C==   BC =C  =  C CC==C= B=CC =C CB= =C B= BC BC CC=CB =C               C=  =
 )MMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+    =-++++++++++++++X+++++X++X++X+XX++X++X++X++X+++X++X+++++X++X+XX+XX+XX+X++X++X+XX++XX++X++X++X++X+++++X++++++++++)++++X++++
+      ..........'..'..'....''..'.'...'.'......'...'.....''.'..'.......'....'..'..'..'....'..'....'..'''.....'....... .'.......
+             ===.= .H .===H..H=.H.HH=.H.=H==H=.H= .H==H=.. .H .H=HH=HH.HH=H.=H. H.HH. HH=.H .H==H. H...= H= .=        .= H= ==
+                =  =C =   C==C =B=CC =C= C  C =C  =B  C == =C =C CC CB=BC C= B= C=CB= CC =B =C  B= C===  C  =         =  C
 AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+  +)+++++=+++++X++++++++++++X+XX+++++X++++XX++X++X++++X++++++XX+X++XX+XX+X+++X+XX+XX+X++XX+++++X+++++XX++X++++++++++++X+++++++
+    ..... .......'...''.'..'.....''.'..''...........'..'..''.....'........'.'.........'.....''....''....'............'...'.'..
+      =     ===H=.=  ..=.= .H=HH=..=.H ..=HH =H= H==. H. =..=HH H.=HH=HH=H.=.H=HH HH=H.=HH==..=H= ..=HH .H =  =      .H =.=.=
+               C =   == =  =B CC == =B == CC  C  C  = C=  == BC B= BC CC C= =B BC CC C= CC  == C  == CC =C           =C  = =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++)++++++++++++=+++XX++++XX+++++X+++++X+++X+++++X+++++++XX++X++X++X+XX++X++X++++XX++X+XX++X++X++XX+XX+X+++++++++++++X+X++++
+ .... ............ .''....'.....'......'....'........'........'.''..'.'...'..'...'...''.......'..'...........'..'..'..'...'...
+            ===    =..HH==.=HH==.==H===. H= .H    =H .= == HH .H..H=.H.HH=.H=.H==.=HH..H=HH==H.=H. HH=HH H= =.  .  .  .H=H. ==
+                    ==CC  = BC  =  C   = C  =C     C =     BC =C==B =C=BB =C =C  = CC==C CB  B= B= BC CC C   =  =  =  =C C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++=)++++X++++++X+XX+XX++X+XX+XX++X++XX++++++++X++X+++X+++++X+XX++X+XX++X+XX++XX+X++XX+XX++X++X++X+XX++++++++++++X++X++++)+
+.... .  ..................''..........'.....'......'..'....''.'....'......'....'.....'.......'.....'.......'.'..'.... '.....
+         = =H     =H=HH=HH..H HH=HH==H.=HH  .   = H. H.==H=..=.H=HH.=H=HH=.H=HH.=HH=H. HH=HH .H==H .H=HH===.=.= .===H .H = =
+            C      C CC CC==B CC CC  C= CC  =     B= C=  C == =C CB= B BC =B CC= BC C= CC CC =C  C =C CC   = =  =   C =C
+                                                                  V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++=-++++++X+++++X++XX+X+++X+X+++X+X+++X++++++++X+++++++++X+XX++X+XX+XX+XX++X+XX+XX++++++++++XX+++++X++X+++++X+++++X++X++X+++
+ ...    '.''.......'.....'.'.'.'.'...'....'.......'.'.''........'.'.................'''.''.''....''.'..'...''..'.''.....'...
+        .=..H =   H. HH=H.=.H.H.=.H=H.==H=.= =  =H.=.=..= =H=HH .H.HH=HH=HH==H=HH=HH...=..=.. HH=..=.H=.H =.. H. .. H==H. H
+        = ==C     B= BC B= =C=C= =C C=  C =      C= = ==   C CC =B=CB CB BC  B CC CB=== == == BC == =C =B  == C= == C  C= C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++)-+++++++++++XX+X++XX+X+XX+XX++XX+XX++X+++++++++++XX++X++XX+X++XX+X++XX+X+++X+X++XX+X++XX+++++++XX++++++++X++X++++++X++++++
+...   ......'.......''..'....'..'..............'..''............'...'.'.....'.'.........'...'''.''...'.''.'...'.....'.'..'....
+      ==   =. = HH=H..HH.H=HH.HH. HH=HH =H= =  .= .. HH==H==HH=H.=HH.H. HH=H.=.H=H==HH H. HH... ..=HH.=.. .= H. H= =.=.H=.=
+            =   CC B==BC=B CB=CC= CC BC  C     =  == CC  C  CC C= CC=C= BC C= =C C  BC C= BC=== == CC= == =  C= C   = =B =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++--+X++X++++++++XX+XX+XX+XX+XX+X++X++X+++++)+++XX++X++X++X++X++X++X++X+++X+XX++X+XX+X++XX++++XX+XX+X++XXX+X+++++++)X+++++XX+
+...  ...............'.............'..'..'.... .........'..'....'.....''.'.'.'...'......''...''........'........'..'. .'.''....
+=    =H =H =  === HH.HH HH=HH=HH H. H.=H. === ===HH==H .H=.H =H.=H==H..H.=.H.HH=.H HH H..HH=..=HH HH=H.=HHH=H= .= .= H. ..=HH
+      C  C        BC=CC CC CC BC C= C= C=        CC  C =C =C  B= C  C==C= =C=CC =B CC C==BC == CC CB C= CBC C  =  =  C= == CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+)+++++X++X+++X+XX+XX+XX+XX+XX++X++++++++X+++)++++X+++X++++XX+XXXXX++X+XX+X++XX++X+XX++X++X+X+++X++++XX++XX+X++++++X++X++++++++
+ . ....''.....................'..''....'.... .'.....'..'.'.........'.'....'....'.'...'.'....'.'..''...'.....'..'.'....'..'.''.
+   = =H..H= =H HH HH=HH=HH=HH=.H=.. ===.H  =  .  H= .H .=.HH=HHHHH .H.HH=H.=HH .H.HH=.H.=H H.=.H ..=HH. HH=H. =.=.H= H. =. ..=
+      C==B   C CC BC CB BC CC =C ==    =C     =  C  =C = =BC CCCCC =B=BB C= CC =C=CB =C= C C= =B == CC= CB C=  = =C  C=  = ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+=+)+++X+++X++X+XX++X++X++X++XX+X++X+++++XX++))++++X++XX++X++++XX++XX+X++XX++++XX+X++XX+X++XX++X++X+++++X++X+)+++++++X+++++X+++
+ . .'....'.'.....''....''..'..'....'''......  .............''....'..'.'.....'.....'.....'....'.....''......' '..'..'...'....'.
+   =.=H= .H.=H=HH..H==H..H=.HH.H==H...= HH==  ====H= HH =H .. HH=.HH.H.=HH =. HH=H.=HH=H. HH .H==H=..==H==H. .==.= .H =. =H=.=
+    = C  =C= B CC==C  B==C =BC=C  B===  CC        C  CC  C == BC =CB=C= BC  = CB C= BC C= CC =C  B ==  B  C= =  =  =C  =  C =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++X+++++X++X++XX+XX+XX++X++X+++++++++X+X++)+++X++++++++XX++X+++++++++X+++++X++X+XX++X+++X+X++XX+XX+XX++X+++++X++++++++++++++
+.......'......'.........''..'..''.'...'...'  '........''...''..'...'..'.''..'.''.'.......'.'.'...'...................'.......'
+    H= .==H= H.=HH HH=HH..H=.H ..=.== .H H.  .==H=  ==.. HH..H .= =.= .H.. =.H..H.HH==H =.H.H.=HH.HH=HH==H===  H=  ==.== == =.
+    C  =  C  C= CC CB CB==C =C == =   =C C=  =  C     == CC==C =   =  =C==  =C==B=CB  C  =C=B= CB=CC CC  C     C     =       =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++X++X++X+XX++X+XX+XX+XX++++X+++++++X+XX+++++++++++XX++X+++++++++X+X+++++++++XX+XX+X++X++X++XX++X+XX++X++X+++++++)++)++++++
+..'.'.....'.'...'.......'....'..'.....'......'..'...'....'..''.....'.......''.............'..'....'.......'... ...'. '. ......
+ =. .H =H=.H.HH=.H=HH=HH.HH==.=H.=====.H HH =. =.===. HH .H=..  =  .H H== =..===HH=HH H==H. H.=HH .H=HH =H.=H  ===.  .= == ===
+  = =C  C =C=CB =B CC CB=CC  = B=     =C CC  =  =   = CB =C ==     =C C    ==   CB BC C  B= C= CC =C CC  C= C     =  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++++X+XX++X++X+XX++XX+XX+XX++X++++X+++X++++++++X++X+++)=+++++X+X++X++X+++++X++++++X+XX+XX++++XX++X++X+++++++)++++++)+X++
+'.....''.'.'...'.''...............'...'..'...'.''.'...'..'..  ........'........'..'..'.'....'...''....'....'...... ...... ...'
+.  == .. .H.HH=.H..H=HH==HH=HH=HH=.H==. H.==H.=..=.==H.=H. =   =  =H=H. H  H= =.=H.  . .H=HH.HH=..=HH .H==H.   ===    = = =H=.
+=     == =C=CC =C==B BC  CC CB CC =C  = C=  C= == =  C= C=         C C= C  C   = C=  = =B CB=CB == CB =C  C=               C =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++X+XX+XX+XX+XX++X+XX+XX+XX+XX+++++X+++++XX+++++X+X+++++-++++X+XX++X+++++XX+XX++++XX+XX+XX++XX+X++X+XXX+++++++)++++++++++
+.. ...'..........'...........'......'.......'.....'...'.'...  ...'.......'.''........'...'..'...'..'............'.. .......'..
+   ===.H HH=HH HH.HH==H=HH=HH.HH HH=.=  H=  . HH==. =H.H. =    = .H HH  H.=.. HH=HH==.=HH.HH.HH=.HH.H==H=HHH==  .=  =      .=
+      =C BC BC CC=BB  B BB CB=CC BC =   C   = CC  =  C=C=        =C BC  C= == CC CC  = BC=CB=CC =BC=B  C CCC    =          =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++X++XX+XX+XX+XX+XX+X++XXXX++X++++++++++++X+++++X+XX++))+=)++++++++++XX++XX+X++++++X++XX+X+XX+XX++X+XX++X+++++++++X+++++++)
+..'...'...............'.......''.'.'.....'..'..'..'......  .  .''.''..'.........'.''.'..'..'....'...'.......'..'... ... ...'.
+  .==H. HH=HH=HH=HH HH.H==HHHH..H.=.  ===.= .H .==.H HH        .. ..  . HH= HH=H.=..=.H=.HH.H=HH.HH=.H=HH==H.= .    =H   = .
+  =  C= CB CC CC BC CC=C  BBCC==C= =     =  =C =  =C CC        == ==  = CC  CC C= == =C =BC=C CB=CB =C CC  C=  =     C     =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X+++X+XX+XX+XX++XXXX+XX+XX+XX+X+++X+X++++X+X++++++X++++)++=++++++++++++++X++X+++++X++X++XX+X++X++XX+X++XX+XX++X++++++)++++++
+.'.'.'.......'..''...............'.'.'.'..'.....''.'..... .. .'.'......'..'..'...'''..'.'......'.'.....'............... .....'
+ .H.=.H=HH=HH.HH..HHHH=HH=HH=HH=H. .H.H.==.H=H= .. .H ==      .=.= ==  .= .H .H =...H=.H.=HH H=.H.=HH=H.=HH=HH =H=         = .
+ =C= =C CC CB=BC==CCBB CC BC CB B= =C=C=  =C C  == =C         = =      =  =C =C  ===C =C= BC C =C= BB C= CC BC  C            =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+XX+XX++X++X++XX+XX+XX+XX++X++X+++X+X++++++++++++X+++++++++++++X++++++++X++++++++XX++X+XX++X++X+XX++++XX++X+)++++)++++)++++
+.........'..''.'...'.....'...'..'.'.'...'.''.'.......... ..'..'......'.''...'.''.''....'.......''....'''....'.. ...   .   .'.'
+ HH HH HH. H..H.=HH.HH HH.HH .H=.H.=.H H.=..=.= ====H=     .  .= =H =. ..= H.=..=..=HH=.H HH  H..H=HH... HH=.H  =          . .
+ CB CB CC= B==C= BC=BB CC=CB =C =C= =C C= == =      C      =  =   C  = ==  B= == == CC =B CC  C==C BB=== CC =B             = =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X++X++X++X++XX+XX+X++X++XX+X+++X++X++++++X++++++++++++++++++)+XX++X++X+++++XX+++++XX+X++X+++++XX+X++++++X+XX+++++===+++++++
+..'..'....'..''.....'.'..'.......'......'.''..''..'............ .......'...''....''''.........''.....'.''.'.... .. .      .'..
+H=.H=.H==H.=H..HH=HH.H.=H.=HH H= .H==H==. ..H ..= .             =HH==H=.H= .. HH=....HH=H==H= ..=HH=H.=..=.H=HH            .==
+C =C =B  C= C==CC BC=B= B= BC C  =B  B  = ==C ==  =              CC  C =C  == CC ====CC B  B  == BB B= == =B CC            =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XXX+++++X++X+XX+XX+XX+XX+XX++++++++XX+X+++++++++++++ ++++++)+++++++X+++++++++++XX++++X++XX+XX+XX+XX+XX++++++++X++++)))++++++++
+.....'.'..'.'...........'...''.'.......'..'.'...'... ...... ......'.'.'.'...'.....''..'............'...''.''.......   ......''
+HHH =.=.H=.H.HH HH=HH HH.HH ..=.=  HH=H. =.=.= =. =             = .H.=. .===.  HH=..=H.=HH=HH=HH HH.HH ..=..==H            =..
+CCC  = =B =C=CC CB BB CB=CB == =   CC C=  = =   =                 =C= = =   =  CC == C= BC CB CC CB=BC == ==  C             ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++XX+X++XX+XX+XX+XXX+X++X++XX+XX+X++XX+XX+++++X+)+++++))++++++X++++++X+X+++X+++++XX++X+XX+XX+XX+X+++X+XX+XX+++++++++)=+++++
+...'.....'.............'.'...........'...'......... .....  .......'''..'...'...'.'....''..........'.'.'........'.......  ...''
+  H.=HH=H.=HH=HH=HH=HHH.H.=H==HH HH H. HH.HH   ==H= ==     =  == H...= .H=H. =H.=.==HH..H HH=HH HH.H.=.H=HH=HH=.=          =..
+  B= CC B= CC CC BC CBC=C= C  CC CB B= CC=CC     C               C===  =C C=  C= =  BC==C BC CC BB=B= =C CC CB =            ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X++X++X++XX+XX+XX+X++XX+X+++X++++XX++X++X++++++++++++++++++++++X++++++++X+++X++X+XX++X+XX++X+XX++X+++++X++X+++++++)+++++++X
+.....'....'...........'.....'.'..''....'.........''....... ......'......'...'.'..'.'...'.'...'.'...'.'.'.'......''... ........
+H==H .H==H.=HH=HH=HH=H.=HH=H.=.H ..=HH .H =H= == ..  =        == .H == =.  H. .H=.H.HH .H.HH .H.HH=.H.=. .H =H==.. =   =    =H
+C  C =C  C= CB BB CB C= CC C= =C == CC =C  C     ==              =C     =  B= =C =C=BC =C=CC =C=CB =C= = =B  C  ==           C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X+X++XX+X++XX+XX+XX+X+++XX+X+++++X+++++X++++++++++++++)+-+X+++++++++++++X+++X+X++XX+XX+X++X+++X+XX+X++X+++X+++++++++++++++++
+.'...'.....'......'....'.'......'.'.....'.'............. . '.'.'...'.........'...'...'....'..'''......''.'.'..'''.''..'.'...'.
+ .H=H. HH=H.=HH=HH.HH=H.=.HH=H =.=.H====.H. =  == == =     .H.=.   .=  == H =.H=H.=HH.HH=H.=H...H=HH=H..H. .H=... .. =. .= =.
+ =C C= CC C= BC BC=BC B= =BC C  = =B    =C=                =C= =   =      C  =C C= CB=BB C= C===B BB C==C= =C === ==  = =   =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+XX++++XX++XX+X++XX+X++XX+XX++X+X+++X++++++++++++++++==++)++)++++++++)++X++X+XX+XXXX+++++XX+XX+XX++X++X++X+XXX+X++X++X+++++++
+..............'.''....'.......'.'.'.....'..'..'...'...   . '. ........ .'..'...........''.........'...'..'.......'..'..'..'.''
+H HH=== HH==HH.H..HH=H. HH=HH .H.H. =H==.= .= .= =.  =   = .      =     .H .H HH HHHH==..=HH=HH=HH.=H .H=.H=HHH H.=H. H.  .=..
+C CC    CC  BC=B==BC C= CC CB =C=C=  C  =  =  =   =        =            =C =C CC CBCB  == CC CC BC= C =C =C CCC C= C= C=  = ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X+++++X++XX+XX+XX+X++X++XX+X++XX++++XX+XX+++++++++++=++++++))+++++++++++++++++XX+XX+X++X++X++XX++X+XX+X+++XX++X+XX++X+++++X+
+'...'''..'............'.'.....'....'.................. . ..'.  ...... ...''...'........'.....'....'......'.'...'.....'...'....
+. H=...=H. HH=HH=HH=H=.H.=HH=H. HH=.= HH HH  ===  ===      .=      =   ==..= =. HH=HH H.=H==H. HH .H=HH H. .HH=.H HH=.H =.==H=
+= C === C= BC BC CC C =B= BC C= CC =  CC CB                =             ==   = BC BC C= C  B= BC =C BC C= =CC =C BC =C  =  B
+                                                                                V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++X++XX++X++X++X+++X+XX+X+++X++X+++++++X++++++++)++-)+++++)++)++++++++X+XX+++++X++++XXXXXX++++XX++++X++XX++++XX++++++++++++
+'..'..'....'..'....'.'......'...'...''.''..'..'..'. ..  ..... .. .....'.'....'''.'.'.'.......'''....''......'''....'.........'
+.=H. H.=HH=.H=.H==H.=.H=HH=H.==H.=H ..=..=H.==.= .=           =       . .H HH...=.H.=.=HHHHHH...=HH=..=H= HH...=HH .===   == .
+= C= C= CC =C =C  C= =C CC C=  C= C == == C=  =  =                    = =C CC=== =C= = CCCCBC=== CC == C  CC=== CC =         =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++XX+X++XX+XX++XX+XX+XX+X++XX+XX++X++++X++++++X++++)=++++++)+++++++X++X++X+++X+X++X++XX+XX++X++++X++XX++XX+X++X++++++++++++
+'.''.....'................'.'.......'.'''.........'...  ...... ...'..'....''.''....'..'.......'..''..'.........'...........''.
+.=..=HH=H. HH=HH =HH HH HH.H. HH=HH .H...=H== == H.     =       ==.= .H==H..H..=H=H.=H.=HH=HH=.H=..=H.=HH =HH=H. H===      ..
+= == CC C= CC BC  CC CC BC=B= CC CC =C=== C      C=               =  =C  C==C== C C= C= BC BB =C == C= BC  CC C= B         ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++X++XXXX+++X+XX++X++XX+X+++++X++++++X+X++++++X+++++++++++)++++++++++XX+XX++X++++X++XX++X+XX++XXXX++X+XX++X++X+++++++=+++++
+...'..'.....'.'.'.....'.....'.'...'.''.'......'.... ......... ....'..'....'...'.'''..'....'...........'.....'..'.......' ...''
+==H.=H. HHHH. .H.HH==H. HH=H. .= H.=.. .H=H===.  H               =.==.= HH.HH .H... H.=HH=.H=HH==HHHH .H=HH .H=.H= =  =.    ..
+  C= C= CBCC= =C=CC  C= BC C= =  B= == =C C   =  C                =  =  CB=CB =B=== C= CC =B CC  BCBC =B CC =C =C      =    ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++++XXX++++XX++X+X+++X+++++++++++X++X+++++++++++++)+)+)++)+++++++X++++XX+++++X++X++X++X++X++XX+X++X++XX++X++X++++++++++++X+
+'..'..'.....''...'...'....''.''.''.'.'............... . . .. ..........''..'.'.........'...'.......'..'.......'.'''...........
+.=H.==.HHH==..HH=.H=H. =H=.. ..=.. .H.=H= == == =               ==  H==..HH.=.==H==H==H.=H=.H =HH=H.=H.=HH =H=.H...  ===   =H=
+= B=  =CCC  ==CC =B C=  C == == == =C= C                            C  ==CB= =  C  C  C= C =B  CC C= C= BC  B =B===         C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++XX++X++X+++++XX+X++X++X++++++X+XX+XX++X+++++++++++=+++++++++++X++X+XXX+XX++X+X++XX++X+++++XX++X+X++XX++X+XX++X+X++++++++)+++
+'.......'..''......'..'..'..'.'............'..''...  ......................''....'...'..'''....'....'...'........... ..... ...
+. HH =H .H=..==HH H.=H.=H.==.=.H=HH=HH==H==.= ..==             =H  H=HHH HH..H=H=.HH .H=...=HH=.H=H=.HH=.H=HH==H=H=      = =
+= CC  C =C ==  CC C= C= C=  = =C CC CC  C  =  ==                C  C CCC BB==C C =CC =B === BB =C C =BC =C BB  C C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++X++X++XX++X+XX+X++XX++X+++++X++XX+X++++++X++++)++=++++++++++++++X+XX++++X++X++XX++++XX+XX+XX+XX+XX+XX+XX++X++++++++++++++++
+'......'.........'.'...'....'.'.'........'....... .. ...................'''....'....''......................'..''... ... .....
+.= H= H. HH==H=HH.H. HH.=H =.=.H. HH=H===.= H  == =     = = =  =  =H=HH=...H==H.=HH=..=HH HH HH=HH=HH=HH=HH=.H=..==          =
+=  C  C= CC  C CC=C= BC= C  = =C= BB C   =  C                      C CC ===B  B= BC == BC CC CC CC CC CC CB =B ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+X++XX+XX+X+++X+XX++X++X+++++XX++X++X++++++++++++++++=++++++++++XX+XX+XX+XX+XX+XX+XX+XX++X++XX++X+XX+XX+XX+X++X+++++++++++=++
+.'.'........'''.....'....'.''....'..'...'............. .......'.......'.....'.....'......'.....''............'..'''........  .
+H.H. HH=HH H...H HH .H==H.=.. HH=.H=.H==.  =====  =     =  =  .= HH=HH.HH=HH.HH HH.HH HH=.H==HH..H=HH=HH=HH=H. H...
+C=C= CB CB C===C CC =C  C= == CC =C =B  =                     =  BC CB=CC BB=CC CC=BC CB =B  BC==C CC CB CB C= C===
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++XX++++XX++X++X++XX+XX+X++XX+XX+++++++++++++++++++++)++X++++++++XX+XX++X+XX++X+XX+XX+X++XX+X+++X+X++++XX++XX+X++X+++++++++++
+.'....''...''..'.'.................'.''............. . .....'...'...'...'.'...'....'........'...'.'..'''......'.........'.....
+H. HH=.. HH..H .H.=HH HH H==HH=HH==.=..  ====  ==  = =   H= .=  . HH.HH=.H.HH .H=HH.HH H==HH.H= .H.H=...HH==HH.H =H     .=
+C= CC == CB==C =C= CC CC C  CC BC  = ==                  C  =   = CC=CB =C=BC =C BB=CC C  BC=C  =C=B ===CC  BC=B  C     =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++++XXX++++XX++X+X+++X+++++++++++X++X+++++++++++++)+)+)++)+++++++X++++XX+++++X++X++X++X++X++XX+X++X++XX++X++X++++++++++++X+
+'..'..'.....''...'...'....''.''.''.'.'............... . . .. ..........''..'.'.........'...'.......'..'.......'.'''...........
+.=H.==.HHH==..HH=.H=H. =H=.. ..=.. .H.=H= == == =               ==  H==..HH.=.==H==H==H.=H=.H =HH=H.=H.=HH =H=.H...  ===   =H=
+= B=  =CCC  ==CC =B C=  C == == == =C= C                            C  ==CB= =  C  C  C= C =B  CC C= C= BC  B =B===         C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++XX++X++X+++++XX+X++X++X++++++X+XX+XX++X+++++++++++=+++++++++++X++X+XXX+XX++X+X++XX++X+++++XX++X+X++XX++X+XX++X+X++++++++)+++
+'.......'..''......'..'..'..'.'............'..''...  ......................''....'...'..'''....'....'...'........... ..... ...
+. HH =H .H=..==HH H.=H.=H.==.=.H=HH=HH==H==.= ..==             =H  H=HHH HH..H=H=.HH .H=...=HH=.H=H=.HH=.H=HH==H=H=      = =
+= CC  C =C ==  CC C= C= C=  = =C CC CC  C  =  ==                C  C CCC BB==C C =CC =B === BB =C C =BC =C BB  C C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++X++X++XX++X+XX+X++XX++X+++++X++XX+X++++++X++++)++=++++++++++++++X+XX++++X++X++XX++++XX+XX+XX+XX+XX+XX+XX++X++++++++++++++++
+'......'.........'.'...'....'.'.'........'....... .. ...................'''....'....''......................'..''... ... .....
+.= H= H. HH==H=HH.H. HH.=H =.=.H. HH=H===.= H  == =     = = =  =  =H=HH=...H==H.=HH=..=HH HH HH=HH=HH=HH=HH=.H=..==          =
+=  C  C= CC  C CC=C= BC= C  = =C= BB C   =  C                      C CC ===B  B= BC == BC CC CC CC CC CC CB =B ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+X++XX+XX+X+++X+XX++X++X+++++XX++X++X++++++++++++++++=++++++++++XX+XX+XX+XX+XX+XX+XX+XX++X++XX++X+XX+XX+XX+X++X+++++++++++=++
+.'.'........'''.....'....'.''....'..'...'............. .......'.......'.....'.....'......'.....''............'..'''........  .
+H.H. HH=HH H...H HH .H==H.=.. HH=.H=.H==.  =====  =     =  =  .= HH=HH.HH=HH.HH HH.HH HH=.H==HH..H=HH=HH=HH=H. H...
+C=C= CB CB C===C CC =C  C= == CC =C =B  =                     =  BC CB=CC BB=CC CC=BC CB =B  BC==C CC CB CB C= C===
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++XX++++XX++X++X++XX+XX+X++XX+XX+++++++++++++++++++++)++X++++++++XX+XX++X+XX++X+XX+XX+X++XX+X+++X+X++++XX++XX+X++X+++++++++++
+.'....''...''..'.'.................'.''............. . .....'...'...'...'.'...'....'........'...'.'..'''......'.........'.....
+H. HH=.. HH..H .H.=HH HH H==HH=HH==.=..  ====  ==  = =   H= .=  . HH.HH=.H.HH .H=HH.HH H==HH.H= .H.H=...HH==HH.H =H     .=
+C= CC == CB==C =C= CC CC C  CC BC  = ==                  C  =   = CC=CB =C=BC =C BB=CC C  BC=C  =C=B ===CC  BC=B  C     =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++XX++++X++XX++X++X+++++++++++++++++++)+++++++++++)=++++++++++XX+X++XX+XX++X+X++XX+XX+X++XX+XX++X++X+XX+XX++X++X+++++++++))
+'..'....'...''...'......'..'..''.''.'...' '''.....'..  .......''.....''.....''...''.......'.......'..'........'.''.. ..... .
+.=H. HH=.==H..HH .H =H =.==.==.. ..=.===. ...=== =.     = === ..=HH=H..HH HH..H=H..HH=HH=H.=HH=HH .H=.H HH=HH .H..H     =  =
+= C= CB =  C==CC =C  B  =  =  == == =   = ===     =           == BB C==BC BC==B C==CC BB B= BB CC =C =C CC CC =C==B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++X++XX++++X+++++XX+XX+X+++X++X++X++XX+X++++++++++++++)+++++++X++X+XX+XX+XX+XXX+XX+XX+XX+XX+X++X++XX+XX+XX++X+XX+X+++++)+++++
+''..'....''..'.'''.......'...'..............'..'....... .'...''..'.................'..'.......'..'..........'......'.... .'..
+..=H.=HH=..=H. ...HH HH=H. =H. H= H= HH H===.  .      = =.   ..H=.H=HH=HH=HH=HHH=HH.HH.HH=HH=H. H. HH=HH=HH=.H HH=H.   = =.
+== C= CC == C= ===BC CC C=  B= C  C  CC C   =  =         =   ==B =B CC CB BC CBC BC=CB=CC BB B= C= CC CC CC =B CC B=      =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X+XX++X++X++X++XX+X+++X+++X++X+++++X))+++++)++++++)+++X+++++XX+XX+XX+XX++X++X+XX++XXXX++XXX++++++X+++X+XX++X++X++X++++++++++
+.'....'..'..'..'.....'.....'..'..''...  ''.'. ...... .......'......'.....''..'.'.........'...'.''...'.......'..'........ .....
+ .H=HH.=H. H.=H.=HH H.==H==.H .H .. =H  .. .= =====     H= =.=HH HH.HH HH..H=.H.HH==HHHH=.HHH.=..= H.==H=HH=.H=.H==H   =  ===
+ =B CC= C= C= C= CC C=  C  =C =B ==  C  == =            C   = CC CB=BC CB==B =B=CB  CCCC =BCC= ==  C=  C CC =B =C  B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++X+X+++++X++XX++++XX++X+XX++X++X++++++++++)++++++++X+++++XX+XX+XX++X+XX+XX+X++XX+XX+XX+XX+XX+XX+XX+X+++X+XX++X+++)+++)++++
+.'..'.'...'''......'''..............'......... .'.........'...........'.........'......'................'''....''.'..  .. .'.
+=.==.H.H =...H==HH=...HH =H=HH =H==H. =  =  ==  .==   =H  .==HH=HH HH=.H=HH=HH=H. HH HH.HH=HH=HH HH=HH H...H HH..H.=      =.
+ =  =C=C  ===C  CC ===CC  C CC  B  C=           =      C  =  CB CB CC =B CB CC C= CC BC=BC CC BB CC CC C===C CB==C=        =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X++X++X++X+++X+XX++X++X++XX++X+X+++++++++++++++++++++++X+X+XXX+XX++X+XXXXX+XX+XX+X++XX++XXXX++X++X+++++X++X++++XX+++++)++++
+..'.''.......'.'.....'..'.'........'.'...'...................'......''...............'....'.....'..'..''.'.....''........ ....
+H .H..H==H==H. .H HH .H .H. HH==H H. .   .== = == =   == =H H.HHH=HH..H=HHHHH=HH=HH H.=HH=.HHHH=.H=.H ..=.H==H=.. HH=
+C =C==B  C  C= =B CC =C =C= BC  C C= =   =                C C=CCC CC==B CCCCC BC CC C= CC =BCBB =C =B == =B  B == CB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X++XX+X++XX+XX++X+++X++++X+++X++++++++++++++++++++++++++++X+XX+XX+XX+XX+X++XX+XX+XX+X++XX++X+++++X+++++XX+XX+X++XX+++++++++++
+'.'.....'...'...'..''..''..'.'..''.'...'...'.'............'...............''..........'....'.'''.'.'.''........'..............
+.H.=HH=H. HH.HH=.H=..H ..=H.=.H .. .== .= =.=.= == ====== .H=HH=HH HH=HH H..HH=HH=HH=H.=HH=.H...=.H.=.. HH HH H. HH===      =
+=C= CC C= CC=BC =C ==C == C= =B == =   =   = =            =C CC CC BC CB B==CC CC CB C= CB =B=== =C= == CC CC C= CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+X++XX++XX++++XX++++X+++++++++XX+X+)+++++++++++++)+++XX++X+XX++X++X+XXXXX++X+X++XX+XX++X+X+++X++X++X++XX++++X+++X++X+)+++++++
+.'.'........''....''..'.''.''....... ...'......... ......'.'...'.''........'.'.'.......'...''...'.'...'...'''.'....'.. .......
+H.H. HH==HH ..=HH ..=H. ..=..= HH=H=    .   == ==   = HH .H.HH=.H..H=HHHHH=.H.H.=HH=HH=.H=H..=H=.H. H=.HH ...H.==H=.H   = ==
+C=C= CB  CC == CC == C= == ==  CC C     =             CC =C=CB =C==B CCCCB =C=C= CC BC =C C== B =C= C =CC ===C=  B =B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X+XX+++++X+++X+XX+X++++++X+X+++X++++++++)++++X+++++X+++++X++X++XX+XX+XXX+X+XXXXX+X++X++XX+XX+XX++X++X+XX++++XX++++++++X++++++
+'.'....'.....'......'.''.'...'...'....'.. ......''.'..'....'..'..........'.........'..'..........'.........'.....''.'...'.''.'
+.H.HH==.==H= .H HH H.=..=.H H. =H.==  .==    =H=.. .H=.== H.=H.=HH=HH=HHH.H=HHHHH=H.=H.=HH=HH HH=.H==H=HH==.=HH==..=.= H. ..=.
+=B=CC  =  B  =C CC C= == =C C=  B=    =       C == =C =   C= C= CC CC BBC=C BCCBC B= B= BC CC BB =C  B CB  = BB  == =  C= == =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++X++XXX++++X++X++X++XX++X+X++++X+X+++++++++++++++X+++X++++X++XX+X+++X+XX++XX+X++XX+XX+XX+XX++X+XX+XX+XX+XX++X++XX+++++X++X
+'.....'....''.'..'.'..'....'...''.....'.....'..'.''...'.'..''..'...'.'......''....'.........'...'.......'.....'..'...'''.'....
+.=H==H. HHH.. .H=.H.=H.=HH .H H..==H H.    =. =. ..= H.=.H ..=H. HH.H.==H=HH..HH=H.=HH=HH=HH.HH=.H HH=HH.HH HH.=H.=HH... .H==H
+= C  B= CCC== =C =B= C= BC =C C==  C C=     =  = ==  C= =B == B= CC=B=  C CB==BC C= BB BC CB=CC =C BC CB=BC CC= B= CB=== =C  C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XXXXX+XX+XX++X++X++X++X++XX+XX++X++++++++++++++++++X++X+++X+X++X++XX+XX+X++XX+XX+XX+X++X++X++X+++++XX+XX+X++XX+XX+XX++XX+X++XX
+............'..'.....'.'.......'...'................'..'.'.'.'..'......'.'...'.......'..''..'.''''...'....'......'...'..'.'...
+HHHHH HH HH .H=.H==H=.H. HH=HH=.H==.= == == ===== =H.=H. .H.H.=H.=HH=HH.H.=HH.HH=HH=H.=H..H=.H....=HH.HH H.=HH=HH.HH=.HH.H. HH
+BCCCC CC CC =B =B  C =C= CC CC =B  =               C= C= =C=B= C= CB CC=B= CC=BC BC C= C==B =C==== CB=BC C= CC CB=CC =CC=C= BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+X++XX+XX+++++X+++++X+++++X++++++++++++X+++X++X++X+XX++X+XX+X+++++++++X++X+XX+XX+XX+XX+XX+XX+X++XX+X++X+XXX++++X+XXXX++XX+X
+...'.'........'.'...'.....''....'..''......'.'..'........'....'.''''.''.'.''...................'.'.....'.......'.'.'....'.....
+ HH.H.=HH=HH =.=.H==.==H= .. H= .==..= == H. .H .H =H=HH=.H=HH.H.... ..=.H..H=HH=HH=HH=HH HH=HH.H.=HH=H.=H=HHH=.=.H.HHHH.=HH=H
+ CC=C= CC CB  = =B  =  C  == C  =  ==     C= =C =B  C CC =C CB=B==== == =C==C BB CC CC CC BC CC=C= CC C= B CCC = =B=CBCC= BB C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+++++XXX+++XX++X+XX+XX++++++++X++++++++++++X+++++X++XX++++X+++X+XX++X+XX++XX+X++X+XXXXX++X+XX+XX++X++X++X++XX+XX+X++X+X+)XXX+
+.'.''....''...''........''.'''..'..'.'..''.....''..'....''..'.'.....'....''.............''....'...'.'..'..'.........'...' ....
+H.=..=HHH.. HH..H HH=HH=..=...=H.==. .= .. =H==.. H.=HH ..=H.=.H=HH .H=HH..HH=H==H=HHHHH..H=HH.HH .H.=H. H.=HH HH=H=.H=H. HHH=
+B= == BCC== CC==C CC CB == === C=  = =  ==  C  == B= CB == C= =C CB =C CB==BC B  C CCCCB==C CC=CC =B= C= B= BC CC C =C B= CCC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX+X++++++X++++XX+++X+++++X++++++++++++++X++X++X++XX+XX+X++XX++X+XX+XX+XX++X++X++X+XX++X+XX++X++XX+XX+XX++X+XX++++X++XX+X++XXX
+....'.''''...'.....'..''.'.'''.'..'...'.'................'....'.'.........'.''....'..''.'..''.''.........'.....''..''.........
+HH=H. ....H =.=HH==.H=..=.H...=.= .=  . .H==H==H==HH=HH H.=HH=.H.HH=HH HH .H..H==H.HH..H.HH..H..HH=HH HH .H=HH ..=H..HH=H= HHH
+CC B= ====C  = CC  =C == =C=== =  =   = =C  C  C  CC CC C= CB =C=BC CC CC =C==B  C=CC==C=CC==C==CC BC CB =C CC == C==BC B  CBC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+XX+XX+X++X++XX++X+X++XX+++++X++X+++++X++X++X++++++++X++XX+XX+XX+XX+XX+XX+XX+X++X++XX+XX++X++X++XX+XX+XX+X++XX+X++X+XXX+XX+
+...........'..''...'........''.'..'.....'.......'.''.'....'......................'..'.........''.'.........'.'...'.'......'..'
+ HH=HH=HH=H.=H..HH .H=H= HH .. .H=.H====.H==H==H.=..=.==H=.HH=HH=HH HH=HH HH=HH=H.=H.=HH=HH==H..H.=HH=HH=HH.H.=HH.H.=H=HHH.HH.
+ CC CC CC C= B==CC =C C  CB == =C =C    =C  C  C= == =  C =CC CB BB CC CC CC CC C= B= CC CC  B==C= BC CC BB=B= CB=C= C BBC=CC=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X+XX+XX+X++XX++X++X++++++++XX+XX++X+++++X++++++X++X++X++X+XX+XX++X++X++X+XX+XX+XX+XX+XX+XX+XX++XX+XX+XX+XX+XX++X++X+++++X+XX+
+'.........'....'.'...'...''...........'.....''.'..'..'...........'..'..'.......'...........'...................'..'.''''......
+.H HH=HH=H. HH .H.=H=.===.. HH=HH =H =.  H =.. .H=.H .H==H=HH=HH=.H=.H=.H=HH=HH.HH HH=HH HH.HH==HH=HH=HH=HH=HH=.H=.H....=H=HH=
+=C CC CC C= BB =C= C =   == CC CC  C  =  B  == =C =B =B  B CC BC =C =C =C CB BB=CC CB BC BB=CC  CB BC CC CB CB =C =C==== C BB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++X++X++X++X++XX+X++XX++X++X++XX++X++++++++X++XX+XX+XX++X++X++X++X++XXXXX+XX+X+XX+XX++X+XX+XX+++X+XX+X++XX+XX++X+XX+X++X++X
+.'.'.....'..'..'.....'....'.''......'..'''.''..'......'.....''.......'.........'....'...'........''......'.......'.'....''.'..
+ .H.=H==H. H. H.=HH=H.=HH=.H..H= HH=.H ... .. H.=HH=HH.HH =H..H==H==H. HHHHH=HH.H=HH.HH=.H=HH HH=..H=HH=H. HH=HH=.H.HH=H..H. H
+ =C= C  B= C= C= BC C= CC =C==C  CB =C === == C= BC CC=CC  B==C  B  C= CCCCC BC=C CC=BC =C CC CC ==C CB C= BB BC =C=BC C==B= B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++++XX+X+++X++X+XX++XX+XX++X++++++++X++X+++X+X++XX++X++X++XX+X++XX+X++XX+X++X+XX+XXXXX+XX++X+XX+++++X+XX++++XX++X+XX+XX+XX+++
+..'''....'''...........'...'..''..'...'........'.........'.....'...'.'.....''.'...........''....'''.'.'...''......'.....'...''
+H ...HH=H...H==H=HH= HH.HH=.H=.. =.==H. H= =H=H.=HH==H =H.=HH=H.=HH.H.=HH=H..H.HH HHHHH HH..H=HH...=.H.HH ..=HH =H.HH HH.HH ..
+C ===CC C===C  C CC  BC=CC =C ==  =  C= C   C C= CB  C  C= CC C= BC=C= CC C==B=CC CBCCC CC==B CC=== =B=BC == CC  C=BC CC=CC ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++++X+X+++X++X++XX++X++++X+++++++++X++X++++++++XX+X++XX+X++XX+X++XX++X+XX+XX+XX++X++XX+X++X++X++X++XX+XX+X++XX+XX++++X++XX+X+
+.''.'.'.''.....'....'..'''.'.'''''...''.'.''.'......'.........'......'....'..'..'...'....''.'..'..''..'....'.......''..'...'.'
+H.. .H.H.. H==H.=HH=.H=...H.=..... =H..H. .. .= HH=H.=HH=H= HH.H==HH=.H=HH.HH.HH.=H=.HH=H..H. H. H..HH.HH=H.=HH=HH ..=H.=HH.H.
+C== =C=C== B  B= CC =C ===C= =====  C==C= == =  CC C= CC C  BC=C  BB =C CB=CB=CC= C =BC C==B= B= C==CC=CC B= CC BB == C= CC=B=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+XX+++++X++XX+X++XX++X+X+++X++X++++++X+XX++++XX+++X+XX+XX+XX++X+XX++X+XX++X+XX+XX+X++XX+XX+XX+XX++X++X++X++X++X+XX++X++X++XX+
+.'...''.'.......'....'...'''..'....'.......''.....'...........'.....'.....'.'..'....'...'........''..'.''.''..'....'...'.'....
+H.HH=..=.H==HH=H. HH=.H H...H .H===.==H=HH=..=HH==.H HH HH=HH .H=HH .H=HH .H.HH.HH=H.=HH.HH HH=HH..H=.H..H..H .H=HH.=H=.H.=HH
+C=CC == =C  CC C= CC =B C===C =B   =  C CC == CB  =C CC CB BC =C CB =C CC =C=CC=BC C= CC=CC BC BC==B =B==C==C =B CB= C =C= CB
+                                                                                                                  V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+X+++++XX++XXXX+++X++++X++X++XX+X++X+++X+XX++X++XX+++-++++++XX+XX+XX+X++XX+XX++X++++XX+X++X++X+++X+XX+XX+XX+XX+XX+XX+XX++XX++
+...'..''...'......'..''..'..'..........'....''..'...'' '''''.........'.'...'...'.'''.....''.'....'.'..'...........'..'..''..''
+H=H.==..HH=.HHHH= .H=..=H.=H. HH=H  H==.H HH..H .HH=.. ..... HH=HH HH.H.=HH.HH=.H...=HH=H..H.=H= .H.HH.HH=HH HH=HH.HH.HH..HH..
+C B=  ==CC =CCCB  =C == C= C= CC C  C  =C CB==C =CC == ===== CC BC BC=C= BC=BC =B=== BB C==C= C  =C=CC=CB BB CC CC=CB=CB==CB==
+                                                                         V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX+X+++X+XX+X++X++XX++++XX+XX+X+++X++++++X+XX+X++X++XX +X+XX+XX++X++X++X+XX++XX+XX+XX+XX+XX+XX++X++XX+X+++X+XX+XX+XX+XX+XX++X+
+....'.'.'..'.'..'...''.........'.'....'.'......'..'... .........'.....'....''..................'.......'''.......'.....'...'..
+HH=H. .H.HH.H.=H.=HH..==HH HH=H.=.H= =.=.H=HH=H. H.=HH =H=HH HH=.H==H=.H=HH..HH=HH=HH=HH=HH HH=.H==HH=H...H HH HH.HH HH.HH=.H=
+CC B= =B=CC=B= B= CC==  CC CC C= =C   = =C CC C= C= CB  C CC CC =C  C =B CC==BC CC CC CC BC CB =C  CC C===B CC CC=BC CC=BC =B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++XX+X++X++X++XX+XX+XX++X++XXX++++++XX+X++XX+XX+XX+++++XX+XX+XX++X+X++XX+XX+XX+X++X++X++XX+XX++X+XX++X+XX++X+XX++X+XX++X+XX
+''.'......................'......''.''.....'...........''......'...'.............'.'..''.''......'.'...'.....'.....'.....'.'..
+..H. HH=H==H==H==HH HH=HH=.H==HHH.. ..=HH=H.=HH HH=HH==..=HH HH.HH=.H=H= HH=HH=HH.H.=H..H..HH=HH=.H.HH=.H=HH=.H=HH=.H=HH=.H.HH
+==C= CC C  B  C  CC BC BB =C  BCC== == CC C= CC CC CB  == CC CC=CC =C B  CC BC BB=B= B==C==CC CC =B=CC =B BC =B CC =C CC =B=CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X++X++X+XX++X++X++XX++X++XX+X++++++X+XX+X+++X+X+X++X++++XX+XX+XX+XX+X++X++XX+X++XXXXX+XX+XX+XX++X++XXXX++XX+X++X+XX+XX+XX+X
+..'.......'..''.'..'....'............'....'.'.'...'..'..'.......'.......'..''..'.'................'..'....''..'....'..........
+H .H==H==H.HH..H.=H.=HH=.H= HH=H=====.H HH.H. .H=H.H=.H=.==HH=HH.HH=HH H.=H..HH.H.=HHHHH=HH=HH HH=.H=.HHHH..HH.H==H.HH HH=HH=H
+C =C  B  C=CC==C= C= BB =C  CC C     =C CC=B= =C C=C =C =  CC CC=CC BC C= B==CB=B= CBCCC BC BB CB =C =BCCB==BC=C  B=BC BB CC C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XXX+X++X++XX+X++XX+X++XX+XX++X+XX++X+XX++XXXX++X+++++XX+X++XX++X+XX+XX+XX+XX+XX+X+++X+XX++X+X++XX+XX+XX+X+++X+XX++X++X++X++X++
+.....'..'.....'.....'.......'.......'...........'''.'....'...''.'..'...........'.'.......'...'.........'.'...'...'.''.'..''.'.
+HHH=H.=H. HH=H.=HH=H.=HH=HH .H HH==H.HH==HHHH==H...=.HH=H. HH..H.HH.HH=HH=HH HH.H.==H=HH .H=H. HH=HH=HH.H. =H.HH=.H..H.=H..H.=
+CCC C= C= CC C= CB B= CC CC =C CC  C=CB  CCCC  B=== =BB C= BC==C=CB=BC CB BC CC=B=  B CB =B B= CC BC BB=C=  B=CB =C==C= C==C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X+X++X+++XX+XX+XX+XX+XX++XXXX++X+XX+XX++X+XX+++++X+X+++X++X++XX+XX+XX+XX+XX+XX+XX++++XXX+X+++++X+XX+XX++X++++XX+XX+XX+XX+XX+
+.'.'....'................''..............'.'..'''.....'...'.........'..'............''....'..''.'........'.''..........'.....'
+=.H.H==H.==HH=HH=HH HH=HH..HHHH =H=HH HH=.H.HH...==H=H.==H.=H==HH=HH.HH.HH HH=HH=HH=..=HHH.H=..=.H HH=HH=.H..==HH HH=HH.HH HH.
+ =C=C  C=  CC CC BC CC CB==BCCC  C BB CB =C=CC===  B C=  C= C  CC BB=CC=CC CB CB CB == CCC=C == =B BB CB =C==  CC BC BC=CC BB=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX++X+XX++X++X++X+++++X++XX+XX+XX+XX+XX+XX+XX+XX+X++XX+X++XX+X++XX+XX+XX+XXXXX+XX+XX+XX+X++XX+X++XX+X++XX+X++X++XX++XXXX++X+X
+'.....'..''.'..'..'.'.'.'..........................''....'.....'...............'.....'....'...........'...'.'.......'.....'.'.
+.HH==H.HH..H.=H.=H.=.=.H.=HH=HH=HH=HH=HH=HH HH=HH=H..HH=H.=HH=H.=HH=HH=HH=HHHHH.HH=HH.HH=H. HH=H==HH=H. HH.H.=H==HH .HHHH=.H.H
+=CB  B=CB==B= C= C= = =C= CC CC BC CC CB CC CB CC B==CC B= CC C= CC CC CC BBCBC=BC BC=BB C= BB C  CC C= CC=C= C  CC =CCBC =C=C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X++X+XX++XX+X++XX+XX+XX++X+++++X++X+XX++X++X++XX+XX+XX++X+X++XX++X+XX++X++X++X++X+XX+XX+XX+XX+XX+X+++X+XX+XX++X++X++X++X++XX+
+'.'.....'...'.'.........''...'''..........''............'...''...'.'...'.....'.''..................'.'........'....'..'..'....
+.H.=H=HH.=HH.H.=HH=HH HH..H==...H =H=HH==H..H==HH=HH=HH=.H=H..HH=.H.HH=.H==H=.H..H=HH=HH=HH=HH HH=H.=.H=HH HH=.H==H.=H.=H.=HH
+=C= C CC= BC=C= CC CB CC==C  ===C  C CC  C==B  CC CC CC =C C==CC =B=CC =B  C =C==B CB CC CC BC CB C= =B CB BC =B  C= B= C= CC
+                                                                  V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++XX+XX+XXX+X+++++X++X++XX+X++X++X++XX+XX++++XX++++XX+XX+XX+X++X+X+++X++X++XX+X++XXXXX+XX+XX++X+X+++X++X++X+XX++XX+XX+XX+X++X
+...............'''...'.''.....'.....'.....''....'..................'.'.''..'....'.............'...'.'..'..'....''..'.....'.'..
+H= HH=HH=HHH=H=...=H=.H..HH=H=.H==H=.HH=HH.. =HH.===HH=HH HH H==H=H.=.H..H=.HH=H. HHHHH=HH=HH .H=H.=.H .H=.H=HH..HH.HH HH.H. H
+C  CC CC CCC B === B =C==CC C =C  C =BB BC==  CC=   CC CC CC C  C C= =B==C =BC C= CCCCC CC CC =C C= =C =C =B BB==BC=CC BC=C= C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX++XX+X+XX+XX+XX++X+XX+XX+XXX+X++XX+X++XX+X++XX+X+++X+X++XX++X++X+XX+XX+XX+XX+X++XX+XX+XX+XX+++++X++X++XX+XX+XX+XX+X++XX++++
+'...'..'...........'....'..'.....'...'.....'.......'.'...'....'..'.'.............'...'.........''...'..'......'.......'....''.
+.HH=.HH.H HH HH=HH=.H=HH.HH.HHH=H.=HH.H==HH.H==HH H. .H H. HH=.H .H.HH=HH=HH=HH=H.=HH.HH HH=HH ..==H. H.=HH=HH.HH=HH=H.=HH=..
+=CC =BC=C CC CC CB =C CB=CC=CBC C= CC=B  CC=B  CC B= =C C= CC =C =C=BC CC CC BB C= CB=BC CC CC ==  C= C= BC BC=CC CC B= BB ==
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++XX+XX+XX++X+X+++X+XXXXX++XX+X++XX+X++X+XX+X+X+X++XX++++XX+XX+XX+XX+XX+XX+++++XX+XX+X++XX+XX+XX++++XX+XX+XX+X++XX+XX+XXXX+++
+'...........'...'''.'......'....'.....'..'....'.'.....'''...'................'....'..'.'..........''.........'.'...........'..
+.= HH=HH=HH=.H=H...H.HHHHH=.HH=H. HH=H. H.HH H.H.H==HH... HH.HH=HH=HH=HH=HH==.==HH.HH.H. HH=HH=HH=.. HH HH HH.H. HH=HH HHHH. =
+=  CC CC CC =C C===B=CCCCC =BC C= CC C= C=CB C=C=C  CC=== CB=CB BC BC BC CC  =  BC=BC=B= CB CC CC == CC BC BC=C= CC CC BBCC=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X+++X+XX+XX+X++XX+XX+XX+XX++X+XX+XXXXX+XX++X++X+XX++XX++X+XX+XX+XX+X+++X++X+++X+XX+XX+XX+X+++X++X+X+++XXXXX+XX+XX++XX+XX+X+
+.'..'.'.......'.''..'........''..............'..'.........'..........'.''.....'.'.......'....'''..'.'.''.............'..'.....
+H.=H.=.H=HH HH.H..HH.HH=HH=HH..H=HH=HHHHH HH=.H=.H=HH= HH=.H=HH HH HH.H..=H==H. .H=HH=HH.HH H...H .H.H..=HHHHH HH=HH=.HH.HH=H=
+B= C= =B BC BC=C==BB=BB CB CB==B BB CCCCB CB =C =B CC  CC =B CB BC CC=C== B  C= =C CC CB=BC C===B =B=C== CBCBB CC CC =CC=BC C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX++X+XX+X++X++XXXXX++XX+XX+X++XX+XX+XX++X+XX++XX+XX+XX++++XX+X+++X+X++XX++X++X+XX+XX+++++X++X+++X++X+XX+XX+XX+XX+XX+XX+XX+XX
+'...'......'..'...............'..........'........'.....''......'.'...'....'..'.'..'...''.'.'..'.'..'....'.....'...........'..
+.HH=.H=HH H.=H.=HHHHH==HH HH=H.=HH=HH=HH=.H HH =HH.HH HH..= HH=H. .H=H. HH=.H=.H.HH.HH=..=.H.=H. .H=.H=HH.HH HH.HH=HH HH=HH.HH
+=CC =B CC C= C= CCCCB  CC CC B= BC CC CC =C CC  CC=CB CC==  CC C= =C C= CC =C =B=CB=CB == =C= C= =B =B CB=CB BB=CC CC BC BC=BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++X+X+X+XX+XX++X++X++XX+XX+XX+XX+XX+XX+XX++X++X++X++X++X++X++X++XX+++++X++X++XX+X++X+XX++X++X+++X+XX+XXXXX++XX+X++X++X+XX+++
+''...'.'....'...'.'..'.........'............'..'..'..'..'.'..'..'...'.''..'........''.'.....'..'.'..............'..'.''......'
+..==H.H.H HH.HH=.H.=H. HH=HH=HH.HH HH=HH=HH .H .H=.H .H=.H. H.=H.=HH.=.. H.=H==HH=H..H.HH= H. H.=.H=HH=HHHHH==HH.H=.H..H HH==.
+==  B=C=C CC=BC =C= C= CC CC BC=CC CB BC CB =C =C =C =C =C= C= B= CC= == C= C  BC C==B=CC  B= C= =C CC CCCBB  CC=C =B==B CB  =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++X++X++X++XX+XXXX++XX+XX+XX+X++X++XX+XX+XX+XX+XX+XX+XX++++XX++X+XX+XX+XX+X+++X++X++X++X+XX++XX++++XX+XX+XXXXX+XX+X++X++XX+X+
+''..'..'...........'...'.....'.'..'......................''....'............'.'..'....''.....'...''.................'..'.....'
+..=H.=H.=H==HH=HHHH. HH.HH=HH.H.=H.=HH=HH=HH=HH HH HH=HH=..=HH .H=HH HH=HH H.=.H=.H==H..H HH=.HH=..=HH=HH=HHHHH=HH=H. H. HH H.
+== C= C= C  BC BBCC= BC=CC CB=B= C= BC BB BC CB CC CB CC == CC =C CC CC CB C= =B =C  B==C BC =CC == BC BC BCCBC BC B= B= BC C=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX++X+XX++++XX+XX+XX+XX++++XX++X++XX+XX+X++X++X+X+X++++X++XX+XX+++++X++X++X+++++XX+X++X++XX++++X++XX+XX+X++XX+XX+XX+X++XX+XX+
+'...'.'...''............'''....'.'........'..''.'.'..''..'.......''''.'.....'.''.....''.'.....'..''.......'.........'.....'...
+.HH .H.HH=..=HH=HH=HH=HH...=HH=.H. HH=HH=H.=H..H.H.H=..=H. HH=HH=....H. H==H.=..=HH=H..H. HH =. H..HH HH=H.=HH=HH HH.H= HH.HH
+=BC =C=CB == BB CB CC CB=== CB =C= CB CC C= B==B=C=C == C= CC CC ====C= C  C= == CC C==B= CB  = C==CC BC B= BC BB CC=B  CB=BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++X+XX+XX++X++X+XX++X+XX++X++X++X+XX++XX+X+++++X++X+X+++++++X++X+XX+X+XXX++X+XX++X+XX++XX+XX+XX+XX+XXX+XXXX++X++XX+XX+XX+XX++
+'''........'..'.....'.....'.'..'..'..''..'...''.....'.''.''.'..'.'....'....'.....'.'..''........'..'........'.........'..'...'
+...H HH=HH=.H=.H=HH=.H HH=.H.=H.=H.HH..HH.H==..=H==H.H..=..=.H=.H.HH H.HHH=.H=HH=.H.HH..HH=HH=HH.HH.HHH=HHHH.=H==HH=HH.HH.HH=.
+===B BC BB =C =C CC =B CC =B= C= C=CB==CC=C  == B  C=B== == =C =B=CC C=CCC =C CC =B=CC==BB BC CC=CB=CBC CCCC= B  CB BC=CC=CC =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++XX+XX+XX+XX++X++X+XX++X+++X+XX+XX+XX++X+XX++X+XX++X++X+++X+X++X++X++XXX+X++XX+X++XX+X++XX+XX+XX+XX+XX+XX++X+XX+XXXXX+XXXXX
+.'....'.........'.''.....'..''...........'.....'.'..''.''.'.'......''.'....'.....'.'...'.'.........'..'......'................
+=.==HH.HH=HH=HH .H..H=HH=.H=..H HH HH=HH .H=HH .H.HH..H..H.=.H H= H..H. HHH.H==HH.H.=HH.H.=HH=HH=HH.HH.HH HH=.H=HH=HHHHH=HHHHH
+ =  BC=CC BB BB =C==C CB =C ==B CC CB BB =C CC =C=CB==C==B= =C C  B==B= CCC=C  BC=B= CC=B= CC CC CC=CB=CB CC =B BC CBCCB CCCBC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X+XX++++++++XX+X++XX+X++XX+X++XX+XX+XX+XX++XXXX++XX+++++X+X++XX++X+XX+X++XX+XX+XX+XX++XX+X++X++X++XXXXX+XX+X+++X+X++XX+X++X+
+.'.'...'''.'''..'.......'.....'...................'...''.....'...''......'.........'......'.......'.........'.'.'...'...'.''.'
+ .H.HH ...=...HH.H==HH=H. HH=H.=HH=HH HH=HH==HHHH=.HH=.. =H=H.=HH..H=HH H.=HH=HH=HH.HH==HH.H==H==H.=HHHHH=HH.H.=.H=H.=HH.H..H.
+ =C=CC === ===CC=C  BC C= CC C= CC BC BC BC  BCBC =CC ==  C C= CC==C CC C= CC CC CB=BB  CB=C  C  C= CCCBC BB=C= =C C= BC=B==B=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X++++XXX+++X+++XX+X++X++XX+XX+X++XX+XX++X+XX++X+XX+X++XX++X+X+++XX++++XX+X+++X++X+XXXXX++X++++++X+XX+XX+XX+XX+X++X+++XXX+XX++
+'...''....''.''........''.......'.......'.....'......''.......''....'......'.'..'.......'..''''''...............'..'.'...'...'
+.H==..HHH=..H..=HH=H==H..HH HH=H.=HH=HH=.H HH=.H=HH H..HH =H=H..=HH=.= HH=H.=.H=.H=HHHHH.=H......H=HH=HH=HH=HH H.=H.=.HHH.HH=.
+=C  ==CCC ==C== CC C  C==BC BC C= BB CC =C CB =C CC C==CB  C C== CB =  CC C= =C =C CCCCC= C======C BB BB CC CC B= C= =CCB=CB =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX++X++XX+XX+X++XX+X++++++++XX++++XXXX+XX++XX+XX+X++XXXXX+XX+XX+X++X++XX++X++XX+X++XX+X++X++XX+X++XX+XX+XX+XX+XX+XX+XX+X++X++
+....'..'.......'.......''.'....'.''.......'......'.'......................'.......''..'....''....''.....'................''..'
+=HH=.H=.HH HH=H.=HH=H==..=.==HH.=..HHHH=HH. HH HH.H. HHHHH HH=HH=H==H= HH .H==HH=H..HH.H==H..HH H..HH HH.HH HH=HH=HH=HH=H..H=.
+ CC =B =BC BC B= BC C  == =  CC= ==CCCC CC= CC CB=B= BCCCC CC CC C  B  CB =C  CC C==CC=C  C==BC C==CC CB=CB CB CB CB CC B==C =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+XX++X+XXX+X++XX+X++XX++++XX+XX+XX+XX+X+XXX++X++X++XX+XX++X+XX+X++XX++X+X+X+XXXXX++X+X++XX+XX+XX+XX+XXXXX++X++X+XX+XX+XX++X
+.......'.......'...'.'....'...............'.......'.''......'...............'........'.'.....................'.''.'..'......'.
+=HH=HH .H HHH=H.=HH.H.=HH=.==HH=HH HH=HH H.HHH =H=.H..HH=HH=.H=HH=H= HH =H=H.H=HHHHH=.H.H==HH=HH HH=HH=HHHHH=.H..H.HH.HH=HH=.H
+ BC CC =B CCC B= CB=C= BC =  CB CC CC BC C=CCC  B =C==CC CC =C BC B  CC  B C=C CCCBC =C=B  BB BC CC BB CCCCC =C==B=CB=CB CB =C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+XX++XX+X+++X+XX+XX+XX++X+XX++X++X++X++X++X++X++X++XX+X+++X++XXX++++++X++XX+X++X+XXX+X+XX++X++X++XX+XX+XX+XX+X++XX+XXXXXXX+
+............'.'......................'...........'........'.'..'...'......''....'..'...'.......''.''..'..........''..........'
+ HH=HH==HH=H. .H=HH=HH=HH =H=HH==H==H.=H==H==H==H. H==HH H.=.H .HHH. == =H..HH=H. H.HHH.H=HH==H..H..HH.HH=HH=HH=H..HH=HHHHHHH.
+ CB CC  CC C= =C BC CB CC  C CC  B  C= C  B  B  C= B  CC C= =C =CCC=     C==BC B= C=CCB=C BB  C==B==CC=CC CC CB C==CC BCCCBCB=
+                                                                                                                            V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX++X+XX+XX+XX++X+XX+XX++X++X++XX+XX+XX+X++XX++X++++++++X++X+++++X++XX+X+++X+XX+XX+XX+XX+XX+X++XX++XXXX+XX++X+XX++X+XXXXX+XX+
+.........'......'....'...'.'..'................'...'..'...''.'.''..'.....'''.'.....'..........'....'.......''.....'..........'
+ HH==H=HH.HH=HH=.H HH.HH .H.=H.=HH=HH=HH H==HH=.H==.==.==H..H. ..=H.=HH=H...H.HH HH.HH=HH=HH=H.=HH .HHHH HH..H=HH=.H=HHHHH HH.
+ BC  C CC=CC CC =C CC=CB =C= C= CC CC CB C  BB =C  =  =  C==C= == C= BC C===C=CC CC=BB CB CC C= CC =CCCB CB==C CC =B CBCCB CC=
+                                                                                                                      V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X++XX++++X++XX+XX+XX++X+XX++XX+XX++X+++X++++X++XX+XX+XX+XX+XX+++++XX++++X++X++XX+XX+XX+X++X+++++XXX+X+XX+XX+X++X++X+XX+XX+X
+.''......'...''........''.'..........'.'.'..'''.'................''.'...'...''..'...........'.'.''....'.........''.'........'.
+H..H==HH=.==H..HH=HH=HH..H.HH==HH HH=.H.=.H=...H.=HH HH=HH=HH=HH=..=.HH=.==H..H=.HH=HH=HH=H=.H. .. HHH.H HH=HH=H..H.=H=HH HH.H
+C==C  CC =  B==BB CC BC==C=CC  BC CB =C= =C ===C= CC CC CC CB CC == =CC =  C==C =BC BC BC C =C= == BBC=C BC BC C==B= C BB BC=C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+X++XX+XX+XX+XX++X++X+++++X++XX+X++X++X++XX+XX++XX+X++X++XX+X++X+++X++X+XX+XXX+XX+XX++XXXX+X++XX++XX+XX++X+X++XX+X++XXXX+XX
+.....'.............'......'....'..'.'..'..'...'...'....'..'.....''.'.'..'....'......'..''..................'.'.'...'.''.......
+=HH=H. HH=HH=HH=HH=.H==H==.==H=.HH.H.=H.=H. HH.HH=.HH=H.=H.=HH=H..H. .H=.H=HH.HHH=HH.HH..HHHH=H= HH==HH=HH=.H.H.=HH.H..HHHH HH
+ CC C= BC CC BB CB =C  C  =  C =CC=C= B= C= BC=BC =CC B= C= BC B==C= =C =B CB=CCC BB=BC==BCCC C  CB  CC CC =C=C= CB=C==BCBB CB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX++++XX+XX++X+XX++X+XX++X+XX++XX++++XXX+X++X+XX++X+XX+XX++++XX+XX+++++X+XX++XX++++X+XXX+X++XX+X++X++XX+XX+XX+XX+XX++XXXXXX+XX
+...''.......'.'...'...........'...''....'..'.....'........''.......''''.........'''.'.........'.'..''........'......'.........
+HH=.. HH=HH .H.HH=.H=HH =H=HH .HH=.. HHH.H .H=HH .H=HH HH=..=HH=HH=....H HH==HH=...H.HHH=H==HH.H. H..HH HH=HH.HH=HH=.HHHHHH=HH
+CC == CC CC =C=CB =B CC  C CB =CC == BCC=C =C CC =C BB CC == CC CC ====C CB  BC ===B=CCB B  BC=C= B==BC CB CC=CC BC =BCBCBB BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+X+++X+X++X++X++XX+XX++++++++XX+XX+XX+++++X++X++X+++++X++X++XX++++XX+XX++X+XX+XX++X+XX+XX+X++X++XX+XX+X+++X+XXXXX+XX+XX+XXX
+...'...'...'..'..'.......'.'.''...'......''.'.''..'.'.'...''......''...'...'.......''....'....''.''..'....'.'.......'..'......
+=HH.H= .H H.=H.=H.=HH=HH .=.=.. HH.HH=HH=..=.H..H .H.=. =H..H==HH ..=HH.HH .H=HH HH..H=HH.HH H..H..HH.HH=H. .H HHHHH.HH.HH=HHH
+ CC=B  =B C= C= B= BC BC = = == CC=CC CB == =C==B =B= =  B==B  CB == CC=BC =B CB CB==B CC=CC B==B==CC=CC C= =C CBCCB=BB=BC BBC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++XX++X++X+XX+XX+XX++X+++++X++XX+XX++X+XX++X++XX+XX+X+++X+XX+XX+XX++XX+XX+XXXXX+XX+XX+X++X++XX+X++XX+XX+XX+XX+XXXXX+XX+XX+X+X
+''....'..'...........'...'...'.......'.'......'.....'.'.'..............'................'..'...'.'...'.....'..'.....'.......'.
+.. HH .H=.H=HH=HH=HH=.H==.==H. HH=HH=.H.HH =H=.HH=HH.H. .H=HH HH=HH==HH.HH HHHHH=HH=HH H.=H. HH.H.=HH.HH HH.HH.HHHHH.HH=HH=H.H
+== BC =C =C CC CC CC =B  =  C= BC CC =C=CB  C =CC BC=C= =B BC CC CC  CC=CC CCCCC CC CC C= B= CC=B= BC=BC CB=BB=CCCBC=BC BC B=C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+XX+X++XX+XX+XX++X+XX++X+++XXX+XX++X++X++X+XX++XX+XX++X+X+++X++XX+XX+X+++X+XX+XXXX++XX+XX++X++X++XX+X++XX+XX+XXXXX+XX+XX+XX+X
+.'....'......'...'.'...'..''.........'..'.....'.......'...'.'.''.......'.'.........'.......'..'.......'...............'.....'.
+H.HH H.=HH HH.HH=.H.HH=.H=..HHH=HH =H.=H.=H=HH. HH HH=.H=H. .H..HH=HH H. .H=HH=HHHH.=HH=HH=.H=.H==HH=H.=HH HH=HHHHH=HH.HH=HH.H
+C=CC C= CB CC=CB =C=CC =C ==CCC CC  C= C= C CC= CC CC =C C= =B==BC BB C= =B CB CCCC= CC CC =C =B  CC B= BB BC CCCBB BB=CB BB=B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+XX++X+XX++X++X++X++X++XX+XX+X++X++XX+XX++X+++++XX++X+XX+XX+XX++X++X++XX+++XX++X++X++XX+XX+X++XX+XX+X++XX+XX+XX+XX+XXXX++X+
+.......'....'...'..'..'.'........''.'...'.....'''.....'...........'.'..''..'''...'.''.''.......'......'..'..'.....'.......''..
+ HH HH .H=HH.=H=.H=.H=.H.=HH=HH=H..H.=HH.HH==H...= HH=.H=HH=HH=HH=.H.=H..HH...HH=.H..H..HH=HH=H.=HH HH.H=.HH.HH=HH.HH=HHHH..H=
+ CB CC =C CB= B =C =C =B= CC CC B==C= CC=CC  C===  CC =C CC CB CC =B= C==CC===CB =B==B==BC CC C= CB BC=B =CB=BC BC=BC BCCB==B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++X+XX+XX+XX+++++X++XX+X++XX+XX++X+XX++++XX+++X++++XX+XX+XX+X++X++XX++X+X++XX+XX+XXXXX+XX+XX+XX+XX+XX+X++XX+XXXXX+XX+XX+XX+
+'''.'.......'...''...'.....''......'.'...''...'.'.''''..........'..'....'...'.....................'..'....'...............'...
+...=.H HH HH.HH=..==H.=HH=H..HH HH=.H.HH ..=HH.=.H....HH=HH=HH=H. H.=HH .H=H.=HH=HH=HHHHH HH=HH=HH.HH.HH=H.=HH=HHHHH=HH=HH.HH=
+=== =B BC CC=BC ==  C= CC C==CC CC =C=BC == CB= =C====CC CB CC C= C= BC =C B= CB BC CBCCC CC CB CC=CC=CB B= CC BCCCB CC CB=CC
+                                                                                     V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX+++++X++X++X++XXXXX+X++X++X++X++X+++++XX+XX++++++++XX+X+++X+XX++++XX++XX+X++XX+XX+XXXX++XXXX+++X+XX+XX+XX++++XX+XX+XX+X++XX+
+...''.'.''....''.....'.'..'..'..'..'.'.........'..'......'.'.....''..........'..........'.....'.'...........'''...............
+HH=..=.H..H==H..HHHHH.H. H.=H.=H. H.=.==HH=HH==.==.==HH=H.=.H HH ..=HH==HH=H=.HH=HH=HHHH.=HHHH. .H=HH=HH=HH=...HH=HH=HH=H==HH=
+BC == =C==B  C==BCCCC=C= C= C= C= C= =  CC BC  =  =  CC C= =C CC == BC  BC C =CB CC BCCB= CCCC= =B BB BC BC ===CB BC CC B  CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X++XX+XX+XX+XX++X+++++XX++++X++XX++X++X++X+++++X+++X++X+X++++X++X+XX+XX+XX++X++X+X+++XXX++X+++X++XXXX+XX+XX++X+XX+XX+XX+XX++X
+'...........'..''.''''....''..'....'..'..'..''...'''..'...'..'..'...........'..'.'.'.'...'..'''..........'...'.'.....'.....''.
+.H= HH=HH=HH.HH..H.... HH ..=H.=HH .H=.H .H=..= H...H .H=H.= .H=.H HH=HH=HH .H=.H.H.=.HHH.=H...H==HHHH=HH.HH=.H.HH=HH.HH HH..H
+=C  CC BC BB=BC==B==== BC == B= CC =B =C =C ==  C===C =B C=  =C =C BC CC CC =C =C=C= =BCC= C===B  BCBC CC=CB =B=BB CB=BB BB==C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX++++X+++X++X++X++X++X++X++X+++++X+++++X++XX+XX++++XX+XX+XX++X+X+++X++X++XX+XX+X++XX+XXXX++X+XXX++X+X+XXX+XX+X++XXXX++X+XX+XX
+....'..'...''....'...'.''..'..''.'.'.'...'.......''.........''...'''....'.................''.'....'...'.........'....''....'..
+HH =.=H.==H..H =H.=H=.H..H=.H=.. .H.=.==H. HH HH=.. HH=HH HH..H H...H= H.=HH=HH=H= HH=HHHH..H.HHH=.H=H.HHH HH=H=.HHHH..H=HH.HH
+CB  = C=  C==C  B= B =B==B =C == =C= =  C= CC BC == CC CC CB==C C===C  C= BC CC B  BC CCCC==C=CBB =C C=CCC BC B =CCBB==B BB=CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX+XX+++++X++X++XX+XX+X++XX+X+++X+++++++++++XX+XX++++XX++++XX++X++XX++X+XX++X++X++X+XX++XX+XX+XX+X++X++X+X++XX+XX+XX+XX+XX+XX+
+..'...''.'....''.......'.....'.'..''..''''.........'....''......'....'.'...'.''.'..'.........'....''..'...''.....'.....'.....'
+HH.HH=..=.H==H..HH HH=H.=HH=H.=.H=..= ....  HH=HH==.=HH=..=HH= H.=HH=.H.HH=.H..H.=H.HH==HH=HH.HH=H..H=.H=H..HH=HH.HH=HH.HH=HH.
+CC=BC == =B  C==CC CC B= CB C= =C ==  ====  BB CC  = BC == CC  C= CC =C=BB =C==B= C=CC  CC BC=BC C==C =C C==CB CC=CC CB=CB BB=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X+XX++X++X++X+XX+XX++X++XX+XX++++++++X++X++XX+X+++++X++XX+XX+X+++X++X++X+++X+X++X++XX+X++X++XX++X+XX+XX+XXXX+XXX+XX+X+XX+XXX+
+'.......'............'.'.......''.''.'..'.........''..'........'.'..'....'''.'....''....'..''...'............'........'..'...'
+.H=HH==H.=H==H=HH=HH=.H. HH=HH=..=.. .H=.H==HH=H  ..=H. HH=HH H. .H=.H==H...H.H==H..HH=H.=H..HH=.H=HH=HH=HHHH.HHH=HH=H.HH.HHH.
+=C BC  C= B  C CC CB =C= CC CC == == =B =C  CC C  == B= BC CC B= =C =C  C===C=B  B==CC C= B==CC =C CC CC CBCB=CBC BC B=CB=CBC=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++XX++X+XX+XX++X++X++X++X++X++XX++X+XX+XX++X++X++XX++X+X++X++++++X+++X+X++XX+X++XX+X++XX+X+XX++X++XX+XX+XX+X++XX+XX+XX+X++X
+'..'....'.......''..'..'.'.....'....'........'..'..........'..'.''.'...'.'.......'...'.''..'....'..'......'..'.'...'..'..'.'..
+.=H.=HH=.H=HH=HH..H .H=.H.=H==H.=HH=.H=HH=HH .H=.H  HH==H H. H. .. .H==.H.H==HH=H.=HH.H..HH.H=HH.=H.=HH=HH.HH.H. HH.HH.HH.H.=H
+= C= CB =C BC BC==B =C =C= C  C= BC =C CC BC =C =C  CC  C C= B= == =C  =B=C  CB B= BB=C==CC=C CC= B= CC BC=BB=B= CB=BC=BB=B= C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X++X++XX+XX+XX+XX+XXX+XX+X++X+XX++XX+XX+X+++++++++X++X++X+++++XX+XX+XX++XX+XX+XX+X+XXX+X+XX+XX+XX+XX+XX+XXX+XX+XX+X++XX+XXXX+
+'.'..'............'...'.......'..'........'.''.''.'....'..'.''.............'.......'...'................'...'.....'.'........'
+.H. H. HH HH=HH=HH.HHH.HH=H==H.HH.=HH=HH H.=.. ..=.H =H. H.=..=HH HH=HH =HH.HH=HH=H.HHH.H=HH=HH=HH=HH=HH.HHH.HH=HH.H.=HH=HHHH.
+=C= B= CC CB CC CB=CBC=CC C  C=CB= CC BC C= == == =C  B= C= == CC CC CC  BC=CC CC B=CBC=C CC BB CB CB CC=BCC=BB BC=B= BC BBCB=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX+XX+XX+XX+XX+XX+XX+XX+XX++X++X++X++X++X+++++XX+++++X+XX++X++XX++X+XX++X++X++XX+X++X+XX++X++X+XX+X++XX+XX+XX+XX+X+XXX+XX++XX+
+.....'.....................'..'..'........'''....''.'............'.....'.''..'..'.''.'.....''....'.'......'..'....'...'......'
+HH=HH.HH=HH=HH=HH=HH HH=HH=.H=.H=.H==H==H=... HH .. .H=HH= H= HH=.H=HH=.H..H .HH.H..H.HH==H..H=HH.H.=HH=HH.HH.HH=H.HHH.HH==HH.
+CC CC=BC CC CC CB BC CB BC =C =C =C  C  B === CC == =C CB  C  CC =C CC =C==C =BC=C==B=BB  B==B CB=B= CC CB=CC=CC C=CCC=CC  BC=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X++++X+++XX+XX+XX+X++XX+X+++++XX++X+XX++X+XX++++++++X+++X++X+++++XX+X++XX+XX+XX++X+X++X++X+XX++++XX+XXXX++XXXXX+XX+XX+XX+X+
+.'..'.''.''.........'.'.....'.''............'...'''.''..'''..'..''''..'.'...'.....''...''.''......''.......'............'..'..
+H. H. ..H.. HH HH HH.H. HH=H. ..=HH==H=HH==H.HH ...=..=H...H .H=....HH.H. HH.HH HH..H=H..H..H=HH==..HH HHHH.=HHHHH=HH=HH.HH.H=
+C= B= ==C== BC CB BC=C= CC C= == BC  C BC  C=CC === == C===C =C ====CC=C= BB=CC BC==C B==B==C BC  ==BC CCCB= CCCBC BB BB=BB=C
+                                                                                              V                    V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+X+++X+XX++X+XX++X+XX+++++X+X+++X++XX+X+++X++++XX+X+++X++X++X+++X+XX+XX+XX+XX++++XX++X+XX+XX+XX++X+XX+XXX+X+XX+XX+XX++X+XX+X+
+.'.'.'.....'.....'.'....'''.....'.''....'.'..''.....'.'..'.'..'''....'.....'....''..''.'.........'........'....'.....''.'....'
+H.H. .H HH .H=HH .H.HH==...H=H==.H..HH=H.=.H=.. HH=H. .H=.H. H...H=HH.HH=HH.HH==..HH..H.HH HH=HH .H HH HHH.H=HH.HH=HH..H.HH=H.
+C=C= =C BC =C BC =B=CC  ===C C  =C==CC B= =B == CC C= =C =C= C===C CB=CB CC=CB  ==CB==B=BB BC BC =B BC CCC=C BB=BB CB==B=CC B=
+                                                                                                                    V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX++X+X++X++X++XX+++++++XX+XX+XX++XX+X++X+++++X++XX+XX++++++++X+++++X++XX+XX+XX+XX+X+XX++X+XX+XX++X+XX++X+XXX+X++XX+XX+XX+XX+X
+...'.'.'..''.'...''''''..........'..'..'.'''...'........'....'..''''.'..............'..''.'......'....''.'...'.'...'..'..'..'.
+HH .H.H. H..H. HH......=HH=HH HH=.HH.H .H...= H.=HH=HH =.====.H ....H. HH=HH HH=HH=H.HH..H.HH=HH=.H=HH..H.HHH.H.=HH.HH.HH.HH.H
+BC =C=C= C==C= BC====== CC CC CC =BC=C =C===  C= CC CB  =    =C ====B= CB BB CC BC B=CB==B=BC BC =B CC==C=CCC=B= CB=CC=BC=BC=B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+++++++++X+XX+XX+X++XX+X++XX++X++X++XX+XX+X+++X+XX+XX+XX++X++X++XX+XX+XX+XX+XX+XX+XX++X+XX+XX+XX+XX++X+XX++X+XX+XX+X++X+XX+XX
+.'.''.''.'.'.....'.'.....'....'.............'.'...........'..............'.....'......'.'..'.........'..........'..'..'....'..
+H.=.. ..=.H.HH HH.H. HH=H. HH=.H =H==HH=HH=H.=.H=HH HH=HH .H =H= HH=HH HH.HH=HH.HH=HH=.H.HH.HH HH=HH .H=HH =H=HH.HH.H=.H=HH.HH
+B= == == =C=CC CC=C= CC C= CC =B  C  CC CC B= =B CC CB CC =C  C  CC CC BB=CC CC=BC CB =B=CB=BC CB CC =B CC  C BB=CB=B =B CC=BB
+                                                                                          V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++++++++++XXX+X++XX+XX+XXXXX++++XX+XX+X++X++X++X++X+++X+++++++XX+XX+XX+XX+XX++X+XX+XX+XX+XXXXX+XX+XX+XX+XX+XXXX++XX+XX+X+XX
+.'..''.....'......'...'.........'''.......'.....'..''.'.'..''.''............'..''.......'..'........'.....'.......''.....'.'..
+ .H=.. ====.=HHH=H. HH.HH=HHHHH=...HH HH=H. H==H. H..H. .H=.. ..=HH HH=HH=HH.HH..H=HH=HH.HH.HHHHH=HH.HH=HH.HH=HHHH..HH=HH.H.HH
+ =C ==     = CBC B= CC=BC CBCCB ===BC CB C= B  C= C==C= =C == == CC CC BC CC=CB==B CB CB=BB=CCCCC CC=BC BC=CC BCCC==BC BC=B=BB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX++XX++X+XX++X+X+++X+X++XX+XX+XX+XX++X++X++XX+X++X+++X++X++X++XX++++X++X++++XX++X+XX++X+XXXX+XX++X+++++X+XX+XX+XXXXXXXXXX+XX
+'..'....'.........'.'.'.'.............'..'.'.....'..'.'..'....'....''..''.''.'.....'...'.'........'.'.'.'.'.....'..........'..
+.HH.=HH .H=HH==H=H.=.H.H.=HH=HH HH=HH=.H=.H.=HH=H. H. .H=.H==H.=HH=..=H..H..=.HH==H.HH=.H.HHHH=HH=.H.=.=.H.HH=HH.HHHHHHHHHH.HH
+=CB= CC =C CB  C C= =C=C= BC BC BC BC =C =C= BC B= C= =C =C  C= CB == C==C== =CC  B=BB =B=BCCC BC =C= = =B=CC BB=CBCBBCBCCB=CB
+                                                                                                                    V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X+++++X++++XX++X+XX+XX++++XX+XX+X++XX++++XX+XX++X++XX++++X++X+++X+XX+XX+XX+X++XXXXXXXX+XX+X+XXXXX+X++XX+XX+XXXXX+XXXX+XX+XX+XX
+..'..'.'''....'........'.......'.'....''...'..........'.'.'..'.'....'.....'...........'..'.'.......'.................'..'.....
+H=.==.H...=HH=.H=HH=HH .==HH=HH.H. HH=..=HH.HH =H= HH=.=.H. H.=.H HH.HH HH.H  HHHHHHHH.HH.H.HHHHH=H. HH=HH HHHHH=HHHH.HH.HH=HH
+C =  =B=== CC =C CC CC =  CC CB=B= CC == CC=CC  C  BC = =C= C= =C CB=CB CB=B  BCCCBCBC=BC=C=BCCBC C= BB CB BBCBC BCCC=CB=BB BB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++++++X+X+++++XX+XX++X+++X+XX+XX+XX+XX++X++XX++X++X+XX++X+XX++XX+XX+XX+X++XX+X++XXXXXXXXXX+XXX+X+XX+XX+XX+XX+XX+XX+XX+X++XXXX
+.'''..'...'.''...........'.............''.'...''..'.'...'....'...'.....'.'...'.''..........'...'....'.....'.....'..'....'.....
+H...==.H=H. .. HH HH= H==.H=HH HH=HH HH..H.=HH..H=.H.HH=.H=HH.=HH.HH HH.H.=HH.H..HHHHHHHHHH.HHH.H=HH.HH=HH.HH=HH.HH.HH=H.=HHHH
+C===  =C C= == CC CB  C  =B BC CC CB CC==C= BC==C =C=CC =B CB= BC=CC BC=B= CB=C==BCBBCCBCCB=CBC=C CB=BC BB=BC CB=BB=BB B= BCCB
+                                                                                          V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++++X++XX++X++X++X+XX+X+++++XX+XX+XX+X++X++XX+XX++X+XX+XX+X++X++X++X+++X+XX++X+XX+XXXXX+XX+XX+XX+XX+XX+XX+XX+XX+XX+XX+XX+X+XX
+.'''..'....'..'..'......'.''..............'......''.........'..'..'..'.'.....'.'..'.....'........'...........'..'..'.....'.'..
+H... H.=HH .H=.H=.H=HH=H.=..=HH=HH=HH=H==H.=HH=HH..H HH=HH=H.=H. H.=H. .H HH=.H.HH.HHHHH.HH=HH=HH.HH=HH HH HH.HH.HH.HH HH.H.HH
+C=== C= CC =C =B =B CC C= == BC CC CB B  B= CC BC==C BB CC C= C= B= C= =C CB =B=BC=BBCBB=CB BB CB=BB BC CC CC=CB=BC=BC CC=B=CB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X+++++X+++++XX++X+XX++X++X+XX+++X+XX+XX+++++++XX+++X+XX++++XX+X+++X+XX++X+XX+XX+XX+XX+XX+XX+XX+XX+XXXX++XX+X++XXXX++XX+X++X+X
+..''''..'.''....'.....'..'.'..'.'........''.'''..'.'.....''.....'.'....'..'.....'.....'..'..'..'..'.....'..'..'.....'..'.''.'.
+=H.... H.=.. HH=.H=HH=.H=.H.HH. .H HH=HH=..=...HH.=.H=HH=..=HH=H. .H=HH.=H.HH HH.HH=HH.HH.HH.HH.HH.HHHH=.HH.H=.HHHH=.HH.H..H.H
+ C==== C= == CC =C CC =C =B=CC= =C CC BB == ===BC= =C CC == CC C= =C CC= C=CC BB=BB BC=CB=BC=BC=BC=BBCC =BB=B =BBCC =BC=B==B=B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++XX++X++X+++++XX+X++XX+XX++++XX+X+++XX+XX+XX++++XX+XXX+X++X++X++XX+X++XX+XX+XX+XX+XXXX+XXXXX++X+XX++X+XX+XX+XX+X+XX+XX+XX+XX+
+'...'..'..'.''.....'.......'''.....'......'...''.......'.'..''..'..'.'...'........'...........'.....'.'.....'..'.'.....'.....'
+. HH.=H.=H.=.. HH=H. HH=HH=...HH H=. HH=HH.HH ..=HH HHH.H.=H..H=.HH.H.=HH.HH=HH=HH.HHHH=HHHHH=.H=HH=.H.HH=HH.HH.H.HH=HH.HH=HH.
+= CC= C= C= == BC C= CC CB ===BB C = BC CC=CB == CC CBC=B= B==C =CC=C= BC=BC CB BC=BCBB BBCBB =B CC =B=CB BC=CC=C=CB CB=BB CB=
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++X++XX+X+++X+XX++X++X++X++X++XX++X++X+XX+++++X++XXXXX++X+XX+XX+XX++X+X++XXXXX+XX+XX+XX++X+XX+XX+XX+XX+XX+X++XX+XX+X+X++XXX
+'..'........'.'.....'.''.'..'......''..'........'.'.......'...........'...'......'........''.'..............'.'......'...''...
+.==.=H==HH=H.=.H=HH=.H..H.=H.=H= HH..H .H=HH====.H. HHHHH=.H=HH HH=HH=.H=H.=HHHHH.HH=HH=HH..H.HH=HH=HH=HH=HH.H.=HH=HH.H=H..HHH
+=  = B  CC B= =C CC =B==C= C= C  CC==B =B CB    =C= CCCBC =C BC CC CC =B C= CBCBB=CB CB CB==B=CB CC BC CC BB=C= BB BC=B B==BBC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++XX+++++X+++++X++XX+XX++X+XX++X++++XX+++X+X++XX+XX++X++X++X+XX++X++X++X++XX+XX+X++X++X++XX+X+XX+XX++X+XX+XX+XX+XX+XX+X++XX+XXX
+.....'.'...''..''......'.'...'.......'.'...'..........'..'.'...'.'.....'......'.'..'...'..'.'......'....'..'..'.......'...'...
+ HH==.=.H==..=H..HH HH=.H.HH=.H == HH.=.H H. HH HH==H .H=.H.HH .H.=H==H.=HH=HH.H.=H.=H=.HH.H.HH=HH=.H=HH.HH.HH.HH=HH=H.=HH.HHH
+ CC  = =C  == C==BC CB =B=CC =C    CC= =C C= CB CC  B =C =B=CB =C= C  C= CC BC=B= B= C =BC=C=CB BC =B CB=BB=CC=BB CB C= BC=BCC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+X++X++XX+XX++X++X+++++XX+++XXX++XX+X+XX+XX++XX++X+X++++++X+XX+XX+++++X+XX+XX+XX+XX+XXXXX+XX+X+XX+XX+XX+XX+XX+XX+XX+XXXXXXXXXXX
+............'.''.'.''.....'.......'....'..'....'...''''.'.'......'..'.'...........'.....'..'.'...........'.....'..............
+H==H =HH=HH .H..H.=..=HH =.HHH =HH.H HH.HH.=HH=.H=H....=.H.HH HH=.= .H.HH=HH=HH=HH.HHHHH.HH.H.HH=HH=HH HH.HH=HH.HH=HHHHHHHHHHH
+C  C  CC CC =C==C= == BC  =CCC  BC=C CC=CC= CC =C C==== =C=CC CC =  =C=CC CB CC CC=BCCBB=BC=B=BB CB BB CB=BC CB=BB CBCCCCBBCCC
+                                                                                                                    V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++X+X+X++X++XX+XX++X++X++X+++++XX+++++++X++X++XX+XX+XX+XX+XX++XX+X++XX+XX+XX+XX+XX+X+XX+XX+XXXXXXXX+XXXXX+XX+XX+XX+XXXX++XXXX+X
+'.....'..'.......'.'...'.'.'......'..'..'..''..............''...........'........'.'..'...........'.....'.....'..'....''......
+.H=H H.=H.=HH=HH .H.=H=.H. .==HH==. =.=H.=H..HH=HH=HH=HH=HH..HH=H  HH=HH.HH=HH=HH.H.HH.HH=HHHHHHHH.HHHHH.HH HH.HH.HHHH..HHHH=H
+=C C C= C= BC CC =B= C =C= =  BC  =  = C= C==BC CC CC CB CB==CC C  CC BC=BC BC BC=C=BB=BC BBCBBCBB=BCCBB=CB BB=CC=CBCB==CCCC B
+                                                                                       V              V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
++++++X+++++XX++X+++++XX+XX+XX+XX++++++++X+XX++XX+X+XX+XX++XX+XX+X++X+++X+XXXXX+X+XX++X++X+XX+XX+XX+XXX+X+XXXXX+XX+XX++X+XXX+XX
+..''..........'..'''.................'.'.'...'..'....'..''.......''.'.'.......'.'...'.'..'..'..'..'...'.......'..'..''.'......
+= .. H= ===HH .H=... HH=HH HH=HH == =.=.H.HH=.HH.H HH.HH..HH=HH=H..H. .H=HHHHH.H.HH=.H.=H.HH.HH.HH.HHH.H=HHHHH.HH.HH..H.HHH=HH
+  == C     BC =C === CC CC CC CC     = =B=CC =CC=B CB=BC==CC CC C==C= =C BBCCC=C=CB =B= B=CB=BB=BB=BCC=B CBCCB=CB=CB==B=CBC BC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X++++++X++X++X++X+++X+X++XX+XX+XX+++++++XX++X++X++X+XX++X++XX+X+++X+XX+XX+XXXXX+XXXX+XXXXX+XX+XX+XXXXX+XX+X++X+XX+XXXXX+XX+X
+........'.''..'......................'.'''...'..'..'.'.....''....''.....'........'....'...........'........'..'....'........'.
+ =H= ===.H..H=.H==H===H=H= HH=HH=HH==.=...HH=.H=.H=.H.HH==H..HH=H..=H HH.HH=HHHHH.HHHH.HHHHH=HH=HH.HHHHH=HH.H=.H=HH.HHHHH HH.H
+  C     =C==C =C  C   C B  CC CC CB  = ===BC =B =C =B=CB  C==BC C== C CC=BC CCCCC=BCCB=CBCBB CB BB=BBCBC BC=C =B CC=CBCBB BB=B
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+XX++X+++++X++XX+XX+X+++X++X+++++X++X++XX+X++XX+X++XX++++XX+X++XX+XX+XX+XX++X+XXX+XX+XX+X++X+XX+XX+XXXXX+XX+XX++XXXX+XXXXX+XX+X
+...'..''...'........'.'..'.'.'..................'....''.........'.....'............'..'.'..'..'..'........'...'....'........'.
+HH=.H ..==H. HH=HH H.=.H=.H.=.==H==H= HH=H= HH=H.=HH=..=HH=H==HH.HH HH.HH==H=HHH=HH.HH.H.=H.HH.HH.HHHHH=HH.HH=.HHHH.HHHHH=HH.H
+CC =C ==  B= CC CC C= =C =C= =  C  C  CC C  CC B= CC == CC C  CC=BC CC=CB  C CBC BC=BC=C= B=CB=BB=CBCCB CB=BB =BCBB=CBCBC BB=C
+                                                                                    V              V                   V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++X++XXXX++X+++X++X++X++X+++++XX+XX++X+XX+X++X+++++X++XXX+X++XX+XX+XX+XXXX++XX+XX+X+XX+X++X+XXXXX+X++X++X++X+XX+XX+XXXXX
+'....'...'.....'..'.'..'..'..'.'.''.......'......'..'.''..'......'...'.....'....''..'.........''.'.......''.''.''....'..'.....
+.==  .==H. HHHH. H. .H .H .H .H. .. HH HH .H=HH=H. H.=..=H.=HHH=H. HH.HH=HH.HHHH..HH.HH=H=HH=H..H.HHHHH=H..H..H..H=HH.HH.HHHHH
+=    =  C= BCCC= C= =B =B =C =B= == CC CC =C CC C= C= == C= CCC B= BB=CC CC=CCCB==BC=BC B CB B==B=CBCCB B==B==B==C BB=BC=BBCBB
+                                                                                                                    V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++X+++X++++++++X++X++XX+X+++X+XX+++++++++++++++XX+X+++++X++XX+XX+XX+XX+XX+XX+XX+XX+XX+XX+XX+XX+XX+XXXXXXXXXXXXX+XX+XX+XX+XX+XX
+...'.'...'''.'..'........'.'......'.'....'.''......'.'...'...............'.....'..'..'..'.....'...............................
+= H.=.H =...=.=H.=H= HH=H. .H=HH =.=.=  =.=..==HH H. .= H.=HH=HH=HH=HH=HH.HH=HH.HH.HH.HH.HH=HH.HH=HHHHHHHHHHHHH=HH=HH=HH=HH=HH
+  C= =C  === = C= C  CC C= =C CC  = =    = ==  BC C= =  C= BC BC CB CC CB=CB CC=CB=CB=BB=CC BC=BC BBCCBCCCCBCCB CB BB CB BB CC
+                                                                                                                         V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+++++XX+X+++XX+X++XX++++XX++X+++++++)++)-- =+++++++X+++++++++X++XX+XX++X++X++X+XX++XXXX++XXXX+XX+XX+XX+XX+XX+X++X+XX+XX+XXXXXXX
+.''.....'.'..'.'....''...'..'..''.. .      ....''..'.'...'.'.'.......'..'........'....''....'.....'..'..'..'..'....'..'.......
+ .. HH H. .HH.H. HH=.. HH.=H.==..=         =   .. H. .= =.=.H. HH HH=.H=.H==H=HH=.HHHH..HHHH.HH=HH.HH.HH.HH.H=.H=HH.HH.HHHHHHH
+ == CC C= =CC=C= BC == CC= B=  ==              == C= =   = =C= CC CC =C =C  B BB =BCCC==BCCB=CB BC=CB=BC=BC=B =C BB=BB=BCCBBBB
