code: private static int fromHex(final char c) {
          if (c < '0') {
              throw new IllegalStateException(
                      "Invalid percent-encoded string: bad character '" + c + "' in "
                              + "escape sequence.");
          }
          if (c <= '9') {
              return (c - '0');
          }
  
          if (c < 'A') {
              throw new IllegalStateException(
                      "Invalid percent-encoded string: bad character '" + c + "' in "
                              + "escape sequence.");
          }
          if (c <= 'F') {
              return (c - 'A') + 10;
          }
  
          if (c < 'a') {
              throw new IllegalStateException(
                      "Invalid percent-encoded string: bad character '" + c + "' in "
                              + "escape sequence.");
          }
          if (c <= 'f') {
              return (c - 'a') + 10;
          }
  
          throw new IllegalStateException(
                  "Invalid percent-encoded string: bad character '" + c + "' in "
                          + "escape sequence.");
      }
docs: Converts a hex character (0-9A-Fa-f) into its corresponding quad value.
  
  @param c the hex character
  @return the quad value