/* Generated automatically by genflags. */

/* Set if the encoding can encode
   the acute and grave accents U+00B4 and U+0060. */
#define HAVE_ACCENTS 1

/* Set if the encoding can encode
   the single quotation marks U+2018 and U+2019. */
#define HAVE_QUOTATION_MARKS 2

/* Set if the encoding can encode
   the double-width Hangul letters (Jamo) U+3131 to U+3163. */
#define HAVE_HANGUL_JAMO 4

#define ei_ascii_oflags (0)
#define ei_utf8_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf32_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf32be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf32le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf7_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_c99_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_java_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_iso8859_1_oflags (HAVE_ACCENTS)
#define ei_iso8859_2_oflags (HAVE_ACCENTS)
#define ei_iso8859_3_oflags (HAVE_ACCENTS)
#define ei_iso8859_4_oflags (HAVE_ACCENTS)
#define ei_iso8859_5_oflags (0)
#define ei_iso8859_6_oflags (0)
#define ei_iso8859_7_oflags (HAVE_QUOTATION_MARKS)
#define ei_iso8859_8_oflags (HAVE_ACCENTS)
#define ei_iso8859_9_oflags (HAVE_ACCENTS)
#define ei_iso8859_10_oflags (0)
#define ei_iso8859_11_oflags (0)
#define ei_iso8859_13_oflags (0)
#define ei_iso8859_14_oflags (0)
#define ei_iso8859_15_oflags (0)
#define ei_iso8859_16_oflags (0)
#define ei_koi8_r_oflags (0)
#define ei_koi8_u_oflags (0)
#define ei_koi8_ru_oflags (0)
#define ei_cp1250_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1251_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1252_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1253_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1254_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1255_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1256_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1257_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1258_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp850_oflags (HAVE_ACCENTS)
#define ei_cp862_oflags (0)
#define ei_cp866_oflags (0)
#define ei_mac_roman_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_centraleurope_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_iceland_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_croatian_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_romania_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_cyrillic_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_ukraine_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_greek_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_turkish_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_hebrew_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_arabic_oflags (0)
#define ei_mac_thai_oflags (HAVE_QUOTATION_MARKS)
#define ei_hp_roman8_oflags (HAVE_ACCENTS)
#define ei_nextstep_oflags (HAVE_ACCENTS)
#define ei_armscii_8_oflags (0)
#define ei_georgian_academy_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_georgian_ps_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_koi8_t_oflags (HAVE_QUOTATION_MARKS)
#define ei_pt154_oflags (HAVE_QUOTATION_MARKS)
#define ei_mulelao_oflags (0)
#define ei_cp1133_oflags (0)
#define ei_tis620_oflags (0)
#define ei_cp874_oflags (HAVE_QUOTATION_MARKS)
#define ei_viscii_oflags (0)
#define ei_tcvn_oflags (HAVE_ACCENTS)
#define ei_iso646_jp_oflags (0)
#define ei_jisx0201_oflags (0)
#define ei_jisx0208_oflags (HAVE_QUOTATION_MARKS)
#define ei_jisx0212_oflags (0)
#define ei_iso646_cn_oflags (0)
#define ei_gb2312_oflags (HAVE_QUOTATION_MARKS)
#define ei_isoir165_oflags (HAVE_QUOTATION_MARKS)
#define ei_ksc5601_oflags (HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_euc_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_sjis_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp932_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_euc_cn_oflags (HAVE_QUOTATION_MARKS)
#define ei_ces_gbk_oflags (HAVE_QUOTATION_MARKS)
#define ei_gb18030_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_iso2022_cn_oflags (HAVE_QUOTATION_MARKS)
#define ei_iso2022_cn_ext_oflags (HAVE_QUOTATION_MARKS)
#define ei_hz_oflags (HAVE_QUOTATION_MARKS)
#define ei_euc_tw_oflags (HAVE_QUOTATION_MARKS)
#define ei_ces_big5_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp950_oflags (HAVE_QUOTATION_MARKS)
#define ei_big5hkscs_oflags (HAVE_QUOTATION_MARKS)
#define ei_euc_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_cp949_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_johab_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_iso2022_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_cp856_oflags (HAVE_ACCENTS)
#define ei_cp922_oflags (HAVE_ACCENTS)
#define ei_cp943_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1046_oflags (0)
#define ei_cp1124_oflags (0)
#define ei_cp1129_oflags (0)
#define ei_cp1161_oflags (0)
#define ei_cp1162_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1163_oflags (0)
#define ei_dec_kanji_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_dec_hanyu_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp437_oflags (0)
#define ei_cp737_oflags (0)
#define ei_cp775_oflags (0)
#define ei_cp852_oflags (HAVE_ACCENTS)
#define ei_cp853_oflags (HAVE_ACCENTS)
#define ei_cp855_oflags (0)
#define ei_cp857_oflags (HAVE_ACCENTS)
#define ei_cp858_oflags (HAVE_ACCENTS)
#define ei_cp860_oflags (0)
#define ei_cp861_oflags (0)
#define ei_cp863_oflags (HAVE_ACCENTS)
#define ei_cp864_oflags (0)
#define ei_cp865_oflags (0)
#define ei_cp869_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1125_oflags (0)
#define ei_euc_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_shift_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp3_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_big5_2003_oflags (HAVE_QUOTATION_MARKS)
#define ei_tds565_oflags (0)
#define ei_atarist_oflags (HAVE_ACCENTS)
#define ei_riscos1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
