inline bool IsUnreserved(int c) {
  return IsAlNum((unsigned char)c) || c == '-' || c == '.' || c == '_' ||
         c == '~';
}
inline bool IsUnreserved(int c) {
  return IsAlNum((unsigned char)c) || c == '-' || c == '.' || c == '_' ||
         c == '~';
}