/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* HTML named character reference to UTF-8 translation                        *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

StringRef translateHTMLNamedCharacterReferenceToUTF8(
                                             StringRef Name) {
  switch (Name.size()) {
  default: break;
  case 2:	 // 15 strings to match.
    switch (Name[0]) {
    default: break;
    case 'G':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'T':	 // 1 string to match.
        return "\x3e";	 // "GT"
      case 't':	 // 1 string to match.
        return "\x3e";	 // "Gt"
      }
      break;
    case 'L':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'T':	 // 1 string to match.
        return "\x3c";	 // "LT"
      case 't':	 // 1 string to match.
        return "\x3c";	 // "Lt"
      }
      break;
    case 'P':	 // 1 string to match.
      if (Name[1] != 'i')
        break;
      return "\xce\xa0";	 // "Pi"
    case 'X':	 // 1 string to match.
      if (Name[1] != 'i')
        break;
      return "\xce\x9e";	 // "Xi"
    case 'g':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        return "\xe2\x89\xa5";	 // "ge"
      case 't':	 // 1 string to match.
        return "\x3e";	 // "gt"
      }
      break;
    case 'l':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        return "\xe2\x89\xa4";	 // "le"
      case 't':	 // 1 string to match.
        return "\x3c";	 // "lt"
      }
      break;
    case 'm':	 // 1 string to match.
      if (Name[1] != 'u')
        break;
      return "\xce\xbc";	 // "mu"
    case 'n':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        return "\xe2\x89\xa0";	 // "ne"
      case 'u':	 // 1 string to match.
        return "\xce\xbd";	 // "nu"
      }
      break;
    case 'p':	 // 1 string to match.
      if (Name[1] != 'i')
        break;
      return "\xcf\x80";	 // "pi"
    case 'x':	 // 1 string to match.
      if (Name[1] != 'i')
        break;
      return "\xce\xbe";	 // "xi"
    }
    break;
  case 3:	 // 16 strings to match.
    switch (Name[0]) {
    default: break;
    case 'A':	 // 1 string to match.
      if (memcmp(Name.data()+1, "MP", 2) != 0)
        break;
      return "\x26";	 // "AMP"
    case 'P':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (Name[2] != 'i')
          break;
        return "\xce\xa6";	 // "Phi"
      case 's':	 // 1 string to match.
        if (Name[2] != 'i')
          break;
        return "\xce\xa8";	 // "Psi"
      }
      break;
    case 'R':	 // 1 string to match.
      if (memcmp(Name.data()+1, "EG", 2) != 0)
        break;
      return "\xc2\xae";	 // "REG"
    case 'a':	 // 1 string to match.
      if (memcmp(Name.data()+1, "mp", 2) != 0)
        break;
      return "\x26";	 // "amp"
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "hi", 2) != 0)
        break;
      return "\xcf\x87";	 // "chi"
    case 'd':	 // 1 string to match.
      if (memcmp(Name.data()+1, "eg", 2) != 0)
        break;
      return "\xc2\xb0";	 // "deg"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ta", 2) != 0)
        break;
      return "\xce\xb7";	 // "eta"
    case 'i':	 // 1 string to match.
      if (memcmp(Name.data()+1, "nt", 2) != 0)
        break;
      return "\xe2\x88\xab";	 // "int"
    case 'p':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (Name[2] != 'i')
          break;
        return "\xcf\x86";	 // "phi"
      case 's':	 // 1 string to match.
        if (Name[2] != 'i')
          break;
        return "\xcf\x88";	 // "psi"
      }
      break;
    case 'r':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (Name[2] != 'g')
          break;
        return "\xc2\xae";	 // "reg"
      case 'h':	 // 1 string to match.
        if (Name[2] != 'o')
          break;
        return "\xcf\x81";	 // "rho"
      }
      break;
    case 's':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'i':	 // 1 string to match.
        if (Name[2] != 'm')
          break;
        return "\xe2\x88\xbc";	 // "sim"
      case 'u':	 // 1 string to match.
        if (Name[2] != 'm')
          break;
        return "\xe2\x88\x91";	 // "sum"
      }
      break;
    case 't':	 // 1 string to match.
      if (memcmp(Name.data()+1, "au", 2) != 0)
        break;
      return "\xcf\x84";	 // "tau"
    }
    break;
  case 4:	 // 30 strings to match.
    switch (Name[0]) {
    default: break;
    case 'A':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\x84";	 // "Auml"
    case 'C':	 // 1 string to match.
      if (memcmp(Name.data()+1, "OPY", 3) != 0)
        break;
      return "\xc2\xa9";	 // "COPY"
    case 'E':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\x8b";	 // "Euml"
    case 'I':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\x8f";	 // "Iuml"
    case 'O':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\x96";	 // "Ouml"
    case 'Q':	 // 1 string to match.
      if (memcmp(Name.data()+1, "UOT", 3) != 0)
        break;
      return "\x22";	 // "QUOT"
    case 'U':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\x9c";	 // "Uuml"
    case 'Y':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc5\xb8";	 // "Yuml"
    case 'a':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'p':	 // 1 string to match.
        if (memcmp(Name.data()+2, "os", 2) != 0)
          break;
        return "\x27";	 // "apos"
      case 'u':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ml", 2) != 0)
          break;
        return "\xc3\xa4";	 // "auml"
      }
      break;
    case 'b':	 // 1 string to match.
      if (memcmp(Name.data()+1, "eta", 3) != 0)
        break;
      return "\xce\xb2";	 // "beta"
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "opy", 3) != 0)
        break;
      return "\xc2\xa9";	 // "copy"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\xab";	 // "euml"
    case 'i':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ta", 2) != 0)
          break;
        return "\xce\xb9";	 // "iota"
      case 's':	 // 1 string to match.
        if (memcmp(Name.data()+2, "in", 2) != 0)
          break;
        return "\xe2\x88\x88";	 // "isin"
      case 'u':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ml", 2) != 0)
          break;
        return "\xc3\xaf";	 // "iuml"
      }
      break;
    case 'l':	 // 1 string to match.
      if (memcmp(Name.data()+1, "arr", 3) != 0)
        break;
      return "\xe2\x86\x90";	 // "larr"
    case 'n':	 // 1 string to match.
      if (memcmp(Name.data()+1, "bsp", 3) != 0)
        break;
      return "\xc2\xa0";	 // "nbsp"
    case 'o':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\xb6";	 // "ouml"
    case 'p':	 // 4 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rt", 2) != 0)
          break;
        return "\xe2\x88\x82";	 // "part"
      case 'e':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rp", 2) != 0)
          break;
        return "\xe2\x8a\xa5";	 // "perp"
      case 'r':	 // 2 strings to match.
        if (Name[2] != 'o')
          break;
        switch (Name[3]) {
        default: break;
        case 'd':	 // 1 string to match.
          return "\xe2\x88\x8f";	 // "prod"
        case 'p':	 // 1 string to match.
          return "\xe2\x88\x9d";	 // "prop"
        }
        break;
      }
      break;
    case 'q':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uot", 3) != 0)
        break;
      return "\x22";	 // "quot"
    case 'r':	 // 1 string to match.
      if (memcmp(Name.data()+1, "arr", 3) != 0)
        break;
      return "\xe2\x86\x92";	 // "rarr"
    case 's':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ot", 2) != 0)
          break;
        return "\xe2\x8b\x85";	 // "sdot"
      case 'e':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ct", 2) != 0)
          break;
        return "\xc2\xa7";	 // "sect"
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\xbc";	 // "uuml"
    case 'y':	 // 1 string to match.
      if (memcmp(Name.data()+1, "uml", 3) != 0)
        break;
      return "\xc3\xbf";	 // "yuml"
    case 'z':	 // 1 string to match.
      if (memcmp(Name.data()+1, "eta", 3) != 0)
        break;
      return "\xce\xb6";	 // "zeta"
    }
    break;
  case 5:	 // 48 strings to match.
    switch (Name[0]) {
    default: break;
    case 'A':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "irc", 3) != 0)
          break;
        return "\xc3\x82";	 // "Acirc"
      case 'r':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ing", 3) != 0)
          break;
        return "\xc3\x85";	 // "Aring"
      }
      break;
    case 'D':	 // 1 string to match.
      if (memcmp(Name.data()+1, "elta", 4) != 0)
        break;
      return "\xce\x94";	 // "Delta"
    case 'E':	 // 1 string to match.
      if (memcmp(Name.data()+1, "circ", 4) != 0)
        break;
      return "\xc3\x8a";	 // "Ecirc"
    case 'G':	 // 1 string to match.
      if (memcmp(Name.data()+1, "amma", 4) != 0)
        break;
      return "\xce\x93";	 // "Gamma"
    case 'I':	 // 1 string to match.
      if (memcmp(Name.data()+1, "circ", 4) != 0)
        break;
      return "\xc3\x8e";	 // "Icirc"
    case 'O':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "irc", 3) != 0)
          break;
        return "\xc3\x94";	 // "Ocirc"
      case 'm':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ega", 3) != 0)
          break;
        return "\xce\xa9";	 // "Omega"
      }
      break;
    case 'P':	 // 1 string to match.
      if (memcmp(Name.data()+1, "rime", 4) != 0)
        break;
      return "\xe2\x80\xb3";	 // "Prime"
    case 'S':	 // 1 string to match.
      if (memcmp(Name.data()+1, "igma", 4) != 0)
        break;
      return "\xce\xa3";	 // "Sigma"
    case 'T':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'R':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ADE", 3) != 0)
          break;
        return "\xe2\x84\xa2";	 // "TRADE"
      case 'h':	 // 1 string to match.
        if (memcmp(Name.data()+2, "eta", 3) != 0)
          break;
        return "\xce\x98";	 // "Theta"
      }
      break;
    case 'U':	 // 1 string to match.
      if (memcmp(Name.data()+1, "circ", 4) != 0)
        break;
      return "\xc3\x9b";	 // "Ucirc"
    case 'Y':	 // 1 string to match.
      if (memcmp(Name.data()+1, "circ", 4) != 0)
        break;
      return "\xc5\xb6";	 // "Ycirc"
    case 'a':	 // 4 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "irc", 3) != 0)
          break;
        return "\xc3\xa2";	 // "acirc"
      case 'l':	 // 1 string to match.
        if (memcmp(Name.data()+2, "pha", 3) != 0)
          break;
        return "\xce\xb1";	 // "alpha"
      case 'r':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ing", 3) != 0)
          break;
        return "\xc3\xa5";	 // "aring"
      case 's':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ymp", 3) != 0)
          break;
        return "\xe2\x89\x88";	 // "asymp"
      }
      break;
    case 'd':	 // 1 string to match.
      if (memcmp(Name.data()+1, "elta", 4) != 0)
        break;
      return "\xce\xb4";	 // "delta"
    case 'e':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "irc", 3) != 0)
          break;
        return "\xc3\xaa";	 // "ecirc"
      case 'm':	 // 1 string to match.
        if (memcmp(Name.data()+2, "pty", 3) != 0)
          break;
        return "\xe2\x88\x85";	 // "empty"
      case 'q':	 // 1 string to match.
        if (memcmp(Name.data()+2, "uiv", 3) != 0)
          break;
        return "\xe2\x89\xa1";	 // "equiv"
      }
      break;
    case 'g':	 // 1 string to match.
      if (memcmp(Name.data()+1, "amma", 4) != 0)
        break;
      return "\xce\xb3";	 // "gamma"
    case 'i':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "irc", 3) != 0)
          break;
        return "\xc3\xae";	 // "icirc"
      case 'n':	 // 1 string to match.
        if (memcmp(Name.data()+2, "fin", 3) != 0)
          break;
        return "\xe2\x88\x9e";	 // "infin"
      }
      break;
    case 'k':	 // 1 string to match.
      if (memcmp(Name.data()+1, "appa", 4) != 0)
        break;
      return "\xce\xba";	 // "kappa"
    case 'l':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "eil", 3) != 0)
          break;
        return "\xe2\x8c\x88";	 // "lceil"
      case 'd':	 // 1 string to match.
        if (memcmp(Name.data()+2, "quo", 3) != 0)
          break;
        return "\xe2\x80\x9c";	 // "ldquo"
      case 's':	 // 1 string to match.
        if (memcmp(Name.data()+2, "quo", 3) != 0)
          break;
        return "\xe2\x80\x98";	 // "lsquo"
      }
      break;
    case 'm':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ash", 3) != 0)
          break;
        return "\xe2\x80\x94";	 // "mdash"
      case 'i':	 // 1 string to match.
        if (memcmp(Name.data()+2, "nus", 3) != 0)
          break;
        return "\xe2\x88\x92";	 // "minus"
      }
      break;
    case 'n':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "bla", 3) != 0)
          break;
        return "\xe2\x88\x87";	 // "nabla"
      case 'd':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ash", 3) != 0)
          break;
        return "\xe2\x80\x93";	 // "ndash"
      case 'o':	 // 1 string to match.
        if (memcmp(Name.data()+2, "tin", 3) != 0)
          break;
        return "\xe2\x88\x89";	 // "notin"
      }
      break;
    case 'o':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "irc", 3) != 0)
          break;
        return "\xc3\xb4";	 // "ocirc"
      case 'm':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ega", 3) != 0)
          break;
        return "\xcf\x89";	 // "omega"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "rime", 4) != 0)
        break;
      return "\xe2\x80\xb2";	 // "prime"
    case 'r':	 // 4 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "dic", 3) != 0)
          break;
        return "\xe2\x88\x9a";	 // "radic"
      case 'c':	 // 1 string to match.
        if (memcmp(Name.data()+2, "eil", 3) != 0)
          break;
        return "\xe2\x8c\x89";	 // "rceil"
      case 'd':	 // 1 string to match.
        if (memcmp(Name.data()+2, "quo", 3) != 0)
          break;
        return "\xe2\x80\x9d";	 // "rdquo"
      case 's':	 // 1 string to match.
        if (memcmp(Name.data()+2, "quo", 3) != 0)
          break;
        return "\xe2\x80\x99";	 // "rsquo"
      }
      break;
    case 's':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'i':	 // 1 string to match.
        if (memcmp(Name.data()+2, "gma", 3) != 0)
          break;
        return "\xcf\x83";	 // "sigma"
      case 'z':	 // 1 string to match.
        if (memcmp(Name.data()+2, "lig", 3) != 0)
          break;
        return "\xc3\x9f";	 // "szlig"
      }
      break;
    case 't':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 string to match.
        if (memcmp(Name.data()+2, "eta", 3) != 0)
          break;
        return "\xce\xb8";	 // "theta"
      case 'i':	 // 1 string to match.
        if (memcmp(Name.data()+2, "mes", 3) != 0)
          break;
        return "\xc3\x97";	 // "times"
      case 'r':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ade", 3) != 0)
          break;
        return "\xe2\x84\xa2";	 // "trade"
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(Name.data()+1, "circ", 4) != 0)
        break;
      return "\xc3\xbb";	 // "ucirc"
    case 'y':	 // 1 string to match.
      if (memcmp(Name.data()+1, "circ", 4) != 0)
        break;
      return "\xc5\xb7";	 // "ycirc"
    }
    break;
  case 6:	 // 37 strings to match.
    switch (Name[0]) {
    default: break;
    case 'A':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\x81";	 // "Aacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\x80";	 // "Agrave"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ilde", 4) != 0)
          break;
        return "\xc3\x83";	 // "Atilde"
      }
      break;
    case 'C':	 // 1 string to match.
      if (memcmp(Name.data()+1, "cedil", 5) != 0)
        break;
      return "\xc3\x87";	 // "Ccedil"
    case 'E':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\x89";	 // "Eacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\x88";	 // "Egrave"
      }
      break;
    case 'I':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\x8d";	 // "Iacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\x8c";	 // "Igrave"
      }
      break;
    case 'L':	 // 1 string to match.
      if (memcmp(Name.data()+1, "ambda", 5) != 0)
        break;
      return "\xce\x9b";	 // "Lambda"
    case 'N':	 // 1 string to match.
      if (memcmp(Name.data()+1, "tilde", 5) != 0)
        break;
      return "\xc3\x91";	 // "Ntilde"
    case 'O':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\x93";	 // "Oacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\x92";	 // "Ograve"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ilde", 4) != 0)
          break;
        return "\xc3\x95";	 // "Otilde"
      }
      break;
    case 'U':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\x9a";	 // "Uacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\x99";	 // "Ugrave"
      }
      break;
    case 'Y':	 // 1 string to match.
      if (memcmp(Name.data()+1, "acute", 5) != 0)
        break;
      return "\xc3\x9d";	 // "Yacute"
    case 'a':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\xa1";	 // "aacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\xa0";	 // "agrave"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ilde", 4) != 0)
          break;
        return "\xc3\xa3";	 // "atilde"
      }
      break;
    case 'c':	 // 1 string to match.
      if (memcmp(Name.data()+1, "cedil", 5) != 0)
        break;
      return "\xc3\xa7";	 // "ccedil"
    case 'e':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\xa9";	 // "eacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\xa8";	 // "egrave"
      }
      break;
    case 'i':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\xad";	 // "iacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\xac";	 // "igrave"
      }
      break;
    case 'l':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "mbda", 4) != 0)
          break;
        return "\xce\xbb";	 // "lambda"
      case 'f':	 // 1 string to match.
        if (memcmp(Name.data()+2, "loor", 4) != 0)
          break;
        return "\xe2\x8c\x8a";	 // "lfloor"
      }
      break;
    case 'n':	 // 1 string to match.
      if (memcmp(Name.data()+1, "tilde", 5) != 0)
        break;
      return "\xc3\xb1";	 // "ntilde"
    case 'o':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\xb3";	 // "oacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\xb2";	 // "ograve"
      case 't':	 // 1 string to match.
        if (memcmp(Name.data()+2, "ilde", 4) != 0)
          break;
        return "\xc3\xb5";	 // "otilde"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(Name.data()+1, "lusmn", 5) != 0)
        break;
      return "\xc2\xb1";	 // "plusmn"
    case 'r':	 // 1 string to match.
      if (memcmp(Name.data()+1, "floor", 5) != 0)
        break;
      return "\xe2\x8c\x8b";	 // "rfloor"
    case 's':	 // 1 string to match.
      if (memcmp(Name.data()+1, "igmaf", 5) != 0)
        break;
      return "\xcf\x82";	 // "sigmaf"
    case 'u':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\xba";	 // "uacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xc3\xb9";	 // "ugrave"
      }
      break;
    case 'y':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(Name.data()+2, "cute", 4) != 0)
          break;
        return "\xc3\xbd";	 // "yacute"
      case 'g':	 // 1 string to match.
        if (memcmp(Name.data()+2, "rave", 4) != 0)
          break;
        return "\xe1\xbb\xb3";	 // "ygrave"
      }
      break;
    }
    break;
  case 7:	 // 3 strings to match.
    switch (Name[0]) {
    default: break;
    case 'U':	 // 1 string to match.
      if (memcmp(Name.data()+1, "psilon", 6) != 0)
        break;
      return "\xce\xa5";	 // "Upsilon"
    case 'e':	 // 1 string to match.
      if (memcmp(Name.data()+1, "psilon", 6) != 0)
        break;
      return "\xce\xb5";	 // "epsilon"
    case 'u':	 // 1 string to match.
      if (memcmp(Name.data()+1, "psilon", 6) != 0)
        break;
      return "\xcf\x85";	 // "upsilon"
    }
    break;
  }
  return StringRef();
}

