IS_SURROGATE
#define IS_VALID_UNICODE(c) ((c) <= 0x10FFFF && !IS_SURROGATE(c))
#define IS_BMP(c) ((c) <= 0xFFFF && !IS_SURROGATE(c))