static int hexNibble(int ch) { if ((charMap[ch] & HEX) == 0) throw err("Invalid percent encoded hex: '" + (char)ch); if (ch <= '9') return ch - '0'; if (ch <= 'Z') return (ch - 'A') + 10; return (ch - 'a') + 10; }