gcc/libcpp/ucnid.h

802 lines
36 KiB
C
Raw Normal View History

Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
/* Unicode characters and various properties.
Copyright (C) 2003, 2005 Free Software Foundation, Inc.
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
Copyright (C) 1991-2005 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in
http://www.unicode.org/copyright.html.
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
Permission is hereby granted, free of charge, to any person
obtaining a copy of the Unicode data files and any associated
documentation (the "Data Files") or Unicode software and any
associated documentation (the "Software") to deal in the Data Files
or Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, and/or
sell copies of the Data Files or Software, and to permit persons to
whom the Data Files or Software are furnished to do so, provided
that (a) the above copyright notice(s) and this permission notice
appear with all copies of the Data Files or Software, (b) both the
above copyright notice(s) and this permission notice appear in
associated documentation, and (c) there is clear notice in each
modified Data File or in the Software as well as in the
documentation associated with the Data File(s) or Software that the
data or software has been modified.
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY
OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
OF THE DATA FILES OR SOFTWARE.
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder. */
cpplib.h (CPP_AT_NAME, [...]): New token types. * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952
2003-07-05 02:24:00 +02:00
Index: gcc/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * doc/cppopts.texi (-fexec-charset): Add concept index entry. (-fwide-exec-charset): Likewise. (-finput-charset): Likewise. * doc/invoke.texi (Warning Options): Document -Wnormalized=. * c-opts.c (c_common_handle_option): Handle -Wnormalized=. * c.opt (Wnormalized): New. Index: libcpp/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * init.c (cpp_create_reader): Default warn_normalize to normalized_C. * charset.c: Update for new format of ucnid.h. (ucn_valid_in_identifier): Update for new format of ucnid.h. Add NST parameter, and update it; update callers. (cpp_valid_ucn): Add NST parameter, update callers. Replace abort with cpp_error. (convert_ucn): Pass normalize_state to cpp_valid_ucn. * internal.h (struct normalize_state): New. (INITIAL_NORMALIZE_STATE): New. (NORMALIZE_STATE_RESULT): New. (NORMALIZE_STATE_UPDATE_IDNUM): New. (_cpp_valid_ucn): New. * lex.c (warn_about_normalization): New. (forms_identifier_p): Add normalize_state parameter, update callers. (lex_identifier): Add normalize_state parameter, update callers. Keep the state current. (lex_number): Likewise. (_cpp_lex_direct): Pass normalize_state to subroutines. Check it with warn_about_normalization. * makeucnid.c: New. * ucnid.h: Replace. * ucnid.pl: Remove. * ucnid.tab: Make appropriate for input to makeucnid.c. Remove comments about obsolete version of C++. * include/cpplib.h (enum cpp_normalize_level): New. (struct cpp_options): Add warn_normalize field. Index: gcc/testsuite/ChangeLog 2005-03-14 Geoffrey Keating <geoffk@apple.com> * gcc.dg/cpp/normalize-1.c: New. * gcc.dg/cpp/normalize-2.c: New. * gcc.dg/cpp/normalize-3.c: New. * gcc.dg/cpp/normalize-4.c: New. * gcc.dg/cpp/ucnid-4.c: New. * gcc.dg/cpp/ucnid-5.c: New. * g++.dg/cpp/normalize-1.C: New. * g++.dg/cpp/ucnid-1.C: New. From-SVN: r96459
2005-03-15 01:36:33 +01:00
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00a9 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00aa },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b4 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00b5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b6 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x00b7 },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x00b9 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00ba },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00bf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x00d6 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00d7 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x00f6 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00f7 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0131 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0133 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x013e },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0140 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0148 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0149 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x017e },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x017f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01c3 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x01cc },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01f0 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x01f3 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01f5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x01f9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0217 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x024f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x02a8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02af },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x02b8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02ba },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02bb },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02bc },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02c1 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02cf },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02d1 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02df },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x02e4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0379 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x037a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0383 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0x0384 },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x0385 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0386 },
{ 0| 0| 0|CID| 0| 0| 0, 0, 0x0387 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x038a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x038b },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x038c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x038d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03a1 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03a2 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03ce },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03cf },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x03d6 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03d9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03da },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03db },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03dc },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03dd },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03de },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03df },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03e0 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03e1 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03ef },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x03f2 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03f3 },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x0400 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x040c },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x040d },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x040e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x044f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0450 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x045c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x045d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0481 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x048f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04c4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04c6 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04c8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04ca },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04cc },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04cf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04eb },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04ed },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04f5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04f7 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04f9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0530 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0556 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0558 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0559 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0560 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0586 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0587 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05af },
{ C99| 0| 0|CID|NFC|NKC| 0, 10, 0x05b0 },
{ C99| 0| 0|CID|NFC|NKC| 0, 11, 0x05b1 },
{ C99| 0| 0|CID|NFC|NKC| 0, 12, 0x05b2 },
{ C99| 0| 0|CID|NFC|NKC| 0, 13, 0x05b3 },
{ C99| 0| 0|CID|NFC|NKC| 0, 14, 0x05b4 },
{ C99| 0| 0|CID|NFC|NKC| 0, 15, 0x05b5 },
{ C99| 0| 0|CID|NFC|NKC| 0, 16, 0x05b6 },
{ C99| 0| 0|CID|NFC|NKC| 0, 17, 0x05b7 },
{ C99| 0| 0|CID|NFC|NKC| 0, 18, 0x05b8 },
{ C99| 0| 0|CID|NFC|NKC| 0, 19, 0x05b9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05ba },
{ C99| 0| 0|CID|NFC|NKC| 0, 20, 0x05bb },
{ C99| 0| 0|CID|NFC|NKC| 0, 21, 0x05bc },
{ C99| 0| 0|CID|NFC|NKC| 0, 22, 0x05bd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05be },
{ C99| 0| 0|CID|NFC|NKC| 0, 23, 0x05bf },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05c0 },
{ C99| 0| 0|CID|NFC|NKC| 0, 24, 0x05c1 },
{ C99| 0| 0|CID|NFC|NKC| 0, 25, 0x05c2 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05cf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x05ea },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05ef },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x05f2 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x05f4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0620 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x063a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x063f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x064a },
{ C99| 0|CXX|CID|NFC|NKC| 0, 27, 0x064b },
{ C99| 0|CXX|CID|NFC|NKC| 0, 28, 0x064c },
{ C99| 0|CXX|CID|NFC|NKC| 0, 29, 0x064d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 30, 0x064e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 31, 0x064f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 32, 0x0650 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 33, 0x0651 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 34, 0x0652 },
{ 0| 0| 0|CID|NFC|NKC|CTX, 0, 0x065f },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0669 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x066f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0674 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0678 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06b7 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06b9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06be },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06bf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06ce },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06cf },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x06d5 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d6 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d7 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d8 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d9 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06da },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06db },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06dc },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06e4 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06e6 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 230, 0x06e7 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06e8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06e9 },
{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x06ea },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06eb },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06ec },
{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x06ed },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06ef },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x06f9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0900 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0903 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0904 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0939 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x093c },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x094c },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x094d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x094f },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0950 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0951 },
{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0952 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0957 },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x095f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0962 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0963 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0965 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x096f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0980 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0983 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0984 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x098c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x098e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0990 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0992 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09a8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09a9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b0 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09b1 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b2 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09b5 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09bd },
{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x09be },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09c4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09c6 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09c8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09ca },
{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x09cb },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09cc },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x09cd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09db },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x09dd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09de },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x09df },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09e1 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09e3 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09e5 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x09ef },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09f1 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a01 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a02 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a04 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a0a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a0e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a10 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a12 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a28 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a29 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a30 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a31 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a32 },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a33 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a34 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a35 },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a36 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a37 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a39 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a3d },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a42 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a46 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a48 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a4a },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a4c },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0a4d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a58 },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a5b },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a5c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a5d },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a5e },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a65 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0a6f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a73 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a74 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a80 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a83 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a84 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a8b },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a8c },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a8d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a8e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a91 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a92 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0aa8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0aa9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab0 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ab1 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab3 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ab4 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0abc },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac6 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0aca },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0acc },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0acd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0acf },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ad0 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0adf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ae0 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ae5 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0aef },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b00 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b03 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b04 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b0c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b0e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b10 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b12 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b28 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b29 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b30 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b31 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b33 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b35 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b39 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b3c },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b3d },
{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0b3e },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b43 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b46 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b48 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b4a },
{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0b4b },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b4c },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0b4d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b5b },
{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0b5d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b5e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b61 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b65 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0b6f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b81 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b83 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b84 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b8a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b8d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b90 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b91 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b95 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b98 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b9b },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b9d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ba2 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ba4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ba7 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0baa },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bad },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0bb5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bb6 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0bb9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bbd },
{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0bbe },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc2 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc5 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc9 },
{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0bcb },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bcc },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0bcd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0be6 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0bef },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c00 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c03 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c04 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c0c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c0d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c10 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c11 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c28 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c29 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c33 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c34 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c39 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c3d },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c44 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c45 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c48 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c49 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c4c },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0c4d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c5f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c61 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c65 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0c6f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c81 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c83 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c84 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c8c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c8d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c90 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c91 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ca8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ca9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0cb3 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cb4 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0cb9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cbd },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc1 },
{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0cc2 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc5 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc8 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc9 },
{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0cca },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ccc },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0ccd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdd },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cde },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ce1 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ce5 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0cef },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d01 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d03 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d04 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d0c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d0d },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d10 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d11 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d28 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d29 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d39 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d3d },
{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0d3e },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d43 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d45 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d48 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d49 },
{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0d4b },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d4c },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0d4d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d5f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d61 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d65 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0d6f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e00 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e30 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e31 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e32 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0e33 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e37 },
{ C99| 0| 0|CID|NFC|NKC| 0, 103, 0x0e38 },
{ C99| 0| 0|CID|NFC|NKC| 0, 103, 0x0e39 },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0e3a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e3f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e46 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e47 },
{ C99| 0| 0|CID|NFC|NKC| 0, 107, 0x0e48 },
{ C99| 0| 0|CID|NFC|NKC| 0, 107, 0x0e49 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e4e },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e4f },
{ C99|DIG|CXX|CID|NFC|NKC| 0, 0, 0x0e59 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e5b },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e80 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e82 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e83 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e84 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e86 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e88 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e89 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e8a },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e8c },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e8d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e93 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e97 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e98 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e9f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea0 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea3 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea4 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea6 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea7 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eab },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eac },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eae },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eaf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eb0 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0eb1 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eb2 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0eb3 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0eb7 },
{ C99| 0| 0|CID|NFC|NKC| 0, 118, 0x0eb8 },
{ C99| 0| 0|CID|NFC|NKC| 0, 118, 0x0eb9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eba },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ebc },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ebd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ebf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ec4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ec5 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ec6 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ec7 },
{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0ec8 },
{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0ec9 },
{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0eca },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ecd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ecf },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0ed9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0edb },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0edd },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eff },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f00 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f17 },
{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f18 },
{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f19 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f1f },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0f33 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f34 },
{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f35 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f36 },
{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f37 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f38 },
{ C99| 0| 0|CID|NFC|NKC| 0, 216, 0x0f39 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f3d },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f42 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f43 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f47 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f48 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f4c },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f4d },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f51 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f52 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f56 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f57 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f5b },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f5c },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f68 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f69 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f70 },
{ C99| 0| 0|CID|NFC|NKC| 0, 129, 0x0f71 },
{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f72 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f73 },
{ C99| 0| 0|CID|NFC|NKC| 0, 132, 0x0f74 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f76 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0f77 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f78 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0f79 },
{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7a },
{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7b },
{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7c },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f7f },
{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f80 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f81 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f82 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f83 },
{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0f84 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f85 },
{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f86 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f8b },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f8f },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f92 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f93 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f95 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f96 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f97 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f98 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f9c },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f9d },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fa1 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fa2 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fa6 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fa7 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fab },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fac },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fad },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb0 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb7 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb8 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fb9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x109f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x10c5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10cf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x10f6 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10ff },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x1159 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1160 },
{ 0| 0|CXX|CID|NFC|NKC|CTX, 0, 0x1175 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x11a2 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11a7 },
{ 0| 0|CXX|CID|NFC|NKC|CTX, 0, 0x11c2 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x11f9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1dff },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1e99 },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x1e9a },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x1e9b },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e9f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ef9 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1eff },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f15 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f17 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f1d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f1f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f45 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f47 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f4d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f4f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f57 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f58 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f59 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5a },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f5b },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5c },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f5d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5e },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f70 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f71 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f72 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f73 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f74 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f75 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f76 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f77 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f78 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f79 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f7a },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f7b },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f7c },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f7d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f7f },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fb4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fb5 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fba },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fbb },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fbc },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fbd },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x1fbe },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fc1 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fc4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fc5 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fc8 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fc9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fca },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fcb },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fcc },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fcf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fd2 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fd3 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fd5 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fda },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fdb },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fdf },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fe2 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fe3 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fea },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1feb },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fec },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1ff1 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ff4 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1ff5 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ff8 },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1ff9 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ffa },
{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1ffb },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ffc },
{ 0| 0| 0|CID| 0| 0| 0, 0, 0x203e },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x2040 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x207e },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x207f },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2101 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2102 },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2106 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2107 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2109 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2113 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2114 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2115 },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2117 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x2118 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x211d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2123 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2124 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2125 },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x2126 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2127 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2128 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2129 },
{ C99| 0| 0|CID| 0| 0| 0, 0, 0x212a },
{ C99| 0| 0| 0| 0| 0| 0, 0, 0x212b },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x212d },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x212e },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2131 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2132 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2138 },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x215f },
{ C99|DIG| 0|CID|NFC| 0| 0, 0, 0x217f },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x2182 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3004 },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x3006 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3007 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3020 },
{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3029 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3040 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x3093 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x3094 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x309a },
{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x309c },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x309e },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x30a0 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x30f6 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fa },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fc },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fe },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x3104 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x312c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x4dff },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x9fa5 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xabff },
{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0xd7a3 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xf8ff },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa0d },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa0f },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa10 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa11 },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa12 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa14 },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa1e },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa1f },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa20 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa21 },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa22 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa24 },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa26 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa29 },
{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa2d },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb1e },
{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb1f },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfb29 },
{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb36 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb37 },
{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb3c },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb3d },
{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb3e },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb3f },
{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb41 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfb42 },
{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb44 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb45 },
{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb4e },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfbb1 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfbd2 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfd3d },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfd3f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfd4f },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfd8f },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfd91 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfdc7 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfdef },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfdfb },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xfe6f },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfe72 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfe73 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfe74 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfe75 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfefc },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xff20 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xff3a },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xff40 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xff5a },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xff65 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffbe },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffc1 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffc7 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffc9 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffcf },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffd1 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffd7 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffd9 },
{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffdc },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffff },