###########
                                              ###exxexxxxxxx####
                                            ##xeeexexe#####xexxx##
                                           #eeeeexeex#xxxx#xexxxxx#
                                          #eeeeexeee#xxxxxxxxexxxxx#
                                         #exeeexeee#xxxxxxxxxexxxxxx#
                                        #exxeeexexx#xxxxxxxxeexxxxxxx#
                                       #eexeeeexex#xxxxxxxxeexxxxxxxx#
                                      #xexeeeeexex#xxxxxxx#eexxxeeexee#
                                     #xeeeeeeexxxe{{{########eexxexxexx#
                                     #eeeeeeeexx##{{{{{{{{{  #xxxxeexxxx#
                                    #exeexeeeexe#{{{{{{{{{{{  ###xxxxxxx#
                                    #xeeeeeeexex#{{{{{{{{{{{{   #exxxexx#
                                    #exeeeeeexx#{{{{{{{{{{{{{{   #eeexxxx#
                                   #xeeeeeeeexx#{{{{{{{{{{{{{{{  #eeeeexx#
                                   #xeeeexeeexx#{{{{{{{{{{{{{{{   #eeeeex#
                                   #eeeeexeexx#{{{{{{{{{{{{{{{{{  #eeeeex#
                                   #exxeeeeexe#{{{{{{{{{{{{{{{{{  #eeeeex#
                                    #eeeexexx#{{{{{{{{{{{{{{{{{   #eeeeee#
                                    #eeeexxxx#eeeee{{{{{{{{eeeeee #eeeee#
                                    #xexexee#e{{{{ee{{{{{ee{{{{{ e#eeeee#
                                    #eeeexx##{{xxx  {{{{{  {      #eeeee#
                                    #xeeex##{{###x   {{{   ####    eeee#
                                    #exeex##{#x##x   {{{   ##Exx   eee#
                                     #xeex#{{{    {{{{{  {{    #{  ee#
                                      #eex#{{{{{{{{{{{{ {{{{{{{{{  e#
                                       ##e{{{{{{{{{{{{{  {{{{{{{{  e#
                                        ##{{{{{{{{{{{{{{ {{{{{{{{  #
                                         #{{{{{{{{{{{{{{ {{{{{{{{ ##
                                          #{{{{{{{{{{{{{ {{{{{{{  #
                                          #{{{{{{{{{{{{{{{{{{{{{  #
                                          #{{{{{{{{  {{{  {{{{{{  #
                                          #{{{{{{{{{{   {{{{{{{   #
                                          #{{{{{{{{{{{{{{{{{{{   #
                                          #{{{{{{{{{{{{{{{{{ {   #
                                           #{{{{{EXXXXXXXXXXE{   #
                                            #{{{{{{{EXXXXXE{{{  #
                                            #{{{{{{{{{{{{{{{{{  #
                                            ##{{{{{{{{{{{{{{{{ #
                                            #{##{{{{{{{{{{{{{ #
                                           ##{xx#{{{{{{{{{{{##
                                          #X#{xxx#{{{{{{{{{#x##
                                          #X#{{xxx###{{{{{#xxx#
                                        ##X#{{{{xxxxx#####xxxx##
                                       #XXX#{{{{{xxxxxxxxxxxxxx##
                                   ####XXX#{{{{{{{{{{xxxxxxxxxxx##
                               ####X#XXXXX#{{{{{{{{{{{xxxxxxxxxx#X#
                           ####XXXX#XXXXXX#{{{{{{{{{{{{{{xxxxxxx#XX#
                        ###XXXXXXX#XXXXXXX#{{{{{{{{{{{{{{xxx{{xxx#XX#
                    ####XXXXXXXXX#XXXXXXXX#{{{{{{{{{{{{{{xxx{{{{{#XXX###
                 ###XXXXXXXXXXXXX#XXXXXXXX#{{{{{{{{{{{{{{xx{{{{{{#XXXX#X###
                #XXXXXXXXXXXXXXX#XXXXXXXXX#{{{{{{{{{{{{{{xx{{{{{{#XXXXX#XXX#
              ##XXXXXXXXXXXXXXX#XXXXXXXXXX#{{{{{{{{{{{{{xxx{{{{{#XXXXXX#XXXX##
            ##XXXXXXXXXXXXXXXXX#XXXXXXXXXXX#{{{{{{{{{{{{xxx{{{{{#XXXXXXX#XXXXX##
          ###XXXXXXXXXXXXXXXXX##XXXXXXXXXXX#{       {{{{xx{{{{{#XXXXXXXXX#XXXXXX#####
         ##XXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXX#{{{{{{{{{{xx{{   #XXXXXXXXXXX#XXXXXXXXXX##
         #XXXXXXXXXXXXXXXXXXXXXXX###XXXXXXXX#{{{{{{{{{{xx{{{{{#XXXXXXXXXXX#XXXXXXXXXXXX#
         #XXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXX#{{{{{{{{{{{{{{{{{#XXXXXXXXXXXX#XXXXXXXXXXXX##
        #XXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXX#{{{{{{{{{{{{{{{#XXXXXXXXXX###XXXXXXXXXXXXXXX#
        #XXXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXX#{{{{{{{{{{{{{{{#XXXXXXX###XXXXXXXXXXXXXXXXXXX#
        #XXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXX#{{{{{{{{{{{{{{{#XXXXXX##XXXXXXXXXXXXXXXXXXXXXX##
        #XXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXX#{{{{{{{{{{{{{#XXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXX#
        #XXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXXXXX#{{{{{{{{{{{{{#XXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXX#
       #XXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXXX#{{{{{{{{{{{{#XXXXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXX#
       #XXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXXXX#{{{{{{{{{{{#XXXXXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXX#
       #XXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXXXXXX#{{{{{{{{{{{#XXXXXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXX#
       #XXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXXX#{{{{{{{{{{{#XXXXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXX#
       #XXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXXX#{{{{{{{{{{{#XXXXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXX#
      #XXXXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXX#{{{{{{{{{{#XXXXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXX#
      #XXXXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXXX#{{{{{{{{{#XXXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXX#
      #XXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXXXXX#{{{{{{{{{#XXXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXX#
      #XXXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXXXX#{{{{{{{{#XXXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXX#
     #XXXXXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXXXX#{{{{{{{#XXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXX#
     #XXXXXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXXXX#{{{{{{#XXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXX#
     #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXXX#{{{{{{#XXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXX#
     #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXX#{{{{{{#XXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXXX#
     #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXXX#{{{{{#XXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXX#
    #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXX#{{{{{#XXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXX#
    #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX##XXXXXXXXX#{{{{{#XXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
    #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXX#{{{{#XXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
    #XXXXXXXXXXXXXXXXXXXXXXXXXXX##E#XXXX#XXXXXXXX#{{{#XXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
    #XXXXXXXXXXXXXXXXXXXXXXXXXX####E#XXXX#XXXXXXXX#{{#XXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXXXXXXXXXXXX######E#XXX#XXXXXXXX#{{#XXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXXXXXXXXXX#########EXXXX#XXXXXXX#{#XXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXXXXXXXXX##########E#XXX#XXXXXXX#{#XXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXXXXXXX#############E#XX#XXXXXXXX##XXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXXXXXXX##############E#X##XXXXXXX#XXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXXXXXX################E#X#XXXXXXX#XXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXXXX###################EXX#XXXXXXXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
   #XXXXXXXXXXXXXXXX#######################XX#XXXXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXXXXXXXXX########################E#X##XXXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXXXXXXXX##########################E#X#XXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXXXXXXX############################E###XXXXXXXXX##XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXXXXXX##############################E##XXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXXXXX################################E##XXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXXX###################################E#XXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXX####################################E##XXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
  #XXXXXXXXX####################################E#XXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#        ###
  #XXXXXXXXXX######################################XX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#   ####EEE#
  #XXXXXXXXXXX########################################XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX######EE##EE
 #XXXXXXXXXXXXX######################################XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX######EE##EE#
 #XXXXXXXXXXXXXX#####################################XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#####EEE##EE#
 #XXXXXXXXXXXXXXX#####################################XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#####EE###EE#
 #XXXXXXXXXXXXXXX####################################E#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#####EEE####E#
 #XXXXXXXXXXXXXXX#####################################E#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#####EE####EEE#
 #XXXXXXXXXXXXXXXX#####################################E#{{{XXXXXXXXXXXXXXXXXXXXXXXX####EEE###EEE#
  #XXXXXXXXXXXXXXXX#####################################E#{{{{XXXXXXXXXXXXXXXXXXX#####EE####EEXXX#
   #XXXXXXXXXXXXXXXXX####################################E#{{{{{{{XXXXXXXXXX#####EEE##EEE#XXXXXXX#
   #XXXXXXXXXXXXXXXXXX####################################E{{{{{{{XXXXXXXXX####EE###EE#XXXXXXXXXX#
    #XXXXXXXXXXXXXXXXX######################################{{{{XXXXXXXXXXX#EEE###EEXXXXXXXXXXXXX#
     #XXXXXXXXXXXXXXXXX###############{{###################E#{{{{{XXXXXXXXX####EEEXXXXXXXXXXXXXXX#
     #XXXXXXXXXXXXXXXXXX#############{{{##{#################E#{{{{{XXXXXXX##EEEXXXXXXXXXXXXXXXXXX#
      #XXXXXXXXXXXXXXXXXX#############{{{#{##################EX{{{{XXXX###EEXXXXXXXXXXXXXXXXXXXXX#
      #XXXXXXXXXXXXXXXXXX###########{{x{{#{{#################E#{{{{X###EEE#XXXXXXXXXXXXXXXXXXXXXX#
       #XXXXXXXXXXXXXXXXX############{x{{{{{##################E#{{{#EEE#XXXXXXXXXXXXXXXXXXXXXXXX#
        #XXXXXXXXXXXXXXXXX###########{{x{{{{{##################E##EE#XXXXXXXXXXXXXXXXXXXXXXXXXXX#
          ##XXXXXXXXXXXXXXXX##########{xx{x{{{###################XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
            ##XXXXXXXXXXXXXXX#######{{#{x{{x{{{###############XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX##
              ##XXXXXXXXXXXXXX######{{{xxx{x{{{############XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX##
                #XXXXXXXXXXXXX#######{{x{x{{x{{{##########{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                 ##XXXXXXXXXXXX######{{x{{{{x{{{{#######XX{  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                   ##XXXXXXXXXXX######{xx{x{{x{{{{###XXXX    XXXXXXXXXXXXXXXXXXXXXXXXXXXX##
                     ##XXXXXXXXXX#####{{x{x{{{x{{{{XXX{{{{     XXXXXXXXXXXXXXXXXXXXXXXXX#
                      #XXXXXXXXXX#####{{xx{x{{x{{{{{{{{{{{{        XXXXXXXXXXXXXXXXXXXX#
                     #XXXXXXXXXXXX#####{{x{{x{{x{{{{{{{{{{{        XXXXXXXXXXXXXXXXX###
                     #XXXXXXXXXXXXX######{x{{xx{{                  XXXXXXXXXXXXXXX##
                     #XXXXXXXXXXXXXX#####X{xx{{{                    XXXXXXXXXXXX##
                    #XXXXXXXXXXXXXXXXXXXXXXX{{                     XXXXXXXXXXX##
                    #XXXXXXXXXXXXXXXXXXXXXXXX                     XXXXXXXXXXXX#
                    #XXXXXXXXXXXXXXXXXXXXXXXXXX             XXXXXXXXXXXXXXXXXX#
                   #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                   #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                   #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                   #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
                  #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#